| Index: ui/app_list/views/search_box_view.cc
|
| diff --git a/ui/app_list/views/search_box_view.cc b/ui/app_list/views/search_box_view.cc
|
| index 6201c08bd744dfd9f459cb286a0edc76254d932b..50cbda1643e67492afa709ad796de371c3b36974 100644
|
| --- a/ui/app_list/views/search_box_view.cc
|
| +++ b/ui/app_list/views/search_box_view.cc
|
| @@ -6,10 +6,12 @@
|
|
|
| #include <algorithm>
|
|
|
| +#include "grit/ui_resources.h"
|
| #include "ui/app_list/search_box_model.h"
|
| #include "ui/app_list/search_box_view_delegate.h"
|
| #include "ui/base/events/event.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/views/controls/button/menu_button.h"
|
| #include "ui/views/controls/image_view.h"
|
| #include "ui/views/controls/textfield/textfield.h"
|
|
|
| @@ -22,23 +24,35 @@ const int kIconDimension = 32;
|
| const int kPreferredWidth = 360;
|
| const int kPreferredHeight = 48;
|
| const int kEditHeight = 19;
|
| +const int kMenuButtonDimension = 29;
|
|
|
| const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0);
|
|
|
| } // namespace
|
|
|
| -SearchBoxView::SearchBoxView(SearchBoxViewDelegate* delegate)
|
| +SearchBoxView::SearchBoxView(SearchBoxViewDelegate* delegate,
|
| + AppListViewDelegate* view_delegate)
|
| : delegate_(delegate),
|
| model_(NULL),
|
| + menu_(view_delegate),
|
| icon_view_(new views::ImageView),
|
| - user_icon_view_(new views::ImageView),
|
| search_box_(new views::Textfield),
|
| contents_view_(NULL) {
|
| AddChildView(icon_view_);
|
| - AddChildView(user_icon_view_);
|
|
|
| - search_box_->RemoveBorder();
|
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
| +
|
| +#if !defined(OS_CHROMEOS)
|
| + menu_button_ = new views::MenuButton(NULL, string16(), this, false);
|
| + menu_button_->set_border(NULL);
|
| + menu_button_->SetIcon(*rb.GetImageSkiaNamed(IDR_APP_LIST_TOOLS_NORMAL));
|
| + menu_button_->SetHoverIcon(*rb.GetImageSkiaNamed(IDR_APP_LIST_TOOLS_HOVER));
|
| + menu_button_->SetPushedIcon(*rb.GetImageSkiaNamed(
|
| + IDR_APP_LIST_TOOLS_PRESSED));
|
| + AddChildView(menu_button_);
|
| +#endif
|
| +
|
| + search_box_->RemoveBorder();
|
| search_box_->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont));
|
| search_box_->set_placeholder_text_color(kHintTextColor);
|
| search_box_->SetController(this);
|
| @@ -61,9 +75,7 @@ void SearchBoxView::SetModel(SearchBoxModel* model) {
|
| if (model_) {
|
| model_->AddObserver(this);
|
| IconChanged();
|
| - UserIconChanged();
|
| HintTextChanged();
|
| - UserIconTooltipChanged();
|
| }
|
| }
|
|
|
| @@ -76,24 +88,25 @@ void SearchBoxView::Layout() {
|
| if (rect.IsEmpty())
|
| return;
|
|
|
| - gfx::Size icon_size(kIconDimension, kIconDimension);
|
| gfx::Rect icon_frame(rect);
|
| - icon_frame.set_width(icon_size.width() + 2 * kPadding);
|
| + icon_frame.set_width(kIconDimension + 2 * kPadding);
|
| icon_view_->SetBoundsRect(icon_frame);
|
|
|
| - gfx::Rect user_icon_frame(rect);
|
| - user_icon_frame.set_width(icon_size.width() + 2 * kPadding);
|
| - user_icon_frame.set_x(rect.right() - user_icon_frame.width());
|
| - if (!model_->user_icon_enabled()) {
|
| - user_icon_frame.set_width(0);
|
| - }
|
| - user_icon_view_->SetVisible(model_->user_icon_enabled());
|
| - user_icon_view_->SetBoundsRect(user_icon_frame);
|
| + gfx::Rect menu_button_frame(rect);
|
| +#if !defined(OS_CHROMEOS)
|
| + menu_button_frame.set_width(kMenuButtonDimension);
|
| + menu_button_frame.set_x(rect.right() - menu_button_frame.width() - kPadding);
|
| + menu_button_frame.ClampToCenteredSize(gfx::Size(menu_button_frame.width(),
|
| + kMenuButtonDimension));
|
| + menu_button_->SetBoundsRect(menu_button_frame);
|
| +#else
|
| + menu_button_frame.set_width(0);
|
| +#endif
|
|
|
| gfx::Rect edit_frame(rect);
|
| edit_frame.set_x(icon_frame.right());
|
| edit_frame.set_width(
|
| - rect.width() - icon_frame.width() - kPadding - user_icon_frame.width());
|
| + rect.width() - icon_frame.width() - kPadding - menu_button_frame.width());
|
| edit_frame.ClampToCenteredSize(gfx::Size(edit_frame.width(), kEditHeight));
|
| search_box_->SetBoundsRect(edit_frame);
|
| }
|
| @@ -145,6 +158,11 @@ bool SearchBoxView::HandleKeyEvent(views::Textfield* sender,
|
| return handled;
|
| }
|
|
|
| +void SearchBoxView::OnMenuButtonClicked(View* source, const gfx::Point& point) {
|
| + menu_.RunMenuAt(menu_button_,
|
| + menu_button_->GetBoundsInScreen().bottom_right());
|
| +}
|
| +
|
| void SearchBoxView::IconChanged() {
|
| icon_view_->SetImage(model_->icon());
|
| }
|
| @@ -161,16 +179,4 @@ void SearchBoxView::TextChanged() {
|
| search_box_->SetText(model_->text());
|
| }
|
|
|
| -void SearchBoxView::UserIconChanged() {
|
| - user_icon_view_->SetImage(model_->user_icon());
|
| -}
|
| -
|
| -void SearchBoxView::UserIconTooltipChanged() {
|
| - user_icon_view_->SetTooltipText(model_->user_icon_tooltip());
|
| -}
|
| -
|
| -void SearchBoxView::UserIconEnabledChanged() {
|
| - InvalidateLayout();
|
| -}
|
| -
|
| } // namespace app_list
|
|
|