Ended introducing support for internationalization.
authorAndrea Zagli <azagli@libero.it>
Mon, 5 Oct 2009 17:24:26 +0000 (19:24 +0200)
committerAndrea Zagli <azagli@libero.it>
Mon, 5 Oct 2009 17:24:26 +0000 (19:24 +0200)
12 files changed:
.gitignore
configure.ac
docs/reference/libgtkform-decl-list.txt
docs/reference/libgtkform-decl.txt
docs/reference/libgtkform-undocumented.txt
docs/reference/libgtkform-unused.txt
docs/reference/libgtkform.args
docs/reference/tmpl/field.sgml
docs/reference/tmpl/form.sgml
po/LINGUAS [new file with mode: 0644]
po/it.po [new file with mode: 0644]
src/form.c

index 262a56b77aa4021e2bbc52985691b41a1c3b0472..149fee46a4413fd7e9e5f13658715e8946033023 100644 (file)
@@ -41,3 +41,5 @@ test/from_xml
 test/from_xml_with_db
 POTFILES
 mkinstalldirs
+stamp-it
+intltool-*
index 6a43099d4cfa51506f0755bdb95efe1dd242591b..a5ee871f9f48d42febdf4c177e875d852f787732 100644 (file)
@@ -27,6 +27,7 @@ AC_PROG_MAKE_SET
 AC_PROG_LIBTOOL
 
 GTK_DOC_CHECK
+IT_PROG_INTLTOOL
 
 dnl ******************************
 dnl Translations
index 3811719dc2df5119a5419f7cdada106ace58b333..582b198477132cae6e5a4f87c1aac813a8d86d02 100644 (file)
 <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
-</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
-</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
+<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>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>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>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>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>
@@ -121,6 +97,31 @@ gtk_form_field_datetime_set_as_origin
 gtk_form_field_datetime_set_from_datamodel
 gtk_form_field_datetime_get_tm_from_str
 gtk_form_field_datetime_get_str_from_tm
+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>
@@ -140,62 +141,54 @@ gtk_form_widget_label_set_value_stringify
 </SECTION>
 
 <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>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>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
+<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>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>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>
@@ -217,6 +210,7 @@ gtk_form_field_get_value_stringify
 gtk_form_field_get_value
 gtk_form_field_get_value_sql
 gtk_form_field_clear
+gtk_form_field_is_to_save
 gtk_form_field_is_empty
 gtk_form_field_is_changed
 gtk_form_field_set_as_origin
@@ -224,75 +218,64 @@ gtk_form_field_set_from_datamodel
 </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>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>
