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 57bcca2896fe22a2c1cd14ca6293e8450d7bcd35..d31d7bad0ce187d10aecb4f7f4c3decc76a757e7 100644 |
| --- a/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc |
| +++ b/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc |
| @@ -26,11 +26,10 @@ const int kContentBorder = 7; |
| OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| BrowserWindowGtk* browser_window_gtk, |
| - const base::Closure& learn_more_callback, |
| - const base::Closure& advanced_callback) |
| + const base::Callback<void(bool)>& start_sync_callback) |
| : bubble_(NULL), |
| - learn_more_callback_(learn_more_callback), |
| - advanced_callback_(advanced_callback) { |
| + start_sync_callback_(start_sync_callback), |
| + call_sync_callback_on_close_(true) { |
| // 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); |
| @@ -81,6 +68,14 @@ OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| gtk_box_pack_end(GTK_BOX(bottom_line), |
| ok_button, FALSE, FALSE, 0); |
| + // Undo Button. |
|
akalin
2012/05/17 00:39:24
add a TODO for me to figure out the spacing
Roger Tawa OOO till Jul 10th
2012/05/17 21:17:37
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_box_pack_end(GTK_BOX(bottom_line), |
| + undo_button, FALSE, FALSE, 0); |
| + |
| GtkWidget* const app_menu_widget = |
| browser_window_gtk->GetToolbar()->GetAppMenuButton(); |
| gfx::Rect bounds = gtk_util::WidgetBounds(app_menu_widget); |
| @@ -97,6 +92,9 @@ OneClickSigninBubbleGtk::OneClickSigninBubbleGtk( |
| void OneClickSigninBubbleGtk::BubbleClosing( |
| BubbleGtk* bubble, bool closed_by_escape) { |
| + if (call_sync_callback_on_close_) |
| + start_sync_callback_.Run(true); |
| + |
| delete this; |
| } |
| @@ -104,26 +102,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(); |
| + call_sync_callback_on_close_ = false; |
| + start_sync_callback_.Run(false); |
| bubble_->Close(); |
| } |
| void OneClickSigninBubbleGtk::OnClickOK(GtkWidget* link) { |
| + call_sync_callback_on_close_ = false; |
| + start_sync_callback_.Run(true); |
| bubble_->Close(); |
| } |
| -OneClickSigninBubbleGtk::~OneClickSigninBubbleGtk() {} |
| +void OneClickSigninBubbleGtk::OnClickUndo(GtkWidget* link) { |
| + call_sync_callback_on_close_ = false; |
| + bubble_->Close(); |
| +} |
| + |
| +OneClickSigninBubbleGtk::~OneClickSigninBubbleGtk() { |
| +} |