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())); |
} |