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

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

Issue 15376008: Translate (Win): add after infobar UI for server side language detection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tr_menu_enable
Patch Set: fix crash bug Created 7 years, 7 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/after_translate_infobar.cc
diff --git a/chrome/browser/ui/views/infobars/after_translate_infobar.cc b/chrome/browser/ui/views/infobars/after_translate_infobar.cc
old mode 100644
new mode 100755
index 968a6e5efb41b0cade83d82e19cb7f7d39f1dc0c..1c7a4730852a40600446e2cb8724180cb4e054fe
--- a/chrome/browser/ui/views/infobars/after_translate_infobar.cc
+++ b/chrome/browser/ui/views/infobars/after_translate_infobar.cc
@@ -26,6 +26,8 @@ AfterTranslateInfoBar::AfterTranslateInfoBar(
options_menu_button_(NULL),
options_menu_model_(delegate),
swapped_language_buttons_(false) {
+ translate_with_auto_ = delegate->original_language_index() ==
+ TranslateInfoBarDelegate::kNoIndex;
Peter Kasting 2013/05/22 23:30:00 Nit: Break after first '=' instead
Takashi Toyoshima 2013/05/23 14:13:27 Done.
}
AfterTranslateInfoBar::~AfterTranslateInfoBar() {
@@ -42,7 +44,7 @@ void AfterTranslateInfoBar::Layout() {
views::MenuButton* first_button = original_language_menu_button_;
views::MenuButton* second_button = target_language_menu_button_;
- if (swapped_language_buttons_)
+ if (swapped_language_buttons_ || translate_with_auto_)
std::swap(first_button, second_button);
gfx::Size first_button_size = first_button->GetPreferredSize();
first_button->SetBounds(label_1_->bounds().right() + kButtonInLabelSpacing,
@@ -55,18 +57,22 @@ void AfterTranslateInfoBar::Layout() {
label_2_size.height());
available_width = std::max(0, available_width - label_2_size.width());
- gfx::Size second_button_size = second_button->GetPreferredSize();
- second_button->SetBounds(label_2_->bounds().right() + kButtonInLabelSpacing,
- OffsetY(second_button_size), second_button_size.width(),
- second_button_size.height());
-
- gfx::Size label_3_size = label_3_->GetPreferredSize();
- label_3_->SetBounds(second_button->bounds().right() + kButtonInLabelSpacing,
- OffsetY(label_3_size), std::min(label_3_size.width(), available_width),
- label_3_size.height());
+ int last_right_bounds = label_2_->bounds().right();
+ if (!translate_with_auto_) {
+ gfx::Size second_button_size = second_button->GetPreferredSize();
+ second_button->SetBounds(label_2_->bounds().right() + kButtonInLabelSpacing,
+ OffsetY(second_button_size), second_button_size.width(),
+ second_button_size.height());
+
+ gfx::Size label_3_size = label_3_->GetPreferredSize();
+ label_3_->SetBounds(second_button->bounds().right() + kButtonInLabelSpacing,
+ OffsetY(label_3_size), std::min(label_3_size.width(), available_width),
+ label_3_size.height());
+ last_right_bounds = label_3_->bounds().right();
+ }
gfx::Size revert_button_size = revert_button_->GetPreferredSize();
- revert_button_->SetBounds(label_3_->bounds().right() + kButtonInLabelSpacing,
+ revert_button_->SetBounds(last_right_bounds + kButtonInLabelSpacing,
Peter Kasting 2013/05/22 23:30:00 Nit: You can omit the temporary by doing this:
Takashi Toyoshima 2013/05/23 14:13:27 Done.
OffsetY(revert_button_size), revert_button_size.width(),
revert_button_size.height());
@@ -83,13 +89,19 @@ void AfterTranslateInfoBar::ViewHierarchyChanged(
}
std::vector<string16> strings;
- TranslateInfoBarDelegate* delegate = GetDelegate();
- delegate->GetAfterTranslateStrings(&strings, &swapped_language_buttons_);
- DCHECK_EQ(3U, strings.size());
+ if (translate_with_auto_) {
+ TranslateInfoBarDelegate::GetAfterTranslateWithAutoStrings(&strings);
Peter Kasting 2013/05/22 23:30:00 You didn't include these changes in this CL. I su
Takashi Toyoshima 2013/05/23 14:13:27 Done.
+ DCHECK_EQ(2U, strings.size());
+ } else {
+ TranslateInfoBarDelegate::GetAfterTranslateStrings(
+ &strings, &swapped_language_buttons_);
+ DCHECK_EQ(3U, strings.size());
+ }
label_1_ = CreateLabel(strings[0]);
AddChildView(label_1_);
+ TranslateInfoBarDelegate* delegate = GetDelegate();
original_language_menu_button_ = CreateMenuButton(string16(), this);
original_language_menu_model_.reset(new TranslateLanguageMenuModel(
TranslateLanguageMenuModel::ORIGINAL, delegate, this,
@@ -98,17 +110,19 @@ void AfterTranslateInfoBar::ViewHierarchyChanged(
target_language_menu_model_.reset(new TranslateLanguageMenuModel(
TranslateLanguageMenuModel::TARGET, delegate, this,
target_language_menu_button_, true));
- AddChildView(swapped_language_buttons_ ?
+ AddChildView(swapped_language_buttons_ || translate_with_auto_ ?
Peter Kasting 2013/05/22 23:30:00 Nit: Put parens around the initial ||'d part.
Takashi Toyoshima 2013/05/23 14:13:27 Done.
target_language_menu_button_ : original_language_menu_button_);
label_2_ = CreateLabel(strings[1]);
AddChildView(label_2_);
- AddChildView(swapped_language_buttons_ ?
- original_language_menu_button_ : target_language_menu_button_);
+ if (!translate_with_auto_) {
+ AddChildView(swapped_language_buttons_ ?
+ original_language_menu_button_ : target_language_menu_button_);
- label_3_ = CreateLabel(strings[2]);
- AddChildView(label_3_);
+ label_3_ = CreateLabel(strings[2]);
+ AddChildView(label_3_);
+ }
revert_button_ = CreateLabelButton(this,
l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_REVERT), false);
@@ -125,8 +139,10 @@ void AfterTranslateInfoBar::ViewHierarchyChanged(
// These must happen after adding all children because they trigger layout,
// which assumes that particular children (e.g. the close button) have already
// been added.
- UpdateLanguageButtonText(original_language_menu_button_,
- delegate->language_name_at(delegate->original_language_index()));
+ if (!translate_with_auto_) {
+ UpdateLanguageButtonText(original_language_menu_button_,
+ delegate->language_name_at(delegate->original_language_index()));
+ }
UpdateLanguageButtonText(target_language_menu_button_,
delegate->language_name_at(delegate->target_language_index()));
}

Powered by Google App Engine
This is Rietveld 408576698