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

Side by Side Diff: chrome/browser/gtk/translate/before_translate_infobar_gtk.cc

Issue 4767001: Make TabContents own its infobar delegates.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 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 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/gtk/translate/before_translate_infobar_gtk.h" 5 #include "chrome/browser/gtk/translate/before_translate_infobar_gtk.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/gtk/gtk_util.h" 9 #include "chrome/browser/gtk/gtk_util.h"
10 #include "chrome/browser/translate/translate_infobar_delegate.h" 10 #include "chrome/browser/translate/translate_infobar_delegate.h"
(...skipping 13 matching lines...) Expand all
24 GtkWidget* hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing); 24 GtkWidget* hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing);
25 gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0); 25 gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0);
26 size_t offset = 0; 26 size_t offset = 0;
27 string16 text = 27 string16 text =
28 l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE, 28 l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE,
29 string16(), &offset); 29 string16(), &offset);
30 30
31 gtk_box_pack_start(GTK_BOX(hbox), 31 gtk_box_pack_start(GTK_BOX(hbox),
32 CreateLabel(UTF16ToUTF8(text.substr(0, offset))), 32 CreateLabel(UTF16ToUTF8(text.substr(0, offset))),
33 FALSE, FALSE, 0); 33 FALSE, FALSE, 0);
34 TranslateInfoBarDelegate* delegate = GetDelegate();
34 GtkWidget* combobox = 35 GtkWidget* combobox =
35 CreateLanguageCombobox(GetDelegate()->original_language_index(), 36 CreateLanguageCombobox(delegate->original_language_index(),
36 GetDelegate()->target_language_index()); 37 delegate->target_language_index());
37 g_signal_connect(combobox, "changed", 38 g_signal_connect(combobox, "changed",
38 G_CALLBACK(&OnLanguageModifiedThunk), this); 39 G_CALLBACK(&OnLanguageModifiedThunk), this);
39 gtk_box_pack_start(GTK_BOX(hbox), combobox, FALSE, FALSE, 0); 40 gtk_box_pack_start(GTK_BOX(hbox), combobox, FALSE, FALSE, 0);
40 gtk_box_pack_start(GTK_BOX(hbox), 41 gtk_box_pack_start(GTK_BOX(hbox),
41 CreateLabel(UTF16ToUTF8(text.substr(offset))), 42 CreateLabel(UTF16ToUTF8(text.substr(offset))),
42 FALSE, FALSE, 0); 43 FALSE, FALSE, 0);
43 44
44 GtkWidget* button = gtk_button_new_with_label( 45 GtkWidget* button = gtk_button_new_with_label(
45 l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_ACCEPT).c_str()); 46 l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_ACCEPT).c_str());
46 g_signal_connect(button, "clicked",G_CALLBACK(&OnAcceptPressedThunk), this); 47 g_signal_connect(button, "clicked",G_CALLBACK(&OnAcceptPressedThunk), this);
47 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 48 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
48 49
49 button = gtk_button_new_with_label( 50 button = gtk_button_new_with_label(
50 l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_DENY).c_str()); 51 l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_DENY).c_str());
51 g_signal_connect(button, "clicked",G_CALLBACK(&OnDenyPressedThunk), this); 52 g_signal_connect(button, "clicked",G_CALLBACK(&OnDenyPressedThunk), this);
52 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 53 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
53 54
54 TranslateInfoBarDelegate* delegate = GetDelegate();
55 if (delegate->ShouldShowNeverTranslateButton()) { 55 if (delegate->ShouldShowNeverTranslateButton()) {
56 std::string label = 56 std::string label =
57 l10n_util::GetStringFUTF8(IDS_TRANSLATE_INFOBAR_NEVER_TRANSLATE, 57 l10n_util::GetStringFUTF8(IDS_TRANSLATE_INFOBAR_NEVER_TRANSLATE,
58 delegate->GetLanguageDisplayableNameAt( 58 delegate->GetLanguageDisplayableNameAt(
59 delegate->original_language_index())); 59 delegate->original_language_index()));
60 button = gtk_button_new_with_label(label.c_str()); 60 button = gtk_button_new_with_label(label.c_str());
61 g_signal_connect(button, "clicked", 61 g_signal_connect(button, "clicked",
62 G_CALLBACK(&OnNeverTranslatePressedThunk), this); 62 G_CALLBACK(&OnNeverTranslatePressedThunk), this);
63 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 63 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
64 } 64 }
65 65
66 if (delegate->ShouldShowAlwaysTranslateButton()) { 66 if (delegate->ShouldShowAlwaysTranslateButton()) {
67 std::string label = 67 std::string label =
68 l10n_util::GetStringFUTF8(IDS_TRANSLATE_INFOBAR_ALWAYS_TRANSLATE, 68 l10n_util::GetStringFUTF8(IDS_TRANSLATE_INFOBAR_ALWAYS_TRANSLATE,
69 delegate->GetLanguageDisplayableNameAt( 69 delegate->GetLanguageDisplayableNameAt(
70 delegate->original_language_index())); 70 delegate->original_language_index()));
71 button = gtk_button_new_with_label(label.c_str()); 71 button = gtk_button_new_with_label(label.c_str());
72 g_signal_connect(button, "clicked", 72 g_signal_connect(button, "clicked",
73 G_CALLBACK(&OnAlwaysTranslatePressedThunk), this); 73 G_CALLBACK(&OnAlwaysTranslatePressedThunk), this);
74 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 74 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
75 } 75 }
76 } 76 }
77 77
78 void BeforeTranslateInfoBar::OnLanguageModified(GtkWidget* sender) { 78 void BeforeTranslateInfoBar::OnLanguageModified(GtkWidget* sender) {
79 if (!delegate())
80 return;
81
79 int index = GetLanguageComboboxActiveId(GTK_COMBO_BOX(sender)); 82 int index = GetLanguageComboboxActiveId(GTK_COMBO_BOX(sender));
80 if (index == GetDelegate()->original_language_index()) 83 if (index == GetDelegate()->original_language_index())
81 return; 84 return;
82 85
83 GetDelegate()->SetOriginalLanguage(index); 86 GetDelegate()->SetOriginalLanguage(index);
84 } 87 }
85 88
86 void BeforeTranslateInfoBar::OnAcceptPressed(GtkWidget* sender) { 89 void BeforeTranslateInfoBar::OnAcceptPressed(GtkWidget* sender) {
87 GetDelegate()->Translate(); 90 if (delegate())
91 GetDelegate()->Translate();
88 } 92 }
89 93
90 void BeforeTranslateInfoBar::OnDenyPressed(GtkWidget* sender) { 94 void BeforeTranslateInfoBar::OnDenyPressed(GtkWidget* sender) {
91 GetDelegate()->TranslationDeclined(); 95 if (delegate())
96 GetDelegate()->TranslationDeclined();
92 RemoveInfoBar(); 97 RemoveInfoBar();
93 } 98 }
94 99
95 void BeforeTranslateInfoBar::OnNeverTranslatePressed(GtkWidget* sender) { 100 void BeforeTranslateInfoBar::OnNeverTranslatePressed(GtkWidget* sender) {
96 GetDelegate()->NeverTranslatePageLanguage(); 101 if (delegate())
102 GetDelegate()->NeverTranslatePageLanguage();
97 } 103 }
98 104
99 void BeforeTranslateInfoBar::OnAlwaysTranslatePressed(GtkWidget* sender) { 105 void BeforeTranslateInfoBar::OnAlwaysTranslatePressed(GtkWidget* sender) {
100 GetDelegate()->AlwaysTranslatePageLanguage(); 106 if (delegate())
107 GetDelegate()->AlwaysTranslatePageLanguage();
101 } 108 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698