tests: Port from libglade to GtkBuilder
authorJavier Jardón <jjardon@gnome.org>
Sat, 16 Jan 2010 05:57:26 +0000 (06:57 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 16 Jan 2010 10:14:55 +0000 (11:14 +0100)
Fixes bug #601108.

configure.ac
gst-plugins-bad.spec.in
po/POTFILES.skip
tests/examples/camerabin/Makefile.am
tests/examples/camerabin/gst-camera-perf.glade [deleted file]
tests/examples/camerabin/gst-camera-perf.ui [new file with mode: 0644]
tests/examples/camerabin/gst-camera.c
tests/examples/camerabin/gst-camera.ui [moved from tests/examples/camerabin/gst-camera.glade with 71% similarity]
tests/icles/Makefile.am
tests/icles/metadata_editor.c
tests/icles/metadata_editor.ui [moved from tests/icles/metadata_editor.glade with 79% similarity]

index d78d579..b469d42 100644 (file)
@@ -207,14 +207,6 @@ HAVE_GTK=NO
 PKG_CHECK_MODULES(GTK, gtk+-x11-2.0 >= 2.8.0, HAVE_GTK=yes, HAVE_GTK=no)
 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
 
-dnl libglade is optional and only used in examples
-HAVE_GLADE=NO
-PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.6.0, HAVE_GLADE=yes, HAVE_GLADE=no)
-AC_SUBST(GLADE_LIBS)
-AC_SUBST(GLADE_CFLAGS)
-AC_SUBST(HAVE_GLADE)
-AM_CONDITIONAL(HAVE_GLADE, test "x$HAVE_GLADE" = "xyes")
-
 dnl x11 is optional for librfb
 HAVE_X11=NO
 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
index 48f3b50..7ee26f6 100644 (file)
@@ -135,7 +135,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstbasevideoencoder.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstbasevideoparse.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstbasevideoutils.h
-%{_datadir}/gstreamer-%{majorminor}/camera-apps/gst-camera.glade
+%{_datadir}/gstreamer-%{majorminor}/camera-apps/gst-camera.ui
 %{_includedir}/gstreamer-%{majorminor}/gst/signalprocessor/gstsignalprocessor.h
 
 %{_includedir}/gstreamer-%{majorminor}/gst/interfaces/photography-enumtypes.h
index 8e9ebe0..fd9ae86 100644 (file)
@@ -3,5 +3,4 @@ ext/audiofile/gstafsrc.c
 sys/dxr3/dxr3audiosink.c
 sys/dxr3/dxr3spusink.c
 sys/dxr3/dxr3videosink.c
-tests/icles/metadata_editor.glade
-
+tests/icles/metadata_editor.ui
index df88cf1..c13ad8f 100644 (file)
@@ -1,6 +1,5 @@
-GST_CAMERABIN_GLADE_FILES = gst-camera.glade
+GST_CAMERABIN_UI_FILES = gst-camera.ui
 
-if HAVE_GLADE
 if HAVE_GTK
 
 GST_CAMERABIN_GTK_EXAMPLES = gst-camera
@@ -8,26 +7,22 @@ GST_CAMERABIN_GTK_EXAMPLES = gst-camera
 gst_camera_SOURCES = gst-camera.c
 gst_camera_CFLAGS  = \
         -I$(top_builddir)/gst-libs \
-        $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(GLADE_CFLAGS) \
+        $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
         -DGST_USE_UNSTABLE_API
 gst_camera_LDADD   = \
         $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \
         $(GST_PLUGINS_BASE_LIBS) \
         -lgstinterfaces-@GST_MAJORMINOR@ \
-        $(GST_LIBS) \
-        $(GLADE_LIBS) 
+        $(GST_LIBS)
 
-gladedir = $(datadir)/gstreamer-@GST_MAJORMINOR@/camera-apps
-glade_DATA = $(GST_CAMERABIN_GLADE_FILES)
+uidir = $(datadir)/gstreamer-@GST_MAJORMINOR@/camera-apps
+ui_DATA = $(GST_CAMERABIN_UI_FILES)
 
-INCLUDES = -DCAMERA_APPS_GLADEDIR=\""$(gladedir)"\" 
+INCLUDES = -DCAMERA_APPS_UIDIR=\""$(uidir)"\"
 
 else
 GST_CAMERABIN_GTK_EXAMPLES =
 endif
-else
-GST_CAMERABIN_GTK_EXAMPLES =
-endif
 
 gst_camera_perf_SOURCES = gst-camera-perf.c
 gst_camera_perf_CFLAGS  = $(GST_CFLAGS)
@@ -35,5 +30,5 @@ gst_camera_perf_LDADD = $(GST_LIBS)
 
 bin_PROGRAMS = gst-camera-perf $(GST_CAMERABIN_GTK_EXAMPLES)
 
