diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-24 05:10:23 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-24 05:10:23 +0000 |
commit | 49adf97633ce1950bdef6cf43be46a1e6b2557f6 (patch) | |
tree | e7b4f9b8744ba7ca23af07c0fdba184df1e7a746 | |
parent | 98c1d817896f8723dcf348d6e6d292c42f9a6c13 (diff) | |
download | chromium_src-49adf97633ce1950bdef6cf43be46a1e6b2557f6.zip chromium_src-49adf97633ce1950bdef6cf43be46a1e6b2557f6.tar.gz chromium_src-49adf97633ce1950bdef6cf43be46a1e6b2557f6.tar.bz2 |
views/infobars: Convert infobars from TextButton to LabelButton.
BUG=155363
R=msw@chromium.org,pkasting@chromium.org
TBR=ben@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14066024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196037 0039d316-1c4b-4281-b951-d872f2087c98
14 files changed, 112 insertions, 41 deletions
diff --git a/chrome/browser/ui/views/infobars/after_translate_infobar.cc b/chrome/browser/ui/views/infobars/after_translate_infobar.cc index 173bec7..373a35a 100644 --- a/chrome/browser/ui/views/infobars/after_translate_infobar.cc +++ b/chrome/browser/ui/views/infobars/after_translate_infobar.cc @@ -8,6 +8,7 @@ #include "chrome/browser/translate/translate_infobar_delegate.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/menu_button.h" #include "ui/views/controls/label.h" #include "ui/views/controls/menu/menu_item_view.h" @@ -110,7 +111,7 @@ void AfterTranslateInfoBar::ViewHierarchyChanged(bool is_add, label_3_ = CreateLabel(strings[2]); AddChildView(label_3_); - revert_button_ = CreateTextButton(this, + revert_button_ = CreateLabelButton(this, l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_REVERT), false); AddChildView(revert_button_); diff --git a/chrome/browser/ui/views/infobars/after_translate_infobar.h b/chrome/browser/ui/views/infobars/after_translate_infobar.h index 9be2bb4..481d351 100644 --- a/chrome/browser/ui/views/infobars/after_translate_infobar.h +++ b/chrome/browser/ui/views/infobars/after_translate_infobar.h @@ -47,7 +47,7 @@ class AfterTranslateInfoBar : public TranslateInfoBarBase, views::MenuButton* original_language_menu_button_; views::MenuButton* target_language_menu_button_; - views::TextButton* revert_button_; + views::LabelButton* revert_button_; views::MenuButton* options_menu_button_; scoped_ptr<TranslateLanguageMenuModel> original_language_menu_model_; diff --git a/chrome/browser/ui/views/infobars/before_translate_infobar.cc b/chrome/browser/ui/views/infobars/before_translate_infobar.cc index b2938df..bcd258c2 100644 --- a/chrome/browser/ui/views/infobars/before_translate_infobar.cc +++ b/chrome/browser/ui/views/infobars/before_translate_infobar.cc @@ -8,6 +8,7 @@ #include "chrome/browser/translate/translate_infobar_delegate.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/menu_button.h" #include "ui/views/controls/label.h" #include "ui/views/controls/menu/menu_item_view.h" @@ -108,11 +109,11 @@ void BeforeTranslateInfoBar::ViewHierarchyChanged(bool is_add, label_2_ = CreateLabel(text.substr(offset)); AddChildView(label_2_); - accept_button_ = CreateTextButton(this, + accept_button_ = CreateLabelButton(this, l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_ACCEPT), false); AddChildView(accept_button_); - deny_button_ = CreateTextButton(this, + deny_button_ = CreateLabelButton(this, l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_DENY), false); AddChildView(deny_button_); @@ -120,12 +121,12 @@ void BeforeTranslateInfoBar::ViewHierarchyChanged(bool is_add, delegate->language_name_at(delegate->original_language_index())); if (delegate->ShouldShowNeverTranslateButton()) { DCHECK(!delegate->ShouldShowAlwaysTranslateButton()); - never_translate_button_ = CreateTextButton(this, + never_translate_button_ = CreateLabelButton(this, l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_NEVER_TRANSLATE, language), false); AddChildView(never_translate_button_); } else if (delegate->ShouldShowAlwaysTranslateButton()) { - always_translate_button_ = CreateTextButton(this, + always_translate_button_ = CreateLabelButton(this, l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_ALWAYS_TRANSLATE, language), false); AddChildView(always_translate_button_); diff --git a/chrome/browser/ui/views/infobars/before_translate_infobar.h b/chrome/browser/ui/views/infobars/before_translate_infobar.h index c8764b3..2653794 100644 --- a/chrome/browser/ui/views/infobars/before_translate_infobar.h +++ b/chrome/browser/ui/views/infobars/before_translate_infobar.h @@ -45,10 +45,10 @@ class BeforeTranslateInfoBar : public TranslateInfoBarBase, views::Label* label_2_; views::MenuButton* language_menu_button_; - views::TextButton* accept_button_; - views::TextButton* deny_button_; - views::TextButton* never_translate_button_; - views::TextButton* always_translate_button_; + views::LabelButton* accept_button_; + views::LabelButton* deny_button_; + views::LabelButton* never_translate_button_; + views::LabelButton* always_translate_button_; views::MenuButton* options_menu_button_; scoped_ptr<TranslateLanguageMenuModel> language_menu_model_; diff --git a/chrome/browser/ui/views/infobars/confirm_infobar.cc b/chrome/browser/ui/views/infobars/confirm_infobar.cc index 10ab452..ecb51c0 100644 --- a/chrome/browser/ui/views/infobars/confirm_infobar.cc +++ b/chrome/browser/ui/views/infobars/confirm_infobar.cc @@ -7,7 +7,7 @@ #include "base/logging.h" #include "chrome/browser/infobars/confirm_infobar_delegate.h" #include "ui/base/window_open_disposition.h" -#include "ui/views/controls/button/text_button.h" +#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/label.h" #include "ui/views/controls/link.h" @@ -71,14 +71,14 @@ void ConfirmInfoBar::ViewHierarchyChanged(bool is_add, AddChildView(label_); if (delegate->GetButtons() & ConfirmInfoBarDelegate::BUTTON_OK) { - ok_button_ = CreateTextButton(this, + ok_button_ = CreateLabelButton(this, delegate->GetButtonLabel(ConfirmInfoBarDelegate::BUTTON_OK), delegate->NeedElevation(ConfirmInfoBarDelegate::BUTTON_OK)); AddChildView(ok_button_); } if (delegate->GetButtons() & ConfirmInfoBarDelegate::BUTTON_CANCEL) { - cancel_button_ = CreateTextButton(this, + cancel_button_ = CreateLabelButton(this, delegate->GetButtonLabel(ConfirmInfoBarDelegate::BUTTON_CANCEL), delegate->NeedElevation(ConfirmInfoBarDelegate::BUTTON_CANCEL)); AddChildView(cancel_button_); diff --git a/chrome/browser/ui/views/infobars/confirm_infobar.h b/chrome/browser/ui/views/infobars/confirm_infobar.h index ed4093d..cc11c5b 100644 --- a/chrome/browser/ui/views/infobars/confirm_infobar.h +++ b/chrome/browser/ui/views/infobars/confirm_infobar.h @@ -14,7 +14,6 @@ class ConfirmInfoBarDelegate; namespace views { class Label; -class TextButton; } // An infobar that shows a message, up to two optional buttons, and an optional, @@ -31,7 +30,7 @@ class ConfirmInfoBar : public InfoBarView, // removed. virtual ~ConfirmInfoBar(); - views::TextButton* ok_button() { return ok_button_; } + views::LabelButton* ok_button() { return ok_button_; } // InfoBarView: virtual void Layout() OVERRIDE; @@ -49,8 +48,8 @@ class ConfirmInfoBar : public InfoBarView, ConfirmInfoBarDelegate* GetDelegate(); views::Label* label_; - views::TextButton* ok_button_; - views::TextButton* cancel_button_; + views::LabelButton* ok_button_; + views::LabelButton* cancel_button_; views::Link* link_; DISALLOW_COPY_AND_ASSIGN(ConfirmInfoBar); diff --git a/chrome/browser/ui/views/infobars/infobar_label_button_border.cc b/chrome/browser/ui/views/infobars/infobar_label_button_border.cc new file mode 100644 index 0000000..391592e --- /dev/null +++ b/chrome/browser/ui/views/infobars/infobar_label_button_border.cc @@ -0,0 +1,38 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/views/infobars/infobar_label_button_border.h" + +#include "chrome/browser/defaults.h" +#include "grit/theme_resources.h" +#include "ui/views/painter.h" + +namespace { + +const int kNormalImageSet[] = IMAGE_GRID(IDR_INFOBARBUTTON_NORMAL); +const int kHoveredImageSet[] = IMAGE_GRID(IDR_INFOBARBUTTON_HOVER); +const int kPressedImageSet[] = IMAGE_GRID(IDR_INFOBARBUTTON_PRESSED); + +} // namespace + +InfoBarLabelButtonBorder::InfoBarLabelButtonBorder() + : views::LabelButtonBorder(views::Button::STYLE_TEXTBUTTON) { + SetPainter(false, views::Button::STATE_NORMAL, + views::Painter::CreateImageGridPainter(kNormalImageSet)); + SetPainter(false, views::Button::STATE_HOVERED, + views::Painter::CreateImageGridPainter(kHoveredImageSet)); + SetPainter(false, views::Button::STATE_PRESSED, + views::Painter::CreateImageGridPainter(kPressedImageSet)); +} + +InfoBarLabelButtonBorder::~InfoBarLabelButtonBorder() { +} + +gfx::Insets InfoBarLabelButtonBorder::GetInsets() const{ + gfx::Insets insets = views::LabelButtonBorder::GetInsets(); + return gfx::Insets(browser_defaults::kInfoBarBorderPaddingVertical, + insets.left(), + browser_defaults::kInfoBarBorderPaddingVertical, + insets.right()); +} diff --git a/chrome/browser/ui/views/infobars/infobar_label_button_border.h b/chrome/browser/ui/views/infobars/infobar_label_button_border.h new file mode 100644 index 0000000..8ff769f --- /dev/null +++ b/chrome/browser/ui/views/infobars/infobar_label_button_border.h @@ -0,0 +1,25 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_INFOBAR_LABEL_BUTTON_BORDER_H_ +#define CHROME_BROWSER_UI_VIEWS_INFOBARS_INFOBAR_LABEL_BUTTON_BORDER_H_ + +#include "ui/views/controls/button/label_button_border.h" + +// A LabelButtonBorder that is dark and also paints the button frame in the +// normal state. +class InfoBarLabelButtonBorder : public views::LabelButtonBorder { + public: + InfoBarLabelButtonBorder(); + + private: + virtual ~InfoBarLabelButtonBorder(); + + // Overridden from views::LabelButtonBorder: + virtual gfx::Insets GetInsets() const OVERRIDE; + + DISALLOW_COPY_AND_ASSIGN(InfoBarLabelButtonBorder); +}; + +#endif // CHROME_BROWSER_UI_VIEWS_INFOBARS_INFOBAR_LABEL_BUTTON_BORDER_H_ diff --git a/chrome/browser/ui/views/infobars/infobar_view.cc b/chrome/browser/ui/views/infobars/infobar_view.cc index 1be9e5f..8638467 100644 --- a/chrome/browser/ui/views/infobars/infobar_view.cc +++ b/chrome/browser/ui/views/infobars/infobar_view.cc @@ -15,6 +15,7 @@ #include "chrome/browser/infobars/infobar_delegate.h" #include "chrome/browser/ui/views/infobars/infobar_background.h" #include "chrome/browser/ui/views/infobars/infobar_button_border.h" +#include "chrome/browser/ui/views/infobars/infobar_label_button_border.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "grit/ui_resources.h" @@ -25,8 +26,8 @@ #include "ui/gfx/canvas.h" #include "ui/gfx/image/image.h" #include "ui/views/controls/button/image_button.h" +#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/menu_button.h" -#include "ui/views/controls/button/text_button.h" #include "ui/views/controls/image_view.h" #include "ui/views/controls/label.h" #include "ui/views/controls/link.h" @@ -114,17 +115,17 @@ views::MenuButton* InfoBarView::CreateMenuButton( } // static -views::TextButton* InfoBarView::CreateTextButton( +views::LabelButton* InfoBarView::CreateLabelButton( views::ButtonListener* listener, const string16& text, bool needs_elevation) { - views::TextButton* text_button = new views::TextButton(listener, text); - text_button->set_border(new InfoBarButtonBorder); - text_button->set_animate_on_state_change(false); - text_button->SetEnabledColor(SK_ColorBLACK); - text_button->SetHoverColor(SK_ColorBLACK); + views::LabelButton* label_button = new views::LabelButton(listener, text); + label_button->set_border(new InfoBarLabelButtonBorder); + label_button->set_animate_on_state_change(false); + label_button->SetTextColor(views::Button::STATE_NORMAL, SK_ColorBLACK); + label_button->SetTextColor(views::Button::STATE_HOVERED, SK_ColorBLACK); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); - text_button->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont)); + label_button->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont)); #if defined(OS_WIN) if (needs_elevation && (base::win::GetVersion() >= base::win::VERSION_VISTA) && @@ -142,14 +143,16 @@ views::TextButton* InfoBarView::CreateTextButton( scoped_ptr<SkBitmap> icon(IconUtil::CreateSkBitmapFromHICON( icon_info.hIcon, gfx::Size(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)))); - if (icon.get()) - text_button->SetIcon(gfx::ImageSkia::CreateFrom1xBitmap(*icon)); + if (icon.get()) { + label_button->SetImage(views::Button::STATE_NORMAL, + gfx::ImageSkia::CreateFrom1xBitmap(*icon)); + } DestroyIcon(icon_info.hIcon); } } #endif - text_button->set_focusable(true); - return text_button; + label_button->set_focusable(true); + return label_button; } void InfoBarView::Layout() { diff --git a/chrome/browser/ui/views/infobars/infobar_view.h b/chrome/browser/ui/views/infobars/infobar_view.h index e970b7e..491b428 100644 --- a/chrome/browser/ui/views/infobars/infobar_view.h +++ b/chrome/browser/ui/views/infobars/infobar_view.h @@ -22,12 +22,12 @@ class ExternalFocusTracker; class ImageButton; class ImageView; class Label; +class LabelButton; class Link; class LinkListener; class MenuButton; -class MenuRunner; -class TextButton; class MenuButtonListener; +class MenuRunner; } class InfoBarView : public InfoBar, @@ -60,11 +60,11 @@ class InfoBarView : public InfoBar, const string16& text, views::MenuButtonListener* menu_button_listener); - // Creates a text button with an infobar-specific appearance. + // Creates a button with an infobar-specific appearance. // NOTE: Subclasses must ignore button presses if we're unowned. - static views::TextButton* CreateTextButton(views::ButtonListener* listener, - const string16& text, - bool needs_elevation); + static views::LabelButton* CreateLabelButton(views::ButtonListener* listener, + const string16& text, + bool needs_elevation); // views::View: virtual void Layout() OVERRIDE; diff --git a/chrome/browser/ui/views/infobars/one_click_signin_infobar.cc b/chrome/browser/ui/views/infobars/one_click_signin_infobar.cc index e31d6ff..cb58d38 100644 --- a/chrome/browser/ui/views/infobars/one_click_signin_infobar.cc +++ b/chrome/browser/ui/views/infobars/one_click_signin_infobar.cc @@ -15,7 +15,7 @@ #include "ui/gfx/skia_util.h" #include "ui/views/border.h" #include "ui/views/controls/button/custom_button.h" -#include "ui/views/controls/button/text_button.h" +#include "ui/views/controls/button/label_button.h" namespace { @@ -139,6 +139,8 @@ void OneClickSigninInfoBar::ViewHierarchyChanged(bool is_add, ok_button()->set_border(new InfoBarColoredButtonBorder( alt_colors.button_background_color, alt_colors.button_border_color)); - ok_button()->SetEnabledColor(alt_colors.button_text_color); - ok_button()->SetHoverColor(alt_colors.button_text_color); + ok_button()->SetTextColor(views::Button::STATE_NORMAL, + alt_colors.button_text_color); + ok_button()->SetTextColor(views::Button::STATE_HOVERED, + alt_colors.button_text_color); } diff --git a/chrome/browser/ui/views/infobars/translate_message_infobar.cc b/chrome/browser/ui/views/infobars/translate_message_infobar.cc index 29db04f..e27c660 100644 --- a/chrome/browser/ui/views/infobars/translate_message_infobar.cc +++ b/chrome/browser/ui/views/infobars/translate_message_infobar.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/infobars/translate_message_infobar.h" #include "chrome/browser/translate/translate_infobar_delegate.h" -#include "ui/views/controls/button/text_button.h" +#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/label.h" TranslateMessageInfoBar::TranslateMessageInfoBar( @@ -45,7 +45,7 @@ void TranslateMessageInfoBar::ViewHierarchyChanged(bool is_add, string16 button_text(delegate->GetMessageInfoBarButtonText()); if (!button_text.empty()) { - button_ = CreateTextButton(this, button_text, false); + button_ = CreateLabelButton(this, button_text, false); AddChildView(button_); } } diff --git a/chrome/browser/ui/views/infobars/translate_message_infobar.h b/chrome/browser/ui/views/infobars/translate_message_infobar.h index b5cca3f..8f437b7 100644 --- a/chrome/browser/ui/views/infobars/translate_message_infobar.h +++ b/chrome/browser/ui/views/infobars/translate_message_infobar.h @@ -25,7 +25,7 @@ class TranslateMessageInfoBar : public TranslateInfoBarBase { virtual int ContentMinimumWidth() const OVERRIDE; views::Label* label_; - views::TextButton* button_; + views::LabelButton* button_; DISALLOW_COPY_AND_ASSIGN(TranslateMessageInfoBar); }; diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi index 0a8107a..2e4e74d 100644 --- a/chrome/chrome_browser_ui.gypi +++ b/chrome/chrome_browser_ui.gypi @@ -1674,6 +1674,8 @@ 'browser/ui/views/infobars/infobar_button_border.h', 'browser/ui/views/infobars/infobar_container_view.cc', 'browser/ui/views/infobars/infobar_container_view.h', + 'browser/ui/views/infobars/infobar_label_button_border.cc', + 'browser/ui/views/infobars/infobar_label_button_border.h', 'browser/ui/views/infobars/infobar_view.cc', 'browser/ui/views/infobars/infobar_view.h', 'browser/ui/views/infobars/one_click_signin_infobar.cc', |