]> saetta.ns0.it Git - libgtkform/commitdiff
Bugfix to enable localization.
authorAndrea Zagli <azagli@libero.it>
Sat, 17 Oct 2009 15:47:18 +0000 (17:47 +0200)
committerAndrea Zagli <azagli@libero.it>
Sat, 17 Oct 2009 15:47:18 +0000 (17:47 +0200)
Makefile.am
docs/reference/libgtkform-decl-list.txt
docs/reference/libgtkform-decl.txt
src/Makefile.am
src/form.c
test/main.c

index 6946772baeb35fd349ef564dcba795160540bc3a..936661f43c258f8c50d642b444937825809ee7c6 100644 (file)
@@ -4,7 +4,7 @@ SUBDIRS = po src test docs data
 
 ACLOCAL_AMFLAGS = -I m4
 
-EXTRA_DIST = config.rpath  libgtkform.pc.in
+EXTRA_DIST = libgtkform.pc.in
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libgtkform.pc
index 582b198477132cae6e5a4f87c1aac813a8d86d02..55687e3e244b57f0ec57ac9d4bfa78c8a8a7db5a 100644 (file)
 <SECTION>
-<FILE>fieldfloat</FILE>
-TYPE_GTK_FORM_FIELD_FLOAT
-GTK_FORM_FIELD_FLOAT
-GTK_FORM_FIELD_FLOAT_CLASS
-IS_GTK_FORM_FIELD_FLOAT
-IS_GTK_FORM_FIELD_FLOAT_CLASS
-GTK_FORM_FIELD_FLOAT_GET_CLASS
-<TITLE>GtkFormFieldFloat</TITLE>
-GtkFormFieldFloat
-gtk_form_field_float_get_type
-gtk_form_field_float_new
-gtk_form_field_float_get_value_stringify
-gtk_form_field_float_get_value
-gtk_form_field_float_get_value_sql
-gtk_form_field_float_clear
-gtk_form_field_float_is_empty
-gtk_form_field_float_is_changed
-gtk_form_field_float_set_as_origin
-gtk_form_field_float_set_from_datamodel
+<FILE>widgetspin</FILE>
+TYPE_GTK_FORM_WIDGET_SPIN
+GTK_FORM_WIDGET_SPIN
+GTK_FORM_WIDGET_SPIN_CLASS
+IS_GTK_FORM_WIDGET_SPIN
+IS_GTK_FORM_WIDGET_SPIN_CLASS
+GTK_FORM_WIDGET_SPIN_GET_CLASS
+<TITLE>GtkFormWidgetSpin</TITLE>
+GtkFormWidgetSpin
+gtk_form_widget_spin_get_type
+gtk_form_widget_spin_new
+gtk_form_widget_spin_get_value_stringify
+gtk_form_widget_spin_set_value_stringify
+gtk_form_widget_spin_set_editable
 </SECTION>
 
 <SECTION>
-<FILE>form</FILE>
-TYPE_GTK_FORM
-GTK_FORM
-GTK_FORM_CLASS
-IS_GTK_FORM
-IS_GTK_FORM_CLASS
-GTK_FORM_GET_CLASS
-<TITLE>GtkForm</TITLE>
-GtkForm
-gtk_form_get_type
-gtk_form_new
-gtk_form_new_from_xml
-gtk_form_new_from_file
-gtk_form_get_gtkbuilder
-gtk_form_get_table
-gtk_form_set_table
-gtk_form_get_key
-gtk_form_set_key
-gtk_form_add_field
-gtk_form_remove_field
-gtk_form_add_fields
-gtk_form_get_form_field_from_name
-gtk_form_get_form_widget_from_name
-gtk_form_get_widgets
-gtk_form_get_objects_by_name
-gtk_form_clear
-gtk_form_check
-gtk_form_is_changed
-gtk_form_set_as_origin
-gtk_form_set_sensitive
-gtk_form_set_sensitive_by_name
-gtk_form_set_editable
-GtkFormSqlType
-gtk_form_get_sql
-gtk_form_fill_from_datamodel
+<FILE>widgetcheck</FILE>
+TYPE_GTK_FORM_WIDGET_CHECK
+GTK_FORM_WIDGET_CHECK
+GTK_FORM_WIDGET_CHECK_CLASS
+IS_GTK_FORM_WIDGET_CHECK
+IS_GTK_FORM_WIDGET_CHECK_CLASS
+GTK_FORM_WIDGET_CHECK_GET_CLASS
+<TITLE>GtkFormWidgetCheck</TITLE>
+GtkFormWidgetCheck
+gtk_form_widget_check_get_type
+gtk_form_widget_check_new
+gtk_form_widget_check_get_value_stringify
+gtk_form_widget_check_set_value_stringify
+gtk_form_widget_check_set_editable
 </SECTION>
 
 <SECTION>
-<FILE>widgetentry</FILE>
-TYPE_GTK_FORM_WIDGET_ENTRY
-GTK_FORM_WIDGET_ENTRY
-GTK_FORM_WIDGET_ENTRY_CLASS
-IS_GTK_FORM_WIDGET_ENTRY
-IS_GTK_FORM_WIDGET_ENTRY_CLASS
-GTK_FORM_WIDGET_ENTRY_GET_CLASS
-<TITLE>GtkFormWidgetEntry</TITLE>
-GtkFormWidgetEntry
-gtk_form_widget_entry_get_type
-gtk_form_widget_entry_new
-gtk_form_widget_entry_get_value_stringify
-gtk_form_widget_entry_set_value_stringify
-gtk_form_widget_entry_set_editable
+<FILE>fieldboolean</FILE>
+TYPE_GTK_FORM_FIELD_BOOLEAN
+GTK_FORM_FIELD_BOOLEAN
+GTK_FORM_FIELD_BOOLEAN_CLASS
+IS_GTK_FORM_FIELD_BOOLEAN
+IS_GTK_FORM_FIELD_BOOLEAN_CLASS
+GTK_FORM_FIELD_BOOLEAN_GET_CLASS
+<TITLE>GtkFormFieldBoolean</TITLE>
+GtkFormFieldBoolean
+gtk_form_field_boolean_get_type
+gtk_form_field_boolean_new
+gtk_form_field_boolean_get_value_stringify
+gtk_form_field_boolean_get_value
+gtk_form_field_boolean_get_value_sql
+gtk_form_field_boolean_clear
+gtk_form_field_boolean_is_empty
+gtk_form_filed_boolean_is_changed
+gtk_form_field_boolean_set_as_origin
+gtk_form_field_boolean_set_from_datamodel
+gtk_form_field_boolean_str_to_boolean
+</SECTION>
+
+<SECTION>
+<FILE>widget</FILE>
+TYPE_GTK_FORM_WIDGET
+GTK_FORM_WIDGET
+GTK_FORM_WIDGET_CLASS
+IS_GTK_FORM_WIDGET
+IS_GTK_FORM_WIDGET_CLASS
+GTK_FORM_WIDGET_GET_CLASS
+<TITLE>GtkFormWidget</TITLE>
+GtkFormWidget
+gtk_form_widget_get_type
+gtk_form_widget_new
+gtk_form_widget_set_from_gtkbuilder
+gtk_form_widget_get_widget
+gtk_form_widget_get_widget_name
+gtk_form_widget_get_label
+gtk_form_widget_set_label
+gtk_form_widget_get_value_stringify
+gtk_form_widget_set_value_stringify
+gtk_form_widget_set_editable
+</SECTION>
+
+<SECTION>
+<FILE>fieldtext</FILE>
+TYPE_GTK_FORM_FIELD_TEXT
+GTK_FORM_FIELD_TEXT
+GTK_FORM_FIELD_TEXT_CLASS
+IS_GTK_FORM_FIELD_TEXT
+IS_GTK_FORM_FIELD_TEXT_CLASS
+GTK_FORM_FIELD_TEXT_GET_CLASS
+<TITLE>GtkFormFieldText</TITLE>
+GtkFormFieldText
+gtk_form_field_text_get_type
+gtk_form_field_text_new
+gtk_form_field_text_get_value_stringify
+gtk_form_field_text_get_value
+gtk_form_field_text_get_value_sql
+gtk_form_field_text_clear
+gtk_form_field_text_is_empty
+gtk_form_field_text_is_changed
+gtk_form_field_text_set_as_origin
+gtk_form_field_text_set_from_datamodel
 </SECTION>
 
 <SECTION>
