]> saetta.ns0.it Git - zakform/gtk/commitdiff
Added ZakFormGtkFormElement::get_xml. develop
authorAndrea Zagli <azagli@libero.it>
Thu, 28 May 2020 08:47:26 +0000 (10:47 +0200)
committerAndrea Zagli <azagli@libero.it>
Thu, 28 May 2020 08:47:26 +0000 (10:47 +0200)
src/formelement.c
src/formelement.h
src/formelementcheck.c
src/formelementcombo.c
src/formelemententry.c
src/formelementlabel.c
src/formelementradio.c
src/formelementspin.c
src/formelementtextview.c

index a93fed8913f4bf66e289baecb54397f5f6306469..71e27bb5326afa32a118863a36a07ab0c439bf52 100644 (file)
@@ -55,6 +55,7 @@ static gboolean zak_form_gtk_form_element_get_editable (ZakFormGtkFormElement *e
 static void zak_form_gtk_form_element_set_editable (ZakFormGtkFormElement *element, gboolean visible);
 
 static void zak_form_gtk_form_element_xml_parsing (ZakFormElement *element, xmlNode *xmlnode);
+static void zak_form_gtk_form_element_get_xml (ZakFormGtkFormElement *element, xmlNode *xroot, const gchar *version);
 
 #define ZAK_FORM_GTK_FORM_ELEMENT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT, ZakFormGtkFormElementPrivate))
 
@@ -88,6 +89,7 @@ zak_form_gtk_form_element_class_init (ZakFormGtkFormElementClass *class)
        parent_class->set_visible = zak_form_gtk_form_element_set_visible;
        parent_class->get_editable = zak_form_gtk_form_element_get_editable;
        parent_class->set_editable = zak_form_gtk_form_element_set_editable;
+       parent_class->get_xml = zak_form_gtk_form_element_get_xml;
 
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementPrivate));
 
@@ -485,3 +487,24 @@ zak_form_gtk_form_element_xml_parsing (ZakFormElement *element, xmlNode *xmlnode
                        cur = cur->next;
                }
 }
+
+static void
+zak_form_gtk_form_element_get_xml (ZakFormGtkFormElement *element, xmlNode *xroot, const gchar *version)
+{
+       xmlNode *xnode;
+
+       ZakFormGtkFormElementPrivate *priv = ZAK_FORM_GTK_FORM_ELEMENT_GET_PRIVATE ((ZakFormGtkFormElement *)element);
+
+       xnode = xmlNewNode (NULL, (const xmlChar *)"widget");
+       xmlNodeSetContent (xnode, (xmlChar *)zak_form_gtk_form_element_get_widget_name (element));
+       xmlAddChild (xroot, xnode);
+
+       xnode = xmlNewNode (NULL, (const xmlChar *)"label");
+       xmlNodeSetContent (xnode, (xmlChar *)zak_form_gtk_form_element_get_label_name (element));
+       xmlAddChild (xroot, xnode);
+
+       if (ZAK_FORM_GTK_FORM_ELEMENT_GET_CLASS (element)->get_xml!= NULL)
+               {
+                       ZAK_FORM_GTK_FORM_ELEMENT_GET_CLASS (element)->get_xml (element, version, xroot);
+               }
+}
index 54b79ed25b950e2b379b5886b3db3171d0d21828..6c7cd745161e7ed8525f0faa83b37be6eb635b43 100644 (file)
@@ -40,6 +40,8 @@ struct _ZakFormGtkFormElementClass
                ZakFormElementClass parent_class;
 
                void (*xml_parsing) (ZakFormElement *element, xmlNode *xmlnode);
+
+               void (*get_xml) (ZakFormElement *element, xmlNode *xroot, const gchar *version);
        };
 
 
index 424d283a86d3a681a2451f3f2d8353ba6ca8df5b..776d50d55d350575d28c49db91b107ae40857398 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2015-2020 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
@@ -42,6 +42,8 @@ static void zak_form_gtk_form_element_check_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_check_get_value (ZakFormGtkFormElementCheck *element);
 static gboolean zak_form_gtk_form_element_check_set_value (ZakFormGtkFormElementCheck *element, GValue *value);
 
+static void zak_form_gtk_form_element_check_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_CHECK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_CHECK, ZakFormGtkFormElementCheckPrivate))
 
 typedef struct _ZakFormGtkFormElementCheckPrivate ZakFormGtkFormElementCheckPrivate;
@@ -57,6 +59,7 @@ zak_form_gtk_form_element_check_class_init (ZakFormGtkFormElementCheckClass *kla
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_GTK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_check_set_property;
        object_class->get_property = zak_form_gtk_form_element_check_get_property;
@@ -68,6 +71,8 @@ zak_form_gtk_form_element_check_class_init (ZakFormGtkFormElementCheckClass *kla
 
        elem_class->xml_parsing = zak_form_gtk_form_element_check_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_check_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementCheckPrivate));
 }
 
