Chromium Code Reviews| 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 |