Index: chrome/browser/ui/views/translate/translate_bubble_view.cc |
diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc |
index b72959369e3761ce6b56130fe1514920109f715d..a22b4dadd9e599a90fbf497cde8afdb99e5c8592 100644 |
--- a/chrome/browser/ui/views/translate/translate_bubble_view.cc |
+++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc |
@@ -27,6 +27,7 @@ |
#include "grit/generated_resources.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/models/combobox_model.h" |
+#include "ui/base/models/simple_combobox_model.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/views/controls/button/checkbox.h" |
#include "ui/views/controls/button/label_button.h" |
@@ -40,6 +41,12 @@ |
namespace { |
+enum DenialComboboxIndexes { |
+ INDEX_NOPE = 0, |
+ INDEX_NEVER_TRANSLATE_LANGUAGE = 2, |
+ INDEX_NEVER_TRANSLATE_SITE = 4, |
+}; |
+ |
views::LabelButton* CreateLabelButton(views::ButtonListener* listener, |
const base::string16& label, |
int id) { |
@@ -59,47 +66,6 @@ views::Link* CreateLink(views::LinkListener* listener, |
return link; |
} |
-class TranslateDenialComboboxModel : public ui::ComboboxModel { |
- public: |
- enum { |
- INDEX_NOPE = 0, |
- INDEX_NEVER_TRANSLATE_LANGUAGE = 2, |
- INDEX_NEVER_TRANSLATE_SITE = 4, |
- }; |
- |
- explicit TranslateDenialComboboxModel( |
- const base::string16& original_language_name) { |
- items_.push_back(l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY)); |
- items_.push_back(base::string16()); |
- items_.push_back(l10n_util::GetStringFUTF16( |
- IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG, |
- original_language_name)); |
- items_.push_back(base::string16()); |
- items_.push_back(l10n_util::GetStringUTF16( |
- IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE)); |
- } |
- virtual ~TranslateDenialComboboxModel() {} |
- |
- private: |
- // Overridden from ui::ComboboxModel: |
- virtual int GetItemCount() const OVERRIDE { |
- return items_.size(); |
- } |
- virtual base::string16 GetItemAt(int index) OVERRIDE { |
- return items_[index]; |
- } |
- virtual bool IsItemSeparatorAt(int index) OVERRIDE { |
- return items_[index].empty(); |
- } |
- virtual int GetDefaultIndex() const OVERRIDE { |
- return 0; |
- } |
- |
- std::vector<base::string16> items_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TranslateDenialComboboxModel); |
-}; |
- |
} // namespace |
// static |
@@ -395,12 +361,12 @@ void TranslateBubbleView::HandleComboboxPerformAction( |
denial_button_clicked_ = true; |
int index = denial_combobox_->selected_index(); |
switch (index) { |
- case TranslateDenialComboboxModel::INDEX_NOPE: |
+ case INDEX_NOPE: |
break; |
- case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_LANGUAGE: |
+ case INDEX_NEVER_TRANSLATE_LANGUAGE: |
model_->SetNeverTranslateLanguage(true); |
break; |
- case TranslateDenialComboboxModel::INDEX_NEVER_TRANSLATE_SITE: |
+ case INDEX_NEVER_TRANSLATE_SITE: |
model_->SetNeverTranslateSite(true); |
break; |
default: |
@@ -446,8 +412,19 @@ views::View* TranslateBubbleView::CreateViewBeforeTranslate() { |
base::string16 original_language_name = |
model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); |
- denial_combobox_ = new views::Combobox( |
- new TranslateDenialComboboxModel(original_language_name)); |
+ |
+ std::vector<base::string16> items; |
+ items.push_back(l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY)); |
+ items.push_back(base::string16()); |
+ items.push_back(l10n_util::GetStringFUTF16( |
+ IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG, |
+ original_language_name)); |
+ items.push_back(base::string16()); |
+ items.push_back(l10n_util::GetStringUTF16( |
+ IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE)); |
+ |
+ denial_combobox_model_.reset(new ui::SimpleComboboxModel(items)); |
+ denial_combobox_ = new views::Combobox(denial_combobox_model_.get()); |
denial_combobox_->set_id(COMBOBOX_ID_DENIAL); |
denial_combobox_->set_listener(this); |
denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION); |