@@ -101,29 +125,6 @@ gtk_form_field_datetime_get_gdate_from_tm
 gtk_form_field_datetime_get_now
 </SECTION>
 
-<SECTION>
-<FILE>fieldboolean</FILE>
-TYPE_GTK_FORM_FIELD_BOOLEAN
-GTK_FORM_FIELD_BOOLEAN
-GTK_FORM_FIELD_BOOLEAN_CLASS
-IS_GTK_FORM_FIELD_BOOLEAN
-IS_GTK_FORM_FIELD_BOOLEAN_CLASS
-GTK_FORM_FIELD_BOOLEAN_GET_CLASS
-<TITLE>GtkFormFieldBoolean</TITLE>
-GtkFormFieldBoolean
-gtk_form_field_boolean_get_type
-gtk_form_field_boolean_new
-gtk_form_field_boolean_get_value_stringify
-gtk_form_field_boolean_get_value
-gtk_form_field_boolean_get_value_sql
-gtk_form_field_boolean_clear
-gtk_form_field_boolean_is_empty
-gtk_form_filed_boolean_is_changed
-gtk_form_field_boolean_set_as_origin
-gtk_form_field_boolean_set_from_datamodel
-gtk_form_field_boolean_str_to_boolean
-</SECTION>
-
 <SECTION>
 <FILE>widgetlabel</FILE>
 TYPE_GTK_FORM_WIDGET_LABEL
@@ -141,54 +142,62 @@ gtk_form_widget_label_set_value_stringify
 </SECTION>
 
 <SECTION>
-<FILE>widgetcombobox</FILE>
-TYPE_GTK_FORM_WIDGET_COMBO_BOX
-GTK_FORM_WIDGET_COMBO_BOX
-GTK_FORM_WIDGET_COMBO_BOX_CLASS
-IS_GTK_FORM_WIDGET_COMBO_BOX
-IS_GTK_FORM_WIDGET_COMBO_BOX_CLASS
-GTK_FORM_WIDGET_COMBO_BOX_GET_CLASS
-<TITLE>GtkFormWidgetComboBox</TITLE>
-GtkFormWidgetComboBox
-gtk_form_widget_combo_box_get_type
-gtk_form_widget_combo_box_new
-gtk_form_widget_combo_box_get_value_stringify
-gtk_form_widget_combo_box_set_value_stringify
-gtk_form_widget_combo_box_set_editable
+<FILE>fieldfloat</FILE>
+TYPE_GTK_FORM_FIELD_FLOAT
+GTK_FORM_FIELD_FLOAT
+GTK_FORM_FIELD_FLOAT_CLASS
+IS_GTK_FORM_FIELD_FLOAT
+IS_GTK_FORM_FIELD_FLOAT_CLASS
+GTK_FORM_FIELD_FLOAT_GET_CLASS
+<TITLE>GtkFormFieldFloat</TITLE>
+GtkFormFieldFloat
+gtk_form_field_float_get_type
+gtk_form_field_float_new
+gtk_form_field_float_get_value_stringify
+gtk_form_field_float_get_value
+gtk_form_field_float_get_value_sql
+gtk_form_field_float_clear
+gtk_form_field_float_is_empty
+gtk_form_field_float_is_changed
+gtk_form_field_float_set_as_origin
+gtk_form_field_float_set_from_datamodel
 </SECTION>
 
 <SECTION>
-<FILE>widgetcheck</FILE>
-TYPE_GTK_FORM_WIDGET_CHECK
-GTK_FORM_WIDGET_CHECK
-GTK_FORM_WIDGET_CHECK_CLASS
-IS_GTK_FORM_WIDGET_CHECK
-IS_GTK_FORM_WIDGET_CHECK_CLASS
-GTK_FORM_WIDGET_CHECK_GET_CLASS
-<TITLE>GtkFormWidgetCheck</TITLE>
-GtkFormWidgetCheck
-gtk_form_widget_check_get_type
-gtk_form_widget_check_new
-gtk_form_widget_check_get_value_stringify
-gtk_form_widget_check_set_value_stringify
-gtk_form_widget_check_set_editable
+<FILE>key</FILE>
+TYPE_GTK_FORM_KEY
+GTK_FORM_KEY
+GTK_FORM_KEY_CLASS
+IS_GTK_FORM_KEY
+IS_GTK_FORM_KEY_CLASS
+GTK_FORM_KEY_GET_CLASS
+<TITLE>GtkFormKey</TITLE>
+GtkFormKey
+gtk_form_key_get_type
+gtk_form_key_new
+gtk_form_key_add_field
+gtk_form_key_remove_field
+gtk_form_key_add_fields
+gtk_form_key_check
+gtk_form_key_get_sql
+gtk_form_key_field_is_key
 </SECTION>
 
 <SECTION>
-<FILE>widgetspin</FILE>
-TYPE_GTK_FORM_WIDGET_SPIN
-GTK_FORM_WIDGET_SPIN
-GTK_FORM_WIDGET_SPIN_CLASS
-IS_GTK_FORM_WIDGET_SPIN
-IS_GTK_FORM_WIDGET_SPIN_CLASS
-GTK_FORM_WIDGET_SPIN_GET_CLASS
-<TITLE>GtkFormWidgetSpin</TITLE>
-GtkFormWidgetSpin
-gtk_form_widget_spin_get_type
-gtk_form_widget_spin_new
-gtk_form_widget_spin_get_value_stringify
-gtk_form_widget_spin_set_value_stringify
-gtk_form_widget_spin_set_editable
+<FILE>widgettextview</FILE>
+TYPE_GTK_FORM_WIDGET_TEXTVIEW
+GTK_FORM_WIDGET_TEXTVIEW
+GTK_FORM_WIDGET_TEXTVIEW_CLASS
+IS_GTK_FORM_WIDGET_TEXTVIEW
+IS_GTK_FORM_WIDGET_TEXTVIEW_CLASS
+GTK_FORM_WIDGET_TEXTVIEW_GET_CLASS
+<TITLE>GtkFormWidgetTextview</TITLE>
+GtkFormWidgetTextview
+gtk_form_widget_textview_get_type
+gtk_form_widget_textview_new
+gtk_form_widget_textview_get_value_stringify
+gtk_form_widget_textview_set_value_stringify
+gtk_form_widget_textview_set_editable
 </SECTION>
 
 <SECTION>
@@ -218,64 +227,75 @@ gtk_form_field_set_from_datamodel
 </SECTION>
 
 <SECTION>
