summaryrefslogtreecommitdiff
path: root/gdk/gdkinternals.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2010-12-10 19:42:09 -0500
committerMatthias Clasen <mclasen@redhat.com>2010-12-21 12:06:57 -0500
commitec9c97752d2f2043ad818833914760a7e443a53d (patch)
treed78b7357fc930533db464e1ec1263776b4a69033 /gdk/gdkinternals.h
parentfa4b54b6de4156403f413b95bdb48ab4bd9e20a4 (diff)
downloadgtk+-ec9c97752d2f2043ad818833914760a7e443a53d.tar.gz
Work toward turning GdkDisplayManager into a backend singleton
This commit hides the GdkDisplayManager instance and class structs, adds vfuncs for listing displays, opening displays, and getting and setting the default display. The X11 backend has a derived GdkDisplayManagerX11. The gdk_display_manager_get() function is responsible for deciding on which of the compiled in backends to use. Currently, it consults the GDK_BACKEND environment variable and falls back to x11.
Diffstat (limited to 'gdk/gdkinternals.h')
-rw-r--r--gdk/gdkinternals.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index 5d1944c447..a0dfff8cae 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -269,6 +269,27 @@ struct _GdkWindow
#define GDK_WINDOW_TYPE(d) (((GDK_WINDOW (d)))->window_type)
#define GDK_WINDOW_DESTROYED(d) (GDK_WINDOW (d)->destroyed)
+struct _GdkDisplayManager
+{
+ GObject parent_instance;
+};
+
+struct _GdkDisplayManagerClass
+{
+ GObjectClass parent_class;
+
+ GSList * (*list_displays) (GdkDisplayManager *manager);
+ GdkDisplay * (*get_default_display) (GdkDisplayManager *manager);
+ void (*set_default_display) (GdkDisplayManager *manager,
+ GdkDisplay *display);
+ GdkDisplay * (*open_display) (GdkDisplayManager *manager,
+ const gchar *name);
+
+ /* signals */
+ void (*display_opened) (GdkDisplayManager *manager,
+ GdkDisplay *display);
+};
+
struct _GdkDisplayClass
{
GObjectClass parent_class;
@@ -281,6 +302,7 @@ struct _GdkDisplayClass
void (*beep) (GdkDisplay *display);
void (*sync) (GdkDisplay *display);
void (*flush) (GdkDisplay *display);
+ gboolean (*has_pending) (GdkDisplay *display);
GdkWindow * (*get_default_group) (GdkDisplay *display);
gboolean (*supports_selection_notification) (GdkDisplay *display);
gboolean (*request_selection_notification) (GdkDisplay *display,
@@ -530,7 +552,6 @@ struct _GdkDeviceManagerClass
GdkDevice * (* get_client_pointer) (GdkDeviceManager *device_manager);
};
-extern GSList *_gdk_displays;
extern gchar *_gdk_display_name;
extern gint _gdk_screen_number;
extern gchar *_gdk_display_arg_name;