OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/app_list/views/search_box_view.h" | 5 #include "ui/app_list/views/search_box_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "ui/app_list/app_list_constants.h" | 9 #include "ui/app_list/app_list_constants.h" |
10 #include "ui/app_list/app_list_model.h" | 10 #include "ui/app_list/app_list_model.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 const int kPreferredHeight = 48; | 37 const int kPreferredHeight = 48; |
38 | 38 |
39 const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0); | 39 const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0); |
40 | 40 |
41 // Menu offset relative to the bottom-right corner of the menu button. | 41 // Menu offset relative to the bottom-right corner of the menu button. |
42 const int kMenuYOffsetFromButton = -4; | 42 const int kMenuYOffsetFromButton = -4; |
43 const int kMenuXOffsetFromButton = -7; | 43 const int kMenuXOffsetFromButton = -7; |
44 | 44 |
45 const int kBackgroundBorderCornerRadius = 2; | 45 const int kBackgroundBorderCornerRadius = 2; |
46 | 46 |
47 const int kShadowBlur = 4; | |
48 const int kShadowYOffset = 2; | |
49 const SkColor kShadowColor = SkColorSetARGB(0x33, 0, 0, 0); | |
50 | |
51 // A background that paints a solid white rounded rect with a thin grey border. | 47 // A background that paints a solid white rounded rect with a thin grey border. |
52 class ExperimentalSearchBoxBackground : public views::Background { | 48 class ExperimentalSearchBoxBackground : public views::Background { |
53 public: | 49 public: |
54 ExperimentalSearchBoxBackground() {} | 50 ExperimentalSearchBoxBackground() {} |
55 ~ExperimentalSearchBoxBackground() override {} | 51 ~ExperimentalSearchBoxBackground() override {} |
56 | 52 |
57 private: | 53 private: |
58 // views::Background overrides: | 54 // views::Background overrides: |
59 void Paint(gfx::Canvas* canvas, views::View* view) const override { | 55 void Paint(gfx::Canvas* canvas, views::View* view) const override { |
60 gfx::Rect bounds = view->GetContentsBounds(); | 56 gfx::Rect bounds = view->GetContentsBounds(); |
(...skipping 18 matching lines...) Expand all Loading... |
79 icon_view_(NULL), | 75 icon_view_(NULL), |
80 back_button_(NULL), | 76 back_button_(NULL), |
81 speech_button_(NULL), | 77 speech_button_(NULL), |
82 menu_button_(NULL), | 78 menu_button_(NULL), |
83 search_box_(new views::Textfield), | 79 search_box_(new views::Textfield), |
84 contents_view_(NULL) { | 80 contents_view_(NULL) { |
85 SetLayoutManager(new views::FillLayout); | 81 SetLayoutManager(new views::FillLayout); |
86 AddChildView(content_container_); | 82 AddChildView(content_container_); |
87 | 83 |
88 if (switches::IsExperimentalAppListEnabled()) { | 84 if (switches::IsExperimentalAppListEnabled()) { |
89 SetBorder(make_scoped_ptr(new views::ShadowBorder(gfx::ShadowValue( | 85 SetShadow(GetShadowForZHeight(1)); |
90 gfx::Point(0, kShadowYOffset), kShadowBlur, kShadowColor)))); | |
91 back_button_ = new views::ImageButton(this); | 86 back_button_ = new views::ImageButton(this); |
92 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 87 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
93 back_button_->SetImage( | 88 back_button_->SetImage( |
94 views::ImageButton::STATE_NORMAL, | 89 views::ImageButton::STATE_NORMAL, |
95 rb.GetImageSkiaNamed(IDR_APP_LIST_FOLDER_BACK_NORMAL)); | 90 rb.GetImageSkiaNamed(IDR_APP_LIST_FOLDER_BACK_NORMAL)); |
96 back_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, | 91 back_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, |
97 views::ImageButton::ALIGN_MIDDLE); | 92 views::ImageButton::ALIGN_MIDDLE); |
98 content_container_->AddChildView(back_button_); | 93 content_container_->AddChildView(back_button_); |
99 | 94 |
100 content_container_->set_background(new ExperimentalSearchBoxBackground()); | 95 content_container_->set_background(new ExperimentalSearchBoxBackground()); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 // Updates model and fires query changed manually because SetText() above | 164 // Updates model and fires query changed manually because SetText() above |
170 // does not generate ContentsChanged() notification. | 165 // does not generate ContentsChanged() notification. |
171 UpdateModel(); | 166 UpdateModel(); |
172 NotifyQueryChanged(); | 167 NotifyQueryChanged(); |
173 } | 168 } |
174 | 169 |
175 void SearchBoxView::InvalidateMenu() { | 170 void SearchBoxView::InvalidateMenu() { |
176 menu_.reset(); | 171 menu_.reset(); |
177 } | 172 } |
178 | 173 |
| 174 void SearchBoxView::SetShadow(const gfx::ShadowValue& shadow) { |
| 175 SetBorder(make_scoped_ptr(new views::ShadowBorder(shadow))); |
| 176 Layout(); |
| 177 } |
| 178 |
179 gfx::Rect SearchBoxView::GetViewBoundsForSearchBoxContentsBounds( | 179 gfx::Rect SearchBoxView::GetViewBoundsForSearchBoxContentsBounds( |
180 const gfx::Rect& rect) const { | 180 const gfx::Rect& rect) const { |
181 gfx::Rect view_bounds = rect; | 181 gfx::Rect view_bounds = rect; |
182 view_bounds.Inset(GetInsets().Scale(-1)); | 182 view_bounds.Inset(-GetInsets()); |
183 return view_bounds; | 183 return view_bounds; |
184 } | 184 } |
185 | 185 |
186 gfx::Size SearchBoxView::GetPreferredSize() const { | 186 gfx::Size SearchBoxView::GetPreferredSize() const { |
187 return gfx::Size(kPreferredWidth, kPreferredHeight); | 187 return gfx::Size(kPreferredWidth, kPreferredHeight); |
188 } | 188 } |
189 | 189 |
190 bool SearchBoxView::OnMouseWheel(const ui::MouseWheelEvent& event) { | 190 bool SearchBoxView::OnMouseWheel(const ui::MouseWheelEvent& event) { |
191 if (contents_view_) | 191 if (contents_view_) |
192 return contents_view_->OnMouseWheel(event); | 192 return contents_view_->OnMouseWheel(event); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 NotifyQueryChanged(); | 305 NotifyQueryChanged(); |
306 } | 306 } |
307 | 307 |
308 void SearchBoxView::OnSpeechRecognitionStateChanged( | 308 void SearchBoxView::OnSpeechRecognitionStateChanged( |
309 SpeechRecognitionState new_state) { | 309 SpeechRecognitionState new_state) { |
310 SpeechRecognitionButtonPropChanged(); | 310 SpeechRecognitionButtonPropChanged(); |
311 SchedulePaint(); | 311 SchedulePaint(); |
312 } | 312 } |
313 | 313 |
314 } // namespace app_list | 314 } // namespace app_list |
OLD | NEW |