summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 23:18:21 +0000
committerjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 23:18:21 +0000
commit4344263ed18b929655fc38c18366b69b33df102a (patch)
tree4fa1e82457aa0376ab4b1eaf43b5dad27e5200af
parent087265a55269a513eb9e0f9d6410374296829873 (diff)
downloadchromium_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.cc32
-rw-r--r--chrome/browser/gtk/translate/before_translate_infobar_gtk.h2
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);
};