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: warnings 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 base::string16& original_language_name) { 93 const base::string16& original_language_name) {
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 width = std::max(width, child->GetPreferredSize().width()); 273 width = std::max(width, child->GetPreferredSize().width());
276 } 274 }
277 int height = GetCurrentView()->GetPreferredSize().height(); 275 int height = GetCurrentView()->GetPreferredSize().height();
278 return gfx::Size(width, height); 276 return gfx::Size(width, height);
279 } 277 }
280 278
281 void TranslateBubbleView::OnSelectedIndexChanged(views::Combobox* combobox) { 279 void TranslateBubbleView::OnSelectedIndexChanged(views::Combobox* combobox) {
282 HandleComboboxSelectedIndexChanged(static_cast<ComboboxID>(combobox->id())); 280 HandleComboboxSelectedIndexChanged(static_cast<ComboboxID>(combobox->id()));
283 } 281 }
284 282
283 void TranslateBubbleView::OnComboboxTextButtonClicked(
284 views::Combobox* combobox) {
285 if (combobox != denial_combobox_)
286 return;
287
288 int index = combobox->selected_index();
289 switch (index) {
290 case TranslateDenialComboboxModel::INDEX_NOPE:
291 if (!translate_executed_)
292 model_->TranslationDeclined();
293 StartFade(false);
294 break;
295 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE:
296 model_->SetNeverTranslateLanguage(true);
297 StartFade(false);
298 break;
299 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE:
300 model_->SetNeverTranslateSite(true);
301 StartFade(false);
302 break;
303 default:
304 NOTREACHED();
305 break;
306 }
307 }
308
285 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) { 309 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) {
286 HandleLinkClicked(static_cast<LinkID>(source->id())); 310 HandleLinkClicked(static_cast<LinkID>(source->id()));
287 } 311 }
288 312
289 void TranslateBubbleView::WebContentsDestroyed( 313 void TranslateBubbleView::WebContentsDestroyed(
290 content::WebContents* web_contents) { 314 content::WebContents* web_contents) {
291 GetWidget()->CloseNow(); 315 GetWidget()->CloseNow();
292 } 316 }
293 317
294 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const { 318 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 false)); 433 false));
410 break; 434 break;
411 } 435 }
412 } 436 }
413 } 437 }
414 438
415 void TranslateBubbleView::HandleComboboxSelectedIndexChanged( 439 void TranslateBubbleView::HandleComboboxSelectedIndexChanged(
416 TranslateBubbleView::ComboboxID sender_id) { 440 TranslateBubbleView::ComboboxID sender_id) {
417 switch (sender_id) { 441 switch (sender_id) {
418 case COMBOBOX_ID_DENIAL: { 442 case COMBOBOX_ID_DENIAL: {
419 int index = denial_combobox_->selected_index(); 443 // do nothing
420 switch (index) {
421 case TranslateDenialComboboxModel::INDEX_NOPE:
422 if (!translate_executed_)
423 model_->TranslationDeclined();
424 StartFade(false);
425 break;
426 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE:
427 model_->SetNeverTranslateLanguage(true);
428 StartFade(false);
429 break;
430 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE:
431 model_->SetNeverTranslateSite(true);
432 StartFade(false);
433 break;
434 default:
435 NOTREACHED();
436 break;
437 }
438 break; 444 break;
439 } 445 }
440 case COMBOBOX_ID_SOURCE_LANGUAGE: { 446 case COMBOBOX_ID_SOURCE_LANGUAGE: {
441 if (model_->GetOriginalLanguageIndex() == 447 if (model_->GetOriginalLanguageIndex() ==
442 source_language_combobox_->selected_index()) { 448 source_language_combobox_->selected_index()) {
443 break; 449 break;
444 } 450 }
445 model_->UpdateOriginalLanguageIndex( 451 model_->UpdateOriginalLanguageIndex(
446 source_language_combobox_->selected_index()); 452 source_language_combobox_->selected_index());
447 UpdateAdvancedView(); 453 UpdateAdvancedView();
(...skipping 22 matching lines...) Expand all
470 views::View* TranslateBubbleView::CreateViewBeforeTranslate() { 476 views::View* TranslateBubbleView::CreateViewBeforeTranslate() {
471 views::Label* message_label = new views::Label( 477 views::Label* message_label = new views::Label(
472 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE)); 478 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE));
473 479
474 base::string16 original_language_name = 480 base::string16 original_language_name =
475 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 481 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
476 denial_combobox_ = new views::Combobox( 482 denial_combobox_ = new views::Combobox(
477 new TranslateDenialComboboxModel(original_language_name)); 483 new TranslateDenialComboboxModel(original_language_name));
478 denial_combobox_->set_id(COMBOBOX_ID_DENIAL); 484 denial_combobox_->set_id(COMBOBOX_ID_DENIAL);
479 denial_combobox_->set_listener(this); 485 denial_combobox_->set_listener(this);
486 denial_combobox_->SetStyle(views::Combobox::STYLE_NOTIFY_ON_CLICK);
480 487
481 views::View* view = new views::View(); 488 views::View* view = new views::View();
482 views::GridLayout* layout = new views::GridLayout(view); 489 views::GridLayout* layout = new views::GridLayout(view);
483 view->SetLayoutManager(layout); 490 view->SetLayoutManager(layout);
484 491
485 using views::GridLayout; 492 using views::GridLayout;
486 493
487 enum { 494 enum {
488 COLUMN_SET_ID_MESSAGE, 495 COLUMN_SET_ID_MESSAGE,
489 COLUMN_SET_ID_CONTENT, 496 COLUMN_SET_ID_CONTENT,
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 model_->ShouldAlwaysTranslate()); 792 model_->ShouldAlwaysTranslate());
786 } 793 }
787 794
788 base::string16 label; 795 base::string16 label;
789 if (model_->IsPageTranslatedInCurrentLanguages()) 796 if (model_->IsPageTranslatedInCurrentLanguages())
790 label = l10n_util::GetStringUTF16(IDS_DONE); 797 label = l10n_util::GetStringUTF16(IDS_DONE);
791 else 798 else
792 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); 799 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT);
793 advanced_done_button_->SetText(label); 800 advanced_done_button_->SetText(label);
794 } 801 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698