]> saetta.ns0.it Git - zakform/libzakform/commitdiff
Added functions to ZakFormValidatorCompareDate to set/get parameters.
authorAndrea Zagli <azagli@libero.it>
Mon, 13 Apr 2020 08:20:47 +0000 (10:20 +0200)
committerAndrea Zagli <azagli@libero.it>
Mon, 13 Apr 2020 08:20:47 +0000 (10:20 +0200)
src/formvalidatorcomparedate.c
src/formvalidatorcomparedate.h

index 038aa663de4da60585480e1f6baf8f07d69faf3c..57f706511d32789a7906c9c9831d083c091e4076 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
@@ -94,6 +94,8 @@ zak_form_validator_compare_date_init (ZakFormValidatorCompareDate *validator)
 
        priv->v1 = NULL;
        priv->v2 = NULL;
+       priv->format1 = g_strdup ("");
+       priv->format2 = g_strdup ("");
 }
 
 /**
@@ -122,30 +124,176 @@ static gboolean
 zak_form_validator_compare_date_xml_parsing (ZakFormValidator *validator, xmlNode *xnode, gpointer form)
 {
        gchar *prop;
+       gchar *prop2;
 
        ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
 
        prop = (gchar *)xmlGetProp (xnode, (const xmlChar *)"type_comp");
-       priv->type = zak_form_get_compare_type_from_string (prop);
+       zak_form_validator_compare_date_set_compare_type ((ZakFormValidatorCompareDate *)validator, prop);
        g_free (prop);
 
        prop = (gchar *)xmlGetProp (xnode, (const xmlChar *)"element1");
-       priv->v1 = zak_form_form_get_element_by_id ((ZakFormForm *)form, prop);
+       prop2 = (gchar *)xmlGetProp (xnode, (const xmlChar *)"format1");
+       zak_form_validator_compare_date_set_element1 ((ZakFormValidatorCompareDate *)validator, (ZakFormForm *)form, prop, prop2);
        g_free (prop);
+       g_free (prop2);
 
        prop = (gchar *)xmlGetProp (xnode, (const xmlChar *)"element2");
-       priv->v2 = zak_form_form_get_element_by_id ((ZakFormForm *)form, prop);
+       prop2 = (gchar *)xmlGetProp (xnode, (const xmlChar *)"format2");
+       zak_form_validator_compare_date_set_element2 ((ZakFormValidatorCompareDate *)validator, (ZakFormForm *)form, prop, prop2);
        g_free (prop);
+       g_free (prop2);
 
-       prop = (gchar *)xmlGetProp (xnode, (const xmlChar *)"format1");
-       priv->format1 = g_strdup (prop);
-       g_free (prop);
+       return TRUE;
+}
 
-       prop = (gchar *)xmlGetProp (xnode, (const xmlChar *)"format2");
-       priv->format2 = g_strdup (prop);
-       g_free (prop);
+/**
+ * zak_form_validator_compare_date_set_compare_type:
+ * @validator:
+ * @type:
+ *
+ * Sets the validator compare type.
+ */
+void
+zak_form_validator_compare_date_set_compare_type (ZakFormValidatorCompareDate *validator, const gchar *type)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
 