-EXTRA_DIST = $(GST_CAMERABIN_GLADE_FILES)
+EXTRA_DIST = $(GST_CAMERABIN_UI_FILES)
 
diff --git a/tests/examples/camerabin/gst-camera-perf.glade b/tests/examples/camerabin/gst-camera-perf.glade
deleted file mode 100644 (file)
index fe6098e..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="wndMain">
-  <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-  <property name="title" translatable="yes"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">400</property>
-  <property name="default_height">600</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="delete_event" handler="on_wndMain_delete_event"/>
-
-  <child>
-    <widget class="GtkVPaned" id="vpnMain">
-      <property name="visible">True</property>
-      <property name="can_focus">True</property>
-      <property name="position">200</property>
-
-      <child>
-       <widget class="GtkDrawingArea" id="daMain">
-         <property name="height_request">100</property>
-         <property name="visible">True</property>
-         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-       </widget>
-       <packing>
-         <property name="shrink">True</property>
-         <property name="resize">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="vboxMain">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="btnStart">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">start</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_btnStart_clicked"/>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkScrolledWindow" id="scrwndMain">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-             <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-             <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-             <property name="shadow_type">GTK_SHADOW_NONE</property>
-             <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-             <child>
-               <widget class="GtkViewport" id="vpMain">
-                 <property name="visible">True</property>
-                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                 <property name="shadow_type">GTK_SHADOW_IN</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="lbMain">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">== Please wait few seconds after press start ==</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">True</property>
-                     <property name="selectable">True</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="shrink">True</property>
-         <property name="resize">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/tests/examples/camerabin/gst-camera-perf.ui b/tests/examples/camerabin/gst-camera-perf.ui
new file mode 100644 (file)
index 0000000..9a3885a
--- /dev/null
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<interface>
+  <!-- interface-requires gtk+ 2.8 -->
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkWindow" id="wndMain">
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="default_width">400</property>
+    <property name="default_height">600</property>
+    <signal name="delete_event" handler="on_wndMain_delete_event"/>
+    <child>
+      <object class="GtkVPaned" id="vpnMain">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="position">200</property>
+        <child>
+          <object class="GtkDrawingArea" id="daMain">
+            <property name="height_request">100</property>
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+          </object>
+          <packing>
+            <property name="resize">False</property>
+            <property name="shrink">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vboxMain">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkButton" id="btnStart">
+                <property name="label" translatable="yes">start</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="on_btnStart_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrwndMain">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">never</property>
+                <property name="vscrollbar_policy">automatic</property>
+                <child>
+                  <object class="GtkViewport" id="vpMain">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <child>
+                      <object class="GtkLabel" id="lbMain">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="yalign">0</property>
+                        <property name="label" translatable="yes">== Please wait few seconds after press start ==</property>
+                        <property name="use_markup">True</property>
+                        <property name="wrap">True</property>
+                        <property name="selectable">True</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="resize">True</property>
+            <property name="shrink">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
index ae47356..adc04d0 100644 (file)
@@ -33,7 +33,6 @@
 #include <gst/interfaces/xoverlay.h>
 #include <gst/interfaces/colorbalance.h>
 #include <gst/interfaces/photography.h>
-#include <glade/glade-xml.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkx.h>
 #include <gdk/gdkkeysyms.h>
@@ -56,8 +55,8 @@
 
 #define PREVIEW_TIME_MS (2 * 1000)
 #define N_BURST_IMAGES 10
-#define DEFAULT_GLADE_FILE "gst-camera.glade"
-#define SHARED_GLADE_FILE CAMERA_APPS_GLADEDIR"/"DEFAULT_GLADE_FILE
+#define DEFAULT_UI_FILE "gst-camera.ui"
+#define SHARED_UI_FILE CAMERA_APPS_UIDIR"/"DEFAULT_UI_FILE
 
 /* Names of default elements */
 #define CAMERA_APP_VIDEOSRC "v4l2src"
@@ -95,7 +94,7 @@ typedef enum _tag_CaptureState
  * Global Vars
  */
 
-static GladeXML *ui_glade_xml = NULL;
+static GtkBuilder *builder = NULL;
 static GtkWidget *ui_main_window = NULL;
 static GtkWidget *ui_drawing = NULL;
 static GtkWidget *ui_drawing_frame = NULL;
