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

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: rebase and nits 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
« no previous file with comments | « chrome/browser/ui/views/infobars/after_translate_infobar.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 4de8a6b9f9e885300a776224478864eb5ecd44a6..5690bd48b8ad09ae9e940d46f1baaf1f4cefc4e4
--- 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) {
+ autodetermined_source_language_ =
+ delegate->original_language_index() == TranslateInfoBarDelegate::kNoIndex;
}
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_ || autodetermined_source_language_)
std::swap(first_button, second_button);
gfx::Size first_button_size = first_button->GetPreferredSize();
first_button->SetBounds(label_1_->bounds().right() + kButtonInLabelSpacing,
@@ -55,19 +57,24 @@ 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());
+ if (!autodetermined_source_language_) {
+ 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());
+ 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());
+ }
gfx::Size revert_button_size = revert_button_->GetPreferredSize();
- revert_button_->SetBounds(label_3_->bounds().right() + kButtonInLabelSpacing,
- OffsetY(revert_button_size), revert_button_size.width(),
+ revert_button_->SetBounds(
+ (label_3_ ? label_3_ : label_2_)->bounds().right() +
+ kButtonInLabelSpacing,
+ OffsetY(revert_button_size),
+ revert_button_size.width(),
revert_button_size.height());
gfx::Size options_size = options_menu_button_->GetPreferredSize();
@@ -83,15 +90,14 @@ void AfterTranslateInfoBar::ViewHierarchyChanged(
}
std::vector<string16> strings;
- TranslateInfoBarDelegate* delegate = GetDelegate();
- delegate->GetAfterTranslateStrings(&strings,
- &swapped_language_buttons_,
- false);
- DCHECK_EQ(3U, strings.size());
+ TranslateInfoBarDelegate::GetAfterTranslateStrings(
+ &strings, &swapped_language_buttons_, autodetermined_source_language_);
+ DCHECK_EQ(autodetermined_source_language_ ? 2U : 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,
@@ -100,17 +106,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_ || autodetermined_source_language_) ?
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 (!autodetermined_source_language_) {
+ 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);
@@ -127,8 +135,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 (!autodetermined_source_language_) {
+ 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()));
}
« no previous file with comments | « chrome/browser/ui/views/infobars/after_translate_infobar.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698