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

Side by Side Diff: chrome/browser/ui/views/infobars/after_translate_infobar.cc

Issue 22694006: Infobar system refactor. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 scoped_ptr<TranslateInfoBarDelegate> delegate)
18 TranslateInfoBarDelegate* delegate) 20 : TranslateInfoBarBase(delegate.Pass()),
19 : TranslateInfoBarBase(owner, delegate),
20 label_1_(NULL), 21 label_1_(NULL),
21 label_2_(NULL), 22 label_2_(NULL),
22 label_3_(NULL), 23 label_3_(NULL),
23 original_language_menu_button_(NULL), 24 original_language_menu_button_(NULL),
24 target_language_menu_button_(NULL), 25 target_language_menu_button_(NULL),
25 revert_button_(NULL), 26 revert_button_(NULL),
26 options_menu_button_(NULL), 27 options_menu_button_(NULL),
27 options_menu_model_(delegate),
28 swapped_language_buttons_(false) { 28 swapped_language_buttons_(false) {
29 autodetermined_source_language_ = 29 autodetermined_source_language_ =
30 delegate->original_language_index() == TranslateInfoBarDelegate::kNoIndex; 30 GetDelegate()->original_language_index() ==
31 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();
38 39
39 int available_width = std::max(0, EndX() - StartX() - ContentMinimumWidth()); 40 int available_width = std::max(0, EndX() - StartX() - ContentMinimumWidth());
40 gfx::Size label_1_size = label_1_->GetPreferredSize(); 41 gfx::Size label_1_size = label_1_->GetPreferredSize();
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698