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