@@ -1087,62 +1086,7 @@ on_key_pressed (GtkWidget * widget, GdkEventKey * event, gpointer user_data)
 static void
 ui_connect_signals (void)
 {
-  glade_xml_signal_connect (ui_glade_xml, "on_windowMain_delete_event",
-      (GCallback) on_windowMain_delete_event);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_buttonShot_clicked",
-      (GCallback) on_buttonShot_clicked);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_buttonPause_clicked",
-      (GCallback) on_buttonPause_clicked);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_drawingareaView_configure_event",
-      (GCallback) on_drawingareaView_configure_event);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_comboboxResolution_changed",
-      (GCallback) on_comboboxResolution_changed);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_radiobuttonImageCapture_toggled",
-      (GCallback) on_radiobuttonImageCapture_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_radiobuttonVideoCapture_toggled",
-      (GCallback) on_radiobuttonVideoCapture_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffNone_toggled",
-      (GCallback) on_rbBntVidEffNone_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffEdge_toggled",
-      (GCallback) on_rbBntVidEffEdge_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffAging_toggled",
-      (GCallback) on_rbBntVidEffAging_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffDice_toggled",
-      (GCallback) on_rbBntVidEffDice_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffWarp_toggled",
-      (GCallback) on_rbBntVidEffWarp_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffShagadelic_toggled",
-      (GCallback) on_rbBntVidEffShagadelic_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffVertigo_toggled",
-      (GCallback) on_rbBntVidEffVertigo_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffRev_toggled",
-      (GCallback) on_rbBntVidEffRev_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_rbBntVidEffQuark_toggled",
-      (GCallback) on_rbBntVidEffQuark_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_chkbntMute_toggled",
-      (GCallback) on_chkbntMute_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_chkbtnRawMsg_toggled",
-      (GCallback) on_chkbtnRawMsg_toggled);
-
-  glade_xml_signal_connect (ui_glade_xml, "on_hscaleZoom_value_changed",
-      (GCallback) on_hscaleZoom_value_changed);
+  gtk_builder_connect_signals (builder, NULL);
 
   g_signal_connect (ui_main_window, "key-press-event",
       (GCallback) on_key_pressed, NULL);
