Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / gtk / manage_passwords_bubble_gtk.h
1 // Copyright 2013 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_MANAGE_PASSWORDS_BUBBLE_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_MANAGE_PASSWORDS_BUBBLE_GTK_H_
7
8 #include <gtk/gtk.h>
9
10 #include "base/basictypes.h"
11 #include "chrome/browser/ui/gtk/bubble/bubble_gtk.h"
12
13 typedef struct _GtkWidget GtkWidget;
14
15 class FullscreenController;
16
17 namespace content {
18 class WebContents;
19 }
20
21 class ManagePasswordsBubbleGtk {
22  public:
23   // Shows the manage passwords bubble below the |manage_passwords_icon_widget|
24   // with an arrow pointing at the icon. If we are in full screen mode the
25   // bubble will be positioned in the top right of corner of the widget with no
26   // arrow.
27   static void ShowBubble(content::WebContents* web_contents);
28
29   // Whether the manage passwords bubble is currently showing.
30   static bool IsShowing();
31
32   // Closes the manage passwords bubble (if there is one).
33   static void CloseBubble();
34
35  private:
36   ManagePasswordsBubbleGtk(GtkWidget* anchor,
37                            content::WebContents* web_contents,
38                            FullscreenController* fullscreen_controller);
39
40   virtual ~ManagePasswordsBubbleGtk();
41
42   // Closes the manage password bubble.
43   void Close();
44
45   // Notified when the bubble is destroyed so this instance can be deleted.
46   CHROMEGTK_CALLBACK_0(ManagePasswordsBubbleGtk, void, OnDestroy);
47
48   // Fired when the save button is clicked.
49   CHROMEGTK_CALLBACK_0(ManagePasswordsBubbleGtk, void, OnSaveButtonClicked);
50
51   // Fired when the not now button is clicked.
52   CHROMEGTK_CALLBACK_0(ManagePasswordsBubbleGtk, void, OnNotNowButtonClicked);
53
54   // The WebContents for the page where the manage passwords bubble is
55   // displayed.
56   content::WebContents* web_contents_;
57
58   // The BubbleGtk object containing the manage passwords bubble's content.
59   BubbleGtk* bubble_;
60
61   DISALLOW_COPY_AND_ASSIGN(ManagePasswordsBubbleGtk);
62 };
63
64 #endif  // CHROME_BROWSER_UI_GTK_MANAGE_PASSWORDS_BUBBLE_GTK_H_