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 |
deleted file mode 100644 |
index babeaaa85bb745b8c6d3ecc341757e502461c3dd..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/views/infobars/after_translate_infobar.cc |
+++ /dev/null |
@@ -1,202 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/ui/views/infobars/after_translate_infobar.h" |
- |
-#include "base/strings/utf_string_conversions.h" |
-#include "chrome/browser/ui/views/infobars/translate_language_menu_model.h" |
-#include "components/translate/core/browser/options_menu_model.h" |
-#include "components/translate/core/browser/translate_infobar_delegate.h" |
-#include "grit/components_strings.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/views/controls/button/label_button.h" |
-#include "ui/views/controls/button/menu_button.h" |
-#include "ui/views/controls/label.h" |
- |
-AfterTranslateInfoBar::AfterTranslateInfoBar( |
- scoped_ptr<TranslateInfoBarDelegate> delegate) |
- : TranslateInfoBarBase(delegate.Pass()), |
- label_1_(NULL), |
- label_2_(NULL), |
- label_3_(NULL), |
- original_language_menu_button_(NULL), |
- target_language_menu_button_(NULL), |
- revert_button_(NULL), |
- options_menu_button_(NULL), |
- swapped_language_buttons_(false) { |
- autodetermined_source_language_ = |
- GetDelegate()->original_language_index() == |
- TranslateInfoBarDelegate::kNoIndex; |
-} |
- |
-AfterTranslateInfoBar::~AfterTranslateInfoBar() { |
-} |
- |
-void AfterTranslateInfoBar::Layout() { |
- TranslateInfoBarBase::Layout(); |
- |
- int x = StartX(); |
- Labels labels; |
- labels.push_back(label_1_); |
- labels.push_back(label_2_); |
- labels.push_back(label_3_); |
- AssignWidths(&labels, std::max(0, EndX() - x - NonLabelWidth())); |
- |
- label_1_->SetPosition(gfx::Point(x, OffsetY(label_1_))); |
- if (!label_1_->text().empty()) |
- x = label_1_->bounds().right() + kButtonInLabelSpacing; |
- |
- views::MenuButton* first_button, * second_button; |
- GetButtons(&first_button, &second_button); |
- first_button->SetPosition(gfx::Point(x, OffsetY(first_button))); |
- x = first_button->bounds().right(); |
- |
- label_2_->SetPosition( |
- gfx::Point(x + kButtonInLabelSpacing, OffsetY(label_2_))); |
- if (!label_2_->text().empty()) |
- x = label_2_->bounds().right(); |
- |
- if (!autodetermined_source_language_) { |
- x += label_2_->text().empty() ? |
- kButtonButtonSpacing : kButtonInLabelSpacing; |
- second_button->SetPosition(gfx::Point(x, OffsetY(second_button))); |
- x = second_button->bounds().right(); |
- |
- label_3_->SetPosition( |
- gfx::Point(x + kButtonInLabelSpacing, OffsetY(label_3_))); |
- if (!label_3_->text().empty()) |
- x = label_3_->bounds().right(); |
- } |
- |
- revert_button_->SetPosition( |
- gfx::Point(x + kEndOfLabelSpacing, OffsetY(revert_button_))); |
- |
- options_menu_button_->SetPosition(gfx::Point( |
- EndX() - options_menu_button_->width(), OffsetY(options_menu_button_))); |
-} |
- |
-void AfterTranslateInfoBar::ViewHierarchyChanged( |
- const ViewHierarchyChangedDetails& details) { |
- if (!details.is_add || (details.child != this) || (label_1_ != NULL)) { |
- TranslateInfoBarBase::ViewHierarchyChanged(details); |
- return; |
- } |
- |
- std::vector<base::string16> strings; |
- 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(base::string16(), this); |
- original_language_menu_model_.reset(new TranslateLanguageMenuModel( |
- TranslateLanguageMenuModel::ORIGINAL, delegate, this, |
- original_language_menu_button_, true)); |
- target_language_menu_button_ = CreateMenuButton(base::string16(), this); |
- target_language_menu_model_.reset(new TranslateLanguageMenuModel( |
- TranslateLanguageMenuModel::TARGET, delegate, this, |
- target_language_menu_button_, true)); |
- |
- views::MenuButton* first_button, * second_button; |
- GetButtons(&first_button, &second_button); |
- AddChildView(first_button); |
- |
- label_2_ = CreateLabel(strings[1]); |
- AddChildView(label_2_); |
- |
- // These views may not always be shown, but adding them unconditionally |
- // prevents leaks and reduces NULL-checking elsewhere. |
- AddChildView(second_button); |
- if (autodetermined_source_language_) |
- second_button->SetVisible(false); |
- label_3_ = CreateLabel(autodetermined_source_language_ ? |
- base::string16() : strings[2]); |
- AddChildView(label_3_); |
- |
- revert_button_ = CreateLabelButton( |
- this, l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_REVERT)); |
- AddChildView(revert_button_); |
- |
- options_menu_button_ = CreateMenuButton( |
- l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS), this); |
- options_menu_model_.reset(new OptionsMenuModel(delegate)); |
- AddChildView(options_menu_button_); |
- |
- // This must happen after adding all other children so InfoBarView can ensure |
- // the close button is the last child. |
- TranslateInfoBarBase::ViewHierarchyChanged(details); |
- |
- // 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())); |
- UpdateLanguageButtonText(target_language_menu_button_, |
- delegate->language_name_at(delegate->target_language_index())); |
-} |
- |
-void AfterTranslateInfoBar::ButtonPressed(views::Button* sender, |
- const ui::Event& event) { |
- if (!owner()) |
- return; // We're closing; don't call anything, it might access the owner. |
- if (sender == revert_button_) |
- GetDelegate()->RevertTranslation(); |
- else |
- TranslateInfoBarBase::ButtonPressed(sender, event); |
-} |
- |
-int AfterTranslateInfoBar::ContentMinimumWidth() const { |
- return label_1_->GetMinimumSize().width() + |
- label_2_->GetMinimumSize().width() + label_3_->GetMinimumSize().width() + |
- NonLabelWidth(); |
-} |
- |
-void AfterTranslateInfoBar::OnMenuButtonClicked(views::View* source, |
- const gfx::Point& point) { |
- if (!owner()) |
- return; // We're closing; don't call anything, it might access the owner. |
- if (source == original_language_menu_button_) { |
- RunMenuAt(original_language_menu_model_.get(), |
- original_language_menu_button_, |
- views::MENU_ANCHOR_TOPLEFT); |
- } else if (source == target_language_menu_button_) { |
- RunMenuAt(target_language_menu_model_.get(), |
- target_language_menu_button_, |
- views::MENU_ANCHOR_TOPLEFT); |
- } else { |
- DCHECK_EQ(options_menu_button_, source); |
- RunMenuAt(options_menu_model_.get(), |
- options_menu_button_, |
- views::MENU_ANCHOR_TOPRIGHT); |
- } |
-} |
- |
-void AfterTranslateInfoBar::GetButtons( |
- views::MenuButton** first_button, |
- views::MenuButton** second_button) const { |
- *first_button = original_language_menu_button_; |
- *second_button = target_language_menu_button_; |
- if (swapped_language_buttons_ || autodetermined_source_language_) |
- std::swap(*first_button, *second_button); |
-} |
- |
-int AfterTranslateInfoBar::NonLabelWidth() const { |
- views::MenuButton* first_button, *second_button; |
- GetButtons(&first_button, &second_button); |
- int width = (label_1_->text().empty() ? 0 : kButtonInLabelSpacing) + |
- first_button->width() + |
- (label_2_->text().empty() ? 0 : kButtonInLabelSpacing); |
- if (!autodetermined_source_language_) { |
- width += |
- (label_2_->text().empty() ? |
- kButtonButtonSpacing : kButtonInLabelSpacing) + |
- second_button->width() + |
- (label_3_->text().empty() ? 0 : kButtonInLabelSpacing); |
- } |
- return width + kEndOfLabelSpacing + revert_button_->width() + |
- kEndOfLabelSpacing + options_menu_button_->width(); |
-} |