]> saetta.ns0.it Git - libgtkform/commitdiff
Removed libglade dependency.
authorAndrea Zagli <azagli@libero.it>
Sun, 26 Jul 2009 15:21:40 +0000 (17:21 +0200)
committerAndrea Zagli <azagli@libero.it>
Sun, 26 Jul 2009 15:21:40 +0000 (17:21 +0200)
configure.ac
docs/reference/libform-undocumented.txt [deleted file]
src/form.h
src/widget.c
src/widget.h
test/Makefile.am
test/main.c
test/test.glade [deleted file]
test/test.gui [new file with mode: 0644]

index f1c343e84b039f7576f115d89f561fa70e1ac751..fcad5c74e95f854d6f4a471ef65dd5b0acbf91a2 100644 (file)
@@ -29,9 +29,8 @@ AC_PROG_LIBTOOL
 GTK_DOC_CHECK
 
 # Checks for libraries.
-PKG_CHECK_MODULES(GTKFORM, [gtk+-2.0 >= 2.6.0
-                            libgdaex >= 0.1.0
-                            libglade-2.0 >= 2.0.0])
+PKG_CHECK_MODULES(GTKFORM, [gtk+-2.0 >= 2.12.0
+                            libgdaex >= 0.1.0])
 
 AC_SUBST(GTKFORM_CFLAGS)
 AC_SUBST(GTKFORM_LIBS)