-       return TRUE;
+       priv->type = zak_form_get_compare_type_from_string (type);
+}
+
+/**
+ * zak_form_validator_compare_date_get_compare_type:
+ * @validator:
+ *
+ * Returns: the validator compare type.
+ */
+const gchar
+*zak_form_validator_compare_date_get_compare_type (ZakFormValidatorCompareDate *validator)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       zak_form_get_compare_type_stringify (priv->type);
+}
+
+/**
+ * zak_form_validator_compare_date_set_element1:
+ * @validator:
+ * @element1:
+ * @format1:
+ *
+ * Sets the validator element1.
+ */
+void
+zak_form_validator_compare_date_set_element1 (ZakFormValidatorCompareDate *validator, ZakFormForm *form, const gchar *element1, const gchar *format1)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       priv->v1 = zak_form_form_get_element_by_id (form, element1);
+       if (!ZAK_FORM_IS_ELEMENT (priv->v1))
+               {
+                       g_warning ("Validator compare: element «%s» isn't a ZakFormElement.", element1);
+               }
+       else
+               {
+                       g_free (priv->format1);
+                       priv->format1 = g_strdup (format1);
+               }
+}
+
+/**
+ * zak_form_validator_compare_date_get_element1:
+ * @validator:
+ *
+ * Returns: the validator element1 name.
+ */
+const gchar
+*zak_form_validator_compare_date_get_element1 (ZakFormValidatorCompareDate *validator)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       if (ZAK_FORM_IS_ELEMENT (priv->v2))
+               {
+                       return zak_form_element_get_name (priv->v2);
+               }
+       else
+               {
+                       return "";
+               }
+}
+
+/**
+ * zak_form_validator_compare_date_get_element1_format:
+ * @validator:
+ *
+ * Returns: the validator element1 format.
+ */
+const gchar
+*zak_form_validator_compare_date_get_element1_format (ZakFormValidatorCompareDate *validator)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       return g_strdup (priv->format1);
+}
+
+/**
+ * zak_form_validator_compare_date_set_element2:
+ * @validator:
+ * @element2:
+ * @format2:
+ *
+ * Sets the validator element2.
+ */
+void
+zak_form_validator_compare_date_set_element2 (ZakFormValidatorCompareDate *validator, ZakFormForm *form, const gchar *element2, const gchar *format2)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       priv->v1 = zak_form_form_get_element_by_id (form, element2);
+       if (!ZAK_FORM_IS_ELEMENT (priv->v2))
+               {
+                       g_warning ("Validator compare: element «%s» isn't a ZakFormElement.", element2);
+               }
+       else
+               {
+                       g_free (priv->format2);
+                       priv->format2 = g_strdup (format2);
+               }
+}
+
+/**
+ * zak_form_validator_compare_date_get_element2:
+ * @validator:
+ *
+ * Returns: the validator element2 name.
+ */
+const gchar
+*zak_form_validator_compare_date_get_element2 (ZakFormValidatorCompareDate *validator)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       if (ZAK_FORM_IS_ELEMENT (priv->v2))
+               {
+                       return zak_form_element_get_name (priv->v2);
+               }
+       else
+               {
+                       return "";
+               }
+}
+
+/**
+ * zak_form_validator_compare_date_get_element2_format:
+ * @validator:
+ *
+ * Returns: the validator element2 format.
+ */
+const gchar
+*zak_form_validator_compare_date_get_element2_format (ZakFormValidatorCompareDate *validator)
+{
+       ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator);
+
+       return g_strdup (priv->format2);
 }
 
 /* PRIVATE */
index 52fac525a9676fd3645585eaf7aa06f3cccb5d0b..e7e747d4ac5cdfafea10c4567906fc76e5497e0d 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
@@ -24,6 +24,7 @@
 
 #include <libxml/tree.h>
 
+#include "form.h"
 #include "formvalidator.h"
 
 
@@ -35,6 +36,17 @@ G_DECLARE_FINAL_TYPE (ZakFormValidatorCompareDate, zak_form_validator_compare_da
 
 ZakFormValidatorCompareDate *zak_form_validator_compare_date_new (void);
 
+void zak_form_validator_compare_date_set_compare_type (ZakFormValidatorCompareDate *validator, const gchar *type);
+const gchar *zak_form_validator_compare_date_get_compare_type (ZakFormValidatorCompareDate *validator);
+
+void zak_form_validator_compare_date_set_element1 (ZakFormValidatorCompareDate *validator, ZakFormForm *form, const gchar *element1, const gchar *format1);
+const gchar *zak_form_validator_compare_date_get_element1 (ZakFormValidatorCompareDate *validator);
+const gchar *zak_form_validator_compare_date_get_element1_format (ZakFormValidatorCompareDate *validator);
+
+void zak_form_validator_compare_date_set_element2 (ZakFormValidatorCompareDate *validator, ZakFormForm *form, const gchar *element2, const gchar *format2);
+const gchar *zak_form_validator_compare_date_get_element2 (ZakFormValidatorCompareDate *validator);
+const gchar *zak_form_validator_compare_date_get_element2_format (ZakFormValidatorCompareDate *validator);
+
 
 G_END_DECLS