@@ -202,3 +207,9 @@ zak_form_gtk_form_element_check_set_value (ZakFormGtkFormElementCheck *element,
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_check_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_check");
+}
index 2c77746c5d45afe9299bfbc10dd187cd7f7688c1..695b0e5b67c068827bfb03f91b4508bd1d8ae745 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016-2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2016-2020 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
@@ -48,6 +48,8 @@ static void zak_form_gtk_form_element_combo_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_combo_get_value (ZakFormGtkFormElementCombo *element);
 static gboolean zak_form_gtk_form_element_combo_set_value (ZakFormGtkFormElementCombo *element, GValue *value);
 
+static void zak_form_gtk_form_element_combo_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_COMBO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_COMBO, ZakFormGtkFormElementComboPrivate))
 
 typedef struct _ZakFormGtkFormElementComboPrivate ZakFormGtkFormElementComboPrivate;
@@ -63,6 +65,7 @@ zak_form_gtk_form_element_combo_class_init (ZakFormGtkFormElementComboClass *kla
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_GTK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_combo_set_property;
        object_class->get_property = zak_form_gtk_form_element_combo_get_property;
@@ -74,6 +77,8 @@ zak_form_gtk_form_element_combo_class_init (ZakFormGtkFormElementComboClass *kla
 
        elem_class->xml_parsing = zak_form_gtk_form_element_combo_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_combo_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementComboPrivate));
 
        g_object_class_install_property (object_class, PROP_COLUMN_FIELD,
@@ -320,3 +325,15 @@ zak_form_gtk_form_element_combo_set_value (ZakFormGtkFormElementCombo *element,
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_combo_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlNode *xnode_cur;
+
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_combo");
+
+       xnode_cur = xmlNewNode (NULL, (const xmlChar *)"column-field");
+       xmlNodeSetContent (xnode_cur, (xmlChar *)g_strdup_printf ("%d", zak_form_gtk_form_element_combo_get_column_field (element)));
+       xmlAddChild (xnode, xnode_cur);
+}
index 639f36a3e6de1f744abe80e073b1f17e56d99956..7bef22b75e63be0e26878701aab5e52ba2af359e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2015-2020 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
@@ -42,6 +42,8 @@ static void zak_form_gtk_form_element_entry_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_entry_get_value (ZakFormGtkFormElementEntry *element);
 static gboolean zak_form_gtk_form_element_entry_set_value (ZakFormGtkFormElementEntry *element, GValue *value);
 
+static void zak_form_gtk_form_element_entry_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_ENTRY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_ENTRY, ZakFormGtkFormElementEntryPrivate))
 
 typedef struct _ZakFormGtkFormElementEntryPrivate ZakFormGtkFormElementEntryPrivate;
@@ -57,6 +59,7 @@ zak_form_gtk_form_element_entry_class_init (ZakFormGtkFormElementEntryClass *kla
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_entry_set_property;
        object_class->get_property = zak_form_gtk_form_element_entry_get_property;
@@ -68,6 +71,8 @@ zak_form_gtk_form_element_entry_class_init (ZakFormGtkFormElementEntryClass *kla
 
        elem_class->xml_parsing = zak_form_gtk_form_element_entry_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_entry_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementEntryPrivate));
 }
 
@@ -189,3 +194,9 @@ zak_form_gtk_form_element_entry_set_value (ZakFormGtkFormElementEntry *element,
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_entry_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_entry");
+}
index d9f0ab1788699c741354511dbd1f5a264f22725d..d01dd0a94d258391fe6f7df20a7697dcd9d8d877 100644 (file)
@@ -42,6 +42,8 @@ static void zak_form_gtk_form_element_label_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_label_get_value (ZakFormGtkFormElementLabel *element);
 static gboolean zak_form_gtk_form_element_label_set_value (ZakFormGtkFormElementLabel *element, GValue *value);
 
+static void zak_form_gtk_form_element_label_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_LABEL_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_LABEL, ZakFormGtkFormElementLabelPrivate))
 
 typedef struct _ZakFormGtkFormElementLabelPrivate ZakFormGtkFormElementLabelPrivate;
@@ -57,6 +59,7 @@ zak_form_gtk_form_element_label_class_init (ZakFormGtkFormElementLabelClass *kla
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_GTK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_label_set_property;
        object_class->get_property = zak_form_gtk_form_element_label_get_property;
@@ -68,6 +71,8 @@ zak_form_gtk_form_element_label_class_init (ZakFormGtkFormElementLabelClass *kla
 
        elem_class->xml_parsing = zak_form_gtk_form_element_label_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_label_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementLabelPrivate));
 }
 
@@ -185,3 +190,9 @@ zak_form_gtk_form_element_label_set_value (ZakFormGtkFormElementLabel *element,
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_label_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_label");
+}
index b7707e1ebb9f09b9f2f0be796d93cecd3fb2532f..5cd32ebecb426c133db002eb3b48a8a498449bd8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2015-2020 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
@@ -48,6 +48,8 @@ static void zak_form_gtk_form_element_radio_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_radio_get_value (ZakFormGtkFormElementRadio *element);
 static gboolean zak_form_gtk_form_element_radio_set_value (ZakFormGtkFormElementRadio *element, GValue *value);
 
