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

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

Issue 250943008: Move enum MenuAnchorPosition to reduce deps on menu_item_view.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix indent Created 6 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 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/options_menu_model.h"
9 #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" 10 #include "chrome/browser/ui/views/infobars/translate_language_menu_model.h"
11 #include "grit/generated_resources.h" 11 #include "grit/generated_resources.h"
12 #include "ui/base/l10n/l10n_util.h" 12 #include "ui/base/l10n/l10n_util.h"
13 #include "ui/views/controls/button/label_button.h" 13 #include "ui/views/controls/button/label_button.h"
14 #include "ui/views/controls/button/menu_button.h" 14 #include "ui/views/controls/button/menu_button.h"
15 #include "ui/views/controls/label.h" 15 #include "ui/views/controls/label.h"
16 #include "ui/views/controls/menu/menu_item_view.h"
17 16
18 AfterTranslateInfoBar::AfterTranslateInfoBar( 17 AfterTranslateInfoBar::AfterTranslateInfoBar(
19 scoped_ptr<TranslateInfoBarDelegate> delegate) 18 scoped_ptr<TranslateInfoBarDelegate> delegate)
20 : TranslateInfoBarBase(delegate.Pass()), 19 : TranslateInfoBarBase(delegate.Pass()),
21 label_1_(NULL), 20 label_1_(NULL),
22 label_2_(NULL), 21 label_2_(NULL),
23 label_3_(NULL), 22 label_3_(NULL),
24 original_language_menu_button_(NULL), 23 original_language_menu_button_(NULL),
25 target_language_menu_button_(NULL), 24 target_language_menu_button_(NULL),
26 revert_button_(NULL), 25 revert_button_(NULL),
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 label_2_->GetMinimumSize().width() + label_3_->GetMinimumSize().width() + 154 label_2_->GetMinimumSize().width() + label_3_->GetMinimumSize().width() +
156 NonLabelWidth(); 155 NonLabelWidth();
157 } 156 }
158 157
159 void AfterTranslateInfoBar::OnMenuButtonClicked(views::View* source, 158 void AfterTranslateInfoBar::OnMenuButtonClicked(views::View* source,
160 const gfx::Point& point) { 159 const gfx::Point& point) {
161 if (!owner()) 160 if (!owner())
162 return; // We're closing; don't call anything, it might access the owner. 161 return; // We're closing; don't call anything, it might access the owner.
163 if (source == original_language_menu_button_) { 162 if (source == original_language_menu_button_) {
164 RunMenuAt(original_language_menu_model_.get(), 163 RunMenuAt(original_language_menu_model_.get(),
165 original_language_menu_button_, views::MenuItemView::TOPLEFT); 164 original_language_menu_button_,
165 views::MENU_ANCHOR_TOPLEFT);
166 } else if (source == target_language_menu_button_) { 166 } else if (source == target_language_menu_button_) {
167 RunMenuAt(target_language_menu_model_.get(), target_language_menu_button_, 167 RunMenuAt(target_language_menu_model_.get(),
168 views::MenuItemView::TOPLEFT); 168 target_language_menu_button_,
169 views::MENU_ANCHOR_TOPLEFT);
169 } else { 170 } else {
170 DCHECK_EQ(options_menu_button_, source); 171 DCHECK_EQ(options_menu_button_, source);
171 RunMenuAt(options_menu_model_.get(), options_menu_button_, 172 RunMenuAt(options_menu_model_.get(),
172 views::MenuItemView::TOPRIGHT); 173 options_menu_button_,
174 views::MENU_ANCHOR_TOPRIGHT);
173 } 175 }
174 } 176 }
175 177
176 void AfterTranslateInfoBar::GetButtons( 178 void AfterTranslateInfoBar::GetButtons(
177 views::MenuButton** first_button, 179 views::MenuButton** first_button,
178 views::MenuButton** second_button) const { 180 views::MenuButton** second_button) const {
179 *first_button = original_language_menu_button_; 181 *first_button = original_language_menu_button_;
180 *second_button = target_language_menu_button_; 182 *second_button = target_language_menu_button_;
181 if (swapped_language_buttons_ || autodetermined_source_language_) 183 if (swapped_language_buttons_ || autodetermined_source_language_)
182 std::swap(*first_button, *second_button); 184 std::swap(*first_button, *second_button);
183 } 185 }
184 186
185 int AfterTranslateInfoBar::NonLabelWidth() const { 187 int AfterTranslateInfoBar::NonLabelWidth() const {
186 views::MenuButton* first_button, *second_button; 188 views::MenuButton* first_button, *second_button;
187 GetButtons(&first_button, &second_button); 189 GetButtons(&first_button, &second_button);
188 int width = (label_1_->text().empty() ? 0 : kButtonInLabelSpacing) + 190 int width = (label_1_->text().empty() ? 0 : kButtonInLabelSpacing) +
189 first_button->width() + 191 first_button->width() +
190 (label_2_->text().empty() ? 0 : kButtonInLabelSpacing); 192 (label_2_->text().empty() ? 0 : kButtonInLabelSpacing);
191 if (!autodetermined_source_language_) { 193 if (!autodetermined_source_language_) {
192 width += 194 width +=
193 (label_2_->text().empty() ? 195 (label_2_->text().empty() ?
194 kButtonButtonSpacing : kButtonInLabelSpacing) + 196 kButtonButtonSpacing : kButtonInLabelSpacing) +
195 second_button->width() + 197 second_button->width() +
196 (label_3_->text().empty() ? 0 : kButtonInLabelSpacing); 198 (label_3_->text().empty() ? 0 : kButtonInLabelSpacing);
197 } 199 }
198 return width + kEndOfLabelSpacing + revert_button_->width() + 200 return width + kEndOfLabelSpacing + revert_button_->width() +
199 kEndOfLabelSpacing + options_menu_button_->width(); 201 kEndOfLabelSpacing + options_menu_button_->width();
200 } 202 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698