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

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: rebase 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 74d8dae8fd89941ad3c8de45957637b657155995..8ed301d8de86ca6fb0f9cb38c681af9d74848ae4 100644
--- a/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc
+++ b/chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc
@@ -6,6 +6,7 @@
#include <gtk/gtk.h>
+#include "base/callback_helpers.h"
#include "base/i18n/rtl.h"
#include "base/logging.h"
#include "chrome/browser/ui/browser.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,29 @@ 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.
+ 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,33 +100,29 @@ OneClickSigninBubbleGtk::OneClickSigninBubbleGtk(
void OneClickSigninBubbleGtk::BubbleClosing(
BubbleGtk* bubble, bool closed_by_escape) {
- delete this;
-}
+ if (!start_sync_callback_.is_null())
+ base::ResetAndReturn(&start_sync_callback_).Run(
+ OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS);
-void OneClickSigninBubbleGtk::ClickOKForTest() {
- OnClickOK(NULL);
-}
-
-void OneClickSigninBubbleGtk::ClickLearnMoreForTest() {
- OnClickLearnMoreLink(NULL);
-}
-
-void OneClickSigninBubbleGtk::ClickAdvancedForTest() {
- OnClickAdvancedLink(NULL);
+ delete this;
}
-void OneClickSigninBubbleGtk::OnClickLearnMoreLink(GtkWidget* link) {
- learn_more_callback_.Run();
+void OneClickSigninBubbleGtk::OnClickAdvancedLink(GtkWidget* link) {
+ base::ResetAndReturn(&start_sync_callback_).Run(
+ OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST);
bubble_->Close();
}
-void OneClickSigninBubbleGtk::OnClickAdvancedLink(GtkWidget* link) {
- advanced_callback_.Run();
+void OneClickSigninBubbleGtk::OnClickOK(GtkWidget* link) {
+ base::ResetAndReturn(&start_sync_callback_).Run(
+ OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS);
bubble_->Close();
}
-void OneClickSigninBubbleGtk::OnClickOK(GtkWidget* link) {
+void OneClickSigninBubbleGtk::OnClickUndo(GtkWidget* link) {
+ start_sync_callback_.Reset();
bubble_->Close();
}
-OneClickSigninBubbleGtk::~OneClickSigninBubbleGtk() {}
+OneClickSigninBubbleGtk::~OneClickSigninBubbleGtk() {
+}
« no previous file with comments | « chrome/browser/ui/gtk/one_click_signin_bubble_gtk.h ('k') | chrome/browser/ui/gtk/one_click_signin_bubble_gtk_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698