OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/ui/views/location_bar/search_button.h" | 5 #include "chrome/browser/ui/views/location_bar/search_button.h" |
6 | 6 |
7 #include "grit/theme_resources.h" | 7 #include "grit/theme_resources.h" |
8 #include "ui/base/theme_provider.h" | 8 #include "ui/base/theme_provider.h" |
9 #include "ui/views/controls/button/label_button_border.h" | 9 #include "ui/views/controls/button/label_button_border.h" |
10 | 10 |
11 SearchButton::SearchButton(views::ButtonListener* listener) | 11 SearchButton::SearchButton(views::ButtonListener* listener) |
12 : views::LabelButton(listener, base::string16()) { | 12 : views::LabelButton(listener, base::string16()) { |
13 EnableCanvasFlippingForRTLUI(true); | 13 EnableCanvasFlippingForRTLUI(true); |
14 set_triggerable_event_flags( | 14 set_triggerable_event_flags( |
15 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_MIDDLE_MOUSE_BUTTON); | 15 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_MIDDLE_MOUSE_BUTTON); |
16 SetStyle(views::Button::STYLE_BUTTON); | 16 SetStyle(views::Button::STYLE_BUTTON); |
17 SetFocusable(false); | 17 SetFocusable(false); |
18 set_min_size(gfx::Size()); | 18 SetMinSize(gfx::Size()); |
19 scoped_ptr<views::LabelButtonBorder> border( | 19 scoped_ptr<views::LabelButtonBorder> border( |
20 new views::LabelButtonBorder(style())); | 20 new views::LabelButtonBorder(style())); |
21 border->set_insets(gfx::Insets()); | 21 border->set_insets(gfx::Insets()); |
22 const int kSearchButtonNormalImages[] = IMAGE_GRID(IDR_OMNIBOX_SEARCH_BUTTON); | 22 const int kSearchButtonNormalImages[] = IMAGE_GRID(IDR_OMNIBOX_SEARCH_BUTTON); |
23 border->SetPainter( | 23 border->SetPainter( |
24 false, views::Button::STATE_NORMAL, | 24 false, views::Button::STATE_NORMAL, |
25 views::Painter::CreateImageGridPainter(kSearchButtonNormalImages)); | 25 views::Painter::CreateImageGridPainter(kSearchButtonNormalImages)); |
26 const int kSearchButtonHoveredImages[] = | 26 const int kSearchButtonHoveredImages[] = |
27 IMAGE_GRID(IDR_OMNIBOX_SEARCH_BUTTON_HOVER); | 27 IMAGE_GRID(IDR_OMNIBOX_SEARCH_BUTTON_HOVER); |
28 border->SetPainter( | 28 border->SetPainter( |
29 false, views::Button::STATE_HOVERED, | 29 false, views::Button::STATE_HOVERED, |
30 views::Painter::CreateImageGridPainter(kSearchButtonHoveredImages)); | 30 views::Painter::CreateImageGridPainter(kSearchButtonHoveredImages)); |
31 const int kSearchButtonPressedImages[] = | 31 const int kSearchButtonPressedImages[] = |
32 IMAGE_GRID(IDR_OMNIBOX_SEARCH_BUTTON_PRESSED); | 32 IMAGE_GRID(IDR_OMNIBOX_SEARCH_BUTTON_PRESSED); |
33 border->SetPainter( | 33 border->SetPainter( |
34 false, views::Button::STATE_PRESSED, | 34 false, views::Button::STATE_PRESSED, |
35 views::Painter::CreateImageGridPainter(kSearchButtonPressedImages)); | 35 views::Painter::CreateImageGridPainter(kSearchButtonPressedImages)); |
36 border->SetPainter(false, views::Button::STATE_DISABLED, NULL); | 36 border->SetPainter(false, views::Button::STATE_DISABLED, NULL); |
37 border->SetPainter(true, views::Button::STATE_NORMAL, NULL); | 37 border->SetPainter(true, views::Button::STATE_NORMAL, NULL); |
38 border->SetPainter(true, views::Button::STATE_HOVERED, NULL); | 38 border->SetPainter(true, views::Button::STATE_HOVERED, NULL); |
39 border->SetPainter(true, views::Button::STATE_PRESSED, NULL); | 39 border->SetPainter(true, views::Button::STATE_PRESSED, NULL); |
40 border->SetPainter(true, views::Button::STATE_DISABLED, NULL); | 40 border->SetPainter(true, views::Button::STATE_DISABLED, NULL); |
41 SetBorder(border.PassAs<views::Border>()); | 41 SetBorder(border.PassAs<views::Border>()); |
42 const int kSearchButtonWidth = 56; | 42 const int kSearchButtonWidth = 56; |
43 set_min_size(gfx::Size(kSearchButtonWidth, 0)); | 43 SetMinSize(gfx::Size(kSearchButtonWidth, 0)); |
44 } | 44 } |
45 | 45 |
46 SearchButton::~SearchButton() { | 46 SearchButton::~SearchButton() { |
47 } | 47 } |
48 | 48 |
49 void SearchButton::UpdateIcon(bool is_search) { | 49 void SearchButton::UpdateIcon(bool is_search) { |
50 SetImage( | 50 SetImage( |
51 views::Button::STATE_NORMAL, | 51 views::Button::STATE_NORMAL, |
52 *GetThemeProvider()->GetImageSkiaNamed(is_search ? | 52 *GetThemeProvider()->GetImageSkiaNamed(is_search ? |
53 IDR_OMNIBOX_SEARCH_BUTTON_LOUPE : IDR_OMNIBOX_SEARCH_BUTTON_ARROW)); | 53 IDR_OMNIBOX_SEARCH_BUTTON_LOUPE : IDR_OMNIBOX_SEARCH_BUTTON_ARROW)); |
54 // Flip the arrow for RTL, but not the loupe. | 54 // Flip the arrow for RTL, but not the loupe. |
55 image()->EnableCanvasFlippingForRTLUI(!is_search); | 55 image()->EnableCanvasFlippingForRTLUI(!is_search); |
56 } | 56 } |
OLD | NEW |