@@ -1674,40 +1618,43 @@ fill_capture_menu (GtkMenuItem * parent_item)
 static gboolean
 ui_create (void)
 {
-  gchar *gladefile = DEFAULT_GLADE_FILE;
+  GError *error = NULL;
+  gchar *uifile = DEFAULT_UI_FILE;
 
-  if (!g_file_test (gladefile, G_FILE_TEST_EXISTS)) {
-    gladefile = SHARED_GLADE_FILE;
+  if (!g_file_test (uifile, G_FILE_TEST_EXISTS)) {
+    uifile = SHARED_UI_FILE;
   }
 
-  ui_glade_xml = glade_xml_new (gladefile, NULL, NULL);
-  if (!ui_glade_xml) {
-    fprintf (stderr, "glade_xml_new failed for %s\n", gladefile);
-    fflush (stderr);
+  builder = gtk_builder_new ();
+  if (!gtk_builder_add_from_file (builder, uifile, &error)) {
+    g_warning ("Couldn't load builder file: %s", error->message);
+    g_error_free (error);
     goto done;
   }
 
-  ui_main_window = glade_xml_get_widget (ui_glade_xml, "windowMain");
-  ui_drawing = glade_xml_get_widget (ui_glade_xml, "drawingareaView");
-  ui_drawing_frame = glade_xml_get_widget (ui_glade_xml, "drawingareaFrame");
-  ui_chk_continous = glade_xml_get_widget (ui_glade_xml, "chkbntContinous");
-  ui_chk_rawmsg = glade_xml_get_widget (ui_glade_xml, "chkbtnRawMsg");
-  ui_bnt_shot = GTK_BUTTON (glade_xml_get_widget (ui_glade_xml, "buttonShot"));
-  ui_bnt_pause =
-      GTK_BUTTON (glade_xml_get_widget (ui_glade_xml, "buttonPause"));
+  ui_main_window = GTK_WIDGET (gtk_builder_get_object (builder, "windowMain"));
+  ui_drawing = GTK_WIDGET (gtk_builder_get_object (builder, "drawingareaView"));
+  ui_drawing_frame =
+      GTK_WIDGET (gtk_builder_get_object (builder, "drawingareaFrame"));
+  ui_chk_continous =
+      GTK_WIDGET (gtk_builder_get_object (builder, "chkbntContinous"));
+  ui_chk_rawmsg = GTK_WIDGET (gtk_builder_get_object (builder, "chkbtnRawMsg"));
+  ui_bnt_shot = GTK_BUTTON (gtk_builder_get_object (builder, "buttonShot"));
+  ui_bnt_pause = GTK_BUTTON (gtk_builder_get_object (builder, "buttonPause"));
   ui_cbbox_resolution =
-      GTK_COMBO_BOX (glade_xml_get_widget (ui_glade_xml, "comboboxResolution"));
-  ui_chk_mute = glade_xml_get_widget (ui_glade_xml, "chkbntMute");
-  ui_vbox_color_controls = glade_xml_get_widget (ui_glade_xml,
-      "vboxColorControls");
-  ui_rdbntImageCapture = glade_xml_get_widget (ui_glade_xml,
-      "radiobuttonImageCapture");
-  ui_rdbntVideoCapture = glade_xml_get_widget (ui_glade_xml,
-      "radiobuttonVideoCapture");
-
-  ui_menuitem_photography = glade_xml_get_widget (ui_glade_xml,
-      "menuitemPhotography");
-  ui_menuitem_capture = glade_xml_get_widget (ui_glade_xml, "menuitemCapture");
+      GTK_COMBO_BOX (gtk_builder_get_object (builder, "comboboxResolution"));
+  ui_chk_mute = GTK_WIDGET (gtk_builder_get_object (builder, "chkbntMute"));
+  ui_vbox_color_controls =
+      GTK_WIDGET (gtk_builder_get_object (builder, "vboxColorControls"));
+  ui_rdbntImageCapture =
+      GTK_WIDGET (gtk_builder_get_object (builder, "radiobuttonImageCapture"));
+  ui_rdbntVideoCapture =
+      GTK_WIDGET (gtk_builder_get_object (builder, "radiobuttonVideoCapture"));
+  ui_menuitem_photography =
+      GTK_WIDGET (gtk_builder_get_object (builder, "menuitemPhotography"));
+  ui_menuitem_capture =
+      GTK_WIDGET (gtk_builder_get_object (builder, "menuitemCapture"));
+
 #ifdef HAVE_GST_PHOTO_IFACE_H
   if (ui_menuitem_photography) {
     fill_photography_menu (GTK_MENU_ITEM (ui_menuitem_photography));
similarity index 71%
rename from tests/examples/camerabin/gst-camera.glade
rename to tests/examples/camerabin/gst-camera.ui
index 5230c83..c93616c 100644 (file)
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkWindow" id="windowMain">
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkWindow" id="windowMain">
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     <property name="title" translatable="yes">gst-camera</property>
     <signal name="delete_event" handler="on_windowMain_delete_event"/>
     <child>
-      <widget class="GtkVBox" id="vboxMain">
+      <object class="GtkVBox" id="vboxMain">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkHBox" id="hbox2">
+          <object class="GtkHBox" id="hbox2">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkMenuBar" id="menubar1">
+              <object class="GtkMenuBar" id="menubar1">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GtkMenuItem" id="menuitemPhotography">
+                  <object class="GtkMenuItem" id="menuitemPhotography">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Photography</property>
                     <property name="use_underline">True</property>
-                    <child>
-                      <widget class="GtkMenu" id="menu1">
+                    <child type="submenu">
+                      <object class="GtkMenu" id="menu1">
                         <property name="visible">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
                 <child>
-                  <widget class="GtkMenuItem" id="menuitemCapture">
+                  <object class="GtkMenuItem" id="menuitemCapture">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Capture</property>
                     <property name="use_underline">True</property>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
+                <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="comboboxResolution">
+              <object class="GtkComboBox" id="comboboxResolution">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes"></property>
+                <property name="model">liststore1</property>
                 <signal name="changed" handler="on_comboboxResolution_changed"/>
-              </widget>
+                <child>
+                  <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
+            <property name="position">0</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="hboxMode">
+          <object class="GtkHBox" id="hboxMode">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkRadioButton" id="radiobuttonImageCapture">
+              <object class="GtkRadioButton" id="radiobuttonImageCapture">
+                <property name="label" translatable="yes">Image capture</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="label" translatable="yes">Image capture</property>
+                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <property name="active">True</property>
                 <property name="draw_indicator">True</property>
                 <signal name="toggled" handler="on_radiobuttonImageCapture_toggled"/>
-              </widget>
+              </object>
+              <packing>
+                <property name="position">0</property>
+              </packing>
             </child>
             <child>
-              <widget class="GtkRadioButton" id="radiobuttonVideoCapture">
+              <object class="GtkRadioButton" id="radiobuttonVideoCapture">
+                <property name="label" translatable="yes">Video rec</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="label" translatable="yes">Video rec</property>
+                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <property name="active">True</property>
                 <property name="draw_indicator">True</property>
                 <property name="group">radiobuttonImageCapture</property>
                 <signal name="toggled" handler="on_radiobuttonVideoCapture_toggled"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="buttonShot">
+              <object class="GtkButton" id="buttonShot">
+                <property name="label" translatable="yes">Shot</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="label" translatable="yes">Shot</property>
+                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <signal name="clicked" handler="on_buttonShot_clicked"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="buttonPause">
+              <object class="GtkButton" id="buttonPause">
+                <property name="label" translatable="yes">Pause</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="label" translatable="yes">Pause</property>
+                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <signal name="clicked" handler="on_buttonPause_clicked"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">3</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="chkbntMute">
+              <object class="GtkCheckButton" id="chkbntMute">
+                <property name="label" translatable="yes">mute</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="label" translatable="yes">mute</property>
+                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <property name="draw_indicator">True</property>
                 <signal name="toggled" handler="on_chkbntMute_toggled"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">4</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="chkbntContinous">
+              <object class="GtkCheckButton" id="chkbntContinous">
+                <property name="label" translatable="yes">continous</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="label" translatable="yes">continous</property>
+                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">5</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="chkbtnRawMsg">
+              <object class="GtkCheckButton" id="chkbtnRawMsg">
+                <property name="label" translatable="yes">raw msg</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Send raw image after still image capture as gstreamer message</property>
-                <property name="label" translatable="yes">raw msg</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes">Send raw image after still image capture as gstreamer message</property>
                 <property name="use_underline">True</property>
-                <property name="response_id">0</property>
                 <property name="draw_indicator">True</property>
                 <signal name="toggled" handler="on_chkbtnRawMsg_toggled"/>
-              </widget>
+              </object>
               <packing>
                 <property name="position">6</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkTable" id="tableOptions">
+          <object class="GtkTable" id="tableOptions">
             <property name="visible">True</property>
-            <property name="n_rows">1</property>
             <property name="n_columns">3</property>
             <child>
-              <widget class="GtkVBox" id="vboxVidEffect">
+              <object class="GtkVBox" id="vboxVidEffect">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GtkLabel" id="labelVidEff">
+                  <object class="GtkLabel" id="labelVidEff">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">video effects:</property>
-                  </widget>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffNone">
+                  <object class="GtkRadioButton" id="rbBntVidEffNone">
+                    <property name="label" translatable="yes">none</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">none</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <signal name="toggled" handler="on_rbBntVidEffNone_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffEdge">
+                  <object class="GtkRadioButton" id="rbBntVidEffEdge">
+                    <property name="label" translatable="yes">edged</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">edged</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffEdge_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">2</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffAging">
+                  <object class="GtkRadioButton" id="rbBntVidEffAging">
+                    <property name="label" translatable="yes">aging</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">aging</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffAging_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">3</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffDice">
+                  <object class="GtkRadioButton" id="rbBntVidEffDice">
+                    <property name="label" translatable="yes">dice</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">dice</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffDice_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">4</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffWarp">
+                  <object class="GtkRadioButton" id="rbBntVidEffWarp">
+                    <property name="label" translatable="yes">warp</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">warp</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffWarp_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">5</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffShaga">
+                  <object class="GtkRadioButton" id="rbBntVidEffShaga">
+                    <property name="label" translatable="yes">shagadelic</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">shagadelic</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffShagadelic_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">6</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffVertigo">
+                  <object class="GtkRadioButton" id="rbBntVidEffVertigo">
+                    <property name="label" translatable="yes">vertigo</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">vertigo</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffVertigo_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">7</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffRev">
+                  <object class="GtkRadioButton" id="rbBntVidEffRev">
+                    <property name="label" translatable="yes">rev</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">rev</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffRev_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">8</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkRadioButton" id="rbBntVidEffQuark">
+                  <object class="GtkRadioButton" id="rbBntVidEffQuark">
+                    <property name="label" translatable="yes">quark</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label" translatable="yes">quark</property>
+                    <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
                     <property name="group">rbBntVidEffNone</property>
                     <signal name="toggled" handler="on_rbBntVidEffQuark_toggled"/>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">9</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkScrolledWindow" id="scrlWndColorControls">
+              <object class="GtkScrolledWindow" id="scrlWndColorControls">
                 <property name="width_request">200</property>
                 <property name="height_request">200</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="hscrollbar_policy">automatic</property>
+                <property name="vscrollbar_policy">automatic</property>
                 <child>
-                  <widget class="GtkViewport" id="viewportColorControls">
+                  <object class="GtkViewport" id="viewportColorControls">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <child>
-                      <widget class="GtkVBox" id="vboxColorControls">
+                      <object class="GtkVBox" id="vboxColorControls">
                         <property name="visible">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">2</property>
                 <property name="right_attach">3</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkAspectFrame" id="drawingareaFrame">
+              <object class="GtkAspectFrame" id="drawingareaFrame">
                 <property name="visible">True</property>
                 <property name="label_xalign">0</property>
-                <property name="shadow_type">GTK_SHADOW_NONE</property>
-                <property name="ratio">1</property>
+                <property name="shadow_type">none</property>
                 <property name="obey_child">False</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment1">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkDrawingArea" id="drawingareaView">
+                      <object class="GtkDrawingArea" id="drawingareaView">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <signal name="configure_event" handler="on_drawingareaView_configure_event"/>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">2</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkHScale" id="hscaleZoom">
+          <object class="GtkHScale" id="hscaleZoom">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="adjustment">100 100 1100 10 100 100</property>
+            <property name="adjustment">adjustment1</property>
             <property name="digits">0</property>
-            <property name="value_pos">GTK_POS_LEFT</property>
+            <property name="value_pos">left</property>
             <signal name="value_changed" handler="on_hscaleZoom_value_changed"/>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">3</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">100</property>
+    <property name="upper">1100</property>
+    <property name="value">100</property>
+    <property name="step_increment">10</property>
+    <property name="page_increment">100</property>
+    <property name="page_size">100</property>
+  </object>
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <!-- column-name item text -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
+</interface>
index 28f540d..437a82f 100644 (file)
@@ -19,20 +19,15 @@ endif
 
 
 if USE_METADATA
-if HAVE_GLADE
 if HAVE_GTK
 
 GST_METADATA_TESTS = metadata_editor
 
 metadata_editor_SOURCES = metadata_editor.c
 metadata_editor_CFLAGS  = \
-       $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(GLADE_CFLAGS)
+       $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 metadata_editor_LDADD   = \
-       $(GST_PLUGINS_BASE_LIBS) -lgstinterfaces-0.10 $(GST_LIBS) \
-       $(GLADE_LIBS)
-else
-GST_METADATA_TESTS =
-endif
+       $(GST_PLUGINS_BASE_LIBS) -lgstinterfaces-0.10 $(GST_LIBS)
 else
 GST_METADATA_TESTS =
 endif
index 155d586..81eda97 100644 (file)
@@ -47,7 +47,6 @@
 #include <unistd.h>
 
 #include <gst/gst.h>
-#include <glade/glade-xml.h>
 #include <gtk/gtk.h>
 
 /*
@@ -119,7 +118,7 @@ AppOptions app_options = APP_OPT_ALL;
 
 GstTagList *tag_list = NULL;
 
-GladeXML *ui_glade_xml = NULL;
+GtkBuilder *builder = NULL;
 GtkWidget *ui_main_window = NULL;
 GtkWidget *ui_drawing = NULL;
 GtkWidget *ui_tree = NULL;
@@ -311,7 +310,7 @@ ui_drawing_size_allocate_cb (GtkWidget * drawing_area,
 }
 
 /*
- * UI handling functions (mapped by glade)
+ * UI handling functions (mapped by GtkBuilder)
  */
 
 gboolean
@@ -741,90 +740,39 @@ ui_refresh ()
 }
 
 static int
-ui_connect_signals()
-{
-
-  glade_xml_signal_connect(ui_glade_xml, "on_checkbuttonCaptureV4l2_toggled",
-      (GCallback)on_checkbuttonCaptureV4l2_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml, "on_checkbuttonCaptureTest_toggled",
-      (GCallback)on_checkbuttonCaptureTest_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml,
-      "on_checkbuttonOptionsDemuxExif_toggled",
-      (GCallback) on_checkbuttonOptionsDemuxExif_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml,
-      "on_checkbuttonOptionsDemuxIptc_toggled",
-      (GCallback) on_checkbuttonOptionsDemuxIptc_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml,
-      "on_checkbuttonOptionsDemuxXmp_toggled",
-      (GCallback) on_checkbuttonOptionsDemuxXmp_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml,
-      "on_checkbuttonOptionsMuxExif_toggled",
-      (GCallback) on_checkbuttonOptionsMuxExif_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml,
-      "on_checkbuttonOptionsMuxIptc_toggled",
-      (GCallback) on_checkbuttonOptionsMuxIptc_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml,
-      "on_checkbuttonOptionsMuxXmp_toggled",
-      (GCallback) on_checkbuttonOptionsMuxXmp_toggled);
-
-  glade_xml_signal_connect(ui_glade_xml, "on_buttonSaveFile_clicked",
-      (GCallback)on_buttonSaveFile_clicked);
-
-  glade_xml_signal_connect(ui_glade_xml, "on_windowMain_delete_event",
-      (GCallback)on_windowMain_delete_event);
-
-  glade_xml_signal_connect(ui_glade_xml, "on_drawingMain_expose_event",
-      (GCallback)on_drawingMain_expose_event);
-
-  glade_xml_signal_connect(ui_glade_xml, "on_buttonInsert_clicked",
-      (GCallback)on_buttonInsert_clicked);
-
-  glade_xml_signal_connect(ui_glade_xml, "on_buttonOpenFile_clicked",
-      (GCallback)on_buttonOpenFile_clicked);
-
-  return 0;
-
-}
-
-static int
 ui_create ()
 {
+  Gerror *error = NULL;
   int ret = 0;
 
-  ui_glade_xml = glade_xml_new ("metadata_editor.glade", NULL, NULL);
-
-  if (!ui_glade_xml) {
-    fprintf (stderr, "glade_xml_new failed\n");
+  builder = gtk_builder_new ();
+  if (!gtk_builder_add_from_file (builder, "metadata_editor.ui", &error))
+  {
+    g_warning ("Couldn't load builder file: %s", error->message);
+    g_error_free (error);
     ret = -101;
     goto done;
   }
 
-  ui_main_window = glade_xml_get_widget (ui_glade_xml, "windowMain");
+  ui_main_window = GTK_WIDGET (gtk_builder_get_object (builder, "windowMain"));
 
-  ui_drawing = glade_xml_get_widget (ui_glade_xml, "drawingMain");
+  ui_drawing = GTK_WIDGET (gtk_builder_get_object (builder, "drawingMain"));
 
-  ui_tree = glade_xml_get_widget (ui_glade_xml, "treeMain");
+  ui_tree = GTK_WIDGET (gtk_builder_get_object (builder, "treeMain"));
 
   ui_entry_insert_tag =
-      GTK_ENTRY (glade_xml_get_widget (ui_glade_xml, "entryTag"));
+          GTK_ENTRY (gtk_builder_get_object (builder, "entryTag"));
 
   ui_entry_insert_value =
-      GTK_ENTRY (glade_xml_get_widget (ui_glade_xml, "entryValue"));
+          GTK_ENTRY (gtk_builder_get_object (builder, "entryValue"));
 
   ui_chk_bnt_capture_v4l2 =
-      GTK_TOGGLE_BUTTON (glade_xml_get_widget (ui_glade_xml,
-          "checkbuttonCaptureV4l2"));
+          GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
+                                                     "checkbuttonCaptureV4l2"));
 
   ui_chk_bnt_capture_test =
-      GTK_TOGGLE_BUTTON (glade_xml_get_widget (ui_glade_xml,
-          "checkbuttonCaptureTest"));
+          GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
+                                                     "checkbuttonCaptureTest"));
 
   if (!(ui_main_window && ui_drawing && ui_tree
           && ui_entry_insert_tag && ui_entry_insert_value
@@ -837,7 +785,7 @@ ui_create ()
   g_signal_connect_after (ui_drawing, "size-allocate",
       G_CALLBACK (ui_drawing_size_allocate_cb), NULL);
 
-  ui_connect_signals();
+  gtk_builder_connect_signals (builder, NULL);
 
   ui_setup_tree_view (GTK_TREE_VIEW (ui_tree));
 
similarity index 79%
rename from tests/icles/metadata_editor.glade
rename to tests/icles/metadata_editor.ui
index 91aac53..3cbe076 100644 (file)
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.0 on Thu Feb  7 14:44:35 2008 -->
-<glade-interface>
-  <widget class="GtkWindow" id="windowMain">
+<?xml version="1.0"?>
+<interface>
+  <!-- interface-requires gtk+ 2.8 -->
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkWindow" id="windowMain">
     <property name="width_request">800</property>
     <property name="height_request">600</property>
     <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     <property name="title" translatable="yes">Metadata Editor</property>
     <signal name="delete_event" handler="on_windowMain_delete_event"/>
     <child>
-      <widget class="GtkVPaned" id="vpanedMain">
+      <object class="GtkVPaned" id="vpanedMain">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <child>
-          <widget class="GtkDrawingArea" id="drawingMain">
+          <object class="GtkDrawingArea" id="drawingMain">
             <property name="width_request">200</property>
             <property name="height_request">100</property>
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <signal name="expose_event" handler="on_drawingMain_expose_event"/>
-          </widget>
+          </object>
           <packing>
             <property name="resize">False</property>
             <property name="shrink">False</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="vboxMain">
+          <object class="GtkVBox" id="vboxMain">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow">
+              <object class="GtkScrolledWindow" id="scrolledwindow">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="hscrollbar_policy">automatic</property>
+                <property name="vscrollbar_policy">automatic</property>
                 <child>
-                  <widget class="GtkTreeView" id="treeMain">
+                  <object class="GtkTreeView" id="treeMain">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="headers_clickable">True</property>
                     <property name="rules_hint">True</property>
                     <property name="enable_search">False</property>
                     <property name="hover_expand">True</property>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
+              <packing>
+                <property name="position">0</property>
+              </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vboxEditBnt">
+              <object class="GtkVBox" id="vboxEditBnt">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <child>
-                  <widget class="GtkHBox" id="hboxEdit">
+                  <object class="GtkHBox" id="hboxEdit">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <child>
-                      <widget class="GtkEntry" id="entryTag">
+                      <object class="GtkEntry" id="entryTag">
                         <property name="width_request">300</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="entryValue">
+                      <object class="GtkEntry" id="entryValue">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
                 <child>
-                  <widget class="GtkHButtonBox" id="hbuttonboxBnt">
+                  <object class="GtkHButtonBox" id="hbuttonboxBnt">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="homogeneous">True</property>
-                    <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
+                    <property name="layout_style">spread</property>
                     <child>
-                      <widget class="GtkButton" id="buttonInsert">
+                      <object class="GtkButton" id="buttonInsert">
+                        <property name="label" translatable="yes">Insert</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Insert</property>
-                        <property name="response_id">0</property>
                         <signal name="clicked" handler="on_buttonInsert_clicked"/>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkButton" id="buttonSaveFile">
+                      <object class="GtkButton" id="buttonSaveFile">
+                        <property name="label" translatable="yes">Save File</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Save File</property>
-                        <property name="response_id">0</property>
                         <signal name="clicked" handler="on_buttonSaveFile_clicked"/>
-                      </widget>
+                      </object>
                       <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkHBox" id="hboxOptions">
+                  <object class="GtkHBox" id="hboxOptions">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <child>
-                      <widget class="GtkVBox" id="vboxCaptureOptions">
+                      <object class="GtkVBox" id="vboxCaptureOptions">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonCaptureV4l2">
+                          <object class="GtkCheckButton" id="checkbuttonCaptureV4l2">
+                            <property name="label" translatable="yes">Capture image from camera</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">Capture image from camera</property>
-                            <property name="response_id">0</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonCaptureV4l2_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonCaptureTest">
+                          <object class="GtkCheckButton" id="checkbuttonCaptureTest">
+                            <property name="label" translatable="yes">Capture image from videotestsrc</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">Capture image from videotestsrc</property>
-                            <property name="response_id">0</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonCaptureTest_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkButton" id="buttonOpenFile">
+                          <object class="GtkButton" id="buttonOpenFile">
+                            <property name="label" translatable="yes">Open File...</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">Open File...</property>
-                            <property name="response_id">0</property>
                             <signal name="clicked" handler="on_buttonOpenFile_clicked"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">2</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vboxOptionsDemux">
+                      <object class="GtkVBox" id="vboxOptionsDemux">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="labelDemux">
+                          <object class="GtkLabel" id="labelDemux">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">Demux options:</property>
-                          </widget>
+                          </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonOptionsDemuxExif">
+                          <object class="GtkCheckButton" id="checkbuttonOptionsDemuxExif">
+                            <property name="label" translatable="yes">exif</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">exif</property>
-                            <property name="response_id">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonOptionsDemuxExif_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonOptionsDemuxIptc">
+                          <object class="GtkCheckButton" id="checkbuttonOptionsDemuxIptc">
+                            <property name="label" translatable="yes">iptc</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">iptc</property>
-                            <property name="response_id">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonOptionsDemuxIptc_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">2</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonOptionsDemuxXmp">
+                          <object class="GtkCheckButton" id="checkbuttonOptionsDemuxXmp">
+                            <property name="label" translatable="yes">xmp</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">xmp</property>
-                            <property name="response_id">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonOptionsDemuxXmp_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">3</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vboxOptionsMux">
+                      <object class="GtkVBox" id="vboxOptionsMux">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="labelMux">
+                          <object class="GtkLabel" id="labelMux">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">Mux options:</property>
-                          </widget>
+                          </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonOptionsMuxExif">
+                          <object class="GtkCheckButton" id="checkbuttonOptionsMuxExif">
+                            <property name="label" translatable="yes">exif</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">exif</property>
-                            <property name="response_id">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonOptionsMuxExif_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonOptionsMuxIptc">
+                          <object class="GtkCheckButton" id="checkbuttonOptionsMuxIptc">
+                            <property name="label" translatable="yes">iptc</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">iptc</property>
-                            <property name="response_id">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonOptionsMuxIptc_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">2</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbuttonOptionsMuxXmp">
+                          <object class="GtkCheckButton" id="checkbuttonOptionsMuxXmp">
+                            <property name="label" translatable="yes">xmp</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">xmp</property>
-                            <property name="response_id">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
                             <signal name="toggled" handler="on_checkbuttonOptionsMuxXmp_toggled"/>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="fill">False</property>
                             <property name="position">3</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">2</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">2</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="resize">True</property>
             <property name="shrink">False</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>