diff options
author | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-01 23:18:21 +0000 |
---|---|---|
committer | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-01 23:18:21 +0000 |
commit | 4344263ed18b929655fc38c18366b69b33df102a (patch) | |
tree | 4fa1e82457aa0376ab4b1eaf43b5dad27e5200af | |
parent | 087265a55269a513eb9e0f9d6410374296829873 (diff) | |
download | chromium_src-4344263ed18b929655fc38c18366b69b33df102a.zip chromium_src-4344263ed18b929655fc38c18366b69b33df102a.tar.gz chromium_src-4344263ed18b929655fc38c18366b69b33df102a.tar.bz2 |
Add Never/Always translate buttons to the translate infobar on Linux.
BUG=None
TEST=Visit a page in a language different than the browser language. On the translate infobar, select 'Nope' (don't translate). Repeat 4 times, the 4th time a button 'Never translate' should be available. Test that pressing this button works as expected (further navigations to page in that specific language should not bring a translate infobar).
Follow the same steps but now click on Translate. You should get an "Always translate" button on the 4th time.
Review URL: http://codereview.chromium.org/2811041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51451 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/gtk/translate/before_translate_infobar_gtk.cc | 32 | ||||
-rw-r--r-- | chrome/browser/gtk/translate/before_translate_infobar_gtk.h | 2 |
2 files changed, 34 insertions, 0 deletions
diff --git a/chrome/browser/gtk/translate/before_translate_infobar_gtk.cc b/chrome/browser/gtk/translate/before_translate_infobar_gtk.cc index 657f1af..c3a9b8a 100644 --- a/chrome/browser/gtk/translate/before_translate_infobar_gtk.cc +++ b/chrome/browser/gtk/translate/before_translate_infobar_gtk.cc @@ -51,6 +51,29 @@ void BeforeTranslateInfoBar::Init() { g_signal_connect(button, "clicked",G_CALLBACK(&OnDenyPressedThunk), this); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); + TranslateInfoBarDelegate* delegate = GetDelegate(); + if (delegate->ShouldShowNeverTranslateButton()) { + std::string label = + l10n_util::GetStringFUTF8(IDS_TRANSLATE_INFOBAR_NEVER_TRANSLATE, + delegate->GetLanguageDisplayableNameAt( + delegate->original_language_index())); + button = gtk_button_new_with_label(label.c_str()); + g_signal_connect(button, "clicked", + G_CALLBACK(&OnNeverTranslatePressedThunk), this); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); + } + + if (delegate->ShouldShowAlwaysTranslateButton()) { + std::string label = + l10n_util::GetStringFUTF8(IDS_TRANSLATE_INFOBAR_ALWAYS_TRANSLATE, + delegate->GetLanguageDisplayableNameAt( + delegate->original_language_index())); + button = gtk_button_new_with_label(label.c_str()); + g_signal_connect(button, "clicked", + G_CALLBACK(&OnAlwaysTranslatePressedThunk), this); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); + } + gtk_widget_show_all(border_bin_.get()); } @@ -67,5 +90,14 @@ void BeforeTranslateInfoBar::OnAcceptPressed(GtkWidget* sender) { } void BeforeTranslateInfoBar::OnDenyPressed(GtkWidget* sender) { + GetDelegate()->TranslationDeclined(); RemoveInfoBar(); } + +void BeforeTranslateInfoBar::OnNeverTranslatePressed(GtkWidget* sender) { + GetDelegate()->NeverTranslatePageLanguage(); +} + +void BeforeTranslateInfoBar::OnAlwaysTranslatePressed(GtkWidget* sender) { + GetDelegate()->AlwaysTranslatePageLanguage(); +} diff --git a/chrome/browser/gtk/translate/before_translate_infobar_gtk.h b/chrome/browser/gtk/translate/before_translate_infobar_gtk.h index 5875dd9..6c90308 100644 --- a/chrome/browser/gtk/translate/before_translate_infobar_gtk.h +++ b/chrome/browser/gtk/translate/before_translate_infobar_gtk.h @@ -24,6 +24,8 @@ class BeforeTranslateInfoBar : public TranslateInfoBarBase { CHROMEGTK_CALLBACK_0(BeforeTranslateInfoBar, void, OnLanguageModified); CHROMEGTK_CALLBACK_0(BeforeTranslateInfoBar, void, OnAcceptPressed); CHROMEGTK_CALLBACK_0(BeforeTranslateInfoBar, void, OnDenyPressed); + CHROMEGTK_CALLBACK_0(BeforeTranslateInfoBar, void, OnNeverTranslatePressed); + CHROMEGTK_CALLBACK_0(BeforeTranslateInfoBar, void, OnAlwaysTranslatePressed); DISALLOW_COPY_AND_ASSIGN(BeforeTranslateInfoBar); }; |