Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc

Issue 10332185: Update behavior of one-click infobar to remove modal dialog, add "undo". (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Don't call ok in tests of advanced link Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {
+}

Powered by Google App Engine
This is Rietveld 408576698