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