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

Side by Side Diff: chrome/browser/ui/views/translate/translate_bubble_view.cc

Issue 59383003: Add the button style for combobox (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add TransparentButton and use those Created 7 years 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/translate/translate_bubble_view.h" 5 #include "chrome/browser/ui/views/translate/translate_bubble_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 std::string auto_translate_language = 74 std::string auto_translate_language =
75 TranslateManager::GetAutoTargetLanguage(*source, prefs); 75 TranslateManager::GetAutoTargetLanguage(*source, prefs);
76 if (!auto_translate_language.empty()) { 76 if (!auto_translate_language.empty()) {
77 *target = auto_translate_language; 77 *target = auto_translate_language;
78 return; 78 return;
79 } 79 }
80 } 80 }
81 *target = TranslateManager::GetTargetLanguage(prefs); 81 *target = TranslateManager::GetTargetLanguage(prefs);
82 } 82 }
83 83
84 // TODO(hajimehoshi): The interface to offer denial choices should be another
85 // control instead of Combobox. See crbug/305494.
86 class TranslateDenialComboboxModel : public ui::ComboboxModel { 84 class TranslateDenialComboboxModel : public ui::ComboboxModel {
87 public: 85 public:
88 enum { 86 enum {
89 INDEX_NOPE = 0, 87 INDEX_NOPE = 0,
90 INDEX_NEVER_TRANSLATE_LANGUAGE = 2, 88 INDEX_NEVER_TRANSLATE_LANGUAGE = 2,
91 INDEX_NEVER_TRANSLATE_SITE = 4, 89 INDEX_NEVER_TRANSLATE_SITE = 4,
92 }; 90 };
93 91
94 explicit TranslateDenialComboboxModel( 92 explicit TranslateDenialComboboxModel(
95 const string16& original_language_name) { 93 const string16& original_language_name) {
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 width = std::max(width, child->GetPreferredSize().width()); 259 width = std::max(width, child->GetPreferredSize().width());
262 } 260 }
263 int height = GetCurrentView()->GetPreferredSize().height(); 261 int height = GetCurrentView()->GetPreferredSize().height();
264 return gfx::Size(width, height); 262 return gfx::Size(width, height);
265 } 263 }
266 264
267 void TranslateBubbleView::OnSelectedIndexChanged(views::Combobox* combobox) { 265 void TranslateBubbleView::OnSelectedIndexChanged(views::Combobox* combobox) {
268 HandleComboboxSelectedIndexChanged(static_cast<ComboboxID>(combobox->id())); 266 HandleComboboxSelectedIndexChanged(static_cast<ComboboxID>(combobox->id()));
269 } 267 }
270 268
269 void TranslateBubbleView::OnComboboxTextButtonClicked(
270 views::Combobox* combobox) {
271 if (combobox != denial_combobox_)
272 return;
273
274 int index = combobox->selected_index();
275 switch (index) {
276 case TranslateDenialComboboxModel::INDEX_NOPE:
277 if (!translate_executed_)
278 model_->TranslationDeclined();
279 StartFade(false);
280 break;
281 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE:
282 model_->SetNeverTranslateLanguage(true);
283 StartFade(false);
284 break;
285 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE:
286 model_->SetNeverTranslateSite(true);
287 StartFade(false);
288 break;
289 default:
290 NOTREACHED();
291 break;
292 }
293 }
294
271 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) { 295 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) {
272 HandleLinkClicked(static_cast<LinkID>(source->id())); 296 HandleLinkClicked(static_cast<LinkID>(source->id()));
273 } 297 }
274 298
275 void TranslateBubbleView::WebContentsDestroyed( 299 void TranslateBubbleView::WebContentsDestroyed(
276 content::WebContents* web_contents) { 300 content::WebContents* web_contents) {
277 GetWidget()->CloseNow(); 301 GetWidget()->CloseNow();
278 } 302 }
279 303
280 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const { 304 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 false)); 410 false));
387 break; 411 break;
388 } 412 }
389 } 413 }
390 } 414 }
391 415
392 void TranslateBubbleView::HandleComboboxSelectedIndexChanged( 416 void TranslateBubbleView::HandleComboboxSelectedIndexChanged(
393 TranslateBubbleView::ComboboxID sender_id) { 417 TranslateBubbleView::ComboboxID sender_id) {
394 switch (sender_id) { 418 switch (sender_id) {
395 case COMBOBOX_ID_DENIAL: { 419 case COMBOBOX_ID_DENIAL: {
396 int index = denial_combobox_->selected_index(); 420 // do nothing
397 switch (index) {
398 case TranslateDenialComboboxModel::INDEX_NOPE:
399 if (!translate_executed_)
400 model_->TranslationDeclined();
401 StartFade(false);
402 break;
403 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE:
404 model_->SetNeverTranslateLanguage(true);
405 StartFade(false);
406 break;
407 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE:
408 model_->SetNeverTranslateSite(true);
409 StartFade(false);
410 break;
411 default:
412 NOTREACHED();
413 break;
414 }
415 break; 421 break;
416 } 422 }
417 case COMBOBOX_ID_SOURCE_LANGUAGE: { 423 case COMBOBOX_ID_SOURCE_LANGUAGE: {
418 if (model_->GetOriginalLanguageIndex() == 424 if (model_->GetOriginalLanguageIndex() ==
419 source_language_combobox_->selected_index()) { 425 source_language_combobox_->selected_index()) {
420 break; 426 break;
421 } 427 }
422 model_->UpdateOriginalLanguageIndex( 428 model_->UpdateOriginalLanguageIndex(
423 source_language_combobox_->selected_index()); 429 source_language_combobox_->selected_index());
424 UpdateAdvancedView(); 430 UpdateAdvancedView();
(...skipping 22 matching lines...) Expand all
447 views::View* TranslateBubbleView::CreateViewBeforeTranslate() { 453 views::View* TranslateBubbleView::CreateViewBeforeTranslate() {
448 views::Label* message_label = new views::Label( 454 views::Label* message_label = new views::Label(
449 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE)); 455 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE));
450 456
451 string16 original_language_name = 457 string16 original_language_name =
452 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 458 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
453 denial_combobox_ = new views::Combobox( 459 denial_combobox_ = new views::Combobox(
454 new TranslateDenialComboboxModel(original_language_name)); 460 new TranslateDenialComboboxModel(original_language_name));
455 denial_combobox_->set_id(COMBOBOX_ID_DENIAL); 461 denial_combobox_->set_id(COMBOBOX_ID_DENIAL);
456 denial_combobox_->set_listener(this); 462 denial_combobox_->set_listener(this);
463 denial_combobox_->SetStyle(views::Combobox::STYLE_NOTIFY_ON_CLICK);
457 464
458 views::View* view = new views::View(); 465 views::View* view = new views::View();
459 views::GridLayout* layout = new views::GridLayout(view); 466 views::GridLayout* layout = new views::GridLayout(view);
460 view->SetLayoutManager(layout); 467 view->SetLayoutManager(layout);
461 468
462 using views::GridLayout; 469 using views::GridLayout;
463 470
464 enum { 471 enum {
465 COLUMN_SET_ID_MESSAGE, 472 COLUMN_SET_ID_MESSAGE,
466 COLUMN_SET_ID_CONTENT, 473 COLUMN_SET_ID_CONTENT,
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex()); 759 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
753 760
754 // "Always translate" checkbox doesn't exist in an incognito window. 761 // "Always translate" checkbox doesn't exist in an incognito window.
755 if (always_translate_checkbox_) { 762 if (always_translate_checkbox_) {
756 always_translate_checkbox_->SetText( 763 always_translate_checkbox_->SetText(
757 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS)); 764 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS));
758 always_translate_checkbox_->SetChecked( 765 always_translate_checkbox_->SetChecked(
759 model_->ShouldAlwaysTranslate()); 766 model_->ShouldAlwaysTranslate());
760 } 767 }
761 } 768 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698