diff options
6 files changed, 34 insertions, 53 deletions
diff --git a/chrome/browser/ui/views/infobars/after_translate_infobar.cc b/chrome/browser/ui/views/infobars/after_translate_infobar.cc index 2971f67..6c38fae 100644 --- a/chrome/browser/ui/views/infobars/after_translate_infobar.cc +++ b/chrome/browser/ui/views/infobars/after_translate_infobar.cc @@ -54,8 +54,8 @@ AfterTranslateInfoBar::AfterTranslateInfoBar( l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS), false, this); AddChildView(options_menu_button_); - UpdateLanguageButtonText(LanguagesMenuModel::ORIGINAL); - UpdateLanguageButtonText(LanguagesMenuModel::TARGET); + OriginalLanguageChanged(); + TargetLanguageChanged(); } AfterTranslateInfoBar::~AfterTranslateInfoBar() { @@ -101,14 +101,6 @@ void AfterTranslateInfoBar::Layout() { OffsetY(this, options_size), options_size.width(), options_size.height()); } -void AfterTranslateInfoBar::OriginalLanguageChanged() { - UpdateLanguageButtonText(LanguagesMenuModel::ORIGINAL); -} - -void AfterTranslateInfoBar::TargetLanguageChanged() { - UpdateLanguageButtonText(LanguagesMenuModel::TARGET); -} - void AfterTranslateInfoBar::ButtonPressed(views::Button* sender, const views::Event& event) { if (sender == revert_button_) @@ -117,6 +109,16 @@ void AfterTranslateInfoBar::ButtonPressed(views::Button* sender, TranslateInfoBarBase::ButtonPressed(sender, event); } +void AfterTranslateInfoBar::OriginalLanguageChanged() { + UpdateLanguageButtonText(original_language_menu_button_, + LanguagesMenuModel::ORIGINAL); +} + +void AfterTranslateInfoBar::TargetLanguageChanged() { + UpdateLanguageButtonText(target_language_menu_button_, + LanguagesMenuModel::TARGET); +} + void AfterTranslateInfoBar::RunMenu(View* source, const gfx::Point& pt) { if (source == original_language_menu_button_) { if (!original_language_menu_.get()) { @@ -137,24 +139,3 @@ void AfterTranslateInfoBar::RunMenu(View* source, const gfx::Point& pt) { options_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); } } - -void AfterTranslateInfoBar::UpdateLanguageButtonText( - LanguagesMenuModel::LanguageType language_type) { - int language_index; - views::MenuButton* language_button; - if (language_type == LanguagesMenuModel::ORIGINAL) { - language_index = GetDelegate()->original_language_index(); - language_button = original_language_menu_button_; - } else { - language_index = GetDelegate()->target_language_index(); - language_button = target_language_menu_button_; - } - string16 language = - GetDelegate()->GetLanguageDisplayableNameAt(language_index); - language_button->SetText(UTF16ToWideHack(language)); - // The following line is necessary for the preferred size to be recomputed. - language_button->ClearMaxTextSize(); - // The button may have to grow to show the new text. - Layout(); - SchedulePaint(); -} diff --git a/chrome/browser/ui/views/infobars/after_translate_infobar.h b/chrome/browser/ui/views/infobars/after_translate_infobar.h index 063b304..bf873be 100644 --- a/chrome/browser/ui/views/infobars/after_translate_infobar.h +++ b/chrome/browser/ui/views/infobars/after_translate_infobar.h @@ -35,14 +35,10 @@ class AfterTranslateInfoBar : public TranslateInfoBarBase, // ViewMenuDelegate: virtual void RunMenu(View* source, const gfx::Point& pt); - // Sets the text of the original or target language menu buttons to reflect - // the current value from the delegate. - void UpdateLanguageButtonText(LanguagesMenuModel::LanguageType language); - // The text displayed in the infobar is something like: // "Translated from <lang1> to <lang2> [more text in some languages]" // ...where <lang1> and <lang2> are comboboxes. So the text is split in 3 - // chunks, each one displayed in one of the labels below. + // chunks, each displayed in one of the labels below. views::Label* label_1_; views::Label* label_2_; views::Label* label_3_; diff --git a/chrome/browser/ui/views/infobars/before_translate_infobar.cc b/chrome/browser/ui/views/infobars/before_translate_infobar.cc index ef55eef..19a83f5 100644 --- a/chrome/browser/ui/views/infobars/before_translate_infobar.cc +++ b/chrome/browser/ui/views/infobars/before_translate_infobar.cc @@ -59,7 +59,7 @@ BeforeTranslateInfoBar::BeforeTranslateInfoBar( l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS), false, this); AddChildView(options_menu_button_); - UpdateOriginalButtonText(); + OriginalLanguageChanged(); } BeforeTranslateInfoBar::~BeforeTranslateInfoBar() { @@ -134,7 +134,7 @@ void BeforeTranslateInfoBar::ButtonPressed(views::Button* sender, } void BeforeTranslateInfoBar::OriginalLanguageChanged() { - UpdateOriginalButtonText(); + UpdateLanguageButtonText(language_menu_button_, LanguagesMenuModel::ORIGINAL); } void BeforeTranslateInfoBar::RunMenu(View* source, const gfx::Point& pt) { @@ -149,14 +149,3 @@ void BeforeTranslateInfoBar::RunMenu(View* source, const gfx::Point& pt) { options_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); } } - -void BeforeTranslateInfoBar::UpdateOriginalButtonText() { - string16 language = GetDelegate()->GetLanguageDisplayableNameAt( - GetDelegate()->original_language_index()); - language_menu_button_->SetText(UTF16ToWideHack(language)); - // The following line is necessary for the preferred size to be recomputed. - language_menu_button_->ClearMaxTextSize(); - // The button may have to grow to show the new text. - Layout(); - SchedulePaint(); -} diff --git a/chrome/browser/ui/views/infobars/before_translate_infobar.h b/chrome/browser/ui/views/infobars/before_translate_infobar.h index f7443ec..b327fcd 100644 --- a/chrome/browser/ui/views/infobars/before_translate_infobar.h +++ b/chrome/browser/ui/views/infobars/before_translate_infobar.h @@ -34,10 +34,6 @@ class BeforeTranslateInfoBar : public TranslateInfoBarBase, // views::ViewMenuDelegate: virtual void RunMenu(View* source, const gfx::Point& pt); - // Sets the text of the original language menu button to reflect the current - // value from the delegate. - void UpdateOriginalButtonText(); - // The text displayed in the infobar is something like: // "The page is in <lang>. Would you like to translate it?" // ...where <lang> is a combobox. So the text is split in 2 chunks, each diff --git a/chrome/browser/ui/views/infobars/translate_infobar_base.cc b/chrome/browser/ui/views/infobars/translate_infobar_base.cc index 1196c43..53c0734 100644 --- a/chrome/browser/ui/views/infobars/translate_infobar_base.cc +++ b/chrome/browser/ui/views/infobars/translate_infobar_base.cc @@ -120,6 +120,19 @@ void TranslateInfoBarBase::Layout() { icon_size.width(), icon_size.height()); } +void TranslateInfoBarBase::UpdateLanguageButtonText( + views::MenuButton* button, + LanguagesMenuModel::LanguageType language_type) { + TranslateInfoBarDelegate* delegate = GetDelegate(); + button->SetText(UTF16ToWideHack(delegate->GetLanguageDisplayableNameAt( + (language_type == LanguagesMenuModel::ORIGINAL) ? + delegate->original_language_index() : + delegate->target_language_index()))); + // The button may have to grow to show the new text. + Layout(); + SchedulePaint(); +} + TranslateInfoBarDelegate* TranslateInfoBarBase::GetDelegate() { return delegate()->AsTranslateInfoBarDelegate(); } diff --git a/chrome/browser/ui/views/infobars/translate_infobar_base.h b/chrome/browser/ui/views/infobars/translate_infobar_base.h index 3fd0dce..73494ef 100644 --- a/chrome/browser/ui/views/infobars/translate_infobar_base.h +++ b/chrome/browser/ui/views/infobars/translate_infobar_base.h @@ -6,6 +6,7 @@ #define CHROME_BROWSER_UI_VIEWS_INFOBARS_TRANSLATE_INFOBAR_BASE_H_ #pragma once +#include "chrome/browser/translate/languages_menu_model.h" #include "chrome/browser/translate/translate_infobar_view.h" #include "chrome/browser/ui/views/infobars/infobar_background.h" #include "chrome/browser/ui/views/infobars/infobar_view.h" @@ -41,6 +42,11 @@ class TranslateInfoBarBase : public TranslateInfoBarView, // InfoBarView: virtual void Layout(); + // Sets the text of the provided language menu button to reflect the current + // value from the delegate. + void UpdateLanguageButtonText(views::MenuButton* button, + LanguagesMenuModel::LanguageType language); + // Convenience to retrieve the TranslateInfoBarDelegate for this infobar. TranslateInfoBarDelegate* GetDelegate(); |