diff options
author | David Schleef <ds@hutch-2.local> | 2009-04-12 20:03:30 -0700 |
---|---|---|
committer | Matthew Waters <ystreet00@gmail.com> | 2014-03-15 18:36:34 +0100 |
commit | d164f882be9439d1e3523e4efaf133b1b75b0e10 (patch) | |
tree | f7fbad7d78c7886bc442c88e014a291c73b55c97 /tests/examples/gtk | |
parent | bf0b1fa1abdb00f6692e69d79c8038c54274f0ac (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.c | 14 | ||||
-rw-r--r-- | tests/examples/gtk/fxtest/pixbufdrop.c | 14 | ||||
-rw-r--r-- | tests/examples/gtk/gstgtk.c | 32 |
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 + +} + + |