| OLD | NEW |
| 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 gfx::Size TranslateBubbleView::GetPreferredSize() { | 261 gfx::Size TranslateBubbleView::GetPreferredSize() { |
| 262 int width = 0; | 262 int width = 0; |
| 263 for (int i = 0; i < child_count(); i++) { | 263 for (int i = 0; i < child_count(); i++) { |
| 264 views::View* child = child_at(i); | 264 views::View* child = child_at(i); |
| 265 width = std::max(width, child->GetPreferredSize().width()); | 265 width = std::max(width, child->GetPreferredSize().width()); |
| 266 } | 266 } |
| 267 int height = GetCurrentView()->GetPreferredSize().height(); | 267 int height = GetCurrentView()->GetPreferredSize().height(); |
| 268 return gfx::Size(width, height); | 268 return gfx::Size(width, height); |
| 269 } | 269 } |
| 270 | 270 |
| 271 void TranslateBubbleView::OnSelectedIndexChanged(views::Combobox* combobox) { | 271 void TranslateBubbleView::OnPerformAction(views::Combobox* combobox) { |
| 272 HandleComboboxSelectedIndexChanged(static_cast<ComboboxID>(combobox->id())); | 272 HandleComboboxPerformAction(static_cast<ComboboxID>(combobox->id())); |
| 273 } | |
| 274 | |
| 275 void TranslateBubbleView::OnComboboxTextButtonClicked( | |
| 276 views::Combobox* combobox) { | |
| 277 if (combobox != denial_combobox_) | |
| 278 return; | |
| 279 | |
| 280 denial_button_clicked_ = true; | |
| 281 int index = combobox->selected_index(); | |
| 282 switch (index) { | |
| 283 case TranslateDenialComboboxModel::INDEX_NOPE: | |
| 284 break; | |
| 285 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE: | |
| 286 model_->SetNeverTranslateLanguage(true); | |
| 287 break; | |
| 288 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE: | |
| 289 model_->SetNeverTranslateSite(true); | |
| 290 break; | |
| 291 default: | |
| 292 NOTREACHED(); | |
| 293 break; | |
| 294 } | |
| 295 StartFade(false); | |
| 296 } | 273 } |
| 297 | 274 |
| 298 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) { | 275 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) { |
| 299 HandleLinkClicked(static_cast<LinkID>(source->id())); | 276 HandleLinkClicked(static_cast<LinkID>(source->id())); |
| 300 } | 277 } |
| 301 | 278 |
| 302 void TranslateBubbleView::WebContentsDestroyed( | 279 void TranslateBubbleView::WebContentsDestroyed( |
| 303 content::WebContents* web_contents) { | 280 content::WebContents* web_contents) { |
| 304 GetWidget()->CloseNow(); | 281 GetWidget()->CloseNow(); |
| 305 } | 282 } |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 GURL(url), | 398 GURL(url), |
| 422 content::Referrer(), | 399 content::Referrer(), |
| 423 NEW_FOREGROUND_TAB, | 400 NEW_FOREGROUND_TAB, |
| 424 content::PAGE_TRANSITION_LINK, | 401 content::PAGE_TRANSITION_LINK, |
| 425 false)); | 402 false)); |
| 426 break; | 403 break; |
| 427 } | 404 } |
| 428 } | 405 } |
| 429 } | 406 } |
| 430 | 407 |
| 431 void TranslateBubbleView::HandleComboboxSelectedIndexChanged( | 408 void TranslateBubbleView::HandleComboboxPerformAction( |
| 432 TranslateBubbleView::ComboboxID sender_id) { | 409 TranslateBubbleView::ComboboxID sender_id) { |
| 433 switch (sender_id) { | 410 switch (sender_id) { |
| 434 case COMBOBOX_ID_DENIAL: { | 411 case COMBOBOX_ID_DENIAL: { |
| 435 // do nothing | 412 denial_button_clicked_ = true; |
| 413 int index = denial_combobox_->selected_index(); |
| 414 switch (index) { |
| 415 case TranslateDenialComboboxModel::INDEX_NOPE: |
| 416 break; |
| 417 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE: |
| 418 model_->SetNeverTranslateLanguage(true); |
| 419 break; |
| 420 case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE: |
| 421 model_->SetNeverTranslateSite(true); |
| 422 break; |
| 423 default: |
| 424 NOTREACHED(); |
| 425 break; |
| 426 } |
| 427 StartFade(false); |
| 436 break; | 428 break; |
| 437 } | 429 } |
| 438 case COMBOBOX_ID_SOURCE_LANGUAGE: { | 430 case COMBOBOX_ID_SOURCE_LANGUAGE: { |
| 439 if (model_->GetOriginalLanguageIndex() == | 431 if (model_->GetOriginalLanguageIndex() == |
| 440 source_language_combobox_->selected_index()) { | 432 source_language_combobox_->selected_index()) { |
| 441 break; | 433 break; |
| 442 } | 434 } |
| 443 model_->UpdateOriginalLanguageIndex( | 435 model_->UpdateOriginalLanguageIndex( |
| 444 source_language_combobox_->selected_index()); | 436 source_language_combobox_->selected_index()); |
| 445 UpdateAdvancedView(); | 437 UpdateAdvancedView(); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 468 views::View* TranslateBubbleView::CreateViewBeforeTranslate() { | 460 views::View* TranslateBubbleView::CreateViewBeforeTranslate() { |
| 469 views::Label* message_label = new views::Label( | 461 views::Label* message_label = new views::Label( |
| 470 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE)); | 462 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE)); |
| 471 | 463 |
| 472 base::string16 original_language_name = | 464 base::string16 original_language_name = |
| 473 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); | 465 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); |
| 474 denial_combobox_ = new views::Combobox( | 466 denial_combobox_ = new views::Combobox( |
| 475 new TranslateDenialComboboxModel(original_language_name)); | 467 new TranslateDenialComboboxModel(original_language_name)); |
| 476 denial_combobox_->set_id(COMBOBOX_ID_DENIAL); | 468 denial_combobox_->set_id(COMBOBOX_ID_DENIAL); |
| 477 denial_combobox_->set_listener(this); | 469 denial_combobox_->set_listener(this); |
| 478 denial_combobox_->SetStyle(views::Combobox::STYLE_NOTIFY_ON_CLICK); | 470 denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION); |
| 479 | 471 |
| 480 views::View* view = new views::View(); | 472 views::View* view = new views::View(); |
| 481 views::GridLayout* layout = new views::GridLayout(view); | 473 views::GridLayout* layout = new views::GridLayout(view); |
| 482 view->SetLayoutManager(layout); | 474 view->SetLayoutManager(layout); |
| 483 | 475 |
| 484 using views::GridLayout; | 476 using views::GridLayout; |
| 485 | 477 |
| 486 enum { | 478 enum { |
| 487 COLUMN_SET_ID_MESSAGE, | 479 COLUMN_SET_ID_MESSAGE, |
| 488 COLUMN_SET_ID_CONTENT, | 480 COLUMN_SET_ID_CONTENT, |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 790 model_->ShouldAlwaysTranslate()); | 782 model_->ShouldAlwaysTranslate()); |
| 791 } | 783 } |
| 792 | 784 |
| 793 base::string16 label; | 785 base::string16 label; |
| 794 if (model_->IsPageTranslatedInCurrentLanguages()) | 786 if (model_->IsPageTranslatedInCurrentLanguages()) |
| 795 label = l10n_util::GetStringUTF16(IDS_DONE); | 787 label = l10n_util::GetStringUTF16(IDS_DONE); |
| 796 else | 788 else |
| 797 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); | 789 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); |
| 798 advanced_done_button_->SetText(label); | 790 advanced_done_button_->SetText(label); |
| 799 } | 791 } |
| OLD | NEW |