summaryrefslogtreecommitdiff
path: root/tests/examples/gtk
diff options
context:
space:
mode:
authorDavid Schleef <ds@hutch-2.local>2009-04-12 20:03:30 -0700
committerMatthew Waters <ystreet00@gmail.com>2014-03-15 18:36:34 +0100
commitd164f882be9439d1e3523e4efaf133b1b75b0e10 (patch)
treef7fbad7d78c7886bc442c88e014a291c73b55c97 /tests/examples/gtk
parentbf0b1fa1abdb00f6692e69d79c8038c54274f0ac (diff)
[328/906] Convert gtk examples to use helper library
Helper lib implements gst-gtk glue on all platforms
Diffstat (limited to 'tests/examples/gtk')
-rw-r--r--tests/examples/gtk/fxtest/fxtest.c14
-rw-r--r--tests/examples/gtk/fxtest/pixbufdrop.c14
-rw-r--r--tests/examples/gtk/gstgtk.c32
3 files changed, 37 insertions, 23 deletions
diff --git a/tests/examples/gtk/fxtest/fxtest.c b/tests/examples/gtk/fxtest/fxtest.c
index a02272fa5..7242c9ba4 100644
--- a/tests/examples/gtk/fxtest/fxtest.c
+++ b/tests/examples/gtk/fxtest/fxtest.c
@@ -3,11 +3,7 @@
#include <gdk/gdk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
-#ifdef WIN32
-#include <gdk/gdkwin32.h>
-#else
-#include <gdk/gdkx.h>
-#endif
+#include "../gstgtk.h"
#include <gst/interfaces/xoverlay.h>
@@ -19,12 +15,8 @@ expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
GstXOverlay *overlay =
GST_X_OVERLAY (gst_bin_get_by_interface (GST_BIN (data),
GST_TYPE_X_OVERLAY));
-#ifdef WIN32
- gst_x_overlay_set_xwindow_id (overlay,
- (gulong) GDK_WINDOW_HWND (widget->window));
-#else
- gst_x_overlay_set_xwindow_id (overlay, GDK_WINDOW_XWINDOW (widget->window));
-#endif
+
+ gst_x_overlay_set_gtk_window (overlay, widget);
return FALSE;
}
diff --git a/tests/examples/gtk/fxtest/pixbufdrop.c b/tests/examples/gtk/fxtest/pixbufdrop.c
index 4dba23c36..9ebe166c4 100644
--- a/tests/examples/gtk/fxtest/pixbufdrop.c
+++ b/tests/examples/gtk/fxtest/pixbufdrop.c
@@ -3,11 +3,7 @@
#include <gdk/gdk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
-#ifdef WIN32
-#include <gdk/gdkwin32.h>
-#else
-#include <gdk/gdkx.h>
-#endif
+#include "../gstgtk.h"
#include <gst/interfaces/xoverlay.h>
@@ -33,13 +29,7 @@ create_window (GstBus * bus, GstMessage * message, GtkWidget * widget)
if (!gst_structure_has_name (message->structure, "prepare-xwindow-id"))
return GST_BUS_PASS;
-#ifdef WIN32
- gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (GST_MESSAGE_SRC (message)),
- (gulong) GDK_WINDOW_HWND (widget->window));
-#else
- gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (GST_MESSAGE_SRC (message)),
- GDK_WINDOW_XWINDOW (widget->window));
-#endif
+ gst_x_overlay_set_gtk_window (GST_X_OVERLAY (GST_MESSAGE_SRC (message)), widget);
gst_message_unref (message);
diff --git a/tests/examples/gtk/gstgtk.c b/tests/examples/gtk/gstgtk.c
new file mode 100644
index 000000000..3685c8771
--- /dev/null
+++ b/tests/examples/gtk/gstgtk.c
@@ -0,0 +1,32 @@
+
+#include "gstgtk.h"
+
+#if defined(GDK_WINDOWING_WIN32)
+#include <gdk/gdkwin32.h>
+#elif defined(GDK_WINDOWING_X11)
+#include <gdk/gdkx.h>
+#elif defined(GDK_WINDOWING_QUARTZ)
+#include <gdk/gdkquartz.h>
+#else
+#error unimplemented GTK backend
+#endif
+
+
+void
+gst_x_overlay_set_gtk_window (GstXOverlay *xoverlay, GtkWidget *window)
+{
+
+#if defined(GDK_WINDOWING_WIN32)
+ gst_x_overlay_set_xwindow_id (xoverlay, (gulong)GDK_WINDOW_HWND(window->window));
+#elif defined(GDK_WINDOWING_QUARTZ)
+ gst_x_overlay_set_xwindow_id (xoverlay,
+ (gulong)gdk_quartz_window_get_nswindow (window->window));
+#elif defined(GDK_WINDOWING_X11)
+ gst_x_overlay_set_xwindow_id (xoverlay, GDK_WINDOW_XWINDOW(window->window));
+#else
+#error unimplemented GTK backend
+#endif
+
+}
+
+