Chromium Code Reviews| Index: chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc |
| diff --git a/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc b/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc |
| index 74d8dae8fd89941ad3c8de45957637b657155995..63fac7a84b6501cbbb749f8f827a68e7e1994f8f 100644 |
| --- a/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc |
| +++ b/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc |
| @@ -6,8 +6,9 @@ |
| #include <gtk/gtk.h> |
| -#include "base/i18n/rtl.h" |
| +#include "base/callback_helpers.h" |
| #include "base/logging.h" |
|
Peter Kasting
2012/05/24 22:25:18
Nit: Alphabetize
Roger Tawa OOO till Jul 10th
2012/05/25 16:04:08
I thought that the order of #includes is also base
Peter Kasting
2012/05/25 16:58:06
Nope, unix sort.
|
| +#include "base/i18n/rtl.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h" |
| #include "chrome/browser/ui/gtk/browser_window_gtk.h" |
| @@ -26,11 +27,9 @@ const int kContentBorder = 7; |
| OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| BrowserWindowGtk* browser_window_gtk, |
| - const base::Closure& learn_more_callback, |
| - const base::Closure& advanced_callback) |
| + const BrowserWindow::StartSyncCallback& start_sync_callback) |
| : bubble_(NULL), |
| - learn_more_callback_(learn_more_callback), |
| - advanced_callback_(advanced_callback) { |
| + start_sync_callback_(start_sync_callback) { |
| // Setup the BubbleGtk content. |
| GtkWidget* bubble_content = gtk_vbox_new(FALSE, 0); |
| @@ -49,18 +48,6 @@ OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| GtkThemeService* const theme_provider = GtkThemeService::GetFrom( |
| browser_window_gtk->browser()->profile()); |
| - GtkWidget* learn_more_line = gtk_hbox_new(FALSE, kContentBorder); |
| - gtk_box_pack_start(GTK_BOX(bubble_content), |
| - learn_more_line, FALSE, FALSE, 0); |
| - |
| - // Learn more link. |
| - GtkWidget* learn_more_link = theme_provider->BuildChromeLinkButton( |
| - l10n_util::GetStringUTF8(IDS_SYNC_PROMO_NTP_BUBBLE_LEARN_MORE)); |
| - g_signal_connect(learn_more_link, "clicked", |
| - G_CALLBACK(OnClickLearnMoreLinkThunk), this); |
| - gtk_box_pack_start(GTK_BOX(learn_more_line), |
| - learn_more_link, FALSE, FALSE, 0); |
| - |
| GtkWidget* bottom_line = gtk_hbox_new(FALSE, kContentBorder); |
| gtk_box_pack_start(GTK_BOX(bubble_content), |
| bottom_line, FALSE, FALSE, 0); |
| @@ -73,14 +60,31 @@ OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| gtk_box_pack_start(GTK_BOX(bottom_line), |
| advanced_link, FALSE, FALSE, 0); |
| + // Make the OK and Undo buttons the same size horizontally. |
| + GtkSizeGroup* size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| + |
| // OK Button. |
| GtkWidget* ok_button = gtk_button_new_with_label( |
| l10n_util::GetStringUTF8(IDS_OK).c_str()); |
| g_signal_connect(ok_button, "clicked", |
| G_CALLBACK(OnClickOKThunk), this); |
| + gtk_size_group_add_widget(size_group, ok_button); |
| gtk_box_pack_end(GTK_BOX(bottom_line), |
| ok_button, FALSE, FALSE, 0); |
| + // Undo Button. |
| + // TODO(akalin): at the moment, the OK and undo buttons are not the same |
| + // size and look kind of ugly. Figure out how to make it nicer. |
|
Peter Kasting
2012/05/24 22:25:18
This comment seems out of date?
Roger Tawa OOO till Jul 10th
2012/05/25 16:04:08
Done.
|
| + GtkWidget* undo_button = gtk_button_new_with_label( |
| + l10n_util::GetStringUTF8(IDS_ONE_CLICK_BUBBLE_UNDO).c_str()); |
| + g_signal_connect(undo_button, "clicked", |
| + G_CALLBACK(OnClickUndoThunk), this); |
| + gtk_size_group_add_widget(size_group, undo_button); |
| + gtk_box_pack_end(GTK_BOX(bottom_line), |
| + undo_button, FALSE, FALSE, 0); |
| + |
| + g_object_unref(size_group); |
| + |
| GtkWidget* const app_menu_widget = |
| browser_window_gtk->GetToolbar()->GetAppMenuButton(); |
| gfx::Rect bounds = gtk_util::WidgetBounds(app_menu_widget); |
| @@ -98,6 +102,10 @@ OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| void OneClickSigninBubbleGtk::BubbleClosing( |
| BubbleGtk* bubble, bool closed_by_escape) { |
| + if (!start_sync_callback_.is_null()) |
| + base::ResetAndReturn(&start_sync_callback_).Run( |
| + OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS); |
| + |
| delete this; |
| } |
| @@ -105,26 +113,34 @@ void OneClickSigninBubbleGtk::ClickOKForTest() { |
| OnClickOK(NULL); |
| } |
| -void OneClickSigninBubbleGtk::ClickLearnMoreForTest() { |
| - OnClickLearnMoreLink(NULL); |
| +void OneClickSigninBubbleGtk::ClickUndoForTest() { |
| + OnClickUndo(NULL); |
| } |
| void OneClickSigninBubbleGtk::ClickAdvancedForTest() { |
| OnClickAdvancedLink(NULL); |
| } |
| -void OneClickSigninBubbleGtk::OnClickLearnMoreLink(GtkWidget* link) { |
| - learn_more_callback_.Run(); |
| +void OneClickSigninBubbleGtk::CloseForTest() { |
| bubble_->Close(); |
| } |
| void OneClickSigninBubbleGtk::OnClickAdvancedLink(GtkWidget* link) { |
| - advanced_callback_.Run(); |
| + base::ResetAndReturn(&start_sync_callback_).Run( |
| + OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST); |
| bubble_->Close(); |
| } |
| void OneClickSigninBubbleGtk::OnClickOK(GtkWidget* link) { |
| + base::ResetAndReturn(&start_sync_callback_).Run( |
| + OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS); |
| bubble_->Close(); |
| } |
| -OneClickSigninBubbleGtk::~OneClickSigninBubbleGtk() {} |
| +void OneClickSigninBubbleGtk::OnClickUndo(GtkWidget* link) { |
| + start_sync_callback_.Reset(); |
| + bubble_->Close(); |
| +} |
| + |
| +OneClickSigninBubbleGtk::~OneClickSigninBubbleGtk() { |
| +} |