[gtk+] gdk: Refactor function
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gdk: Refactor function
- Date: Fri, 19 Apr 2013 20:26:41 +0000 (UTC)
commit 1fa29835a7b77aa3be0faaa638cdaab7328f2822
Author: Benjamin Otte <otte redhat com>
Date: Tue Apr 16 17:29:05 2013 +0200
gdk: Refactor function
Split out a GdkBackend type and iterate over it.
gdk/gdkdisplaymanager.c | 92 ++++++++++++++++++++-----------------------------
1 file changed, 38 insertions(+), 54 deletions(-)
---
diff --git a/gdk/gdkdisplaymanager.c b/gdk/gdkdisplaymanager.c
index 7ec4078..95ac309 100644
--- a/gdk/gdkdisplaymanager.c
+++ b/gdk/gdkdisplaymanager.c
@@ -296,6 +296,33 @@ gdk_display_manager_get (void)
return manager;
}
+typedef struct _GdkBackend GdkBackend;
+
+struct _GdkBackend {
+ const char *name;
+ GType (* get_backend_type) (void);
+};
+
+GdkBackend gdk_backends[] = {
+#ifdef GDK_WINDOWING_QUARTZ
+ { "quartz", gdk_quartz_display_manager_get_type },
+#endif
+#ifdef GDK_WINDOWING_WIN32
+ { "win32", gdk_quartz_display_manager_get_type },
+#endif
+#ifdef GDK_WINDOWING_X11
+ { "x11", gdk_x11_display_manager_get_type },
+#endif
+#ifdef GDK_WINDOWING_WAYLAND
+ { "wayland", gdk_wayland_display_manager_get_type },
+#endif
+#ifdef GDK_WINDOWING_BROADWAY
+ { "broadway", gdk_broadway_display_manager_get_type },
+#endif
+ /* NULL-terminating this array so we can use commas above */
+ { NULL, NULL }
+};
+
/**
* gdk_display_manager_peek:
*
@@ -315,7 +342,7 @@ gdk_display_manager_peek (void)
{
const gchar *backend_list;
gchar **backends;
- gint i;
+ gint i, j;
gboolean allow_any;
if (allowed_backends == NULL)
@@ -335,61 +362,18 @@ gdk_display_manager_peek (void)
if (!allow_any && !any && !strstr (allowed_backends, backend))
continue;
-#ifdef GDK_WINDOWING_QUARTZ
- if ((any && allow_any) ||
- (any && strstr (allowed_backends, "quartz")) ||
- g_str_equal (backend, "quartz"))
+ for (j = 0; gdk_backends[j].name != NULL; j++)
{
- GDK_NOTE (MISC, g_message ("Trying quartz backend"));
- manager = g_initable_new (gdk_quartz_display_manager_get_type (), NULL, NULL, NULL);
- if (manager)
- break;
+ if ((any && allow_any) ||
+ (any && strstr (allowed_backends, gdk_backends[j].name)) ||
+ g_str_equal (backend, gdk_backends[j].name))
+ {
+ GDK_NOTE (MISC, g_message ("Trying %s backend", gdk_backends[j].name));
+ manager = g_initable_new (gdk_backends[j].get_backend_type (), NULL, NULL, NULL);
+ if (manager)
+ break;
+ }
}
-#endif
-#ifdef GDK_WINDOWING_WIN32
- if ((any && allow_any) ||
- (any && strstr (allowed_backends, "win32")) ||
- g_str_equal (backend, "win32"))
- {
- GDK_NOTE (MISC, g_message ("Trying win32 backend"));
- manager = g_initable_new (gdk_win32_display_manager_get_type (), NULL, NULL, NULL);
- if (manager)
- break;
- }
-#endif
-#ifdef GDK_WINDOWING_X11
- if ((any && allow_any) ||
- (any && strstr (allowed_backends, "x11")) ||
- g_str_equal (backend, "x11"))
- {
- GDK_NOTE (MISC, g_message ("Trying x11 backend"));
- manager = g_initable_new (gdk_x11_display_manager_get_type (), NULL, NULL, NULL);
- if (manager)
- break;
- }
-#endif
-#ifdef GDK_WINDOWING_WAYLAND
- if ((any && allow_any) ||
- (any && strstr (allowed_backends, "wayland")) ||
- g_str_equal (backend, "wayland"))
- {
- GDK_NOTE (MISC, g_message ("Trying wayland backend"));
- manager = g_initable_new (gdk_wayland_display_manager_get_type (), NULL, NULL, NULL);
- if (manager)
- break;
- }
-#endif
-#ifdef GDK_WINDOWING_BROADWAY
- if ((any && allow_any) ||
- (any && strstr (allowed_backends, "broadway")) ||
- g_str_equal (backend, "broadway"))
- {
- GDK_NOTE (MISC, g_message ("Trying broadway backend"));
- manager = g_initable_new (gdk_broadway_display_manager_get_type (), NULL, NULL, NULL);
- if (manager)
- break;
- }
-#endif
}
g_strfreev (backends);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]