-<FILE>fieldtext</FILE>
-TYPE_GTK_FORM_FIELD_TEXT
-GTK_FORM_FIELD_TEXT
-GTK_FORM_FIELD_TEXT_CLASS
-IS_GTK_FORM_FIELD_TEXT
-IS_GTK_FORM_FIELD_TEXT_CLASS
-GTK_FORM_FIELD_TEXT_GET_CLASS
-<TITLE>GtkFormFieldText</TITLE>
-GtkFormFieldText
-gtk_form_field_text_get_type
-gtk_form_field_text_new
-gtk_form_field_text_get_value_stringify
-gtk_form_field_text_get_value
-gtk_form_field_text_get_value_sql
-gtk_form_field_text_clear
-gtk_form_field_text_is_empty
-gtk_form_field_text_is_changed
-gtk_form_field_text_set_as_origin
-gtk_form_field_text_set_from_datamodel
+<FILE>form</FILE>
+TYPE_GTK_FORM
+GTK_FORM
+GTK_FORM_CLASS
+IS_GTK_FORM
+IS_GTK_FORM_CLASS
+GTK_FORM_GET_CLASS
+<TITLE>GtkForm</TITLE>
+GtkForm
+gtk_form_get_type
+gtk_form_new
+gtk_form_new_from_xml
+gtk_form_new_from_file
+gtk_form_get_gtkbuilder
+gtk_form_get_table
+gtk_form_set_table
+gtk_form_get_key
+gtk_form_set_key
+gtk_form_add_field
+gtk_form_remove_field
+gtk_form_add_fields
+gtk_form_get_form_field_from_name
+gtk_form_get_form_widget_from_name
+gtk_form_get_widgets
+gtk_form_get_objects_by_name
+gtk_form_clear
+gtk_form_check
+gtk_form_is_changed
+gtk_form_set_as_origin
+gtk_form_set_sensitive
+gtk_form_set_sensitive_by_name
+gtk_form_set_editable
+GtkFormSqlType
+gtk_form_get_sql
+gtk_form_fill_from_datamodel
 </SECTION>
 
 <SECTION>
-<FILE>widgettextview</FILE>
-TYPE_GTK_FORM_WIDGET_TEXTVIEW
-GTK_FORM_WIDGET_TEXTVIEW
-GTK_FORM_WIDGET_TEXTVIEW_CLASS
-IS_GTK_FORM_WIDGET_TEXTVIEW
-IS_GTK_FORM_WIDGET_TEXTVIEW_CLASS
-GTK_FORM_WIDGET_TEXTVIEW_GET_CLASS
-<TITLE>GtkFormWidgetTextview</TITLE>
-GtkFormWidgetTextview
-gtk_form_widget_textview_get_type
-gtk_form_widget_textview_new
-gtk_form_widget_textview_get_value_stringify
-gtk_form_widget_textview_set_value_stringify
-gtk_form_widget_textview_set_editable
+<FILE>widgetcombobox</FILE>
+TYPE_GTK_FORM_WIDGET_COMBO_BOX
+GTK_FORM_WIDGET_COMBO_BOX
+GTK_FORM_WIDGET_COMBO_BOX_CLASS
+IS_GTK_FORM_WIDGET_COMBO_BOX
+IS_GTK_FORM_WIDGET_COMBO_BOX_CLASS
+GTK_FORM_WIDGET_COMBO_BOX_GET_CLASS
+<TITLE>GtkFormWidgetComboBox</TITLE>
+GtkFormWidgetComboBox
+gtk_form_widget_combo_box_get_type
+gtk_form_widget_combo_box_new
+gtk_form_widget_combo_box_get_value_stringify
+gtk_form_widget_combo_box_set_value_stringify
+gtk_form_widget_combo_box_set_editable
 </SECTION>
 
 <SECTION>
-<FILE>widget</FILE>
-TYPE_GTK_FORM_WIDGET
-GTK_FORM_WIDGET
-GTK_FORM_WIDGET_CLASS
-IS_GTK_FORM_WIDGET
-IS_GTK_FORM_WIDGET_CLASS
-GTK_FORM_WIDGET_GET_CLASS
-<TITLE>GtkFormWidget</TITLE>
-GtkFormWidget
-gtk_form_widget_get_type
-gtk_form_widget_new
-gtk_form_widget_set_from_gtkbuilder
-gtk_form_widget_get_widget
-gtk_form_widget_get_widget_name
-gtk_form_widget_get_label
-gtk_form_widget_set_label
-gtk_form_widget_get_value_stringify
-gtk_form_widget_set_value_stringify
-gtk_form_widget_set_editable
+<FILE>widgetentry</FILE>
+TYPE_GTK_FORM_WIDGET_ENTRY
+GTK_FORM_WIDGET_ENTRY
+GTK_FORM_WIDGET_ENTRY_CLASS
+IS_GTK_FORM_WIDGET_ENTRY
+IS_GTK_FORM_WIDGET_ENTRY_CLASS
+GTK_FORM_WIDGET_ENTRY_GET_CLASS
+<TITLE>GtkFormWidgetEntry</TITLE>
+GtkFormWidgetEntry
+gtk_form_widget_entry_get_type
+gtk_form_widget_entry_new
+gtk_form_widget_entry_get_value_stringify
+gtk_form_widget_entry_set_value_stringify
+gtk_form_widget_entry_set_editable
 </SECTION>
 
 <SECTION>
@@ -300,23 +320,3 @@ gtk_form_field_integer_set_as_origin
 gtk_form_field_integer_set_from_datamodel
 </SECTION>
 
-<SECTION>
-<FILE>key</FILE>
-TYPE_GTK_FORM_KEY
-GTK_FORM_KEY
-GTK_FORM_KEY_CLASS
-IS_GTK_FORM_KEY
-IS_GTK_FORM_KEY_CLASS
-GTK_FORM_KEY_GET_CLASS
-<TITLE>GtkFormKey</TITLE>
-GtkFormKey
-gtk_form_key_get_type
-gtk_form_key_new
-gtk_form_key_add_field
-gtk_form_key_remove_field
-gtk_form_key_add_fields
-gtk_form_key_check
-gtk_form_key_get_sql
-gtk_form_key_field_is_key
-</SECTION>
-
index 2507ead49dbdbfb2c4230fee672b7069a21bbfd4..bb162898a5d6ad41306ff01521a67537d1e07892 100644 (file)
 <MACRO>