diff --git a/docs/reference/libform-undocumented.txt b/docs/reference/libform-undocumented.txt
deleted file mode 100644 (file)
index 161e230..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-11% symbol docs coverage.
-18 symbols documented.
-1 symbols incomplete.
-145 not documented.
-
-
-Form
-FormField
-FormFieldBoolean
-FormFieldDateTime
-FormFieldFloat
-FormFieldInteger
-FormFieldText
-FormKey
-FormSqlType
-FormWidget
-FormWidgetCheck
-FormWidgetComboBox
-FormWidgetDateEntry
-FormWidgetEntry
-FormWidgetLabel
-FormWidgetSpin
-FormWidgetTextview
-form_add_field
-form_add_fields
-form_check
-form_clear
-form_field_boolean_clear
-form_field_boolean_get_value
-form_field_boolean_get_value_sql
-form_field_boolean_get_value_stringify
-form_field_boolean_is_empty
-form_field_boolean_new
-form_field_boolean_set_from_datamodel
-form_field_clear
-form_field_datetime_clear
-form_field_datetime_get_value
-form_field_datetime_get_value_sql
-form_field_datetime_get_value_stringify
-form_field_datetime_is_empty
-form_field_datetime_new
-form_field_datetime_set_from_datamodel
-form_field_float_clear
-form_field_float_get_value
-form_field_float_get_value_sql
-form_field_float_get_value_stringify
-form_field_float_is_empty
-form_field_float_new
-form_field_float_set_from_datamodel
-form_field_get_field_name
-form_field_get_form_widget (field, Returns)
-form_field_get_value
-form_field_get_value_sql
-form_field_get_value_stringify
-form_field_integer_clear
-form_field_integer_get_value
-form_field_integer_get_value_sql
-form_field_integer_get_value_stringify
-form_field_integer_is_empty
-form_field_integer_new
-form_field_integer_set_from_datamodel
-form_field_is_empty
-form_field_new
-form_field_new_from_form_widget
-form_field_set_from_datamodel
-form_field_text_clear
-form_field_text_get_value
-form_field_text_get_value_sql
-form_field_text_get_value_stringify
-form_field_text_is_empty
-form_field_text_new
-form_field_text_set_from_datamodel
-form_fill_from_datamodel
-form_get_field_from_name
-form_get_sql
-form_get_widget_from_name
-form_key_add_field
-form_key_add_fields
-form_key_check
-form_key_field_is_key
-form_key_get_sql
-form_key_new
-form_key_remove_field
-form_new
-form_remove_field
-form_set_editable
-form_set_sensitive
-form_widget_check_get_value_stringify
-form_widget_check_new
-form_widget_check_set_editable
-form_widget_check_set_value_stringify
-form_widget_combo_box_get_value_stringify
-form_widget_combo_box_new
-form_widget_combo_box_set_editable
-form_widget_combo_box_set_value_stringify
-form_widget_date_entry_get_value_stringify
-form_widget_date_entry_new
-form_widget_date_entry_set_editable
-form_widget_date_entry_set_value_stringify
-form_widget_entry_get_value_stringify
-form_widget_entry_new
-form_widget_entry_set_editable
-form_widget_entry_set_value_stringify
-form_widget_get_value_stringify
-form_widget_get_widget
-form_widget_get_widget_name
-form_widget_label_get_value_stringify
-form_widget_label_new
-form_widget_label_set_value_stringify
-form_widget_new
-form_widget_set_editable
-form_widget_set_from_glade
-form_widget_set_value_stringify
-form_widget_spin_get_value_stringify
-form_widget_spin_new
-form_widget_spin_set_editable
-form_widget_spin_set_value_stringify
-form_widget_textview_get_value_stringify
-form_widget_textview_new
-form_widget_textview_set_editable
-form_widget_textview_set_value_stringify
-
-
-libform:Long_Description
-libform:Short_Description
-libformfield:Long_Description
-libformfield:Short_Description
-libformfieldboolean:Long_Description
-libformfieldboolean:Short_Description
-libformfielddatetime:Long_Description
-libformfielddatetime:Short_Description
-libformfieldfloat:Long_Description
-libformfieldfloat:Short_Description
-libformfieldinteger:Long_Description
-libformfieldinteger:Short_Description
-libformfieldtext:Long_Description
-libformfieldtext:Short_Description
-libformkey:Long_Description
-libformkey:Short_Description
-libformwidget:Long_Description
-libformwidget:Short_Description
-libformwidgetcheck:Long_Description
-libformwidgetcheck:Short_Description
-libformwidgetcombobox:Short_Description
-libformwidgetdateentry:Long_Description
-libformwidgetdateentry:Short_Description
-libformwidgetentry:Long_Description
-libformwidgetentry:Short_Description
-libformwidgetlabel:Long_Description
-libformwidgetlabel:Short_Description
-libformwidgetspin:Long_Description
-libformwidgetspin:Short_Description
-libformwidgettextview:Long_Description
-libformwidgettextview:Short_Description
index 0c23a0c3b48d91997816cd4f2e6eddfe07a4fb41..4191586b0eef8e649919b38c1629001fca463e48 100644 (file)
@@ -20,7 +20,6 @@
 #define __LIBGTK_FORM_H__
 
 #include <glib.h>
-#include <glade/glade.h>
 
 #include "field.h"
 #include "widget.h"
index bbde5599fb6e13623d2c3971c83c1857966805a0..908c866b38a87d94cdfe9e1b2da6c383c7056e77 100644 (file)
@@ -97,18 +97,20 @@ GtkFormWidget
 }
 
 /**
- * gtk_form_widget_set_from_glade:
+ * gtk_form_widget_set_from_gtkbuilder:
  * @fwidget:
- * @glade:
+ * @gtkbuilder:
  * @widget_name:
  *
  */
 gboolean
