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() { |
+} |