Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(699)

Unified Diff: chrome/browser/ui/views/infobars/before_translate_infobar.cc

Issue 10952016: Simplify the translate infobar code some. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/infobars/before_translate_infobar.cc
===================================================================
--- chrome/browser/ui/views/infobars/before_translate_infobar.cc (revision 157463)
+++ chrome/browser/ui/views/infobars/before_translate_infobar.cc (working copy)
@@ -24,7 +24,6 @@
never_translate_button_(NULL),
always_translate_button_(NULL),
options_menu_button_(NULL),
- languages_menu_model_(delegate, LanguagesMenuModel::ORIGINAL),
options_menu_model_(delegate) {
}
@@ -100,6 +99,10 @@
AddChildView(label_1_);
language_menu_button_ = CreateMenuButton(string16(), this);
+ TranslateInfoBarDelegate* delegate = GetDelegate();
+ language_menu_model_.reset(new TranslateLanguageMenuModel(
+ TranslateLanguageMenuModel::ORIGINAL, delegate, this,
+ language_menu_button_, false));
AddChildView(language_menu_button_);
label_2_ = CreateLabel(text.substr(offset));
@@ -113,9 +116,8 @@
l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_DENY), false);
AddChildView(deny_button_);
- TranslateInfoBarDelegate* delegate = GetDelegate();
- const string16& language(delegate->GetLanguageDisplayableNameAt(
- delegate->original_language_index()));
+ const string16& language(
+ delegate->language_name_at(delegate->original_language_index()));
if (delegate->ShouldShowNeverTranslateButton()) {
DCHECK(!delegate->ShouldShowAlwaysTranslateButton());
never_translate_button_ = CreateTextButton(this,
@@ -140,7 +142,8 @@
// This must happen after adding all children because it triggers layout,
// which assumes that particular children (e.g. the close button) have already
// been added.
- OriginalLanguageChanged();
+ UpdateLanguageButtonText(language_menu_button_,
+ delegate->language_name_at(delegate->original_language_index()));
}
int BeforeTranslateInfoBar::ContentMinimumWidth() const {
@@ -178,30 +181,16 @@
}
}
-void BeforeTranslateInfoBar::OriginalLanguageChanged() {
- // Tests can call this function when the infobar has never been added to a
- // view hierarchy and thus there is no button.
- if (language_menu_button_) {
- UpdateLanguageButtonText(language_menu_button_,
- LanguagesMenuModel::ORIGINAL);
- }
-}
-
void BeforeTranslateInfoBar::OnMenuButtonClicked(views::View* source,
const gfx::Point& point) {
if (!owned())
return; // We're closing; don't call anything, it might access the owner.
- ui::MenuModel* menu_model = NULL;
- views::MenuButton* button = NULL;
- views::MenuItemView::AnchorPosition anchor = views::MenuItemView::TOPLEFT;
if (source == language_menu_button_) {
- menu_model = &languages_menu_model_;
- button = language_menu_button_;
+ RunMenuAt(language_menu_model_.get(), language_menu_button_,
+ views::MenuItemView::TOPLEFT);
} else {
DCHECK_EQ(options_menu_button_, source);
- menu_model = &options_menu_model_;
- button = options_menu_button_;
- anchor = views::MenuItemView::TOPRIGHT;
+ RunMenuAt(&options_menu_model_, options_menu_button_,
+ views::MenuItemView::TOPRIGHT);
}
- RunMenuAt(menu_model, button, anchor);
}

Powered by Google App Engine
This is Rietveld 408576698