-gtk_form_widget_set_from_glade (GtkFormWidget *fwidget, GladeXML *glade, const gchar *widget_name)
+gtk_form_widget_set_from_gtkbuilder (GtkFormWidget *fwidget,
+                                     GtkBuilder *gtkbuilder,
+                                     const gchar *widget_name)
 {
        gboolean ret = FALSE;
 
-       GtkWidget *w = glade_xml_get_widget (glade, widget_name);
+       GtkWidget *w = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, widget_name));
        if (w != NULL)
                {
                        g_object_set (fwidget,
index b8c5f39471d6433fa17b10e19f59d24ab204ffb4..98f0eaa077c10729ab36ae1efa86be1dbe4a1392 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <glib.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 
 
 G_BEGIN_DECLS
@@ -58,7 +57,9 @@ GType gtk_form_widget_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_new (void);
 
-gboolean gtk_form_widget_set_from_glade (GtkFormWidget *fwidget, GladeXML *glade, const gchar *widget_name);
+gboolean gtk_form_widget_set_from_gtkbuilder (GtkFormWidget *fwidget,
+                                              GtkBuilder *gtkbuilder,
+                                              const gchar *widget_name);
 
 GtkWidget *gtk_form_widget_get_widget (GtkFormWidget *fwidget);
 
index 20c7776d8b94f1fb5078ffd7e543cadff57c4e1e..a6536875bedc7ebb9ca91b5f1998e74ffc930fc7 100644 (file)
@@ -3,7 +3,7 @@ LIBS = $(GTKFORM_LIBS) \
 
 AM_CPPFLAGS = $(GTKFORM_CFLAGS) \
               -I$(top_srcdir)/src \
-              -DGLADEDIR="\"@abs_builddir@\""
+              -DGUIDIR="\"@abs_builddir@\""
 
 noinst_PROGRAMS = test
 
index 07fabaf42f991f4d05581fea2b85574299bc1ad7..d11ff9e02f780cd659a5b79d23157f807e8ea603 100644 (file)
@@ -20,7 +20,6 @@
 #include <time.h>
 
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 
 #include "form.h"
 #include "field.h"
@@ -204,19 +203,21 @@ create_cb_nation (GtkWidget *w)
 int
 main (int argc, char **argv)
 {
-       GladeXML *glade;
+       GtkBuilder *gtkbuilder;
        GtkFormKey *key;
        time_t time_now;
        struct tm *now;
 
        gtk_init (&argc, &argv);
 
-       glade = glade_xml_new (GLADEDIR "/test.glade", NULL, NULL);
+       gtkbuilder = gtk_builder_new ();
 
-       w = glade_xml_get_widget (glade, "wMain");
+       gtk_builder_add_from_file (gtkbuilder, GUIDIR "/test.gui", NULL);
 
-       tbtnEditable = glade_xml_get_widget (glade, "tbtnEditable");
-       tbtnSensitive = glade_xml_get_widget (glade, "tbtnSensitive");
+       w = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "wMain"));
+
+       tbtnEditable = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "tbtnEditable"));
+       tbtnSensitive = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "tbtnSensitive"));
 
        form = gtk_form_new ();
        if (form == NULL) return 0;
@@ -229,7 +230,7 @@ main (int argc, char **argv)
 
        /* LABEL - INTEGER */
        wlabel = gtk_form_widget_label_new ();
