OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/gtk/infobars/after_translate_infobar_gtk.h" | 5 #include "chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/translate/translate_infobar_delegate.h" | 10 #include "chrome/browser/translate/translate_infobar_delegate.h" |
(...skipping 10 matching lines...) Expand all Loading... | |
21 weak_factory_(this) { | 21 weak_factory_(this) { |
22 } | 22 } |
23 | 23 |
24 AfterTranslateInfoBar::~AfterTranslateInfoBar() { | 24 AfterTranslateInfoBar::~AfterTranslateInfoBar() { |
25 } | 25 } |
26 | 26 |
27 void AfterTranslateInfoBar::InitWidgets() { | 27 void AfterTranslateInfoBar::InitWidgets() { |
28 TranslateInfoBarBase::InitWidgets(); | 28 TranslateInfoBarBase::InitWidgets(); |
29 | 29 |
30 bool swapped_language_combos = false; | 30 bool swapped_language_combos = false; |
31 bool autodetermined_source_language = | |
32 GetDelegate()->original_language_index() == | |
33 TranslateInfoBarDelegate::kNoIndex; | |
34 | |
31 std::vector<string16> strings; | 35 std::vector<string16> strings; |
32 TranslateInfoBarDelegate::GetAfterTranslateStrings( | 36 TranslateInfoBarDelegate::GetAfterTranslateStrings( |
33 &strings, &swapped_language_combos); | 37 &strings, &swapped_language_combos, autodetermined_source_language); |
34 DCHECK(strings.size() == 3U); | 38 if (autodetermined_source_language) |
39 DCHECK(strings.size() == 2U); | |
40 else | |
41 DCHECK(strings.size() == 3U); | |
Peter Kasting
2013/05/23 19:59:56
Nit: Simpler and uses DCHECK_EQ():
DCHECK_EQ(au
Takashi Toyoshima
2013/05/27 06:07:51
Done.
| |
35 | 42 |
36 GtkWidget* hbox = gtk_hbox_new(FALSE, ui::kControlSpacing); | 43 GtkWidget* hbox = gtk_hbox_new(FALSE, ui::kControlSpacing); |
37 gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0); | 44 gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0); |
38 | 45 |
39 size_t original_language_index = GetDelegate()->original_language_index(); | 46 size_t original_language_index = GetDelegate()->original_language_index(); |
40 size_t target_language_index = GetDelegate()->target_language_index(); | 47 size_t target_language_index = GetDelegate()->target_language_index(); |
41 bool exclude_the_other = original_language_index != target_language_index; | 48 bool exclude_the_other = original_language_index != target_language_index; |
42 | 49 |
43 GtkWidget* original_lang_combo = CreateLanguageCombobox( | 50 GtkWidget* original_lang_combo = NULL; |
44 original_language_index, | 51 if (!autodetermined_source_language) { |
45 exclude_the_other ? target_language_index : | 52 original_lang_combo = CreateLanguageCombobox( |
46 TranslateInfoBarDelegate::kNoIndex); | 53 original_language_index, |
47 Signals()->Connect(original_lang_combo, "changed", | 54 exclude_the_other ? target_language_index : |
48 G_CALLBACK(&OnOriginalLanguageModifiedThunk), this); | 55 TranslateInfoBarDelegate::kNoIndex); |
56 Signals()->Connect(original_lang_combo, "changed", | |
57 G_CALLBACK(&OnOriginalLanguageModifiedThunk), this); | |
58 } | |
49 GtkWidget* target_lang_combo = CreateLanguageCombobox( | 59 GtkWidget* target_lang_combo = CreateLanguageCombobox( |
50 target_language_index, | 60 target_language_index, |
51 exclude_the_other ? original_language_index : | 61 exclude_the_other ? original_language_index : |
52 TranslateInfoBarDelegate::kNoIndex); | 62 TranslateInfoBarDelegate::kNoIndex); |
53 Signals()->Connect(target_lang_combo, "changed", | 63 Signals()->Connect(target_lang_combo, "changed", |
54 G_CALLBACK(&OnTargetLanguageModifiedThunk), this); | 64 G_CALLBACK(&OnTargetLanguageModifiedThunk), this); |
55 | 65 |
56 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[0])), | 66 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[0])), |
57 FALSE, FALSE, 0); | 67 FALSE, FALSE, 0); |
58 gtk_box_pack_start(GTK_BOX(hbox), | 68 gtk_box_pack_start(GTK_BOX(hbox), |
Peter Kasting
2013/05/23 19:59:56
Nit: Strange wrapping. How about:
gtk_box_pack
Takashi Toyoshima
2013/05/27 06:07:51
Done.
| |
59 swapped_language_combos ? target_lang_combo : | 69 (swapped_language_combos || |
60 original_lang_combo, | 70 autodetermined_source_language) ? target_lang_combo : |
71 original_lang_combo, | |
61 FALSE, FALSE, 0); | 72 FALSE, FALSE, 0); |
62 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[1])), | 73 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[1])), |
63 FALSE, FALSE, 0); | 74 FALSE, FALSE, 0); |
64 gtk_box_pack_start(GTK_BOX(hbox), | 75 if (!autodetermined_source_language) { |
65 swapped_language_combos ? original_lang_combo : | 76 gtk_box_pack_start(GTK_BOX(hbox), |
66 target_lang_combo, | 77 swapped_language_combos ? original_lang_combo : |
67 FALSE, FALSE, 0); | 78 target_lang_combo, |
68 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[2])), | 79 FALSE, FALSE, 0); |
69 FALSE, FALSE, 0); | 80 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[2])), |
81 FALSE, FALSE, 0); | |
82 } | |
70 | 83 |
71 GtkWidget* button = gtk_button_new_with_label( | 84 GtkWidget* button = gtk_button_new_with_label( |
72 l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_REVERT).c_str()); | 85 l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_REVERT).c_str()); |
73 Signals()->Connect(button, "clicked", | 86 Signals()->Connect(button, "clicked", |
74 G_CALLBACK(&OnRevertPressedThunk), this); | 87 G_CALLBACK(&OnRevertPressedThunk), this); |
75 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 88 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
76 } | 89 } |
77 | 90 |
78 bool AfterTranslateInfoBar::ShowOptionsMenuButton() const { | 91 bool AfterTranslateInfoBar::ShowOptionsMenuButton() const { |
79 return true; | 92 return true; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
113 base::MessageLoop::current()->PostTask( | 126 base::MessageLoop::current()->PostTask( |
114 FROM_HERE, | 127 FROM_HERE, |
115 base::Bind(&AfterTranslateInfoBar::SetTargetLanguage, | 128 base::Bind(&AfterTranslateInfoBar::SetTargetLanguage, |
116 weak_factory_.GetWeakPtr(), | 129 weak_factory_.GetWeakPtr(), |
117 index)); | 130 index)); |
118 } | 131 } |
119 | 132 |
120 void AfterTranslateInfoBar::OnRevertPressed(GtkWidget* sender) { | 133 void AfterTranslateInfoBar::OnRevertPressed(GtkWidget* sender) { |
121 GetDelegate()->RevertTranslation(); | 134 GetDelegate()->RevertTranslation(); |
122 } | 135 } |
OLD | NEW |