-<NAME>TYPE_GTK_FORM_FIELD_FLOAT</NAME>
-#define TYPE_GTK_FORM_FIELD_FLOAT                 (gtk_form_field_float_get_type ())
+<NAME>TYPE_GTK_FORM_WIDGET_SPIN</NAME>
+#define TYPE_GTK_FORM_WIDGET_SPIN                 (gtk_form_widget_spin_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_FIELD_FLOAT</NAME>
-#define GTK_FORM_FIELD_FLOAT(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_FLOAT, GtkFormFieldFloat))
+<NAME>GTK_FORM_WIDGET_SPIN</NAME>
+#define GTK_FORM_WIDGET_SPIN(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpin))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_FIELD_FLOAT_CLASS</NAME>
-#define GTK_FORM_FIELD_FLOAT_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_FLOAT, GtkFormFieldFloatClass))
+<NAME>GTK_FORM_WIDGET_SPIN_CLASS</NAME>
+#define GTK_FORM_WIDGET_SPIN_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpinClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_FIELD_FLOAT</NAME>
-#define IS_GTK_FORM_FIELD_FLOAT(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_FLOAT))
+<NAME>IS_GTK_FORM_WIDGET_SPIN</NAME>
+#define IS_GTK_FORM_WIDGET_SPIN(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_SPIN))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_FIELD_FLOAT_CLASS</NAME>
-#define IS_GTK_FORM_FIELD_FLOAT_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_FLOAT))
+<NAME>IS_GTK_FORM_WIDGET_SPIN_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_SPIN_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_SPIN))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_FIELD_FLOAT_GET_CLASS</NAME>
-#define GTK_FORM_FIELD_FLOAT_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_FLOAT, GtkFormFieldFloatClass))
+<NAME>GTK_FORM_WIDGET_SPIN_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_SPIN_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpinClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormFieldFloat</NAME>
+<NAME>GtkFormWidgetSpin</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldFloatClass</NAME>
+<NAME>GtkFormWidgetSpinClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldFloat</NAME>
-struct _GtkFormFieldFloat
+<NAME>GtkFormWidgetSpin</NAME>
+struct _GtkFormWidgetSpin
        {
-               GtkFormField parent;
+               GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldFloatClass</NAME>
-struct _GtkFormFieldFloatClass
+<NAME>GtkFormWidgetSpinClass</NAME>
+struct _GtkFormWidgetSpinClass
        {
-               GtkFormFieldClass parent_class;
+               GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_type</NAME>
+<NAME>gtk_form_widget_spin_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_new</NAME>
-<RETURNS>GtkFormField *</RETURNS>
+<NAME>gtk_form_widget_spin_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value_stringify</NAME>
+<NAME>gtk_form_widget_spin_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkFormField *field
+GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_widget_spin_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_widget_spin_set_editable</NAME>
+<RETURNS>void </RETURNS>
+GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
+<MACRO>
+<NAME>TYPE_GTK_FORM_WIDGET_CHECK</NAME>
+#define TYPE_GTK_FORM_WIDGET_CHECK                 (gtk_form_widget_check_get_type ())
+</MACRO>
+<MACRO>
+<NAME>GTK_FORM_WIDGET_CHECK</NAME>
+#define GTK_FORM_WIDGET_CHECK(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_CHECK, GtkFormWidgetCheck))
+</MACRO>
+<MACRO>
+<NAME>GTK_FORM_WIDGET_CHECK_CLASS</NAME>
+#define GTK_FORM_WIDGET_CHECK_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_CHECK, GtkFormWidgetCheckClass))
+</MACRO>
+<MACRO>
+<NAME>IS_GTK_FORM_WIDGET_CHECK</NAME>
+#define IS_GTK_FORM_WIDGET_CHECK(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_CHECK))
+</MACRO>
+<MACRO>
+<NAME>IS_GTK_FORM_WIDGET_CHECK_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_CHECK_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_CHECK))
+</MACRO>
+<MACRO>
+<NAME>GTK_FORM_WIDGET_CHECK_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_CHECK_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_CHECK, GtkFormWidgetCheckClass))
+</MACRO>
+<STRUCT>
+<NAME>GtkFormWidgetCheck</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetCheckClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetCheck</NAME>
+struct _GtkFormWidgetCheck
+       {
+               GtkFormWidget parent;
+       };
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetCheckClass</NAME>
+struct _GtkFormWidgetCheckClass
+       {
+               GtkFormWidgetClass parent_class;
+       };
+</STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_float_clear</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_widget_check_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_is_empty</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_widget_check_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_is_changed</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_widget_check_get_value_stringify</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_set_as_origin</NAME>
-<RETURNS>void </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_widget_check_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_set_from_datamodel</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field, GdaDataModel *dm, gint row
+<NAME>gtk_form_widget_check_set_editable</NAME>
+<RETURNS>void </RETURNS>
+GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM</NAME>
-#define TYPE_GTK_FORM                 (gtk_form_get_type ())
+<NAME>TYPE_GTK_FORM_FIELD_BOOLEAN</NAME>
+#define TYPE_GTK_FORM_FIELD_BOOLEAN                 (gtk_form_field_boolean_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM</NAME>
-#define GTK_FORM(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM, GtkForm))
+<NAME>GTK_FORM_FIELD_BOOLEAN</NAME>
+#define GTK_FORM_FIELD_BOOLEAN(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_BOOLEAN, GtkFormFieldBoolean))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_CLASS</NAME>
-#define GTK_FORM_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM, GtkFormClass))
+<NAME>GTK_FORM_FIELD_BOOLEAN_CLASS</NAME>
+#define GTK_FORM_FIELD_BOOLEAN_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_BOOLEAN, GtkFormFieldBooleanClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM</NAME>
-#define IS_GTK_FORM(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM))
+<NAME>IS_GTK_FORM_FIELD_BOOLEAN</NAME>
+#define IS_GTK_FORM_FIELD_BOOLEAN(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_BOOLEAN))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_CLASS</NAME>
-#define IS_GTK_FORM_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM))
+<NAME>IS_GTK_FORM_FIELD_BOOLEAN_CLASS</NAME>
+#define IS_GTK_FORM_FIELD_BOOLEAN_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_BOOLEAN))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_GET_CLASS</NAME>
-#define GTK_FORM_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM, GtkFormClass))
+<NAME>GTK_FORM_FIELD_BOOLEAN_GET_CLASS</NAME>
+#define GTK_FORM_FIELD_BOOLEAN_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_BOOLEAN, GtkFormFieldBooleanClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkForm</NAME>
+<NAME>GtkFormFieldBoolean</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormClass</NAME>
+<NAME>GtkFormFieldBooleanClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkForm</NAME>
-struct _GtkForm
+<NAME>GtkFormFieldBoolean</NAME>
+struct _GtkFormFieldBoolean
        {
-               GObject parent;
+               GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormClass</NAME>
-struct _GtkFormClass
+<NAME>GtkFormFieldBooleanClass</NAME>
+struct _GtkFormFieldBooleanClass
        {
-               GObjectClass parent_class;
+               GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_get_type</NAME>
+<NAME>gtk_form_field_boolean_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_new</NAME>
-<RETURNS>GtkForm *</RETURNS>
+<NAME>gtk_form_field_boolean_new</NAME>
+<RETURNS>GtkFormField *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_new_from_xml</NAME>
-<RETURNS>GtkForm *</RETURNS>
-xmlDoc *xmldoc, GtkBuilder *gtkbuilder
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_new_from_file</NAME>
-<RETURNS>GtkForm *</RETURNS>
-const gchar *filename, GtkBuilder *gtkbuilder
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_get_gtkbuilder</NAME>
-<RETURNS>GtkBuilder *</RETURNS>
-GtkForm *form
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_get_table</NAME>
+<NAME>gtk_form_field_boolean_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkForm *form
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_set_table</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, const gchar *table
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_get_key</NAME>
-<RETURNS>GtkFormKey *</RETURNS>
-GtkForm *form
+<NAME>gtk_form_field_boolean_get_value</NAME>
+<RETURNS>const GValue *</RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_key</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, GtkFormKey *key
+<NAME>gtk_form_field_boolean_get_value_sql</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_add_field</NAME>
+<NAME>gtk_form_field_boolean_clear</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkForm *form, GtkFormField *field
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_remove_field</NAME>
+<NAME>gtk_form_field_boolean_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkForm *form, GtkFormField *field
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_add_fields</NAME>
+<NAME>gtk_form_filed_boolean_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkForm *form, ...
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_get_form_field_from_name</NAME>
-<RETURNS>GtkFormField *</RETURNS>
-GtkForm *form, const gchar *field_name
+<NAME>gtk_form_field_boolean_set_as_origin</NAME>
+<RETURNS>void </RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_get_form_widget_from_name</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
-GtkForm *form, const gchar *widget_name
+<NAME>gtk_form_field_boolean_set_from_datamodel</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_get_widgets</NAME>
-<RETURNS>GtkWidget **</RETURNS>
-GtkForm *form
+<NAME>gtk_form_field_boolean_str_to_boolean</NAME>
+<RETURNS>gboolean </RETURNS>
+const gchar *value
 </FUNCTION>
+<MACRO>
+<NAME>TYPE_GTK_FORM_WIDGET</NAME>
+#define TYPE_GTK_FORM_WIDGET                 (gtk_form_widget_get_type ())
+</MACRO>
+<MACRO>
+<NAME>GTK_FORM_WIDGET</NAME>
+#define GTK_FORM_WIDGET(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidget))
+</MACRO>
+<MACRO>
+<NAME>GTK_FORM_WIDGET_CLASS</NAME>
+#define GTK_FORM_WIDGET_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET, GtkFormWidgetClass))
+</MACRO>
+<MACRO>
+<NAME>IS_GTK_FORM_WIDGET</NAME>
+#define IS_GTK_FORM_WIDGET(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET))
+</MACRO>
+<MACRO>
+<NAME>IS_GTK_FORM_WIDGET_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET))
+</MACRO>
+<MACRO>
+<NAME>GTK_FORM_WIDGET_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidgetClass))
+</MACRO>
+<STRUCT>
+<NAME>GtkFormWidget</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidget</NAME>
+struct _GtkFormWidget
+       {
+               GObject parent;
+       };
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetClass</NAME>
+struct _GtkFormWidgetClass
+       {
+               GObjectClass parent_class;
+
+               const gchar *(*get_value_stringify) (GtkFormWidget *fwidget);
+
+               gboolean (*set_value_stringify) (GtkFormWidget *fwidget, const gchar *value);
+
+               void (*set_editable) (GtkFormWidget *fwidget, gboolean editable);
+       };
+</STRUCT>
 <FUNCTION>