-       gtk_form_widget_set_from_glade (wlabel, glade, "lblID");
+       gtk_form_widget_set_from_gtkbuilder (wlabel, gtkbuilder, "lblID");
 
        fint = gtk_form_field_integer_new ();
        g_object_set (fint,
@@ -242,7 +243,7 @@ main (int argc, char **argv)
 
        /* LABEL - TEXT */
        wlabel = gtk_form_widget_label_new ();
-       gtk_form_widget_set_from_glade (wlabel, glade, "lblText");
+       gtk_form_widget_set_from_gtkbuilder (wlabel, gtkbuilder, "lblText");
 
        ftext = gtk_form_field_text_new ();
        g_object_set (ftext,
@@ -254,7 +255,7 @@ main (int argc, char **argv)
 
        /* ENTRY - TEXT */
        wentry = gtk_form_widget_entry_new ();
-       gtk_form_widget_set_from_glade (wentry, glade, "txtName");
+       gtk_form_widget_set_from_gtkbuilder (wentry, gtkbuilder, "txtName");
 
        ftext = gtk_form_field_text_new ();
        g_object_set (ftext,
@@ -267,7 +268,7 @@ main (int argc, char **argv)
 
        /* SPIN - INTEGER */
        wspin = gtk_form_widget_spin_new ();
-       gtk_form_widget_set_from_glade (wspin, glade, "spnAge");
+       gtk_form_widget_set_from_gtkbuilder (wspin, gtkbuilder, "spnAge");
 
        fint = gtk_form_field_integer_new ();
        g_object_set (fint,
@@ -279,7 +280,7 @@ main (int argc, char **argv)
 
        /* SPIN - FLOAT */
        wspin = gtk_form_widget_spin_new ();
-       gtk_form_widget_set_from_glade (wspin, glade, "spnAmount");
+       gtk_form_widget_set_from_gtkbuilder (wspin, gtkbuilder, "spnAmount");
 
        ffloat = gtk_form_field_float_new ();
        g_object_set (ffloat,
@@ -290,10 +291,10 @@ main (int argc, char **argv)
        gtk_form_add_field (form, ffloat);
 
        /* COMBOBOX - INTEGER */
-       create_cb_nation (glade_xml_get_widget (glade, "cbNation"));
+       create_cb_nation (GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "cbNation")));
 
        wcombobox = gtk_form_widget_combo_box_new ();
-       gtk_form_widget_set_from_glade (wcombobox, glade, "cbNation");
+       gtk_form_widget_set_from_gtkbuilder (wcombobox, gtkbuilder, "cbNation");
        g_object_set (wcombobox,
                      "column-field", 0,
                                                                NULL);
@@ -308,7 +309,7 @@ main (int argc, char **argv)
 
        /* CHECK - BOOL*/
        wcheck = gtk_form_widget_check_new ();
-       gtk_form_widget_set_from_glade (wcheck, glade, "chkMarried");
+       gtk_form_widget_set_from_gtkbuilder (wcheck, gtkbuilder, "chkMarried");
 
        fbool = gtk_form_field_boolean_new ();
        g_object_set (fbool,
@@ -319,7 +320,7 @@ main (int argc, char **argv)
 
        /* TEXTVIEW - TEXT */
        wtxtv = gtk_form_widget_textview_new ();
-       gtk_form_widget_set_from_glade (wtxtv, glade, "txtvDescription");
+       gtk_form_widget_set_from_gtkbuilder (wtxtv, gtkbuilder, "txtvDescription");
 
        ftext = gtk_form_field_text_new ();
        g_object_set (ftext,
@@ -334,7 +335,7 @@ main (int argc, char **argv)
        now = localtime (&time_now);
 
        wlabel = gtk_form_widget_label_new ();
-       gtk_form_widget_set_from_glade (wlabel, glade, "lblDateTime");
+       gtk_form_widget_set_from_gtkbuilder (wlabel, gtkbuilder, "lblDateTime");
 
        fdatetime = gtk_form_field_datetime_new ();
        g_object_set (fdatetime,
@@ -344,9 +345,11 @@ main (int argc, char **argv)
                      NULL);
        gtk_form_add_field (form, fdatetime);
 
-       txtvSql = glade_xml_get_widget (glade, "txtvSql");
+       txtvSql = GTK_WIDGET (gtk_builder_get_object (gtkbuilder, "txtvSql"));
+
+       gtk_builder_connect_signals (gtkbuilder, NULL);
 
-       glade_xml_signal_autoconnect (glade);
+       gtk_widget_show_all (w);
 
        gtk_main ();
 
diff --git a/test/test.glade b/test/test.glade
deleted file mode 100644 (file)
index 9035c10..0000000
+++ /dev/null
@@ -1,469 +0,0 @@
-<?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="wMain">
-    <property name="visible">True</property>
-    <property name="title" translatable="yes">test libform</property>
-    <property name="default_width">600</property>
-    <property name="default_height">440</property>
-    <signal name="delete_event" handler="gtk_main_quit"/>
-    <child>
-      <widget class="GtkVBox" id="vbox1">
-        <property name="visible">True</property>
-        <property name="border_width">3</property>
-        <child>
-          <widget class="GtkTable" id="table1">
-            <property name="visible">True</property>
-            <property name="border_width">3</property>
-            <property name="n_rows">10</property>
-            <property name="n_columns">2</property>
-            <property name="column_spacing">3</property>
-            <property name="row_spacing">3</property>
-            <child>
-              <widget class="GtkLabel" id="label1">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">Label (id)</property>
-              </widget>
-              <packing>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label2">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">GtkEntry (name)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="lblID">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkEntry" id="txtName">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label4">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">GtkSpinButton (Integer) (age)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkSpinButton" id="spnAge">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="adjustment">1 0 100 1 10 10</property>
-                <property name="climb_rate">1</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label5">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">GtkSpinButton (Float) (amount)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkSpinButton" id="spnAmount">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="adjustment">1 0 100 1 10 10</property>
-                <property name="climb_rate">1</property>
-                <property name="digits">2</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">3</property>
-                <property name="bottom_attach">4</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label6">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">GtkComboBox (integer) (id_nation)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">4</property>
-                <property name="bottom_attach">5</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label8">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">Label (?) (text)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">5</property>
-                <property name="bottom_attach">6</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="lblText">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">5</property>
-                <property name="bottom_attach">6</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label9">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">GtkCheckButton (married)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">6</property>
-                <property name="bottom_attach">7</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkCheckButton" id="chkMarried">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <property name="draw_indicator">True</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">6</property>
-                <property name="bottom_attach">7</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label10">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">GtkTextView (description)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">7</property>
-                <property name="bottom_attach">8</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow2">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <child>
-                  <widget class="GtkTextView" id="txtvDescription">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">7</property>
-                <property name="bottom_attach">8</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options">GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label11">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">Label (DateTime) (now)</property>
-              </widget>
-              <packing>
-                <property name="top_attach">8</property>
-                <property name="bottom_attach">9</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="lblDateTime">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">8</property>
-                <property name="bottom_attach">9</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkComboBox" id="cbNation">
-                <property name="visible">True</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">4</property>
-                <property name="bottom_attach">5</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options">GTK_FILL</property>
-              </packing>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkHBox" id="hbox1">
-            <property name="visible">True</property>
-            <property name="spacing">4</property>
-            <child>
-              <widget class="GtkButton" id="btnClear">
-                <property name="label">gtk-clear</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="on_btnClear_clicked"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="btnCheck">
-                <property name="label" translatable="yes">Check</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_btnCheck_clicked"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkToggleButton" id="tbtnEditable">
-                <property name="label" translatable="yes">Editable</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="toggled" handler="on_tbtnEditable_toggled"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkToggleButton" id="tbtnSensitive">
-                <property name="label" translatable="yes">Sensitive</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="toggled" handler="on_tbtnSensitive_toggled"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">3</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkHButtonBox" id="hbuttonbox2">
-            <property name="visible">True</property>
-            <property name="layout_style">start</property>
-            <child>
-              <widget class="GtkButton" id="btnSqlUpdate">
-                <property name="label" translatable="yes">Sql _UPDATE</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="on_btnSqlUpdate_clicked"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="btnSqlInsert">
-                <property name="label" translatable="yes">Sql _INSERT INTO</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="on_btnSqlInsert_clicked"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="btnSqlDelete">
-                <property name="label" translatable="yes">Sql _DELETE</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="on_btnSqlDelete_clicked"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="btnSqlSelect">
-                <property name="label" translatable="yes">Sql _SELECT</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="on_btnSqlSelect_clicked"/>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">3</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkTable" id="table2">
-            <property name="visible">True</property>
-            <property name="n_columns">2</property>
-            <child>
-              <widget class="GtkLabel" id="label7">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">SQL</property>
-              </widget>
-              <packing>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="shadow_type">in</property>
-                <child>
-                  <widget class="GtkTextView" id="txtvSql">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="wrap_mode">word</property>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">3</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>
diff --git a/test/test.gui b/test/test.gui
new file mode 100644 (file)
index 0000000..7f28f99
--- /dev/null
@@ -0,0 +1,483 @@
+<?xml version="1.0"?>
+<interface>
+  <!-- interface-requires gtk+ 2.12 -->
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="wMain">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">test libform</property>
+    <property name="default_width">600</property>
+    <property name="default_height">440</property>
+    <signal name="delete_event" handler="gtk_main_quit"/>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="border_width">3</property>
+        <child>
+          <object class="GtkTable" id="table1">
+            <property name="visible">True</property>
+            <property name="border_width">3</property>
+            <property name="n_rows">10</property>
+            <property name="n_columns">2</property>
+            <property name="column_spacing">3</property>
+            <property name="row_spacing">3</property>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Label (id)</property>
+              </object>
+              <packing>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">GtkEntry (name)</property>
+              </object>
+              <packing>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="lblID">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="txtName">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">GtkSpinButton (Integer) (age)</property>
+              </object>
+              <packing>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSpinButton" id="spnAge">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="adjustment">adjustment2</property>
+                <property name="climb_rate">1</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label5">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">GtkSpinButton (Float) (amount)</property>
+              </object>
+              <packing>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSpinButton" id="spnAmount">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="adjustment">adjustment1</property>
+                <property name="climb_rate">1</property>
+                <property name="digits">2</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">GtkComboBox (integer) (id_nation)</property>
+              </object>
+              <packing>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label8">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Label (?) (text)</property>
+              </object>
+              <packing>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="lblText">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label9">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">GtkCheckButton (married)</property>
+              </object>
+              <packing>
+                <property name="top_attach">6</property>
+                <property name="bottom_attach">7</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkCheckButton" id="chkMarried">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">6</property>
+                <property name="bottom_attach">7</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label10">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">GtkTextView (description)</property>
+              </object>
+              <packing>
+                <property name="top_attach">7</property>
+                <property name="bottom_attach">8</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow2">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkTextView" id="txtvDescription">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">7</property>
+                <property name="bottom_attach">8</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options">GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label11">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Label (DateTime) (now)</property>
+              </object>
+              <packing>
+                <property name="top_attach">8</property>
+                <property name="bottom_attach">9</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="lblDateTime">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">8</property>
+                <property name="bottom_attach">9</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="cbNation">
+                <property name="visible">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options">GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox1">
+            <property name="visible">True</property>
+            <property name="spacing">4</property>
+            <child>
+              <object class="GtkButton" id="btnClear">
+                <property name="label">gtk-clear</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="on_btnClear_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="btnCheck">
+                <property name="label" translatable="yes">Check</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_btnCheck_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToggleButton" id="tbtnEditable">
+                <property name="label" translatable="yes">Editable</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="toggled" handler="on_tbtnEditable_toggled"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToggleButton" id="tbtnSensitive">
+                <property name="label" translatable="yes">Sensitive</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="toggled" handler="on_tbtnSensitive_toggled"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHButtonBox" id="hbuttonbox2">
+            <property name="visible">True</property>
+            <property name="layout_style">start</property>
+            <child>
+              <object class="GtkButton" id="btnSqlUpdate">
+                <property name="label" translatable="yes">Sql _UPDATE</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="on_btnSqlUpdate_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="btnSqlInsert">
+                <property name="label" translatable="yes">Sql _INSERT INTO</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="on_btnSqlInsert_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="btnSqlDelete">
+                <property name="label" translatable="yes">Sql _DELETE</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="on_btnSqlDelete_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="btnSqlSelect">
+                <property name="label" translatable="yes">Sql _SELECT</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <signal name="clicked" handler="on_btnSqlSelect_clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkTable" id="table2">
+            <property name="visible">True</property>
+            <property name="n_columns">2</property>
+            <child>
+              <object class="GtkLabel" id="label7">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">SQL</property>
+              </object>
+              <packing>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <object class="GtkTextView" id="txtvSql">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="wrap_mode">word</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">3</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="value">1</property>
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="value">1</property>
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">10</property>
+  </object>
+</interface>