+static void zak_form_gtk_form_element_radio_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_RADIO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_RADIO, ZakFormGtkFormElementRadioPrivate))
 
 typedef struct _ZakFormGtkFormElementRadioPrivate ZakFormGtkFormElementRadioPrivate;
@@ -63,6 +65,7 @@ zak_form_gtk_form_element_radio_class_init (ZakFormGtkFormElementRadioClass *kla
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_GTK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_radio_set_property;
        object_class->get_property = zak_form_gtk_form_element_radio_get_property;
@@ -74,6 +77,8 @@ zak_form_gtk_form_element_radio_class_init (ZakFormGtkFormElementRadioClass *kla
 
        elem_class->xml_parsing = zak_form_gtk_form_element_radio_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_radio_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementRadioPrivate));
 
        g_object_class_install_property (object_class, PROP_RETURN_VALUE,
@@ -293,3 +298,15 @@ zak_form_gtk_form_element_radio_set_value (ZakFormGtkFormElementRadio *element,
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_radio_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlNode *xnode_cur;
+
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_radio");
+
+       xnode_cur = xmlNewNode (NULL, (const xmlChar *)"return-value");
+       xmlNodeSetContent (xnode_cur, (xmlChar *)zak_form_gtk_form_element_radio_get_return_value (element));
+       xmlAddChild (xnode, xnode_cur);
+}
index 99f53370931d8bcd88c6acd46df3eca40c16cff4..24fe2aa1f431cef073946fe7721c104351a76a8d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2015-2020 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
@@ -42,6 +42,8 @@ static void zak_form_gtk_form_element_spin_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_spin_get_value (ZakFormGtkFormElementSpin *element);
 static gboolean zak_form_gtk_form_element_spin_set_value (ZakFormGtkFormElementSpin *element, GValue *value);
 
+static void zak_form_gtk_form_element_spin_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_SPIN_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_SPIN, ZakFormGtkFormElementSpinPrivate))
 
 typedef struct _ZakFormGtkFormElementSpinPrivate ZakFormGtkFormElementSpinPrivate;
@@ -57,6 +59,7 @@ zak_form_gtk_form_element_spin_class_init (ZakFormGtkFormElementSpinClass *klass
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_GTK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_spin_set_property;
        object_class->get_property = zak_form_gtk_form_element_spin_get_property;
@@ -68,6 +71,8 @@ zak_form_gtk_form_element_spin_class_init (ZakFormGtkFormElementSpinClass *klass
 
        elem_class->xml_parsing = zak_form_gtk_form_element_spin_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_spin_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementSpinPrivate));
 }
 
@@ -189,3 +194,9 @@ zak_form_gtk_form_element_spin_set_value (ZakFormGtkFormElementSpin *element, GV
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_spin_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_spin");
+}
index 767648d09db453b7f0b72beb97571fa41cfb03fd..84eeaa2de240f4d0f82a31b2ebe0641f96fdd6a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2015-2020 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
@@ -42,6 +42,8 @@ static void zak_form_gtk_form_element_textview_finalize (GObject *gobject);
 static GValue *zak_form_gtk_form_element_textview_get_value (ZakFormGtkFormElementTextview *element);
 static gboolean zak_form_gtk_form_element_textview_set_value (ZakFormGtkFormElementTextview *element, GValue *value);
 
+static void zak_form_gtk_form_element_textview_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode);
+
 #define ZAK_FORM_GTK_FORM_ELEMENT_TEXTVIEW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_GTK_TYPE_FORM_ELEMENT_TEXTVIEW, ZakFormGtkFormElementTextviewPrivate))
 
 typedef struct _ZakFormGtkFormElementTextviewPrivate ZakFormGtkFormElementTextviewPrivate;
@@ -57,6 +59,7 @@ zak_form_gtk_form_element_textview_class_init (ZakFormGtkFormElementTextviewClas
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        ZakFormElementClass *elem_class = ZAK_FORM_ELEMENT_CLASS (klass);
+       ZakFormGtkFormElementClass *gtk_elem_class = ZAK_FORM_GTK_FORM_ELEMENT_CLASS (klass);
 
        object_class->set_property = zak_form_gtk_form_element_textview_set_property;
        object_class->get_property = zak_form_gtk_form_element_textview_get_property;
@@ -68,6 +71,8 @@ zak_form_gtk_form_element_textview_class_init (ZakFormGtkFormElementTextviewClas
 
        elem_class->xml_parsing = zak_form_gtk_form_element_textview_xml_parsing;
 
+       gtk_elem_class->get_xml = zak_form_gtk_form_element_textview_get_xml;
+
        g_type_class_add_private (object_class, sizeof (ZakFormGtkFormElementTextviewPrivate));
 }
 
@@ -198,3 +203,9 @@ zak_form_gtk_form_element_textview_set_value (ZakFormGtkFormElementTextview *ele
 
        return TRUE;
 }
+
+static void
+zak_form_gtk_form_element_textview_get_xml (ZakFormGtkFormElement *element, const gchar *version, xmlNode *xnode)
+{
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_gtk_form_element_textview");
+}