-<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>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>
-<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>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>
@@ -317,3 +300,23 @@ 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 62bcf876c26f635a2ed8cf658c32efcd9592162f..2507ead49dbdbfb2c4230fee672b7069a21bbfd4 100644 (file)
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET_SPIN</NAME>
-#define TYPE_GTK_FORM_WIDGET_SPIN                 (gtk_form_widget_spin_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_SPIN</NAME>
-#define GTK_FORM_WIDGET_SPIN(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_SPIN, GtkFormWidgetSpin))
+<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_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_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_SPIN</NAME>
-#define IS_GTK_FORM_WIDGET_SPIN(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_SPIN))
+<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_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_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_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_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>GtkFormWidgetSpin</NAME>
+<NAME>GtkFormFieldFloat</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetSpinClass</NAME>
+<NAME>GtkFormFieldFloatClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetSpin</NAME>
-struct _GtkFormWidgetSpin
+<NAME>GtkFormFieldFloat</NAME>
+struct _GtkFormFieldFloat
        {
-               GtkFormWidget parent;
+               GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetSpinClass</NAME>
-struct _GtkFormWidgetSpinClass
+<NAME>GtkFormFieldFloatClass</NAME>
+struct _GtkFormFieldFloatClass
        {
-               GtkFormWidgetClass parent_class;
+               GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_get_type</NAME>
+<NAME>gtk_form_field_float_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
+<NAME>gtk_form_field_float_new</NAME>
+<RETURNS>GtkFormField *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_spin_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_spin_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_spin_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</NAME>
+#define TYPE_GTK_FORM                 (gtk_form_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</NAME>
+#define GTK_FORM(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM, GtkForm))
 </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_CLASS</NAME>
+#define GTK_FORM_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM, GtkFormClass))
 </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</NAME>
+#define IS_GTK_FORM(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM))
 </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_CLASS</NAME>
+#define IS_GTK_FORM_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM))
 </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_GET_CLASS</NAME>
+#define GTK_FORM_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM, GtkFormClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormWidgetCheck</NAME>
+<NAME>GtkForm</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetCheckClass</NAME>
+<NAME>GtkFormClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetCheck</NAME>
-struct _GtkFormWidgetCheck
+<NAME>GtkForm</NAME>
+struct _GtkForm
        {
-               GtkFormWidget parent;
+               GObject parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetCheckClass</NAME>
-struct _GtkFormWidgetCheckClass
+<NAME>GtkFormClass</NAME>
+struct _GtkFormClass
        {
-               GtkFormWidgetClass parent_class;
+               GObjectClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_check_get_type</NAME>
+<NAME>gtk_form_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
+<NAME>gtk_form_new</NAME>
+<RETURNS>GtkForm *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_get_value_stringify</NAME>
+<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>
 <RETURNS>const gchar *</RETURNS>
-GtkFormWidget *widget
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_set_value_stringify</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value
+<NAME>gtk_form_set_table</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, const gchar *table
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_check_set_editable</NAME>
+<NAME>gtk_form_get_key</NAME>
+<RETURNS>GtkFormKey *</RETURNS>
+GtkForm *form
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_set_key</NAME>
 <RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable
+GtkForm *form, GtkFormKey *key
 </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
+<NAME>gtk_form_add_field</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_new</NAME>
+<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>
-void
+GtkForm *form, const gchar *field_name
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_get_form_widget_from_name</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+GtkForm *form, const gchar *widget_name
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_get_widgets</NAME>
+<RETURNS>GtkWidget **</RETURNS>
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
+<NAME>gtk_form_get_objects_by_name</NAME>
+<RETURNS>GObject **</RETURNS>
+GtkForm *form, ...
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_clear</NAME>
+<NAME>gtk_form_clear</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_is_empty</NAME>
+<NAME>gtk_form_check</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field
+GtkForm *form, gboolean with_key,GtkFormWidget **form_widget,gboolean show_error_dialog, GtkWidget *parent_window,gboolean set_focus
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_filed_boolean_is_changed</NAME>
+<NAME>gtk_form_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_set_as_origin</NAME>
+<NAME>gtk_form_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
-GtkFormField *field
+GtkForm *form
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_set_from_datamodel</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field, GdaDataModel *dm, gint row
+<NAME>gtk_form_set_sensitive</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean sensitive
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_str_to_boolean</NAME>
+<NAME>gtk_form_set_sensitive_by_name</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean sensitive, ...
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_set_editable</NAME>
+<RETURNS>void </RETURNS>
+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_fill_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
-const gchar *value
+GtkForm *form, GdaDataModel *dm, gint row
 </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>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetClass</NAME>
+<NAME>GtkFormWidgetEntry</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidget</NAME>
-struct _GtkFormWidget
-       {
-               GObject parent;
-       };
+<NAME>GtkFormWidgetEntryClass</NAME>
 </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_widget_get_type</NAME>
-<RETURNS>GType </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_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>
+<NAME>GtkFormWidgetEntry</NAME>
+struct _GtkFormWidgetEntry
+       {
+               GtkFormWidget parent;
+       };
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetEntryClass</NAME>
+struct _GtkFormWidgetEntryClass
+       {
+               GtkFormWidgetClass parent_class;
+       };
+</STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_get_label</NAME>
-<RETURNS>GtkWidget *</RETURNS>
-GtkFormWidget *fwidget
+<NAME>gtk_form_widget_entry_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_label</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, GtkLabel *label
+<NAME>gtk_form_widget_entry_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+void
 </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>
 <MACRO>
-<NAME>TYPE_GTK_FORM_FIELD_TEXT</NAME>
-#define TYPE_GTK_FORM_FIELD_TEXT                 (gtk_form_field_text_get_type ())
+<NAME>TYPE_GTK_FORM_FIELD_DATETIME</NAME>
+#define TYPE_GTK_FORM_FIELD_DATETIME                 (gtk_form_field_datetime_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_FIELD_DATETIME</NAME>
+#define GTK_FORM_FIELD_DATETIME(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_DATETIME, GtkFormFieldDateTime))
 </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_FIELD_DATETIME_CLASS</NAME>
+#define GTK_FORM_FIELD_DATETIME_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_DATETIME, GtkFormFieldDateTimeClass))
 </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_FIELD_DATETIME</NAME>
+#define IS_GTK_FORM_FIELD_DATETIME(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_DATETIME))
 </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_FIELD_DATETIME_CLASS</NAME>
+#define IS_GTK_FORM_FIELD_DATETIME_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_DATETIME))
 </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_FIELD_DATETIME_GET_CLASS</NAME>
+#define GTK_FORM_FIELD_DATETIME_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_DATETIME, GtkFormFieldDateTimeClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormFieldText</NAME>
+<NAME>GtkFormFieldDateTime</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldTextClass</NAME>
+<NAME>GtkFormFieldDateTimeClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldText</NAME>
-struct _GtkFormFieldText
+<NAME>GtkFormFieldDateTime</NAME>
+struct _GtkFormFieldDateTime
        {
                GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldTextClass</NAME>
-struct _GtkFormFieldTextClass
+<NAME>GtkFormFieldDateTimeClass</NAME>
+struct _GtkFormFieldDateTimeClass
        {
                GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_type</NAME>
+<NAME>gtk_form_field_datetime_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_new</NAME>
+<NAME>gtk_form_field_datetime_new</NAME>
 <RETURNS>GtkFormField *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_value_stringify</NAME>
+<NAME>gtk_form_field_datetime_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_value</NAME>
+<NAME>gtk_form_field_datetime_get_value</NAME>
 <RETURNS>const GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_get_value_sql</NAME>
+<NAME>gtk_form_field_datetime_get_value_sql</NAME>
 <RETURNS>const gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_clear</NAME>
+<NAME>gtk_form_field_datetime_clear</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_is_empty</NAME>
+<NAME>gtk_form_field_datetime_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_is_changed</NAME>
+<NAME>gtk_form_field_datetime_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_as_origin</NAME>
+<NAME>gtk_form_field_datetime_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_from_datamodel</NAME>
+<NAME>gtk_form_field_datetime_set_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_datetime_get_tm_from_str</NAME>
+<RETURNS>struct tm *</RETURNS>
+const gchar *str, const gchar *format
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_datetime_get_str_from_tm</NAME>
+<RETURNS>gchar *</RETURNS>
+struct tm *datetime, const gchar *format
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_datetime_get_gdate_from_tm</NAME>
+<RETURNS>GDate *</RETURNS>
+struct tm *datetime
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_datetime_get_now</NAME>
+<RETURNS>struct tm *</RETURNS>
+void
+</FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_FIELD_DATETIME</NAME>
-#define TYPE_GTK_FORM_FIELD_DATETIME                 (gtk_form_field_datetime_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_FIELD_DATETIME</NAME>
-#define GTK_FORM_FIELD_DATETIME(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_DATETIME, GtkFormFieldDateTime))
+<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_DATETIME_CLASS</NAME>
-#define GTK_FORM_FIELD_DATETIME_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_DATETIME, GtkFormFieldDateTimeClass))
+<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_DATETIME</NAME>
-#define IS_GTK_FORM_FIELD_DATETIME(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_DATETIME))
+<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_DATETIME_CLASS</NAME>
-#define IS_GTK_FORM_FIELD_DATETIME_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_DATETIME))
+<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_DATETIME_GET_CLASS</NAME>
-#define GTK_FORM_FIELD_DATETIME_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_DATETIME, GtkFormFieldDateTimeClass))
+<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>GtkFormFieldDateTime</NAME>
+<NAME>GtkFormFieldBoolean</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldDateTimeClass</NAME>
+<NAME>GtkFormFieldBooleanClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldDateTime</NAME>
-struct _GtkFormFieldDateTime
+<NAME>GtkFormFieldBoolean</NAME>
+struct _GtkFormFieldBoolean
        {
                GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldDateTimeClass</NAME>
-struct _GtkFormFieldDateTimeClass
+<NAME>GtkFormFieldBooleanClass</NAME>
+struct _GtkFormFieldBooleanClass
        {
                GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_get_type</NAME>
+<NAME>gtk_form_field_boolean_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_new</NAME>
+<NAME>gtk_form_field_boolean_new</NAME>
 <RETURNS>GtkFormField *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_get_value_stringify</NAME>
+<NAME>gtk_form_field_boolean_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_get_value</NAME>
+<NAME>gtk_form_field_boolean_get_value</NAME>
 <RETURNS>const GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_get_value_sql</NAME>
+<NAME>gtk_form_field_boolean_get_value_sql</NAME>
 <RETURNS>const gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_clear</NAME>
+<NAME>gtk_form_field_boolean_clear</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_is_empty</NAME>
+<NAME>gtk_form_field_boolean_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_is_changed</NAME>
+<NAME>gtk_form_filed_boolean_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_set_as_origin</NAME>
+<NAME>gtk_form_field_boolean_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_set_from_datamodel</NAME>
+<NAME>gtk_form_field_boolean_set_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_datetime_get_tm_from_str</NAME>
-<RETURNS>struct tm *</RETURNS>
-const gchar *str, const gchar *format
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_datetime_get_str_from_tm</NAME>
-<RETURNS>gchar *</RETURNS>
-struct tm *datetime, const gchar *format
+<NAME>gtk_form_field_boolean_str_to_boolean</NAME>
+<RETURNS>gboolean </RETURNS>
+const gchar *value
 </FUNCTION>
 <MACRO>
 <NAME>TYPE_GTK_FORM_WIDGET_LABEL</NAME>
@@ -598,249 +618,209 @@ GtkFormWidget *widget
 GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <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_COMBO_BOX</NAME>
+#define TYPE_GTK_FORM_WIDGET_COMBO_BOX                 (gtk_form_widget_combo_box_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_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_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_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_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_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_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_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_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_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>GtkFormFieldFloat</NAME>
+<NAME>GtkFormWidgetComboBox</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldFloatClass</NAME>
+<NAME>GtkFormWidgetComboBoxClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldFloat</NAME>
-struct _GtkFormFieldFloat
+<NAME>GtkFormWidgetComboBox</NAME>
+struct _GtkFormWidgetComboBox
        {
-               GtkFormField parent;
+               GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldFloatClass</NAME>
-struct _GtkFormFieldFloatClass
+<NAME>GtkFormWidgetComboBoxClass</NAME>
+struct _GtkFormWidgetComboBoxClass
        {
-               GtkFormFieldClass parent_class;
+               GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_type</NAME>
+<NAME>gtk_form_widget_combo_box_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_new</NAME>
-<RETURNS>GtkFormField *</RETURNS>
+<NAME>gtk_form_widget_combo_box_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<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>
+<NAME>gtk_form_widget_combo_box_get_value_stringify</NAME>
 <RETURNS>const gchar *</RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_float_clear</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_float_is_empty</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field
+GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_is_changed</NAME>
+<NAME>gtk_form_widget_combo_box_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field
+GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_set_as_origin</NAME>
+<NAME>gtk_form_widget_combo_box_set_editable</NAME>
 <RETURNS>void </RETURNS>
-GtkFormField *field
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_float_set_from_datamodel</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field, GdaDataModel *dm, gint row
+GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
-<MACRO>
-<NAME>TYPE_GTK_FORM_KEY</NAME>
-#define TYPE_GTK_FORM_KEY                 (gtk_form_key_get_type ())
+<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_KEY</NAME>
-#define GTK_FORM_KEY(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_KEY, GtkFormKey))
+<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_KEY_CLASS</NAME>
-#define GTK_FORM_KEY_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_KEY, GtkFormKeyClass))
+<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_KEY</NAME>
-#define IS_GTK_FORM_KEY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_KEY))
+<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_KEY_CLASS</NAME>
-#define IS_GTK_FORM_KEY_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_KEY))
+<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_KEY_GET_CLASS</NAME>
-#define GTK_FORM_KEY_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_KEY, GtkFormKeyClass))
+<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>GtkFormKey</NAME>
+<NAME>GtkFormWidgetCheck</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormKeyClass</NAME>
+<NAME>GtkFormWidgetCheckClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormKey</NAME>
-struct _GtkFormKey
+<NAME>GtkFormWidgetCheck</NAME>
+struct _GtkFormWidgetCheck
        {
-               GObject parent;
+               GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormKeyClass</NAME>
-struct _GtkFormKeyClass
+<NAME>GtkFormWidgetCheckClass</NAME>
+struct _GtkFormWidgetCheckClass
        {
-               GObjectClass parent_class;
+               GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_key_get_type</NAME>
+<NAME>gtk_form_widget_check_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_new</NAME>
-<RETURNS>GtkFormKey *</RETURNS>
+<NAME>gtk_form_widget_check_new</NAME>
+<RETURNS>GtkFormWidget *</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, ...
+<NAME>gtk_form_widget_check_get_value_stringify</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_check</NAME>
+<NAME>gtk_form_widget_check_set_value_stringify</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
+GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_field_is_key</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field
+<NAME>gtk_form_widget_check_set_editable</NAME>
+<RETURNS>void </RETURNS>
+GtkFormWidget *fwidget, gboolean editable
 </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_SPIN</NAME>
+#define TYPE_GTK_FORM_WIDGET_SPIN                 (gtk_form_widget_spin_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_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_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_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_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_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_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_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_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_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>GtkFormWidgetTextview</NAME>
+<NAME>GtkFormWidgetSpin</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetTextviewClass</NAME>
+<NAME>GtkFormWidgetSpinClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetTextview</NAME>
-struct _GtkFormWidgetTextview
+<NAME>GtkFormWidgetSpin</NAME>
+struct _GtkFormWidgetSpin
        {
                GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetTextviewClass</NAME>
-struct _GtkFormWidgetTextviewClass
+<NAME>GtkFormWidgetSpinClass</NAME>
+struct _GtkFormWidgetSpinClass
        {
                GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_get_type</NAME>
+<NAME>gtk_form_widget_spin_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_new</NAME>
+<NAME>gtk_form_widget_spin_new</NAME>
 <RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_get_value_stringify</NAME>
+<NAME>gtk_form_widget_spin_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_spin_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_spin_set_editable</NAME>
 <RETURNS>void </RETURNS>
 GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
@@ -944,6 +924,11 @@ GtkFormField *field
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
+<NAME>gtk_form_field_is_to_save</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
+</FUNCTION>
+<FUNCTION>
 <NAME>gtk_form_field_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field
@@ -964,319 +949,265 @@ GtkFormField *field
 GtkFormField *field, GdaDataModel *dm, gint row
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM</NAME>
-#define TYPE_GTK_FORM                 (gtk_form_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</NAME>
-#define GTK_FORM(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM, GtkForm))
+<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_CLASS</NAME>
-#define GTK_FORM_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM, GtkFormClass))
+<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</NAME>
-#define IS_GTK_FORM(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM))
+<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_CLASS</NAME>
-#define IS_GTK_FORM_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM))
+<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_GET_CLASS</NAME>
-#define GTK_FORM_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM, GtkFormClass))
+<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>GtkForm</NAME>
+<NAME>GtkFormFieldText</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormClass</NAME>
+<NAME>GtkFormFieldTextClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkForm</NAME>
-struct _GtkForm
+<NAME>GtkFormFieldText</NAME>
+struct _GtkFormFieldText
        {
-               GObject parent;
+               GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormClass</NAME>
-struct _GtkFormClass
+<NAME>GtkFormFieldTextClass</NAME>
+struct _GtkFormFieldTextClass
        {
-               GObjectClass parent_class;
+               GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_get_type</NAME>
+<NAME>gtk_form_field_text_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_new</NAME>
-<RETURNS>GtkForm *</RETURNS>
+<NAME>gtk_form_field_text_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_text_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
-</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
+GtkFormField *field
 </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
+<NAME>gtk_form_field_text_get_value</NAME>
+<RETURNS>const GValue *</RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_is_changed</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form
+<NAME>gtk_form_field_text_get_value_sql</NAME>
+<RETURNS>const gchar *</RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_as_origin</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form
+<NAME>gtk_form_field_text_clear</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_sensitive</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, gboolean sensitive
+<NAME>gtk_form_field_text_is_empty</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_sensitive_by_name</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, gboolean sensitive, ...
+<NAME>gtk_form_field_text_is_changed</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_editable</NAME>
+<NAME>gtk_form_field_text_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
-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
+GtkFormField *field
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_fill_from_datamodel</NAME>
+<NAME>gtk_form_field_text_set_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkForm *form, GdaDataModel *dm, gint row
+GtkFormField *field, GdaDataModel *dm, gint row
 </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_WIDGET_TEXTVIEW</NAME>
+#define TYPE_GTK_FORM_WIDGET_TEXTVIEW                 (gtk_form_widget_textview_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_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_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_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_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_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_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_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_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_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>GtkFormWidgetComboBox</NAME>
+<NAME>GtkFormWidgetTextview</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetComboBoxClass</NAME>
+<NAME>GtkFormWidgetTextviewClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetComboBox</NAME>
-struct _GtkFormWidgetComboBox
+<NAME>GtkFormWidgetTextview</NAME>
+struct _GtkFormWidgetTextview
        {
                GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetComboBoxClass</NAME>
-struct _GtkFormWidgetComboBoxClass
+<NAME>GtkFormWidgetTextviewClass</NAME>
+struct _GtkFormWidgetTextviewClass
        {
                GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_get_type</NAME>
+<NAME>gtk_form_widget_textview_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_new</NAME>
+<NAME>gtk_form_widget_textview_new</NAME>
 <RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_combo_box_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_combo_box_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_combo_box_set_editable</NAME>
+<NAME>gtk_form_widget_textview_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_WIDGET</NAME>
+#define TYPE_GTK_FORM_WIDGET                 (gtk_form_widget_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_WIDGET</NAME>
+#define GTK_FORM_WIDGET(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidget))
 </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_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_ENTRY</NAME>
-#define IS_GTK_FORM_WIDGET_ENTRY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_ENTRY))
+<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_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_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_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_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>GtkFormWidgetEntry</NAME>
+<NAME>GtkFormWidget</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetEntryClass</NAME>
+<NAME>GtkFormWidgetClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetEntry</NAME>
-struct _GtkFormWidgetEntry
+<NAME>GtkFormWidget</NAME>
+struct _GtkFormWidget
        {
-               GtkFormWidget parent;
+               GObject parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetEntryClass</NAME>
-struct _GtkFormWidgetEntryClass
+<NAME>GtkFormWidgetClass</NAME>
+struct _GtkFormWidgetClass
        {
-               GtkFormWidgetClass parent_class;
+               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_widget_entry_get_type</NAME>
+<NAME>gtk_form_widget_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_new</NAME>
+<NAME>gtk_form_widget_new</NAME>
 <RETURNS>GtkFormWidget *</RETURNS>
 void
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_get_value_stringify</NAME>
+<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 *widget
+GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_set_value_stringify</NAME>
+<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>
+<RETURNS>const gchar *</RETURNS>
+GtkFormWidget *fwidget
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormWidget *fwidget, const gchar *value
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_entry_set_editable</NAME>
+<NAME>gtk_form_widget_set_editable</NAME>
 <RETURNS>void </RETURNS>
 GtkFormWidget *fwidget, gboolean editable
 </FUNCTION>
@@ -1374,3 +1305,87 @@ 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 18721ba2151722ac243e30fea1c7e31b3201be1d..933d06aa7db84bdfa21e03fe4c2cc29f901484f1 100644 (file)
@@ -1,7 +1,7 @@
 7% symbol docs coverage.
-20 symbols documented.
+22 symbols documented.
 1 symbols incomplete.
-271 not documented.
+274 not documented.
 
 
 GTK_FORM
@@ -126,6 +126,8 @@ gtk_form_field_boolean_set_from_datamodel
 gtk_form_field_boolean_str_to_boolean (value)
 gtk_form_field_clear
 gtk_form_field_datetime_clear
+gtk_form_field_datetime_get_gdate_from_tm
+gtk_form_field_datetime_get_now
 gtk_form_field_datetime_get_str_format
 gtk_form_field_datetime_get_str_from_tm
 gtk_form_field_datetime_get_tm_from_str
@@ -166,6 +168,7 @@ gtk_form_field_integer_set_as_origin
 gtk_form_field_integer_set_from_datamodel
 gtk_form_field_is_changed
 gtk_form_field_is_empty
+gtk_form_field_is_to_save
 gtk_form_field_new
 gtk_form_field_new_from_gtk_form_widget
 gtk_form_field_set_from_datamodel
index ba1e6957ee6a08dc88f7f0a8d6c3dedbd099d638..d4a9e2d2620c7a8e3981ee72de5305339be821ab 100644 (file)
@@ -15,6 +15,8 @@ GtkFormWidgetSpinClass
 GtkFormWidgetTextviewClass
 gtk_form_field_boolean_set_as_origin
 gtk_form_field_boolean_str_to_boolean
+gtk_form_field_datetime_get_gdate_from_tm
+gtk_form_field_datetime_get_now
 gtk_form_field_datetime_get_str_from_tm
 gtk_form_field_datetime_get_tm_from_str
 gtk_form_field_datetime_is_changed
@@ -25,6 +27,7 @@ gtk_form_field_get_form_widget
 gtk_form_field_integer_is_changed
 gtk_form_field_integer_set_as_origin
 gtk_form_field_is_changed
+gtk_form_field_is_to_save
 gtk_form_field_set_as_origin
 gtk_form_field_text_is_changed
 gtk_form_field_text_set_as_origin
index ab99c825419d84e6f3dbfcaceffcd37835b7a737..b8641ae20075d5e18e4beb2374947ebc656d94b5 100644 (file)
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GtkFormField::to-save</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Whether save the field or not</NICK>
+<BLURB>Whether the field should be included or not on sql INSERT INTO and UPDATE.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GtkForm::key</NAME>
 <TYPE>GtkFormKey*</TYPE>
 <DEFAULT></DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GtkForm::quote</NAME>
+<TYPE>gchar</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Quoting character</NICK>
+<BLURB>Character to use to quote fields name.</BLURB>
+<DEFAULT>34</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GtkForm::table</NAME>
 <TYPE>gchar*</TYPE>
 <RANGE></RANGE>
-<FLAGS>rw</FLAGS>
+<FLAGS>rwx</FLAGS>
 <NICK>Table name</NICK>
 <BLURB>GtkForm's table name.</BLURB>
 <DEFAULT>""</DEFAULT>
index 88dbc6c7aa68d2464b05e904d8366a5d5495ea1c..728d37e3c29b4d53c5fc184511ec934f8ceabdf6 100644 (file)
@@ -85,6 +85,11 @@ FormField
 
 </para>
 
+<!-- ##### ARG GtkFormField:to-save ##### -->
+<para>
+
+</para>
+
 <!-- ##### FUNCTION gtk_form_field_get_type ##### -->
 <para>
 
index 5f05ef9c21a99bc210ce12e0206f08e66f42c4c0..e7eac81063192504301ecc39e93743fa3147d597 100644 (file)
@@ -75,6 +75,11 @@ Form
 
 </para>
 
+<!-- ##### ARG GtkForm:quote ##### -->
+<para>
+
+</para>
+
 <!-- ##### ARG GtkForm:table ##### -->
 <para>
 
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644 (file)
index 0000000..7d5856f
--- /dev/null
@@ -0,0 +1 @@
+it
diff --git a/po/it.po b/po/it.po
new file mode 100644 (file)
index 0000000..b78f38e
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Andrea Zagli <azagli@libero.it>, 2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-10-05 18:20+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Andrea Zagli <azagli@libero.it>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/form.c:1336
+#, c-format
+msgid "The field «%s» is obligatory."
+msgstr "Il campo «%s» è obbligatorio."
index 3557b62b0d59ede4f77e491acb3557ac51b1c520..d74c7e9063f8bc106886e8b13a7c0c7ff5c9abd2 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <libxml/xpath.h>
 
+#include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 
 #include "form.h"
@@ -1333,7 +1334,7 @@ gtk_form_show_check_error_dialog (GtkFormWidget *fwidget, GtkWidget *parent_wind
                                         GTK_DIALOG_DESTROY_WITH_PARENT,
                                         GTK_MESSAGE_WARNING,
                                         GTK_BUTTONS_OK,
-                                        "The field «%s» is obligatory.", label_text);
+                                        _("The field «%s» is obligatory."), label_text);
        gtk_dialog_run (GTK_DIALOG (dialog));
        gtk_widget_destroy (dialog);
 }