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

Unified Diff: chrome/browser/gtk/info_bubble_gtk.h

Issue 100203: Implement a mostly working InfoBubble with a shim BookmarkBubble. (Closed)
Patch Set: Comments Created 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/gtk/info_bubble_gtk.h
diff --git a/chrome/browser/gtk/info_bubble_gtk.h b/chrome/browser/gtk/info_bubble_gtk.h
new file mode 100644
index 0000000000000000000000000000000000000000..d5a3b7b8d4d02172b433352d3661c47b674ef31d
--- /dev/null
+++ b/chrome/browser/gtk/info_bubble_gtk.h
@@ -0,0 +1,72 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_GTK_INFO_BUBBLE_GTK_H_
+#define CHROME_BROWSER_GTK_INFO_BUBBLE_GTK_H_
+
+#include "base/basictypes.h"
ecattell 2009/04/30 19:55:37 Out of order includes: http://www.corp.google.com
Dean McNamee 2009/05/01 15:01:46 Fixed, sorry. On 2009/04/30 19:55:37, ecattell wr
+
+#include <gtk/gtk.h>
+
+namespace gfx {
+class Rect;
+}
+
+class InfoBubbleGtk {
+ public:
+ // Show an InfoBubble, pointing at the area |rect| (in screen coordinates).
+ // An infobubble will try to fit on the screen, so it can point to any edge
+ // of |rect|. The bubble will host |widget| as the content.
ecattell 2009/04/30 19:55:37 widget -> content?
Dean McNamee 2009/05/01 15:01:46 Fixed.
+ static InfoBubbleGtk* Show(const gfx::Rect& rect, GtkWidget* content);
+
+ InfoBubbleGtk();
+ virtual ~InfoBubbleGtk();
+
+ void Close();
ecattell 2009/04/30 19:55:37 What does Close() do? And if it is just a wrapper
Dean McNamee 2009/05/01 15:01:46 Heh, that's a good question. I am not even sure i
+
+ private:
+ // Creates the InfoBubble.
+ void Init(const gfx::Rect& rect, GtkWidget* content);
+
+ // Closes the window notifying the delegate. |closed_by_escape| is true if
ecattell 2009/04/30 19:55:37 notifying -> and notifies
Dean McNamee 2009/05/01 15:01:46 Yeah, and I don't actually even have a delegate ri
+ // the close is the result of pressing escape.
+ void Close(bool closed_by_escape);
+
+ static gboolean HandleConfigureThunk(GtkWidget* widget,
+ GdkEventConfigure* event,
+ gpointer user_data) {
+ return reinterpret_cast<InfoBubbleGtk*>(user_data)->HandleConfigure(event);
+ }
+ gboolean HandleConfigure(GdkEventConfigure* event);
+
+ static gboolean HandleButtonPressThunk(GtkWidget* widget,
+ GdkEventButton* event,
+ gpointer userdata) {
+ return reinterpret_cast<InfoBubbleGtk*>(userdata)->
+ HandleButtonPress(event);
+ }
+ gboolean HandleButtonPress(GdkEventButton* event);
+
+ static gboolean HandleButtonReleaseThunk(GtkWidget* widget,
+ GdkEventButton* event,
+ gpointer userdata) {
+ return reinterpret_cast<InfoBubbleGtk*>(userdata)->
+ HandleButtonRelease(event);
+ }
+ gboolean HandleButtonRelease(GdkEventButton* event);
+
+ // Our GtkWindow popup window.
+ GtkWidget* window_;
+
+ // Where we want our window to be positioned on the screen.
+ int screen_x_;
+ int screen_y_;
+
+ // Have we been closed?
+ bool closed_;
+
+ DISALLOW_COPY_AND_ASSIGN(InfoBubbleGtk);
+};
+
+#endif // CHROME_BROWSER_GTK_INFO_BUBBLE_GTK_H_

Powered by Google App Engine
This is Rietveld 408576698