]> saetta.ns0.it Git - libgtkform/commitdiff
Added and managed property "to-load" to GtkFormField.
authorAndrea Zagli <azagli@libero.it>
Thu, 22 Jul 2010 09:10:08 +0000 (11:10 +0200)
committerAndrea Zagli <azagli@libero.it>
Thu, 22 Jul 2010 09:10:08 +0000 (11:10 +0200)
Added function GtkFormField::is_to_load.
Setted G_LOG_DOMAIN.
Added functions GtkForm::set_visible_by_name and
GtkForm::set_form_widgets_visible_by_name.
Added function GtkFormWidget::set_visible.

14 files changed:
data/gtkform.dtd
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
src/Makefile.am
src/field.c
src/field.h
src/form.c
src/form.h
src/widget.c
src/widget.h

index e193c8bc9a8af06cebd9a08983cdb4f741b2386f..c84d85968f6eade772908928b17961fc4beae1c4 100644 (file)
 
 <!ELEMENT return-value (#PCDATA)>
 
-<!ELEMENT field (to-save?, obligatory?, default?, is-key?, auto-increment?, datetime-type?, display-format?)>
+<!ELEMENT field (to-load?, to-save?, obligatory?, default?, is-key?, auto-increment?, datetime-type?, display-format?)>
 
 <!ATTLIST field
        type  (boolean | datetime | float | integer | text)  #REQUIRED
        name  CDATA  #REQUIRED
 >
 
+<!ELEMENT to-load (#PCDATA)>
 <!ELEMENT to-save (#PCDATA)>
 <!ELEMENT obligatory (#PCDATA)>
 <!ELEMENT default (#PCDATA)>
index 619bf22b59140a640028c18ef150910b6008b9c7..ee81339e5ba2366f55c10b691585d2ef4175240c 100644 (file)
 <SECTION>
-<FILE>fieldfloat</FILE>
-<TITLE>GtkFormFieldFloat</TITLE>
-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
-GtkFormFieldFloat
-GtkFormFieldFloatClass
-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
-gtk_form_field_float_set_from_hashtable
+<FILE>widgetspin</FILE>
+<TITLE>GtkFormWidgetSpin</TITLE>
+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
+GtkFormWidgetSpin
+GtkFormWidgetSpinClass
+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>
-<TITLE>GtkForm</TITLE>
-TYPE_GTK_FORM
-GTK_FORM
-GTK_FORM_CLASS
-IS_GTK_FORM
-IS_GTK_FORM_CLASS
-GTK_FORM_GET_CLASS
-GtkForm
-GtkFormClass
-gtk_form_get_type
-gtk_form_new
-gtk_form_new_from_xml
-gtk_form_new_from_file
-gtk_form_load_from_xml
-gtk_form_load_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_form_field_from_widget
-gtk_form_get_form_widget_from_widget
-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
-gtk_form_fill_from_table
-gtk_form_get_values_as_hashtable
-gtk_form_fill_from_hashtable
+<FILE>widgetcheck</FILE>
+<TITLE>GtkFormWidgetCheck</TITLE>
+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
+GtkFormWidgetCheck
+GtkFormWidgetCheckClass
+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>
-<TITLE>GtkFormWidgetEntry</TITLE>
-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
-GtkFormWidgetEntry
-GtkFormWidgetEntryClass
-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>
+<TITLE>GtkFormFieldBoolean</TITLE>
+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
+GtkFormFieldBoolean
+GtkFormFieldBooleanClass
+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_set_from_hashtable
+gtk_form_field_boolean_str_to_boolean
+</SECTION>
+
+<SECTION>
+<FILE>widget</FILE>
+<TITLE>GtkFormWidget</TITLE>
+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
+GtkFormWidget
+GtkFormWidgetClass
+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
+gtk_form_widget_set_visible
+</SECTION>
+
+<SECTION>
+<FILE>fieldtext</FILE>
+<TITLE>GtkFormFieldText</TITLE>
+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
+GtkFormFieldText
+GtkFormFieldTextClass
+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
+gtk_form_field_text_set_from_hashtable
 </SECTION>
 
 <SECTION>
@@ -114,31 +135,6 @@ gtk_form_field_datetime_get_gdate_from_tm
 gtk_form_field_datetime_get_now
 </SECTION>
 
-<SECTION>
-<FILE>fieldboolean</FILE>
-<TITLE>GtkFormFieldBoolean</TITLE>
-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
-GtkFormFieldBoolean
-GtkFormFieldBooleanClass
-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_set_from_hashtable
-gtk_form_field_boolean_str_to_boolean
-</SECTION>
-
 <SECTION>
 <FILE>widgetlabel</FILE>
 <TITLE>GtkFormWidgetLabel</TITLE>
@@ -157,59 +153,66 @@ gtk_form_widget_label_set_value_stringify
 </SECTION>
 
 <SECTION>
-<FILE>widgetcombobox</FILE>
-<TITLE>GtkFormWidgetComboBox</TITLE>
-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
-GtkFormWidgetComboBox
-GtkFormWidgetComboBoxClass
-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
-gtk_form_widget_combo_box_fill_from_datamodel
-gtk_form_widget_combo_box_fill_from_sql
+<FILE>fieldfloat</FILE>
+<TITLE>GtkFormFieldFloat</TITLE>
+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
+GtkFormFieldFloat
+GtkFormFieldFloatClass
+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
+gtk_form_field_float_set_from_hashtable
 </SECTION>
 
 <SECTION>
-<FILE>widgetcheck</FILE>
-<TITLE>GtkFormWidgetCheck</TITLE>
-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
-GtkFormWidgetCheck
-GtkFormWidgetCheckClass
-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>
+<TITLE>GtkFormKey</TITLE>
+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
+GtkFormKey
+GtkFormKeyClass
+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>
-<TITLE>GtkFormWidgetSpin</TITLE>
-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
-GtkFormWidgetSpin
-GtkFormWidgetSpinClass
-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>
+<TITLE>GtkFormWidgetTextview</TITLE>
+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
+GtkFormWidgetTextview
+GtkFormWidgetTextviewClass
+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>
@@ -232,6 +235,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_load
 gtk_form_field_is_to_save
 gtk_form_field_is_auto_increment
 gtk_form_field_is_empty
@@ -242,68 +246,109 @@ gtk_form_field_set_from_hashtable
 </SECTION>
 
 <SECTION>
-<FILE>fieldtext</FILE>
-<TITLE>GtkFormFieldText</TITLE>
-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
-GtkFormFieldText
-GtkFormFieldTextClass
-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
-gtk_form_field_text_set_from_hashtable
+<FILE>form</FILE>
+<TITLE>GtkForm</TITLE>
+TYPE_GTK_FORM
+GTK_FORM
+GTK_FORM_CLASS
+IS_GTK_FORM
+IS_GTK_FORM_CLASS
+GTK_FORM_GET_CLASS
+GtkForm
+GtkFormClass
+gtk_form_get_type
+gtk_form_new
+gtk_form_new_from_xml
+gtk_form_new_from_file
+gtk_form_load_from_xml
+gtk_form_load_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_form_field_from_widget
+gtk_form_get_form_widget_from_widget
+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
+gtk_form_set_visible_by_name
+gtk_form_set_form_widget_visible_by_name
+GtkFormSqlType
+gtk_form_get_sql
+gtk_form_fill_from_datamodel
+gtk_form_fill_from_table
+gtk_form_get_values_as_hashtable
+gtk_form_fill_from_hashtable
 </SECTION>
 
 <SECTION>
-<FILE>widgettextview</FILE>
-<TITLE>GtkFormWidgetTextview</TITLE>
-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
-GtkFormWidgetTextview
-GtkFormWidgetTextviewClass
-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>
+<TITLE>GtkFormWidgetComboBox</TITLE>
+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
+GtkFormWidgetComboBox
+GtkFormWidgetComboBoxClass
+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
+gtk_form_widget_combo_box_fill_from_datamodel
+gtk_form_widget_combo_box_fill_from_sql
 </SECTION>
 
 <SECTION>
-<FILE>widget</FILE>
-<TITLE>GtkFormWidget</TITLE>
-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
-GtkFormWidget
-GtkFormWidgetClass
-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>
+<TITLE>GtkFormWidgetEntry</TITLE>
+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
+GtkFormWidgetEntry
+GtkFormWidgetEntryClass
+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>
+<FILE>widgetradio</FILE>
+<TITLE>GtkFormWidgetRadio</TITLE>
+TYPE_GTK_FORM_WIDGET_RADIO
+GTK_FORM_WIDGET_RADIO
+GTK_FORM_WIDGET_RADIO_CLASS
+IS_GTK_FORM_WIDGET_RADIO
+IS_GTK_FORM_WIDGET_RADIO_CLASS
+GTK_FORM_WIDGET_RADIO_GET_CLASS
+GtkFormWidgetRadio
+GtkFormWidgetRadioClass
+gtk_form_widget_radio_get_type
+gtk_form_widget_radio_new
+gtk_form_widget_radio_get_value_stringify
+gtk_form_widget_radio_set_value_stringify
+gtk_form_widget_radio_set_editable
+gtk_form_widget_radio_set_return_value
+gtk_form_widget_radio_get_return_value
 </SECTION>
 
 <SECTION>
@@ -330,44 +375,3 @@ gtk_form_field_integer_set_from_datamodel
 gtk_form_field_integer_set_from_hashtable
 </SECTION>
 
-<SECTION>
-<FILE>widgetradio</FILE>
-<TITLE>GtkFormWidgetRadio</TITLE>
-TYPE_GTK_FORM_WIDGET_RADIO
-GTK_FORM_WIDGET_RADIO
-GTK_FORM_WIDGET_RADIO_CLASS
-IS_GTK_FORM_WIDGET_RADIO
-IS_GTK_FORM_WIDGET_RADIO_CLASS
-GTK_FORM_WIDGET_RADIO_GET_CLASS
-GtkFormWidgetRadio
-GtkFormWidgetRadioClass
-gtk_form_widget_radio_get_type
-gtk_form_widget_radio_new
-gtk_form_widget_radio_get_value_stringify
-gtk_form_widget_radio_set_value_stringify
-gtk_form_widget_radio_set_editable
-gtk_form_widget_radio_set_return_value
-gtk_form_widget_radio_get_return_value
-</SECTION>
-
-<SECTION>
-<FILE>key</FILE>
-<TITLE>GtkFormKey</TITLE>
-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
-GtkFormKey
-GtkFormKeyClass
-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 1bbddf2aadec230114fac9287be1550771612aba..ef09188f4a664f83c8d662a21665746db58f8845 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
+       {
+               GtkFormWidget parent;
+       };
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetSpinClass</NAME>
+struct _GtkFormWidgetSpinClass
+       {
+               GtkFormWidgetClass parent_class;
+       };
+</STRUCT>
+<FUNCTION>
+<NAME>gtk_form_widget_spin_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_spin_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_spin_get_value_stringify</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormWidget *widget 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_spin_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, const gchar *value 
+</FUNCTION>
+<FUNCTION>
+<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_widget_check_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_check_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_check_get_value_stringify</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormWidget *widget 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_check_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, const gchar *value 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_check_set_editable</NAME>
+<RETURNS>void </RETURNS>
+GtkFormWidget *fwidget, gboolean editable 
+</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>GtkFormFieldFloatClass</NAME>
-struct _GtkFormFieldFloatClass
+<NAME>GtkFormFieldBooleanClass</NAME>
+struct _GtkFormFieldBooleanClass
        {
                GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_type</NAME>
+<NAME>gtk_form_field_boolean_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_new</NAME>
+<NAME>gtk_form_field_boolean_new</NAME>
 <RETURNS>GtkFormField *</RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value_stringify</NAME>
+<NAME>gtk_form_field_boolean_get_value_stringify</NAME>
 <RETURNS>gchar *</RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value</NAME>
+<NAME>gtk_form_field_boolean_get_value</NAME>
 <RETURNS>GValue *</RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_get_value_sql</NAME>
+<NAME>gtk_form_field_boolean_get_value_sql</NAME>
 <RETURNS>gchar *</RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_clear</NAME>
+<NAME>gtk_form_field_boolean_clear</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_is_empty</NAME>
+<NAME>gtk_form_field_boolean_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_is_changed</NAME>
+<NAME>gtk_form_filed_boolean_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_set_as_origin</NAME>
+<NAME>gtk_form_field_boolean_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_float_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_float_set_from_hashtable</NAME>
+<NAME>gtk_form_field_boolean_set_from_hashtable</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field, GHashTable *hashtable 
 </FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_boolean_str_to_boolean</NAME>
+<RETURNS>gboolean </RETURNS>
+const gchar *value 
+</FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM</NAME>
-#define TYPE_GTK_FORM                 (gtk_form_get_type ())
+<NAME>TYPE_GTK_FORM_WIDGET</NAME>
+#define TYPE_GTK_FORM_WIDGET                 (gtk_form_widget_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_WIDGET</NAME>
+#define GTK_FORM_WIDGET(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidget))
 </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_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</NAME>
-#define IS_GTK_FORM(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM))
+<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_CLASS</NAME>
-#define IS_GTK_FORM_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM))
+<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_GET_CLASS</NAME>
-#define GTK_FORM_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM, GtkFormClass))
+<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>GtkForm</NAME>
+<NAME>GtkFormWidget</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormClass</NAME>
+<NAME>GtkFormWidgetClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkForm</NAME>
-struct _GtkForm
+<NAME>GtkFormWidget</NAME>
+struct _GtkFormWidget
        {
                GObject parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormClass</NAME>
-struct _GtkFormClass
+<NAME>GtkFormWidgetClass</NAME>
+struct _GtkFormWidgetClass
        {
                GObjectClass parent_class;
+
+               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_type</NAME>
+<NAME>gtk_form_widget_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_new</NAME>
-<RETURNS>GtkForm *</RETURNS>
+<NAME>gtk_form_widget_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_new_from_xml</NAME>
-<RETURNS>GtkForm *</RETURNS>
-xmlDoc *xmldoc, GtkBuilder *gtkbuilder 
+<NAME>gtk_form_widget_set_from_gtkbuilder</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, GtkBuilder *gtkbuilder, const gchar *widget_name 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_new_from_file</NAME>
-<RETURNS>GtkForm *</RETURNS>
-const gchar *filename, GtkBuilder *gtkbuilder 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_load_from_xml</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form, xmlDoc *xmldoc, GtkBuilder *gtkbuilder 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_load_from_file</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form, const gchar *filename, GtkBuilder *gtkbuilder 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_get_gtkbuilder</NAME>
-<RETURNS>GtkBuilder *</RETURNS>
-GtkForm *form 
+<NAME>gtk_form_widget_get_widget</NAME>
+<RETURNS>GtkWidget *</RETURNS>
+GtkFormWidget *fwidget 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_get_table</NAME>
+<NAME>gtk_form_widget_get_widget_name</NAME>
 <RETURNS>gchar *</RETURNS>
-GtkForm *form 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_set_table</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, const gchar *table 
+GtkFormWidget *fwidget 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_get_key</NAME>
-<RETURNS>GtkFormKey *</RETURNS>
-GtkForm *form 
+<NAME>gtk_form_widget_get_label</NAME>
+<RETURNS>GtkWidget *</RETURNS>
+GtkFormWidget *fwidget 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_key</NAME>
+<NAME>gtk_form_widget_set_label</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_form_field_from_widget</NAME>
-<RETURNS>GtkFormField *</RETURNS>
-GtkForm *form, GtkWidget *widget 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_get_form_widget_from_widget</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
-GtkForm *form, GtkWidget *widget 
-</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 
+GtkFormWidget *fwidget, GtkWidget *label 
 </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_widget_get_value_stringify</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormWidget *fwidget 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_is_changed</NAME>
+<NAME>gtk_form_widget_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkForm *form 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_set_as_origin</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_set_sensitive</NAME>
-<RETURNS>void </RETURNS>
-GtkForm *form, gboolean sensitive 
+GtkFormWidget *fwidget, const gchar *value 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_sensitive_by_name</NAME>
+<NAME>gtk_form_widget_set_editable</NAME>
 <RETURNS>void </RETURNS>
-GtkForm *form, gboolean sensitive, ... 
+GtkFormWidget *fwidget, gboolean editable 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_set_editable</NAME>
+<NAME>gtk_form_widget_set_visible</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>
-GtkForm *form, GdaDataModel *dm, gint row 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_fill_from_table</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_get_values_as_hashtable</NAME>
-<RETURNS>GHashTable *</RETURNS>
-GtkForm *form 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_fill_from_hashtable</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkForm *form, GHashTable *hashtable 
+GtkFormWidget *fwidget, gboolean visible 
 </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>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>GValue *</RETURNS>
+GtkFormField *field 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_text_get_value_sql</NAME>
+<RETURNS>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>
+<FUNCTION>
+<NAME>gtk_form_field_text_set_from_hashtable</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field, GHashTable *hashtable 
 </FUNCTION>
 <MACRO>
 <NAME>TYPE_GTK_FORM_FIELD_DATETIME</NAME>
@@ -500,405 +564,336 @@ 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 ())
+<NAME>TYPE_GTK_FORM_WIDGET_LABEL</NAME>
+#define TYPE_GTK_FORM_WIDGET_LABEL                 (gtk_form_widget_label_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))
+<NAME>GTK_FORM_WIDGET_LABEL</NAME>
+#define GTK_FORM_WIDGET_LABEL(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_LABEL, GtkFormWidgetLabel))
 </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))
+<NAME>GTK_FORM_WIDGET_LABEL_CLASS</NAME>
+#define GTK_FORM_WIDGET_LABEL_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_LABEL, GtkFormWidgetLabelClass))
 </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))
+<NAME>IS_GTK_FORM_WIDGET_LABEL</NAME>
+#define IS_GTK_FORM_WIDGET_LABEL(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_LABEL))
 </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))
+<NAME>IS_GTK_FORM_WIDGET_LABEL_CLASS</NAME>
+#define IS_GTK_FORM_WIDGET_LABEL_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_LABEL))
 </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))
