From e2c4d3bb1672d6bbfe477e1eda55cb13033908b1 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 28 Oct 2015 21:41:38 +0100 Subject: [PATCH] Added class ZakForm (abstract). --- src/Makefile.am | 2 + src/form.c | 121 +++++++++++++++++++++++++++++++++++++++++++++++ src/form.h | 41 ++++++++++++++++ src/libzakform.h | 2 + 4 files changed, 166 insertions(+) create mode 100644 src/form.c create mode 100644 src/form.h diff --git a/src/Makefile.am b/src/Makefile.am index 6f792eb..e2db130 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,6 +6,7 @@ AM_CPPFLAGS = $(ZAKFORM_CFLAGS) \ lib_LTLIBRARIES = libzakform.la libzakform_la_SOURCES = \ + form.c \ formelementifilter.c \ formelementfiltertrim.c \ formelementivalidator.c \ @@ -16,6 +17,7 @@ libzakform_la_LDFLAGS = -no-undefined libzakform_include_HEADERS = \ libzakform.h \ + form.h \ formelementifilter.h \ formelementfiltertrim.h \ formelementivalidator.h \ diff --git a/src/form.c b/src/form.c new file mode 100644 index 0000000..136c851 --- /dev/null +++ b/src/form.c @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2015 Andrea Zagli + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include "form.h" + +static void zak_form_form_class_init (ZakFormFormClass *class); +static void zak_form_form_init (ZakFormForm *zak_form_form); + +static void zak_form_form_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec); +static void zak_form_form_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec); + +static void zak_form_form_dispose (GObject *gobject); +static void zak_form_form_finalize (GObject *gobject); + +typedef struct + { + gpointer nothing; + } ZakFormFormPrivate; + +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (ZakFormForm, zak_form_form, G_TYPE_OBJECT) + +static void +zak_form_form_class_init (ZakFormFormClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->set_property = zak_form_form_set_property; + object_class->get_property = zak_form_form_get_property; + object_class->dispose = zak_form_form_dispose; + object_class->finalize = zak_form_form_finalize; +} + +static void +zak_form_form_init (ZakFormForm *zak_form_form) +{ + ZakFormFormPrivate *priv = zak_form_form_get_instance_private (zak_form_form); +} + +/* PRIVATE */ +static void +zak_form_form_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + ZakFormForm *zak_form_form = (ZakFormForm *)object; + ZakFormFormPrivate *priv = zak_form_form_get_instance_private (zak_form_form); + + switch (property_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +zak_form_form_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + ZakFormForm *zak_form_form = (ZakFormForm *)object; + ZakFormFormPrivate *priv = zak_form_form_get_instance_private (zak_form_form); + + switch (property_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +zak_form_form_dispose (GObject *gobject) +{ + ZakFormForm *zak_form_form = (ZakFormForm *)gobject; + ZakFormFormPrivate *priv = zak_form_form_get_instance_private (zak_form_form); + + + + GObjectClass *parent_class = g_type_class_peek_parent (G_OBJECT_GET_CLASS (gobject)); + parent_class->dispose (gobject); +} + +static void +zak_form_form_finalize (GObject *gobject) +{ + ZakFormForm *zak_form_form = (ZakFormForm *)gobject; + ZakFormFormPrivate *priv = zak_form_form_get_instance_private (zak_form_form); + + + + GObjectClass *parent_class = g_type_class_peek_parent (G_OBJECT_GET_CLASS (gobject)); + parent_class->finalize (gobject); +} diff --git a/src/form.h b/src/form.h new file mode 100644 index 0000000..c166f67 --- /dev/null +++ b/src/form.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2015 Andrea Zagli + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __ZAK_FORM_FORM_H__ +#define __ZAK_FORM_FORM_H__ + + +#include + + +G_BEGIN_DECLS + + +#define ZAK_TYPE_FORM_FORM zak_form_form_get_type () +G_DECLARE_DERIVABLE_TYPE (ZakFormForm, zak_form_form, ZAK_FORM, FORM, GObject) + +struct _ZakFormFormClass +{ + GObjectClass parent_class; +}; + + +G_END_DECLS + + +#endif /* __ZAK_FORM_FORM_H__ */ diff --git a/src/libzakform.h b/src/libzakform.h index ecf2614..1e85421 100644 --- a/src/libzakform.h +++ b/src/libzakform.h @@ -20,6 +20,8 @@ #define __LIBZAKFORM_H__ +#include + #include #include -- 2.49.0