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 17 matching lines...) Expand all Loading... |
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 = | 31 bool autodetermined_source_language = |
32 GetDelegate()->original_language_index() == | 32 GetDelegate()->original_language_index() == |
33 TranslateInfoBarDelegate::kNoIndex; | 33 TranslateInfoBarDelegate::kNoIndex; |
34 | 34 |
35 std::vector<string16> strings; | 35 std::vector<string16> strings; |
36 TranslateInfoBarDelegate::GetAfterTranslateStrings( | 36 TranslateInfoBarDelegate::GetAfterTranslateStrings( |
37 &strings, &swapped_language_combos, autodetermined_source_language); | 37 &strings, &swapped_language_combos, autodetermined_source_language); |
38 if (autodetermined_source_language) | 38 DCHECK_EQ(autodetermined_source_language ? 2U : 3U, strings.size()); |
39 DCHECK(strings.size() == 2U); | |
40 else | |
41 DCHECK(strings.size() == 3U); | |
42 | 39 |
43 GtkWidget* hbox = gtk_hbox_new(FALSE, ui::kControlSpacing); | 40 GtkWidget* hbox = gtk_hbox_new(FALSE, ui::kControlSpacing); |
44 gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0); | 41 gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0); |
45 | 42 |
46 size_t original_language_index = GetDelegate()->original_language_index(); | 43 size_t original_language_index = GetDelegate()->original_language_index(); |
47 size_t target_language_index = GetDelegate()->target_language_index(); | 44 size_t target_language_index = GetDelegate()->target_language_index(); |
48 bool exclude_the_other = original_language_index != target_language_index; | 45 bool exclude_the_other = original_language_index != target_language_index; |
49 | 46 |
50 GtkWidget* original_lang_combo = NULL; | 47 GtkWidget* original_lang_combo = NULL; |
51 if (!autodetermined_source_language) { | 48 if (!autodetermined_source_language) { |
52 original_lang_combo = CreateLanguageCombobox( | 49 original_lang_combo = CreateLanguageCombobox( |
53 original_language_index, | 50 original_language_index, |
54 exclude_the_other ? target_language_index : | 51 exclude_the_other ? target_language_index : |
55 TranslateInfoBarDelegate::kNoIndex); | 52 TranslateInfoBarDelegate::kNoIndex); |
56 Signals()->Connect(original_lang_combo, "changed", | 53 Signals()->Connect(original_lang_combo, "changed", |
57 G_CALLBACK(&OnOriginalLanguageModifiedThunk), this); | 54 G_CALLBACK(&OnOriginalLanguageModifiedThunk), this); |
58 } | 55 } |
59 GtkWidget* target_lang_combo = CreateLanguageCombobox( | 56 GtkWidget* target_lang_combo = CreateLanguageCombobox( |
60 target_language_index, | 57 target_language_index, |
61 exclude_the_other ? original_language_index : | 58 exclude_the_other ? original_language_index : |
62 TranslateInfoBarDelegate::kNoIndex); | 59 TranslateInfoBarDelegate::kNoIndex); |
63 Signals()->Connect(target_lang_combo, "changed", | 60 Signals()->Connect(target_lang_combo, "changed", |
64 G_CALLBACK(&OnTargetLanguageModifiedThunk), this); | 61 G_CALLBACK(&OnTargetLanguageModifiedThunk), this); |
65 | 62 |
66 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[0])), | 63 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[0])), |
67 FALSE, FALSE, 0); | 64 FALSE, FALSE, 0); |
68 gtk_box_pack_start(GTK_BOX(hbox), | 65 gtk_box_pack_start( |
69 (swapped_language_combos || | 66 GTK_BOX(hbox), |
70 autodetermined_source_language) ? target_lang_combo : | 67 (swapped_language_combos || autodetermined_source_language) ? |
71 original_lang_combo, | 68 target_lang_combo : original_lang_combo, |
72 FALSE, FALSE, 0); | 69 FALSE, FALSE, 0); |
73 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[1])), | 70 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[1])), |
74 FALSE, FALSE, 0); | 71 FALSE, FALSE, 0); |
75 if (!autodetermined_source_language) { | 72 if (!autodetermined_source_language) { |
76 gtk_box_pack_start(GTK_BOX(hbox), | 73 gtk_box_pack_start(GTK_BOX(hbox), |
77 swapped_language_combos ? original_lang_combo : | 74 swapped_language_combos ? original_lang_combo : |
78 target_lang_combo, | 75 target_lang_combo, |
79 FALSE, FALSE, 0); | 76 FALSE, FALSE, 0); |
80 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[2])), | 77 gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[2])), |
81 FALSE, FALSE, 0); | 78 FALSE, FALSE, 0); |
82 } | 79 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 base::MessageLoop::current()->PostTask( | 123 base::MessageLoop::current()->PostTask( |
127 FROM_HERE, | 124 FROM_HERE, |
128 base::Bind(&AfterTranslateInfoBar::SetTargetLanguage, | 125 base::Bind(&AfterTranslateInfoBar::SetTargetLanguage, |
129 weak_factory_.GetWeakPtr(), | 126 weak_factory_.GetWeakPtr(), |
130 index)); | 127 index)); |
131 } | 128 } |
132 | 129 |
133 void AfterTranslateInfoBar::OnRevertPressed(GtkWidget* sender) { | 130 void AfterTranslateInfoBar::OnRevertPressed(GtkWidget* sender) { |
134 GetDelegate()->RevertTranslation(); | 131 GetDelegate()->RevertTranslation(); |
135 } | 132 } |
OLD | NEW |