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

Side by Side Diff: chrome/browser/ui/gtk/one_click_signin_bubble_gtk.h

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_UI_GTK_ONE_CLICK_SIGNIN_BUBBLE_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_ONE_CLICK_SIGNIN_BUBBLE_GTK_H_
7
8 #include "base/basictypes.h"
9 #include "base/callback.h"
10 #include "base/compiler_specific.h"
11 #include "base/gtest_prod_util.h"
12 #include "chrome/browser/ui/browser_window.h"
13 #include "chrome/browser/ui/gtk/bubble/bubble_gtk.h"
14
15 typedef struct _GtkWidget GtkWidget;
16 typedef struct _GtkWindow GtkWindow;
17
18 class BrowserWindowGtk;
19 class CustomDrawButton;
20
21 // Displays the one-click signin confirmation bubble (before syncing
22 // has started).
23 class OneClickSigninBubbleGtk : public BubbleDelegateGtk {
24 public:
25 // Deletes self on close. The given callback will be called if the
26 // user decides to start sync.
27 OneClickSigninBubbleGtk(
28 BrowserWindowGtk* browser_window_gtk,
29 BrowserWindow::OneClickSigninBubbleType type,
30 const base::string16& email,
31 const base::string16& error_message,
32 const BrowserWindow::StartSyncCallback& start_sync_callback);
33
34 // BubbleDelegateGtk implementation.
35 virtual void BubbleClosing(
36 BubbleGtk* bubble, bool closed_by_escape) OVERRIDE;
37
38 private:
39 FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleGtkTest, DialogShowAndOK);
40 FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleGtkTest, DialogShowAndUndo);
41 FRIEND_TEST_ALL_PREFIXES(
42 OneClickSigninBubbleGtkTest, DialogShowAndClickAdvanced);
43 FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleGtkTest, DialogShowAndClose);
44 FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleGtkTest, BubbleShowAndOK);
45 FRIEND_TEST_ALL_PREFIXES(
46 OneClickSigninBubbleGtkTest, BubbleShowAndClickAdvanced);
47 FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleGtkTest, BubbleShowAndClose);
48
49 virtual ~OneClickSigninBubbleGtk();
50
51 void InitializeWidgets(BrowserWindowGtk* window);
52 GtkWidget* LayoutWidgets();
53 void ShowWidget(BrowserWindowGtk* browser_window_gtk,
54 GtkWidget* content_widget);
55
56 CHROMEGTK_CALLBACK_0(OneClickSigninBubbleGtk, void, OnClickAdvancedLink);
57 CHROMEGTK_CALLBACK_0(OneClickSigninBubbleGtk, void, OnClickOK);
58 CHROMEGTK_CALLBACK_0(OneClickSigninBubbleGtk, void, OnClickUndo);
59 CHROMEGTK_CALLBACK_0(OneClickSigninBubbleGtk, void, OnClickLearnMoreLink);
60 CHROMEGTK_CALLBACK_0(OneClickSigninBubbleGtk, void, OnClickCloseButton);
61
62 BubbleGtk* bubble_;
63
64 // The user's email address to be used for sync.
65 const base::string16 email_;
66
67 // Alternate error message to be displayed.
68 const base::string16 error_message_;
69
70 // This callback is nulled once its called, so that it is called only once.
71 // It will be called when the bubble is closed if it has not been called
72 // and nulled earlier.
73 BrowserWindow::StartSyncCallback start_sync_callback_;
74
75 bool is_sync_dialog_;
76
77 GtkWidget* message_label_;
78 GtkWidget* advanced_link_;
79 GtkWidget* ok_button_;
80 GtkWidget* undo_button_;
81
82 // These widgets are only used in the modal dialog, and not in the bubble.
83 GtkWidget* learn_more_;
84 GtkWidget* header_label_;
85 scoped_ptr<CustomDrawButton> close_button_;
86
87 bool clicked_learn_more_;
88
89 DISALLOW_COPY_AND_ASSIGN(OneClickSigninBubbleGtk);
90 };
91
92 #endif // CHROME_BROWSER_UI_GTK_ONE_CLICK_SIGNIN_BUBBLE_GTK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698