-<NAME>gtk_form_get_objects_by_name</NAME>
-<RETURNS>GObject **</RETURNS>
-GtkForm *form, ...
+<NAME>gtk_form_widget_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_clear</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form
+<NAME>gtk_form_widget_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_check</NAME>
+<NAME>gtk_form_widget_set_from_gtkbuilder</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkForm *form, gboolean with_key,GtkFormWidget **form_widget,gboolean show_error_dialog, GtkWidget *parent_window,gboolean set_focus
+GtkFormWidget *fwidget,GtkBuilder *gtkbuilder,const gchar *widget_name
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_is_changed</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form
+<NAME>gtk_form_widget_get_widget</NAME>
+<RETURNS>GtkWidget *</RETURNS>
+GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_as_origin</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form
+<NAME>gtk_form_widget_get_widget_name</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_sensitive</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, gboolean sensitive
+<NAME>gtk_form_widget_get_label</NAME>
+<RETURNS>GtkWidget *</RETURNS>
+GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_sensitive_by_name</NAME>
+<NAME>gtk_form_widget_set_label</NAME>
 <RETURNS>void </RETURNS>
-GtkForm *form, gboolean sensitive, ...
+GtkFormWidget *fwidget, GtkLabel *label
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_editable</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, gboolean editable
+<NAME>gtk_form_widget_get_value_stringify</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormWidget *fwidget
 </FUNCTION>
-<ENUM>
-<NAME>GtkFormSqlType</NAME>
-typedef enum
-{
-       GTK_FORM_SQL_SELECT,
-       GTK_FORM_SQL_INSERT,
-       GTK_FORM_SQL_UPDATE,
-       GTK_FORM_SQL_DELETE
-} GtkFormSqlType;
-</ENUM>
 <FUNCTION>
