diff options
author | Matthias Clasen <mclasen@redhat.com> | 2010-12-10 19:42:09 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-12-21 12:06:57 -0500 |
commit | ec9c97752d2f2043ad818833914760a7e443a53d (patch) | |
tree | d78b7357fc930533db464e1ec1263776b4a69033 /gdk/gdkinternals.h | |
parent | fa4b54b6de4156403f413b95bdb48ab4bd9e20a4 (diff) | |
download | gtk+-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.h | 23 |
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; |