+<NAME>GTK_FORM_WIDGET_LABEL_GET_CLASS</NAME>
+#define GTK_FORM_WIDGET_LABEL_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_LABEL, GtkFormWidgetLabelClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormFieldBoolean</NAME>
+<NAME>GtkFormWidgetLabel</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldBooleanClass</NAME>
+<NAME>GtkFormWidgetLabelClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldBoolean</NAME>
-struct _GtkFormFieldBoolean
+<NAME>GtkFormWidgetLabel</NAME>
+struct _GtkFormWidgetLabel
+       {
+               GtkFormWidget parent;
+       };
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormWidgetLabelClass</NAME>
+struct _GtkFormWidgetLabelClass
+       {
+               GtkFormWidgetClass parent_class;
+       };
+</STRUCT>
+<FUNCTION>
+<NAME>gtk_form_widget_label_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_label_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_label_get_value_stringify</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormWidget *widget 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_widget_label_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+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 ())
+</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))
+</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))
+</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))
+</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))
+</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))
+</MACRO>
+<STRUCT>
+<NAME>GtkFormFieldFloat</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormFieldFloatClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GtkFormFieldFloat</NAME>
+struct _GtkFormFieldFloat
        {
                GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldBooleanClass</NAME>
-struct _GtkFormFieldBooleanClass
+<NAME>GtkFormFieldFloatClass</NAME>
+struct _GtkFormFieldFloatClass
        {
                GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_type</NAME>
+<NAME>gtk_form_field_float_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_new</NAME>
+<NAME>gtk_form_field_float_new</NAME>
 <RETURNS>GtkFormField *</RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_value_stringify</NAME>
+<NAME>gtk_form_field_float_get_value_stringify</NAME>
 <RETURNS>gchar *</RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_value</NAME>
+<NAME>gtk_form_field_float_get_value</NAME>
 <RETURNS>GValue *</RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_get_value_sql</NAME>
+<NAME>gtk_form_field_float_get_value_sql</NAME>
 <RETURNS>gchar *</RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_clear</NAME>
+<NAME>gtk_form_field_float_clear</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_is_empty</NAME>
+<NAME>gtk_form_field_float_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_filed_boolean_is_changed</NAME>
+<NAME>gtk_form_field_float_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_set_as_origin</NAME>
+<NAME>gtk_form_field_float_set_as_origin</NAME>
 <RETURNS>void </RETURNS>
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_set_from_datamodel</NAME>
+<NAME>gtk_form_field_float_set_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field, GdaDataModel *dm, gint row 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_boolean_set_from_hashtable</NAME>
+<NAME>gtk_form_field_float_set_from_hashtable</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field, GHashTable *hashtable 
 </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 ())
+<NAME>TYPE_GTK_FORM_KEY</NAME>
+#define TYPE_GTK_FORM_KEY                 (gtk_form_key_get_type ())
 </MACRO>
 <MACRO>
-<NAME>GTK_FORM_WIDGET_LABEL</NAME>
-#define GTK_FORM_WIDGET_LABEL(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET_LABEL, GtkFormWidgetLabel))
+<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_LABEL_CLASS</NAME>
-#define GTK_FORM_WIDGET_LABEL_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET_LABEL, GtkFormWidgetLabelClass))
+<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_LABEL</NAME>
-#define IS_GTK_FORM_WIDGET_LABEL(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET_LABEL))
+<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_LABEL_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_LABEL_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET_LABEL))
+<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_LABEL_GET_CLASS</NAME>
-#define GTK_FORM_WIDGET_LABEL_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_WIDGET_LABEL, GtkFormWidgetLabelClass))
+<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>GtkFormWidgetLabel</NAME>
+<NAME>GtkFormKey</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetLabelClass</NAME>
+<NAME>GtkFormKeyClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetLabel</NAME>
-struct _GtkFormWidgetLabel
+<NAME>GtkFormKey</NAME>
+struct _GtkFormKey
        {
-               GtkFormWidget parent;
+               GObject parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetLabelClass</NAME>
-struct _GtkFormWidgetLabelClass
+<NAME>GtkFormKeyClass</NAME>
+struct _GtkFormKeyClass
        {
-               GtkFormWidgetClass parent_class;
+               GObjectClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_label_get_type</NAME>
+<NAME>gtk_form_key_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_label_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
+<NAME>gtk_form_key_new</NAME>
+<RETURNS>GtkFormKey *</RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_label_get_value_stringify</NAME>
+<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>
-GtkFormWidget *widget 
+GtkFormKey *gtk_form_key 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_label_set_value_stringify</NAME>
+<NAME>gtk_form_key_field_is_key</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value 
+GtkFormKey *gtk_form_key, GtkFormField *field 
 </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>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>
-<FUNCTION>
-<NAME>gtk_form_widget_combo_box_fill_from_datamodel</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, GdaDataModel *dm, gboolean with_empty_entry 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_combo_box_fill_from_sql</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, GdaEx *gdaex, const gchar *sql, gboolean with_empty_entry 
-</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_FIELD</NAME>
+#define TYPE_GTK_FORM_FIELD                 (gtk_form_field_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_FIELD</NAME>
+#define GTK_FORM_FIELD(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD, GtkFormField))
 </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_FIELD_CLASS</NAME>
+#define GTK_FORM_FIELD_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD, GtkFormFieldClass))
 </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_widget_check_get_type</NAME>
-<RETURNS>GType </RETURNS>
-void 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_check_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
-void 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_check_get_value_stringify</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkFormWidget *widget 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_check_set_value_stringify</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_check_set_editable</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable 
-</FUNCTION>
-<MACRO>
-<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_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_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_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_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_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>GtkFormWidgetSpin</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetSpinClass</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetSpin</NAME>
-struct _GtkFormWidgetSpin
-       {
-               GtkFormWidget parent;
-       };
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetSpinClass</NAME>
-struct _GtkFormWidgetSpinClass
-       {
-               GtkFormWidgetClass parent_class;
-       };
-</STRUCT>
-<FUNCTION>
-<NAME>gtk_form_widget_spin_get_type</NAME>
-<RETURNS>GType </RETURNS>
-void 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_spin_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
-void 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_spin_get_value_stringify</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkFormWidget *widget 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_spin_set_value_stringify</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_spin_set_editable</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable 
-</FUNCTION>
-<MACRO>
-<NAME>TYPE_GTK_FORM_FIELD</NAME>
-#define TYPE_GTK_FORM_FIELD                 (gtk_form_field_get_type ())
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_FIELD</NAME>
-#define GTK_FORM_FIELD(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD, GtkFormField))
-</MACRO>
-<MACRO>
-<NAME>GTK_FORM_FIELD_CLASS</NAME>
-#define GTK_FORM_FIELD_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD, GtkFormFieldClass))
-</MACRO>
-<MACRO>
-<NAME>IS_GTK_FORM_FIELD</NAME>
-#define IS_GTK_FORM_FIELD(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD))
+<NAME>IS_GTK_FORM_FIELD</NAME>
+#define IS_GTK_FORM_FIELD(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD))
 </MACRO>
 <MACRO>
 <NAME>IS_GTK_FORM_FIELD_CLASS</NAME>
@@ -985,6 +980,11 @@ GtkFormField *field
 GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
+<NAME>gtk_form_field_is_to_load</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field 
+</FUNCTION>
+<FUNCTION>
 <NAME>gtk_form_field_is_to_save</NAME>
 <RETURNS>gboolean </RETURNS>
 GtkFormField *field 
@@ -1020,371 +1020,376 @@ GtkFormField *field, GdaDataModel *dm, gint row
 GtkFormField *field, GHashTable *hashtable 
 </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>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>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_load_from_xml</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, xmlDoc *xmldoc, GtkBuilder *gtkbuilder 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_load_from_file</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, 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>gchar *</RETURNS>
-GtkFormField *field 
+GtkForm *form 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_clear</NAME>
+<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>
-GtkFormField *field 
+GtkForm *form, GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_is_empty</NAME>
+<NAME>gtk_form_remove_field</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field 
+GtkForm *form, GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_is_changed</NAME>
+<NAME>gtk_form_add_fields</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field 
+GtkForm *form, ... 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_as_origin</NAME>
-<RETURNS>void </RETURNS>
-GtkFormField *field 
+<NAME>gtk_form_get_form_field_from_name</NAME>
+<RETURNS>GtkFormField *</RETURNS>
+GtkForm *form, const gchar *field_name 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_from_datamodel</NAME>
+<NAME>gtk_form_get_form_widget_from_name</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+GtkForm *form, const gchar *widget_name 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_form_field_from_widget</NAME>
+<RETURNS>GtkFormField *</RETURNS>
+GtkForm *form, GtkWidget *widget 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_form_widget_from_widget</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
+GtkForm *form, GtkWidget *widget 
+</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>
-GtkFormField *field, GdaDataModel *dm, gint row 
+GtkForm *form 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_text_set_from_hashtable</NAME>
+<NAME>gtk_form_check</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field, GHashTable *hashtable 
+GtkForm *form, gboolean with_key, GtkFormWidget **form_widget, gboolean show_error_dialog, GtkWidget *parent_window, gboolean set_focus 
 </FUNCTION>
-<MACRO>
-<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_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_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_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_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_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>GtkFormWidgetTextview</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetTextviewClass</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetTextview</NAME>
-struct _GtkFormWidgetTextview
-       {
-               GtkFormWidget parent;
-       };
-</STRUCT>
-<STRUCT>
-<NAME>GtkFormWidgetTextviewClass</NAME>
-struct _GtkFormWidgetTextviewClass
-       {
-               GtkFormWidgetClass parent_class;
-       };
-</STRUCT>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_get_type</NAME>
-<RETURNS>GType </RETURNS>
-void 
+<NAME>gtk_form_is_changed</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_new</NAME>
-<RETURNS>GtkFormWidget *</RETURNS>
-void 
+<NAME>gtk_form_set_as_origin</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_get_value_stringify</NAME>
+<NAME>gtk_form_set_sensitive</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean sensitive 
+</FUNCTION>
+<FUNCTION>
+<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>
+<FUNCTION>
+<NAME>gtk_form_set_visible_by_name</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean visible, ... 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_set_form_widget_visible_by_name</NAME>
+<RETURNS>void </RETURNS>
+GtkForm *form, gboolean visible, ... 
+</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>
-GtkFormWidget *widget 
+GtkForm *form, GtkFormSqlType type 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_set_value_stringify</NAME>
+<NAME>gtk_form_fill_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value 
+GtkForm *form, GdaDataModel *dm, gint row 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_textview_set_editable</NAME>
-<RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable 
+<NAME>gtk_form_fill_from_table</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_get_values_as_hashtable</NAME>
+<RETURNS>GHashTable *</RETURNS>
+GtkForm *form 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_fill_from_hashtable</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkForm *form, GHashTable *hashtable 
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_WIDGET</NAME>
-#define TYPE_GTK_FORM_WIDGET                 (gtk_form_widget_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</NAME>
-#define GTK_FORM_WIDGET(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_WIDGET, GtkFormWidget))
+<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_CLASS</NAME>
-#define GTK_FORM_WIDGET_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_WIDGET, GtkFormWidgetClass))
+<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</NAME>
-#define IS_GTK_FORM_WIDGET(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_WIDGET))
+<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_CLASS</NAME>
-#define IS_GTK_FORM_WIDGET_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_WIDGET))
+<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_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_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>GtkFormWidget</NAME>
+<NAME>GtkFormWidgetComboBox</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetClass</NAME>
+<NAME>GtkFormWidgetComboBoxClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidget</NAME>
-struct _GtkFormWidget
+<NAME>GtkFormWidgetComboBox</NAME>
+struct _GtkFormWidgetComboBox
        {
-               GObject parent;
+               GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormWidgetClass</NAME>
-struct _GtkFormWidgetClass
+<NAME>GtkFormWidgetComboBoxClass</NAME>
+struct _GtkFormWidgetComboBoxClass
        {
-               GObjectClass parent_class;
-
-               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_combo_box_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_new</NAME>
+<NAME>gtk_form_widget_combo_box_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>
+<NAME>gtk_form_widget_combo_box_get_value_stringify</NAME>
 <RETURNS>gchar *</RETURNS>
-GtkFormWidget *fwidget 
+GtkFormWidget *widget 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_get_label</NAME>
-<RETURNS>GtkWidget *</RETURNS>
-GtkFormWidget *fwidget 
+<NAME>gtk_form_widget_combo_box_set_value_stringify</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormWidget *fwidget, const gchar *value 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_label</NAME>
+<NAME>gtk_form_widget_combo_box_set_editable</NAME>
 <RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, GtkWidget *label 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_widget_get_value_stringify</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkFormWidget *fwidget 
+GtkFormWidget *fwidget, gboolean editable 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_value_stringify</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormWidget *fwidget, const gchar *value 
+<NAME>gtk_form_widget_combo_box_fill_from_datamodel</NAME>
+<RETURNS>void </RETURNS>
+GtkFormWidget *fwidget, GdaDataModel *dm, gboolean with_empty_entry 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_widget_set_editable</NAME>
+<NAME>gtk_form_widget_combo_box_fill_from_sql</NAME>
 <RETURNS>void </RETURNS>
-GtkFormWidget *fwidget, gboolean editable 
+GtkFormWidget *fwidget, GdaEx *gdaex, const gchar *sql, gboolean with_empty_entry 
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_FIELD_INTEGER</NAME>
-#define TYPE_GTK_FORM_FIELD_INTEGER                 (gtk_form_field_integer_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_FIELD_INTEGER</NAME>
-#define GTK_FORM_FIELD_INTEGER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_INTEGER, GtkFormFieldInteger))
+<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_FIELD_INTEGER_CLASS</NAME>
-#define GTK_FORM_FIELD_INTEGER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_INTEGER, GtkFormFieldIntegerClass))
+<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_FIELD_INTEGER</NAME>
-#define IS_GTK_FORM_FIELD_INTEGER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_INTEGER))
+<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_FIELD_INTEGER_CLASS</NAME>
-#define IS_GTK_FORM_FIELD_INTEGER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_INTEGER))
+<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_FIELD_INTEGER_GET_CLASS</NAME>
-#define GTK_FORM_FIELD_INTEGER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_INTEGER, GtkFormFieldIntegerClass))
+<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>GtkFormFieldInteger</NAME>
+<NAME>GtkFormWidgetEntry</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldIntegerClass</NAME>
+<NAME>GtkFormWidgetEntryClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldInteger</NAME>
-struct _GtkFormFieldInteger
+<NAME>GtkFormWidgetEntry</NAME>
+struct _GtkFormWidgetEntry
        {
-               GtkFormField parent;
+               GtkFormWidget parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormFieldIntegerClass</NAME>
-struct _GtkFormFieldIntegerClass
+<NAME>GtkFormWidgetEntryClass</NAME>
+struct _GtkFormWidgetEntryClass
        {
-               GtkFormFieldClass parent_class;
+               GtkFormWidgetClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_field_integer_get_type</NAME>
+<NAME>gtk_form_widget_entry_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_integer_new</NAME>
-<RETURNS>GtkFormField *</RETURNS>
+<NAME>gtk_form_widget_entry_new</NAME>
+<RETURNS>GtkFormWidget *</RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_integer_get_value_stringify</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkFormField *field 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_integer_get_value</NAME>
-<RETURNS>GValue *</RETURNS>
-GtkFormField *field 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_integer_get_value_sql</NAME>
+<NAME>gtk_form_widget_entry_get_value_stringify</NAME>
 <RETURNS>gchar *</RETURNS>
-GtkFormField *field 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_integer_clear</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_integer_is_empty</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field 
+GtkFormWidget *widget 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_integer_is_changed</NAME>
+<NAME>gtk_form_widget_entry_set_value_stringify</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormField *field 
+GtkFormWidget *fwidget, const gchar *value 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_field_integer_set_as_origin</NAME>
+<NAME>gtk_form_widget_entry_set_editable</NAME>
 <RETURNS>void </RETURNS>
-GtkFormField *field 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_integer_set_from_datamodel</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field, GdaDataModel *dm, gint row 
-</FUNCTION>
-<FUNCTION>
-<NAME>gtk_form_field_integer_set_from_hashtable</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormField *field, GHashTable *hashtable 
+GtkFormWidget *fwidget, gboolean editable 
 </FUNCTION>
 <MACRO>
 <NAME>TYPE_GTK_FORM_WIDGET_RADIO</NAME>
@@ -1466,86 +1471,101 @@ GtkFormWidgetRadio *fwidget, const gchar *value
 GtkFormWidgetRadio *fwidget 
 </FUNCTION>
 <MACRO>
-<NAME>TYPE_GTK_FORM_KEY</NAME>
-#define TYPE_GTK_FORM_KEY                 (gtk_form_key_get_type ())
+<NAME>TYPE_GTK_FORM_FIELD_INTEGER</NAME>
+#define TYPE_GTK_FORM_FIELD_INTEGER                 (gtk_form_field_integer_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_FIELD_INTEGER</NAME>
+#define GTK_FORM_FIELD_INTEGER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GTK_FORM_FIELD_INTEGER, GtkFormFieldInteger))
 </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_FIELD_INTEGER_CLASS</NAME>
+#define GTK_FORM_FIELD_INTEGER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_FORM_FIELD_INTEGER, GtkFormFieldIntegerClass))
 </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_FIELD_INTEGER</NAME>
+#define IS_GTK_FORM_FIELD_INTEGER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_FORM_FIELD_INTEGER))
 </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_FIELD_INTEGER_CLASS</NAME>
+#define IS_GTK_FORM_FIELD_INTEGER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_FORM_FIELD_INTEGER))
 </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_FIELD_INTEGER_GET_CLASS</NAME>
+#define GTK_FORM_FIELD_INTEGER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GTK_FORM_FIELD_INTEGER, GtkFormFieldIntegerClass))
 </MACRO>
 <STRUCT>
-<NAME>GtkFormKey</NAME>
+<NAME>GtkFormFieldInteger</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormKeyClass</NAME>
+<NAME>GtkFormFieldIntegerClass</NAME>
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormKey</NAME>
-struct _GtkFormKey
+<NAME>GtkFormFieldInteger</NAME>
+struct _GtkFormFieldInteger
        {
-               GObject parent;
+               GtkFormField parent;
        };
 </STRUCT>
 <STRUCT>
-<NAME>GtkFormKeyClass</NAME>
-struct _GtkFormKeyClass
+<NAME>GtkFormFieldIntegerClass</NAME>
+struct _GtkFormFieldIntegerClass
        {
-               GObjectClass parent_class;
+               GtkFormFieldClass parent_class;
        };
 </STRUCT>
 <FUNCTION>
-<NAME>gtk_form_key_get_type</NAME>
+<NAME>gtk_form_field_integer_get_type</NAME>
 <RETURNS>GType </RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_new</NAME>
-<RETURNS>GtkFormKey *</RETURNS>
+<NAME>gtk_form_field_integer_new</NAME>
+<RETURNS>GtkFormField *</RETURNS>
 void 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_add_field</NAME>
-<RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field 
+<NAME>gtk_form_field_integer_get_value_stringify</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_remove_field</NAME>
+<NAME>gtk_form_field_integer_get_value</NAME>
+<RETURNS>GValue *</RETURNS>
+GtkFormField *field 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_integer_get_value_sql</NAME>
+<RETURNS>gchar *</RETURNS>
+GtkFormField *field 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_integer_clear</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field 
+GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_add_fields</NAME>
+<NAME>gtk_form_field_integer_is_empty</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, ... 
+GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_check</NAME>
+<NAME>gtk_form_field_integer_is_changed</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormWidget **form_widget 
+GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_get_sql</NAME>
-<RETURNS>gchar *</RETURNS>
-GtkFormKey *gtk_form_key 
+<NAME>gtk_form_field_integer_set_as_origin</NAME>
+<RETURNS>void </RETURNS>
+GtkFormField *field 
 </FUNCTION>
 <FUNCTION>
-<NAME>gtk_form_key_field_is_key</NAME>
+<NAME>gtk_form_field_integer_set_from_datamodel</NAME>
 <RETURNS>gboolean </RETURNS>
-GtkFormKey *gtk_form_key, GtkFormField *field 
+GtkFormField *field, GdaDataModel *dm, gint row 
+</FUNCTION>
+<FUNCTION>
+<NAME>gtk_form_field_integer_set_from_hashtable</NAME>
+<RETURNS>gboolean </RETURNS>
+GtkFormField *field, GHashTable *hashtable 
 </FUNCTION>
index 4e051ae2812ab84015a6e7ca1a778e235e9d4795..dfd7e1e7c6e4d7ea9c0bbd0b8f1301fa108e9c4b 100644 (file)
@@ -1,7 +1,7 @@
-7% symbol docs coverage.
-24 symbols documented.
+8% symbol docs coverage.
+25 symbols documented.
 2 symbols incomplete.
-299 not documented.
+303 not documented.
 
 
 GTK_FORM
@@ -174,6 +174,7 @@ gtk_form_field_integer_set_from_hashtable
 gtk_form_field_is_auto_increment
 gtk_form_field_is_changed
 gtk_form_field_is_empty
+gtk_form_field_is_to_load
 gtk_form_field_is_to_save
 gtk_form_field_new
 gtk_form_field_new_from_gtk_form_widget
@@ -224,10 +225,12 @@ gtk_form_new_from_file
 gtk_form_new_from_xml
 gtk_form_remove_field
 gtk_form_set_editable
+gtk_form_set_form_widgets_visible_by_name
 gtk_form_set_key
 gtk_form_set_sensitive
 gtk_form_set_sensitive_by_name
 gtk_form_set_table
+gtk_form_set_visible_by_name
 gtk_form_widget_check_get_type
 gtk_form_widget_check_get_value_stringify
 gtk_form_widget_check_new
@@ -265,6 +268,7 @@ gtk_form_widget_set_editable
 gtk_form_widget_set_from_gtkbuilder
 gtk_form_widget_set_label
 gtk_form_widget_set_value_stringify
+gtk_form_widget_set_visible
 gtk_form_widget_spin_get_type
 gtk_form_widget_spin_get_value_stringify
 gtk_form_widget_spin_new
index d6d29f1e78a199966c812e64e4350c7299994e4f..c2d496cc75f0d404dc9d57d401f79e904a7d6e9f 100644 (file)
@@ -25,6 +25,7 @@ gtk_form_field_integer_set_as_origin
 gtk_form_field_integer_set_from_hashtable
 gtk_form_field_is_auto_increment
 gtk_form_field_is_changed
+gtk_form_field_is_to_load
 gtk_form_field_is_to_save
 gtk_form_field_set_as_origin
 gtk_form_field_set_from_hashtable
@@ -50,9 +51,11 @@ gtk_form_load_from_xml
 gtk_form_new_from_file
 gtk_form_new_from_xml
 gtk_form_set_as_origin
+gtk_form_set_form_widget_visible_by_name
 gtk_form_set_key
 gtk_form_set_sensitive_by_name
 gtk_form_set_table
+gtk_form_set_visible_by_name
 gtk_form_widget_combo_box_fill_from_datamodel
 gtk_form_widget_combo_box_fill_from_sql
 gtk_form_widget_get_label
@@ -64,3 +67,4 @@ gtk_form_widget_radio_set_editable
 gtk_form_widget_radio_set_return_value
 gtk_form_widget_radio_set_value_stringify
 gtk_form_widget_set_label
+gtk_form_widget_set_visible
index 5798810c3d68251458de975de9e64b1c8ac02609..3859680af6aa0c1b103cae549787da9f25ce1cb8 100644 (file)
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GtkFormField::to-load</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Whether load the field or not</NICK>
+<BLURB>Whether the field should be included or not on sql SELECT.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GtkFormField::to-save</NAME>
 <TYPE>gboolean</TYPE>
index 8a107aef46e13b4c64efa3010f3d1268eb8ab4ef..4a092f7353c09a3d7fab8249ba0d0c3237dde617 100644 (file)
@@ -93,6 +93,11 @@ FormField
 
 </para>
 
+<!-- ##### ARG GtkFormField:to-load ##### -->
+<para>
+
+</para>
+
 <!-- ##### ARG GtkFormField:to-save ##### -->
 <para>
 
index 6b39fa35655714465dd3dd07f35f7f26c8ab0a90..6cbeba00881a1f7605efc2e5c491ab65d19273bb 100644 (file)
@@ -1,7 +1,8 @@
 LIBS = $(GTKFORM_LIBS)
 
 AM_CPPFLAGS = $(GTKFORM_CFLAGS) \
-              -DLOCALEDIR=\"$(localedir)\"
+              -DLOCALEDIR=\"$(localedir)\" \
+              -DG_LOG_DOMAIN=\"GtkForm\"
 
 lib_LTLIBRARIES = libgtkform.la
 
index 7a791478936067502a32c4436da753fa752195b8..bcf07a6f476800024a5a27087a59f56c79634ce3 100644 (file)
@@ -23,6 +23,7 @@ enum
 {
        PROP_0,
        PROP_FIELD,
+       PROP_TO_LOAD,
        PROP_TO_SAVE,
        PROP_OBLIGATORY,
        PROP_AUTO_INCREMENT,
@@ -49,6 +50,7 @@ struct _GtkFormFieldPrivate
        {
                gchar *field;
                gboolean is_key;
+               gboolean to_load;
                gboolean to_save;
                gboolean obligatory;
                gboolean auto_increment;
@@ -80,6 +82,13 @@ gtk_form_field_class_init (GtkFormFieldClass *klass)
                                                              "",
                                                              G_PARAM_READWRITE));
 
+       g_object_class_install_property (object_class, PROP_TO_LOAD,
+                                        g_param_spec_boolean ("to-load",
+                                                              "Whether load the field or not",
+                                                              "Whether the field should be included or not on sql SELECT",
+                                                              TRUE,
+                                                              G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
+
        g_object_class_install_property (object_class, PROP_TO_SAVE,
                                         g_param_spec_boolean ("to-save",
                                                               "Whether save the field or not",
@@ -249,6 +258,23 @@ gtk_form_field_clear (GtkFormField *field)
        return ret;
 }
 
+/**
+ * gtk_form_field_is_to_load:
+ * @field: a #GtkFormField object.
+ *
+ */
+gboolean
+gtk_form_field_is_to_load (GtkFormField *field)
+{
+       GtkFormFieldPrivate *priv;
+
+       g_return_val_if_fail (IS_GTK_FORM_FIELD (field), FALSE);
+
+       priv = GTK_FORM_FIELD_GET_PRIVATE (field);
+
+       return priv->to_load;
+}
+
 /**
  * gtk_form_field_is_to_save:
  * @field: a #GtkFormField object.
@@ -402,6 +428,10 @@ gtk_form_field_set_property (GObject *object,
                                priv->field = g_strstrip (g_value_dup_string (value));
                                break;
 
+                       case PROP_TO_LOAD:
+                               priv->to_load = g_value_get_boolean (value);
+                               break;
+
                        case PROP_TO_SAVE:
                                priv->to_save = g_value_get_boolean (value);
                                break;
@@ -444,6 +474,10 @@ gtk_form_field_get_property (GObject *object,
                                g_value_set_string (value, gtk_form_field_get_field_name (field));
                                break;
 
+                       case PROP_TO_LOAD:
+                               g_value_set_boolean (value, priv->to_load);
+                               break;
+
                        case PROP_TO_SAVE:
                                g_value_set_boolean (value, priv->to_save);
                                break;
index 194175127da2d61800465a3dd8c1a969a274cf5e..6c129bf6f6bcdc84b2b75bb53aad6a9d999070bf 100644 (file)
@@ -75,6 +75,7 @@ gchar *gtk_form_field_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_clear (GtkFormField *field);
 
+gboolean gtk_form_field_is_to_load (GtkFormField *field);
 gboolean gtk_form_field_is_to_save (GtkFormField *field);
 
 gboolean gtk_form_field_is_auto_increment (GtkFormField *field);
index 731c5834aa81e4c04093167acdf6db59e1655e4c..91886f4debe66442468f144a5227c35e4a098e59 100644 (file)
@@ -422,7 +422,13 @@ gtk_form_load_from_xml (GtkForm *form, xmlDoc *xmldoc, GtkBuilder *gtkbuilder)
                                                                                                                                        while (node_field != NULL)
                                                                                                                                                {
                                                                                                                                                        prop = (gchar *)xmlNodeGetContent (node_field);
-                                                                                                                                                       if (xmlStrcmp (node_field->name, (const xmlChar *)"to-save") == 0)
+                                                                                                                                                       if (xmlStrcmp (node_field->name, (const xmlChar *)"to-load") == 0)
+                                                                                                                                                               {
+                                                                                                                                                                       g_object_set (G_OBJECT (field),
+                                                                                                                                                                                                "to-load", gtk_form_field_boolean_str_to_boolean (prop),
+                                                                                                                                                                                                NULL);
+                                                                                                                                                               }
+                                                                                                                                                       else if (xmlStrcmp (node_field->name, (const xmlChar *)"to-save") == 0)
                                                                                                                                                                {
                                                                                                                                                                        g_object_set (G_OBJECT (field),
                                                                                                                                                                                                 "to-save", gtk_form_field_boolean_str_to_boolean (prop),
@@ -1050,7 +1056,7 @@ gtk_form_check (GtkForm *form, gboolean with_key, GtkFormWidget **form_widget,
        GtkFormWidget *fwidget;
        GtkWidget *widget;
 
-       gboolean ret = TRUE;
+       gboolean ret;
        gboolean to_save;
        gboolean obl;
 
@@ -1061,6 +1067,8 @@ gtk_form_check (GtkForm *form, gboolean with_key, GtkFormWidget **form_widget,
                        g_return_val_if_fail (GTK_IS_WINDOW (parent_window), FALSE);
                }
 
+       ret = TRUE;
+
        priv = GTK_FORM_GET_PRIVATE (form);
 
        fields = priv->fields;
@@ -1263,7 +1271,7 @@ gtk_form_set_sensitive_by_name (GtkForm *form, gboolean sensitive, ...)
 /**
  * gtk_form_set_editable:
  * @form: a #GtkForm object.
- * @editable: whether to set every #GtkFormWidget's editable or not.
+ * @editable: whether to set every #GtkFormWidget editable or not.
  *
  */
 void
@@ -1288,6 +1296,95 @@ gtk_form_set_editable (GtkForm *form, gboolean editable)
                }
 }
 
+/**
+ * gtk_form_set_visible_by_name:
+ * @form: a #GtkForm object.
+ * @visible: whether to set #GtkWidget's sensitive or not.
+ * @...: a #NULL terminated list of #GtkWidgets's names (on #GtkBuilder).
+ *
+ */
+void
+gtk_form_set_visible_by_name (GtkForm *form, gboolean visible, ...)
+{
+       GtkFormPrivate *priv;
+
+       va_list vargs;
+       gchar *widget_name;
+
+       GObject *widget;
+
+       g_return_if_fail (IS_GTK_FORM (form));
+
+       priv = GTK_FORM_GET_PRIVATE (form);
+
+       g_return_if_fail (GTK_IS_BUILDER (priv->gtkbuilder));
+
+       va_start (vargs, visible);
+
+       while ((widget_name = va_arg (vargs, gchar *)) != NULL)
+               {
+                       widget = gtk_builder_get_object (priv->gtkbuilder, widget_name);
+                       if (GTK_IS_WIDGET (widget))
+                               {
+                                       if (visible)
+                                               {
+                                                       gtk_widget_show (GTK_WIDGET (widget));
+                                               }
+                                       else
+                                               {
+                                                       gtk_widget_hide (GTK_WIDGET (widget));
+                                               }
+                               }
+                       else
+                               {
+                                       g_warning (_("Object «%s» not found."), widget_name);
+                               }
+               }
+
+       va_end (vargs);
+}
+
+/**
+ * gtk_form_set_form_widgets_visible_by_name:
+ * @ a #GtkForm object.
+ * @visible: whether to set every #GtkFormWidget visible or not.
+ * @...: a #NULL terminated list of #GtkFormWidgets's names.
+ *
+ */
+void
+gtk_form_set_form_widgets_visible_by_name (GtkForm *form, gboolean visible, ...)
+{
+       GtkFormPrivate *priv;
+
+       va_list vargs;
+       gchar *fwidget_name;
+
+       GtkFormWidget *fwidget;
+
+       g_return_if_fail (IS_GTK_FORM (form));
+
+       priv = GTK_FORM_GET_PRIVATE (form);
+
+       g_return_if_fail (GTK_IS_BUILDER (priv->gtkbuilder));
+
+       va_start (vargs, visible);
+
+       while ((fwidget_name = va_arg (vargs, gchar *)) != NULL)
+               {
+                       fwidget = gtk_form_get_form_widget_from_name (form, fwidget_name);
+                       if (IS_GTK_FORM_WIDGET (fwidget))
+                               {
+                                       gtk_form_widget_set_visible (fwidget, visible);
+                               }
+                       else
+                               {
+                                       g_warning (_("Object «%s» not found."), fwidget_name);
+                               }
+               }
+
+       va_end (vargs);
+}
+
 /**
  * gtk_form_get_sql:
  * @form: a #GtkForm object.
@@ -1328,7 +1425,10 @@ gchar
                                                        switch (type)
                                                                {
                                                                        case GTK_FORM_SQL_SELECT:
-                                                                               fields_names = g_strconcat (fields_names, field_name, ", ", NULL);
+                                                                               if (gtk_form_field_is_to_load (field))
+                                                                                       {
+                                                                                               fields_names = g_strconcat (fields_names, field_name, ", ", NULL);
+                                                                                       }
                                                                                break;
 
                                                                        case GTK_FORM_SQL_INSERT:
@@ -1452,7 +1552,10 @@ gtk_form_fill_from_datamodel (GtkForm *form, GdaDataModel *dm, gint row)
                {
                        field = (GtkFormField *)fields->data;
 
-                       gtk_form_field_set_from_datamodel (field, dm, row);
+                       if (gtk_form_field_is_to_load (field))
+                               {
+                                       gtk_form_field_set_from_datamodel (field, dm, row);
+                               }
 
                        fields = g_slist_next (fields);
                }
index 83bd90c56aa33ae06890f31bfc7f98a240ddbfe1..e84f98370ae8a0163ffeb5fccb3b0e9ef4f6fa38 100644 (file)
@@ -98,6 +98,9 @@ void gtk_form_set_sensitive_by_name (GtkForm *form, gboolean sensitive, ...);
 
 void gtk_form_set_editable (GtkForm *form, gboolean editable);
 
+void gtk_form_set_visible_by_name (GtkForm *form, gboolean visible, ...);
+void gtk_form_set_form_widget_visible_by_name (GtkForm *form, gboolean visible, ...);
+
 typedef enum
 {
        GTK_FORM_SQL_SELECT,
index e66bda2a1f93d11ba11cec05217eba0461f39e53..ce3221b74b874794e39fdef99f41097b154cddc6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2009 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2005-2010 Andrea Zagli <azagli@libero.it>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -274,6 +274,39 @@ gtk_form_widget_set_editable (GtkFormWidget *fwidget, gboolean editable)
                }
 }
 
+/**
+ * gtk_form_widget_set_visible:
+ * @fwidget: a #GtkFormWidget object.
+ * @visible:
+ *
+ */
+void
+gtk_form_widget_set_visible (GtkFormWidget *fwidget, gboolean visible)
+{
+       GtkFormWidgetPrivate *priv;
+
+       g_return_if_fail (IS_GTK_FORM_WIDGET (fwidget));
+
+       priv = GTK_FORM_WIDGET_GET_PRIVATE (fwidget);
+
+       if (visible)
+               {
+                       if (GTK_IS_WIDGET (priv->label))
+                               {
+                                       gtk_widget_show (priv->label);
+                               }
+                       gtk_widget_show (priv->widget);
+               }
+       else
+               {
+                       if (GTK_IS_WIDGET (priv->label))
+                               {
+                                       gtk_widget_hide (priv->label);
+                               }
+                       gtk_widget_hide (priv->widget);
+               }
+}
+
 /* PRIVATE */
 static void
 gtk_form_widget_set_property (GObject *object,
index 3ff3b78d1aab905ad076c5b5c536e2658bdd078a..d24b959fc76d4a4e0b140abb01086a2385c0c1fc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2009 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2005-2010 Andrea Zagli <azagli@libero.it>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -74,6 +74,8 @@ gboolean gtk_form_widget_set_value_stringify (GtkFormWidget *fwidget, const gcha
 
 void gtk_form_widget_set_editable (GtkFormWidget *fwidget, gboolean editable);
 
+void gtk_form_widget_set_visible (GtkFormWidget *fwidget, gboolean visible);
+
 
 G_END_DECLS