| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/infobars/after_translate_infobar.h" | 5 #include "chrome/browser/ui/views/infobars/after_translate_infobar.h" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "chrome/browser/translate/options_menu_model.h" |
| 8 #include "chrome/browser/translate/translate_infobar_delegate.h" | 9 #include "chrome/browser/translate/translate_infobar_delegate.h" |
| 10 #include "chrome/browser/ui/views/infobars/translate_language_menu_model.h" |
| 9 #include "grit/generated_resources.h" | 11 #include "grit/generated_resources.h" |
| 10 #include "ui/base/l10n/l10n_util.h" | 12 #include "ui/base/l10n/l10n_util.h" |
| 11 #include "ui/views/controls/button/label_button.h" | 13 #include "ui/views/controls/button/label_button.h" |
| 12 #include "ui/views/controls/button/menu_button.h" | 14 #include "ui/views/controls/button/menu_button.h" |
| 13 #include "ui/views/controls/label.h" | 15 #include "ui/views/controls/label.h" |
| 14 #include "ui/views/controls/menu/menu_item_view.h" | 16 #include "ui/views/controls/menu/menu_item_view.h" |
| 15 | 17 |
| 16 AfterTranslateInfoBar::AfterTranslateInfoBar( | 18 AfterTranslateInfoBar::AfterTranslateInfoBar( |
| 17 InfoBarService* owner, | 19 InfoBarService* owner, |
| 18 TranslateInfoBarDelegate* delegate) | 20 TranslateInfoBarDelegate* delegate) |
| 19 : TranslateInfoBarBase(owner, delegate), | 21 : TranslateInfoBarBase(owner, delegate), |
| 20 label_1_(NULL), | 22 label_1_(NULL), |
| 21 label_2_(NULL), | 23 label_2_(NULL), |
| 22 label_3_(NULL), | 24 label_3_(NULL), |
| 23 original_language_menu_button_(NULL), | 25 original_language_menu_button_(NULL), |
| 24 target_language_menu_button_(NULL), | 26 target_language_menu_button_(NULL), |
| 25 revert_button_(NULL), | 27 revert_button_(NULL), |
| 26 options_menu_button_(NULL), | 28 options_menu_button_(NULL), |
| 27 options_menu_model_(delegate), | |
| 28 swapped_language_buttons_(false) { | 29 swapped_language_buttons_(false) { |
| 29 autodetermined_source_language_ = | 30 autodetermined_source_language_ = |
| 30 delegate->original_language_index() == TranslateInfoBarDelegate::kNoIndex; | 31 delegate->original_language_index() == TranslateInfoBarDelegate::kNoIndex; |
| 31 } | 32 } |
| 32 | 33 |
| 33 AfterTranslateInfoBar::~AfterTranslateInfoBar() { | 34 AfterTranslateInfoBar::~AfterTranslateInfoBar() { |
| 34 } | 35 } |
| 35 | 36 |
| 36 void AfterTranslateInfoBar::Layout() { | 37 void AfterTranslateInfoBar::Layout() { |
| 37 TranslateInfoBarBase::Layout(); | 38 TranslateInfoBarBase::Layout(); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 label_3_ = CreateLabel(strings[2]); | 120 label_3_ = CreateLabel(strings[2]); |
| 120 AddChildView(label_3_); | 121 AddChildView(label_3_); |
| 121 } | 122 } |
| 122 | 123 |
| 123 revert_button_ = CreateLabelButton(this, | 124 revert_button_ = CreateLabelButton(this, |
| 124 l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_REVERT), false); | 125 l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_REVERT), false); |
| 125 AddChildView(revert_button_); | 126 AddChildView(revert_button_); |
| 126 | 127 |
| 127 options_menu_button_ = CreateMenuButton( | 128 options_menu_button_ = CreateMenuButton( |
| 128 l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS), this); | 129 l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS), this); |
| 130 options_menu_model_.reset(new OptionsMenuModel(delegate)); |
| 129 AddChildView(options_menu_button_); | 131 AddChildView(options_menu_button_); |
| 130 | 132 |
| 131 // This must happen after adding all other children so InfoBarView can ensure | 133 // This must happen after adding all other children so InfoBarView can ensure |
| 132 // the close button is the last child. | 134 // the close button is the last child. |
| 133 TranslateInfoBarBase::ViewHierarchyChanged(details); | 135 TranslateInfoBarBase::ViewHierarchyChanged(details); |
| 134 | 136 |
| 135 // These must happen after adding all children because they trigger layout, | 137 // These must happen after adding all children because they trigger layout, |
| 136 // which assumes that particular children (e.g. the close button) have already | 138 // which assumes that particular children (e.g. the close button) have already |
| 137 // been added. | 139 // been added. |
| 138 if (!autodetermined_source_language_) { | 140 if (!autodetermined_source_language_) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 if (!owner()) | 172 if (!owner()) |
| 171 return; // We're closing; don't call anything, it might access the owner. | 173 return; // We're closing; don't call anything, it might access the owner. |
| 172 if (source == original_language_menu_button_) { | 174 if (source == original_language_menu_button_) { |
| 173 RunMenuAt(original_language_menu_model_.get(), | 175 RunMenuAt(original_language_menu_model_.get(), |
| 174 original_language_menu_button_, views::MenuItemView::TOPLEFT); | 176 original_language_menu_button_, views::MenuItemView::TOPLEFT); |
| 175 } else if (source == target_language_menu_button_) { | 177 } else if (source == target_language_menu_button_) { |
| 176 RunMenuAt(target_language_menu_model_.get(), target_language_menu_button_, | 178 RunMenuAt(target_language_menu_model_.get(), target_language_menu_button_, |
| 177 views::MenuItemView::TOPLEFT); | 179 views::MenuItemView::TOPLEFT); |
| 178 } else { | 180 } else { |
| 179 DCHECK_EQ(options_menu_button_, source); | 181 DCHECK_EQ(options_menu_button_, source); |
| 180 RunMenuAt(&options_menu_model_, options_menu_button_, | 182 RunMenuAt(options_menu_model_.get(), options_menu_button_, |
| 181 views::MenuItemView::TOPRIGHT); | 183 views::MenuItemView::TOPRIGHT); |
| 182 } | 184 } |
| 183 } | 185 } |
| OLD | NEW |