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

Side by Side Diff: chrome/browser/translate/options_menu_model2.cc

Issue 2602003: Refactored the translate infobars. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Synced Created 10 years, 6 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
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/translate/options_menu_model2.h"
6
7 #include "app/l10n_util.h"
8 #include "base/histogram.h"
9 #include "chrome/app/chrome_dll_resource.h"
10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/tab_contents/tab_contents.h"
12 #include "chrome/browser/translate/translate_infobar_delegate2.h"
13 #include "grit/generated_resources.h"
14 #include "grit/locale_settings.h"
15
16 OptionsMenuModel2::OptionsMenuModel2(
17 TranslateInfoBarDelegate2* translate_delegate)
18 : ALLOW_THIS_IN_INITIALIZER_LIST(menus::SimpleMenuModel(this)),
19 translate_infobar_delegate_(translate_delegate) {
20 string16 original_language = translate_delegate->GetLanguageDisplayableNameAt(
21 translate_delegate->original_language_index());
22 string16 target_language = translate_delegate->GetLanguageDisplayableNameAt(
23 translate_delegate->target_language_index());
24
25 // Populate the menu.
26 AddCheckItem(IDC_TRANSLATE_OPTIONS_ALWAYS,
27 l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS_ALWAYS,
28 original_language, target_language));
29 AddCheckItem(IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_LANG,
30 l10n_util::GetStringFUTF16(
31 IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG,
32 original_language));
33 AddCheckItem(IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_SITE,
34 l10n_util::GetStringUTF16(
35 IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE));
36 AddItemWithStringId(IDC_TRANSLATE_OPTIONS_ABOUT,
37 IDS_TRANSLATE_INFOBAR_OPTIONS_ABOUT);
38 }
39
40 OptionsMenuModel2::~OptionsMenuModel2() {
41 }
42
43 bool OptionsMenuModel2::IsCommandIdChecked(int command_id) const {
44 switch (command_id) {
45 case IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_LANG:
46 return translate_infobar_delegate_->IsLanguageBlacklisted();
47
48 case IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_SITE:
49 return translate_infobar_delegate_->IsSiteBlacklisted();
50
51 case IDC_TRANSLATE_OPTIONS_ALWAYS:
52 return translate_infobar_delegate_->ShouldAlwaysTranslate();
53
54 default:
55 NOTREACHED() << "Invalid command_id from menu";
56 break;
57 }
58 return false;
59 }
60
61 bool OptionsMenuModel2::IsCommandIdEnabled(int command_id) const {
62 switch (command_id) {
63 case IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_LANG :
64 case IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_SITE :
65 return !translate_infobar_delegate_->ShouldAlwaysTranslate();
66
67 case IDC_TRANSLATE_OPTIONS_ALWAYS :
68 return (!translate_infobar_delegate_->IsLanguageBlacklisted() &&
69 !translate_infobar_delegate_->IsSiteBlacklisted());
70
71 default:
72 break;
73 }
74 return true;
75 }
76
77 bool OptionsMenuModel2::GetAcceleratorForCommandId(
78 int command_id, menus::Accelerator* accelerator) {
79 return false;
80 }
81
82 void OptionsMenuModel2::ExecuteCommand(int command_id) {
83 switch (command_id) {
84 case IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_LANG:
85 UMA_HISTOGRAM_COUNTS("Translate.NeverTranslateLang", 1);
86 translate_infobar_delegate_->ToggleLanguageBlacklist();
87 break;
88
89 case IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_SITE:
90 UMA_HISTOGRAM_COUNTS("Translate.NeverTranslateSite", 1);
91 translate_infobar_delegate_->ToggleSiteBlacklist();
92 break;
93
94 case IDC_TRANSLATE_OPTIONS_ALWAYS:
95 UMA_HISTOGRAM_COUNTS("Translate.AlwaysTranslateLang", 1);
96 translate_infobar_delegate_->ToggleAlwaysTranslate();
97 break;
98
99 case IDC_TRANSLATE_OPTIONS_ABOUT: {
100 TabContents* tab_contents = translate_infobar_delegate_->tab_contents();
101 if (tab_contents) {
102 string16 url = l10n_util::GetStringUTF16(
103 IDS_ABOUT_GOOGLE_TRANSLATE_URL);
104 tab_contents->OpenURL(GURL(url), GURL(), NEW_FOREGROUND_TAB,
105 PageTransition::LINK);
106 }
107 break;
108 }
109
110 default:
111 NOTREACHED() << "Invalid command id from menu.";
112 break;
113 }
114 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/options_menu_model2.h ('k') | chrome/browser/translate/translate_infobar_delegate2.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698