summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-10 17:09:30 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-10 17:09:30 +0000
commit9a9fab56afdc7dc322852e20c3a32701c693ccb9 (patch)
treec1012f7b0575cd6785816bf75e885be068d04438 /chrome/browser/ui/views
parent6f93dd7525b3e6951ccf6d6542c8541dcc5e6674 (diff)
downloadchromium_src-9a9fab56afdc7dc322852e20c3a32701c693ccb9.zip
chromium_src-9a9fab56afdc7dc322852e20c3a32701c693ccb9.tar.gz
chromium_src-9a9fab56afdc7dc322852e20c3a32701c693ccb9.tar.bz2
Hoist some similar code from Before/AfterTranslateInfoBar up to TranslateInfoBarBase. Along the way, remove the ClearMaxTextSize() calls; it seems to me that leaving the button size alone when changing from a longer language name to a shorter one is better (and apparently whoever made that the default behavior for Menu and TextButtons agrees).
BUG=none TEST=none Review URL: http://codereview.chromium.org/6480017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74442 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/views')
-rw-r--r--chrome/browser/ui/views/infobars/after_translate_infobar.cc43
-rw-r--r--chrome/browser/ui/views/infobars/after_translate_infobar.h6
-rw-r--r--chrome/browser/ui/views/infobars/before_translate_infobar.cc15
-rw-r--r--chrome/browser/ui/views/infobars/before_translate_infobar.h4
-rw-r--r--chrome/browser/ui/views/infobars/translate_infobar_base.cc13
-rw-r--r--chrome/browser/ui/views/infobars/translate_infobar_base.h6
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();