-<NAME>gtk_form_get_sql</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkForm *form, GtkFormSqlType type
+<NAME>gtk_form_widget_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_fill_from_datamodel</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form, GdaDataModel *dm, gint row
+<NAME>gtk_form_widget_set_editable</NAME>
+<RETURNS>void </RETURNS>
+GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET_ENTRY</NAME>
-#define TYPE_GTK_FORM_WIDGET_ENTRY                 (gtk_form_widget_entry_get_type ())
+<NAME>TYPE_GTK_FORM_FIELD_TEXT</NAME>
+#define TYPE_GTK_FORM_FIELD_TEXT                 (gtk_form_field_text_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_ENTRY</NAME>
-#define GTK_FORM_WIDGET_ENTRY(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_ENTRY, GtkFormWidgetEntry))
+<NAME>GTK_FORM_FIELD_TEXT</NAME>
+#define GTK_FORM_FIELD_TEXT(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_TEXT, GtkFormFieldText))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_ENTRY_CLASS</NAME>
-#define GTK_FORM_WIDGET_ENTRY_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_ENTRY, GtkFormWidgetEntryClass))
+<NAME>GTK_FORM_FIELD_TEXT_CLASS</NAME>
+#define GTK_FORM_FIELD_TEXT_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_TEXT, GtkFormFieldTextClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_ENTRY</NAME>
-#define IS_GTK_FORM_WIDGET_ENTRY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_ENTRY))
+<NAME>IS_GTK_FORM_FIELD_TEXT</NAME>
+#define IS_GTK_FORM_FIELD_TEXT(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_TEXT))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_ENTRY_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_ENTRY_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_ENTRY))
+<NAME>IS_GTK_FORM_FIELD_TEXT_CLASS</NAME>
+#define IS_GTK_FORM_FIELD_TEXT_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_TEXT))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_ENTRY_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_ENTRY_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_ENTRY, GtkFormWidgetEntryClass))
+<NAME>GTK_FORM_FIELD_TEXT_GET_CLASS</NAME>
+#define GTK_FORM_FIELD_TEXT_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_TEXT, GtkFormFieldTextClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidgetEntry</NAME>
+<NAME>GtkFormFieldText</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetEntryClass</NAME>
+<NAME>GtkFormFieldTextClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetEntry</NAME>
-struct _GtkFormWidgetEntry
+<NAME>GtkFormFieldText</NAME>
+struct _GtkFormFieldText
        {
-               GtkFormWidget parent;
+               GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetEntryClass</NAME>
-struct _GtkFormWidgetEntryClass
+<NAME>GtkFormFieldTextClass</NAME>
+struct _GtkFormFieldTextClass
        {
-               GtkFormWidgetClass parent_class;
+               GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_get_type</NAME>
+<NAME>gtk_form_field_text_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
+<NAME>gtk_form_field_text_new</NAME>
+<RETURNS>GtkFormField *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_get_value_stringify</NAME>
+<NAME>gtk_form_field_text_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkFormWidget *widget
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_set_value_stringify</NAME>
+<NAME>gtk_form_field_text_get_value</NAME>
+<RETURNS>const GValue *</RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_text_get_value_sql</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_text_clear</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_set_editable</NAME>
+<NAME>gtk_form_field_text_is_empty</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_text_is_changed</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_text_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_text_set_from_datamodel</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
 <MACRO>
 <NAME>TYPE_GTK_FORM_FIELD_DATETIME</NAME>
@@ -455,105 +544,6 @@ struct tm *datetime
 void
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_FIELD_BOOLEAN</NAME>
-#define TYPE_GTK_FORM_FIELD_BOOLEAN                 (gtk_form_field_boolean_get_type ())
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_FIELD_BOOLEAN</NAME>
-#define GTK_FORM_FIELD_BOOLEAN(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_BOOLEAN, GtkFormFieldBoolean))
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_FIELD_BOOLEAN_CLASS</NAME>
-#define GTK_FORM_FIELD_BOOLEAN_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_BOOLEAN, GtkFormFieldBooleanClass))
-</MACRO>
-<MACRO>
-<NAME>IS_GTK_FORM_FIELD_BOOLEAN</NAME>
-#define IS_GTK_FORM_FIELD_BOOLEAN(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_BOOLEAN))
-</MACRO>
-<MACRO>
-<NAME>IS_GTK_FORM_FIELD_BOOLEAN_CLASS</NAME>
-#define IS_GTK_FORM_FIELD_BOOLEAN_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_BOOLEAN))
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_FIELD_BOOLEAN_GET_CLASS</NAME>
-#define GTK_FORM_FIELD_BOOLEAN_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_BOOLEAN, GtkFormFieldBooleanClass))
-</MACRO>
-<STRUCT>
-<NAME>GtkFormFieldBoolean</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormFieldBooleanClass</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormFieldBoolean</NAME>
-struct _GtkFormFieldBoolean
-       {
-               GtkFormField parent;
-       };
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormFieldBooleanClass</NAME>
-struct _GtkFormFieldBooleanClass
-       {
-               GtkFormFieldClass parent_class;
-       };
-</STRUCT>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_get_type</NAME>
-<RETURNS>GType </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_new</NAME>
-<RETURNS>GtkFormField *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_clear</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_is_empty</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_filed_boolean_is_changed</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_set_as_origin</NAME>
-<RETURNS>void </RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_set_from_datamodel</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field, GdaDataModel *dm, gint row
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_boolean_str_to_boolean</NAME>
-<RETURNS>gboolean </RETURNS>
-const gchar *value
-</FUNCTION>
-<MACRO>
 <NAME>TYPE_GTK_FORM_WIDGET_LABEL</NAME>
 #define TYPE_GTK_FORM_WIDGET_LABEL                 (gtk_form_widget_label_get_type ())
 </MACRO>
@@ -618,209 +608,249 @@ GtkFormWidget *widget
 GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET_COMBO_BOX</NAME>
-#define TYPE_GTK_FORM_WIDGET_COMBO_BOX                 (gtk_form_widget_combo_box_get_type ())
+<NAME>TYPE_GTK_FORM_FIELD_FLOAT</NAME>
+#define TYPE_GTK_FORM_FIELD_FLOAT                 (gtk_form_field_float_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_COMBO_BOX</NAME>
-#define GTK_FORM_WIDGET_COMBO_BOX(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_COMBO_BOX, GtkFormWidgetComboBox))
+<NAME>GTK_FORM_FIELD_FLOAT</NAME>
+#define GTK_FORM_FIELD_FLOAT(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_FLOAT, GtkFormFieldFloat))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_COMBO_BOX_CLASS</NAME>
-#define GTK_FORM_WIDGET_COMBO_BOX_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_COMBO_BOX, GtkFormWidgetComboBoxClass))
+<NAME>GTK_FORM_FIELD_FLOAT_CLASS</NAME>
+#define GTK_FORM_FIELD_FLOAT_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_FLOAT, GtkFormFieldFloatClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_COMBO_BOX</NAME>
-#define IS_GTK_FORM_WIDGET_COMBO_BOX(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_COMBO_BOX))
+<NAME>IS_GTK_FORM_FIELD_FLOAT</NAME>
+#define IS_GTK_FORM_FIELD_FLOAT(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_FLOAT))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_COMBO_BOX_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_COMBO_BOX_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_COMBO_BOX))
+<NAME>IS_GTK_FORM_FIELD_FLOAT_CLASS</NAME>
+#define IS_GTK_FORM_FIELD_FLOAT_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_FLOAT))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_COMBO_BOX_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_COMBO_BOX_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_COMBO_BOX, GtkFormWidgetComboBoxClass))
+<NAME>GTK_FORM_FIELD_FLOAT_GET_CLASS</NAME>
+#define GTK_FORM_FIELD_FLOAT_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_FLOAT, GtkFormFieldFloatClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidgetComboBox</NAME>
+<NAME>GtkFormFieldFloat</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetComboBoxClass</NAME>
+<NAME>GtkFormFieldFloatClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetComboBox</NAME>
-struct _GtkFormWidgetComboBox
+<NAME>GtkFormFieldFloat</NAME>
+struct _GtkFormFieldFloat
        {
-               GtkFormWidget parent;
+               GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetComboBoxClass</NAME>
-struct _GtkFormWidgetComboBoxClass
+<NAME>GtkFormFieldFloatClass</NAME>
+struct _GtkFormFieldFloatClass
        {
-               GtkFormWidgetClass parent_class;
+               GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_get_type</NAME>
+<NAME>gtk_form_field_float_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
+<NAME>gtk_form_field_float_new</NAME>
+<RETURNS>GtkFormField *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_get_value_stringify</NAME>
+<NAME>gtk_form_field_float_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkFormWidget *widget
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_set_value_stringify</NAME>
+<NAME>gtk_form_field_float_get_value</NAME>
+<RETURNS>const GValue *</RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_float_get_value_sql</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_float_clear</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_set_editable</NAME>
+<NAME>gtk_form_field_float_is_empty</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_float_is_changed</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_float_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_float_set_from_datamodel</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET_CHECK</NAME>
-#define TYPE_GTK_FORM_WIDGET_CHECK                 (gtk_form_widget_check_get_type ())
+<NAME>TYPE_GTK_FORM_KEY</NAME>
+#define TYPE_GTK_FORM_KEY                 (gtk_form_key_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_CHECK</NAME>
-#define GTK_FORM_WIDGET_CHECK(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_CHECK, GtkFormWidgetCheck))
+<NAME>GTK_FORM_KEY</NAME>
+#define GTK_FORM_KEY(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_KEY, GtkFormKey))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_CHECK_CLASS</NAME>
-#define GTK_FORM_WIDGET_CHECK_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_CHECK, GtkFormWidgetCheckClass))
+<NAME>GTK_FORM_KEY_CLASS</NAME>
+#define GTK_FORM_KEY_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_KEY, GtkFormKeyClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_CHECK</NAME>
-#define IS_GTK_FORM_WIDGET_CHECK(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_CHECK))
+<NAME>IS_GTK_FORM_KEY</NAME>
+#define IS_GTK_FORM_KEY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_KEY))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_CHECK_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_CHECK_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_CHECK))
+<NAME>IS_GTK_FORM_KEY_CLASS</NAME>
+#define IS_GTK_FORM_KEY_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_KEY))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_CHECK_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_CHECK_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_CHECK, GtkFormWidgetCheckClass))
+<NAME>GTK_FORM_KEY_GET_CLASS</NAME>
+#define GTK_FORM_KEY_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_KEY, GtkFormKeyClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidgetCheck</NAME>
+<NAME>GtkFormKey</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetCheckClass</NAME>
+<NAME>GtkFormKeyClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetCheck</NAME>
-struct _GtkFormWidgetCheck
+<NAME>GtkFormKey</NAME>
+struct _GtkFormKey
        {
-               GtkFormWidget parent;
+               GObject parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetCheckClass</NAME>
-struct _GtkFormWidgetCheckClass
+<NAME>GtkFormKeyClass</NAME>
+struct _GtkFormKeyClass
        {
-               GtkFormWidgetClass parent_class;
+               GObjectClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_check_get_type</NAME>
+<NAME>gtk_form_key_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
+<NAME>gtk_form_key_new</NAME>
+<RETURNS>GtkFormKey *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormWidget *widget
+<NAME>gtk_form_key_add_field</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormKey *gtk_form_key, GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_set_value_stringify</NAME>
+<NAME>gtk_form_key_remove_field</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value
+GtkFormKey *gtk_form_key, GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_set_editable</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable
+<NAME>gtk_form_key_add_fields</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormKey *gtk_form_key, ...
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_key_check</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormKey *gtk_form_key, GtkFormWidget **form_widget
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_key_get_sql</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormKey *gtk_form_key
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_key_field_is_key</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormKey *gtk_form_key, GtkFormField *field
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET_SPIN</NAME>
-#define TYPE_GTK_FORM_WIDGET_SPIN                 (gtk_form_widget_spin_get_type ())
+<NAME>TYPE_GTK_FORM_WIDGET_TEXTVIEW</NAME>
+#define TYPE_GTK_FORM_WIDGET_TEXTVIEW                 (gtk_form_widget_textview_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_SPIN</NAME>
-#define GTK_FORM_WIDGET_SPIN(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpin))
+<NAME>GTK_FORM_WIDGET_TEXTVIEW</NAME>
+#define GTK_FORM_WIDGET_TEXTVIEW(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_TEXTVIEW, GtkFormWidgetTextview))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_SPIN_CLASS</NAME>
-#define GTK_FORM_WIDGET_SPIN_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpinClass))
+<NAME>GTK_FORM_WIDGET_TEXTVIEW_CLASS</NAME>
+#define GTK_FORM_WIDGET_TEXTVIEW_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_TEXTVIEW, GtkFormWidgetTextviewClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_SPIN</NAME>
-#define IS_GTK_FORM_WIDGET_SPIN(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_SPIN))
+<NAME>IS_GTK_FORM_WIDGET_TEXTVIEW</NAME>
+#define IS_GTK_FORM_WIDGET_TEXTVIEW(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_TEXTVIEW))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_SPIN_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_SPIN_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_SPIN))
+<NAME>IS_GTK_FORM_WIDGET_TEXTVIEW_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_TEXTVIEW_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_TEXTVIEW))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_SPIN_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_SPIN_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpinClass))
+<NAME>GTK_FORM_WIDGET_TEXTVIEW_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_TEXTVIEW_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_TEXTVIEW, GtkFormWidgetTextviewClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidgetSpin</NAME>
+<NAME>GtkFormWidgetTextview</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetSpinClass</NAME>
+<NAME>GtkFormWidgetTextviewClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetSpin</NAME>
-struct _GtkFormWidgetSpin
+<NAME>GtkFormWidgetTextview</NAME>
+struct _GtkFormWidgetTextview
        {
                GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetSpinClass</NAME>
-struct _GtkFormWidgetSpinClass
+<NAME>GtkFormWidgetTextviewClass</NAME>
+struct _GtkFormWidgetTextviewClass
        {
                GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_get_type</NAME>
+<NAME>gtk_form_widget_textview_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_new</NAME>
+<NAME>gtk_form_widget_textview_new</NAME>
 <RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_get_value_stringify</NAME>
+<NAME>gtk_form_widget_textview_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_set_value_stringify</NAME>
+<NAME>gtk_form_widget_textview_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_set_editable</NAME>
+<NAME>gtk_form_widget_textview_set_editable</NAME>
 <RETURNS>void </RETURNS>
 GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
@@ -949,265 +979,319 @@ GtkFormField *field
 GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_FIELD_TEXT</NAME>
-#define TYPE_GTK_FORM_FIELD_TEXT                 (gtk_form_field_text_get_type ())
+<NAME>TYPE_GTK_FORM</NAME>
+#define TYPE_GTK_FORM                 (gtk_form_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_FIELD_TEXT</NAME>
-#define GTK_FORM_FIELD_TEXT(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_TEXT, GtkFormFieldText))
+<NAME>GTK_FORM</NAME>
+#define GTK_FORM(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM, GtkForm))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_FIELD_TEXT_CLASS</NAME>
-#define GTK_FORM_FIELD_TEXT_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_TEXT, GtkFormFieldTextClass))
+<NAME>GTK_FORM_CLASS</NAME>
+#define GTK_FORM_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM, GtkFormClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_FIELD_TEXT</NAME>
-#define IS_GTK_FORM_FIELD_TEXT(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_TEXT))
+<NAME>IS_GTK_FORM</NAME>
+#define IS_GTK_FORM(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_FIELD_TEXT_CLASS</NAME>
-#define IS_GTK_FORM_FIELD_TEXT_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_TEXT))
+<NAME>IS_GTK_FORM_CLASS</NAME>
+#define IS_GTK_FORM_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_FIELD_TEXT_GET_CLASS</NAME>
-#define GTK_FORM_FIELD_TEXT_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_TEXT, GtkFormFieldTextClass))
+<NAME>GTK_FORM_GET_CLASS</NAME>
+#define GTK_FORM_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM, GtkFormClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormFieldText</NAME>
+<NAME>GtkForm</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldTextClass</NAME>
+<NAME>GtkFormClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldText</NAME>
-struct _GtkFormFieldText
+<NAME>GtkForm</NAME>
+struct _GtkForm
        {
-               GtkFormField parent;
+               GObject parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldTextClass</NAME>
-struct _GtkFormFieldTextClass
+<NAME>GtkFormClass</NAME>
+struct _GtkFormClass
        {
-               GtkFormFieldClass parent_class;
+               GObjectClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_type</NAME>
+<NAME>gtk_form_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_new</NAME>
-<RETURNS>GtkFormField *</RETURNS>
+<NAME>gtk_form_new</NAME>
+<RETURNS>GtkForm *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_new_from_xml</NAME>
+<RETURNS>GtkForm *</RETURNS>
+xmlDoc *xmldoc, GtkBuilder *gtkbuilder
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_new_from_file</NAME>
+<RETURNS>GtkForm *</RETURNS>
+const gchar *filename, GtkBuilder *gtkbuilder
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_value_sql</NAME>
+<NAME>gtk_form_get_gtkbuilder</NAME>
+<RETURNS>GtkBuilder *</RETURNS>
+GtkForm *form
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_table</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkFormField *field
+GtkForm *form
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_set_table</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, const gchar *table
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_key</NAME>
+<RETURNS>GtkFormKey *</RETURNS>
+GtkForm *form
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_set_key</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, GtkFormKey *key
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_add_field</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_remove_field</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, GtkFormField *field
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_add_fields</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, ...
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_form_field_from_name</NAME>
+<RETURNS>GtkFormField *</RETURNS>
+GtkForm *form, const gchar *field_name
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_form_widget_from_name</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+GtkForm *form, const gchar *widget_name
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_widgets</NAME>
+<RETURNS>GtkWidget **</RETURNS>
+GtkForm *form
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_objects_by_name</NAME>
+<RETURNS>GObject **</RETURNS>
+GtkForm *form, ...
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_clear</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_check</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, gboolean with_key,GtkFormWidget **form_widget,gboolean show_error_dialog, GtkWidget *parent_window,gboolean set_focus
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_is_changed</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_clear</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_set_as_origin</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_is_empty</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_set_sensitive</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean sensitive
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_is_changed</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+<NAME>gtk_form_set_sensitive_by_name</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean sensitive, ...
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_as_origin</NAME>
+<NAME>gtk_form_set_editable</NAME>
 <RETURNS>void </RETURNS>
-GtkFormField *field
+GtkForm *form, gboolean editable
+</FUNCTION>
+<ENUM>
+<NAME>GtkFormSqlType</NAME>
+typedef enum
+{
+       GTK_FORM_SQL_SELECT,
+       GTK_FORM_SQL_INSERT,
+       GTK_FORM_SQL_UPDATE,
+       GTK_FORM_SQL_DELETE
+} GtkFormSqlType;
+</ENUM>
+<FUNCTION>
+<NAME>gtk_form_get_sql</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkForm *form, GtkFormSqlType type
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_from_datamodel</NAME>
+<NAME>gtk_form_fill_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field, GdaDataModel *dm, gint row
+GtkForm *form, GdaDataModel *dm, gint row
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET_TEXTVIEW</NAME>
-#define TYPE_GTK_FORM_WIDGET_TEXTVIEW                 (gtk_form_widget_textview_get_type ())
+<NAME>TYPE_GTK_FORM_WIDGET_COMBO_BOX</NAME>
+#define TYPE_GTK_FORM_WIDGET_COMBO_BOX                 (gtk_form_widget_combo_box_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_TEXTVIEW</NAME>
-#define GTK_FORM_WIDGET_TEXTVIEW(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_TEXTVIEW, GtkFormWidgetTextview))
+<NAME>GTK_FORM_WIDGET_COMBO_BOX</NAME>
+#define GTK_FORM_WIDGET_COMBO_BOX(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_COMBO_BOX, GtkFormWidgetComboBox))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_TEXTVIEW_CLASS</NAME>
-#define GTK_FORM_WIDGET_TEXTVIEW_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_TEXTVIEW, GtkFormWidgetTextviewClass))
+<NAME>GTK_FORM_WIDGET_COMBO_BOX_CLASS</NAME>
+#define GTK_FORM_WIDGET_COMBO_BOX_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_COMBO_BOX, GtkFormWidgetComboBoxClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_TEXTVIEW</NAME>
-#define IS_GTK_FORM_WIDGET_TEXTVIEW(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_TEXTVIEW))
+<NAME>IS_GTK_FORM_WIDGET_COMBO_BOX</NAME>
+#define IS_GTK_FORM_WIDGET_COMBO_BOX(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_COMBO_BOX))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_TEXTVIEW_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_TEXTVIEW_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_TEXTVIEW))
+<NAME>IS_GTK_FORM_WIDGET_COMBO_BOX_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_COMBO_BOX_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_COMBO_BOX))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_TEXTVIEW_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_TEXTVIEW_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_TEXTVIEW, GtkFormWidgetTextviewClass))
+<NAME>GTK_FORM_WIDGET_COMBO_BOX_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_COMBO_BOX_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_COMBO_BOX, GtkFormWidgetComboBoxClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidgetTextview</NAME>
+<NAME>GtkFormWidgetComboBox</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetTextviewClass</NAME>
+<NAME>GtkFormWidgetComboBoxClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetTextview</NAME>
-struct _GtkFormWidgetTextview
+<NAME>GtkFormWidgetComboBox</NAME>
+struct _GtkFormWidgetComboBox
        {
                GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetTextviewClass</NAME>
-struct _GtkFormWidgetTextviewClass
+<NAME>GtkFormWidgetComboBoxClass</NAME>
+struct _GtkFormWidgetComboBoxClass
        {
                GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_get_type</NAME>
+<NAME>gtk_form_widget_combo_box_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_new</NAME>
+<NAME>gtk_form_widget_combo_box_new</NAME>
 <RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_get_value_stringify</NAME>
+<NAME>gtk_form_widget_combo_box_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_set_value_stringify</NAME>
+<NAME>gtk_form_widget_combo_box_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_set_editable</NAME>
+<NAME>gtk_form_widget_combo_box_set_editable</NAME>
 <RETURNS>void </RETURNS>
 GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET</NAME>
-#define TYPE_GTK_FORM_WIDGET                 (gtk_form_widget_get_type ())
+<NAME>TYPE_GTK_FORM_WIDGET_ENTRY</NAME>
+#define TYPE_GTK_FORM_WIDGET_ENTRY                 (gtk_form_widget_entry_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET</NAME>
-#define GTK_FORM_WIDGET(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidget))
+<NAME>GTK_FORM_WIDGET_ENTRY</NAME>
+#define GTK_FORM_WIDGET_ENTRY(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_ENTRY, GtkFormWidgetEntry))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_CLASS</NAME>
-#define GTK_FORM_WIDGET_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET, GtkFormWidgetClass))
+<NAME>GTK_FORM_WIDGET_ENTRY_CLASS</NAME>
+#define GTK_FORM_WIDGET_ENTRY_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_ENTRY, GtkFormWidgetEntryClass))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET</NAME>
-#define IS_GTK_FORM_WIDGET(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET))
+<NAME>IS_GTK_FORM_WIDGET_ENTRY</NAME>
+#define IS_GTK_FORM_WIDGET_ENTRY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_ENTRY))
 </MACRO>
 <MACRO>
-<NAME>IS_GTK_FORM_WIDGET_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET))
+<NAME>IS_GTK_FORM_WIDGET_ENTRY_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_ENTRY_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_ENTRY))
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidgetClass))
+<NAME>GTK_FORM_WIDGET_ENTRY_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_ENTRY_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_ENTRY, GtkFormWidgetEntryClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidget</NAME>
+<NAME>GtkFormWidgetEntry</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetClass</NAME>
+<NAME>GtkFormWidgetEntryClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidget</NAME>
-struct _GtkFormWidget
+<NAME>GtkFormWidgetEntry</NAME>
+struct _GtkFormWidgetEntry
        {
-               GObject parent;
+               GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetClass</NAME>
-struct _GtkFormWidgetClass
+<NAME>GtkFormWidgetEntryClass</NAME>
+struct _GtkFormWidgetEntryClass
        {
-               GObjectClass parent_class;
-
-               const gchar *(*get_value_stringify) (GtkFormWidget *fwidget);
-
-               gboolean (*set_value_stringify) (GtkFormWidget *fwidget, const gchar *value);
-
-               void (*set_editable) (GtkFormWidget *fwidget, gboolean editable);
+               GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_get_type</NAME>
+<NAME>gtk_form_widget_entry_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_new</NAME>
+<NAME>gtk_form_widget_entry_new</NAME>
 <RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_from_gtkbuilder</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget,GtkBuilder *gtkbuilder,const gchar *widget_name
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_get_widget</NAME>
-<RETURNS>GtkWidget *</RETURNS>
-GtkFormWidget *fwidget
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_get_widget_name</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormWidget *fwidget
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_get_label</NAME>
-<RETURNS>GtkWidget *</RETURNS>
-GtkFormWidget *fwidget
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_set_label</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, GtkLabel *label
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_get_value_stringify</NAME>
+<NAME>gtk_form_widget_entry_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkFormWidget *fwidget
+GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_value_stringify</NAME>
+<NAME>gtk_form_widget_entry_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_editable</NAME>
+<NAME>gtk_form_widget_entry_set_editable</NAME>
 <RETURNS>void </RETURNS>
 GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
@@ -1305,87 +1389,3 @@ GtkFormField *field
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
-<MACRO>
-<NAME>TYPE_GTK_FORM_KEY</NAME>
-#define TYPE_GTK_FORM_KEY                 (gtk_form_key_get_type ())
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_KEY</NAME>
-#define GTK_FORM_KEY(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_KEY, GtkFormKey))
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_KEY_CLASS</NAME>
-#define GTK_FORM_KEY_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_KEY, GtkFormKeyClass))
-</MACRO>
-<MACRO>
-<NAME>IS_GTK_FORM_KEY</NAME>
-#define IS_GTK_FORM_KEY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_KEY))
-</MACRO>
-<MACRO>
-<NAME>IS_GTK_FORM_KEY_CLASS</NAME>
-#define IS_GTK_FORM_KEY_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_KEY))
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_KEY_GET_CLASS</NAME>
-#define GTK_FORM_KEY_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_KEY, GtkFormKeyClass))
-</MACRO>
-<STRUCT>
-<NAME>GtkFormKey</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormKeyClass</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormKey</NAME>
-struct _GtkFormKey
-       {
-               GObject parent;
-       };
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormKeyClass</NAME>
-struct _GtkFormKeyClass
-       {
-               GObjectClass parent_class;
-       };
-</STRUCT>
-<FUNCTION>
-<NAME>gtk_form_key_get_type</NAME>
-<RETURNS>GType </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_new</NAME>
-<RETURNS>GtkFormKey *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_add_field</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_remove_field</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_add_fields</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, ...
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_check</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormWidget **form_widget
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_get_sql</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkFormKey *gtk_form_key
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_key_field_is_key</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field
-</FUNCTION>
index b9bc16d484b82833f9fb5d9ce7a14917792d5bdc..d60344aef17615057ed39e1f069f8486b54b5c2c 100644 (file)
@@ -1,6 +1,7 @@
 LIBS = $(GTKFORM_LIBS)
 
-AM_CPPFLAGS = $(GTKFORM_CFLAGS)
+AM_CPPFLAGS = $(GTKFORM_CFLAGS) \
+              -DLOCALEDIR=\"$(localedir)\"
 
 lib_LTLIBRARIES = libgtkform.la
 
index d74c7e9063f8bc106886e8b13a7c0c7ff5c9abd2..62e887bf3dfd043d6dd4f59ba0b1efc41c893631 100644 (file)
@@ -131,6 +131,10 @@ gtk_form_init (GtkForm *form)
 GtkForm
 *gtk_form_new ()
 {
+       setlocale (LC_ALL, "");
+       bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+       textdomain (GETTEXT_PACKAGE);
+
        return GTK_FORM (g_object_new (gtk_form_get_type (), NULL));
 }
 
@@ -849,6 +853,7 @@ gtk_form_clear (GtkForm *form)
  * @with_key: whether check also the key or not.
  * @form_widget: a #GtkFormWidget.
  * @show_error_dialog:
+ * @parent_window:
  * @set_focus:
  *
  * Returns: TRUE if all obligatory fields are full and @widget is NULL. Otherwise
index 765d04daba578b645a825570e390bf2a37b32bc2..8e28fc99191347d2c70cf51d07c2ed1b8bb70707 100644 (file)
@@ -67,7 +67,7 @@ void
 on_btnCheck_clicked (GtkButton *button,
                      gpointer user_data)
 {
-       if (!gtk_form_check (form, TRUE, NULL, FALSE, NULL, FALSE))
+       if (!gtk_form_check (form, TRUE, NULL, TRUE, w, FALSE))
                {
                        GtkWidget *diag = gtk_message_dialog_new (GTK_WINDOW (w),
                                                                  GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,