[gegl/pippin/property-keys: 2/11] gegl-op.h: a new way of chanting ops
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl/pippin/property-keys: 2/11] gegl-op.h: a new way of chanting ops
- Date: Wed, 14 May 2014 23:50:05 +0000 (UTC)
commit 2e79bf2c8fe2b734008b81345b35ea2c3cd4188b
Author: Øyvind Kolås <pippin gimp org>
Date: Thu May 15 00:45:45 2014 +0200
gegl-op.h: a new way of chanting ops
The existing way of specifying additional ui contextual information for
displaying interactions for operation properties
gegl_chant_double_ui (var, "var", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, "description")
makes the inherited hard to remember order of parameters even harder to
remember than the still hard to remember order of arguments in
g_param_spec_double. This infrastructure uses var_args and named parameters;
making the declaration concise and self-documenting - at the cost of some
programming mistakes only surfacing at runtime.
The chant prefix has also been trimmed away; replacing it with more
descriptive vocabulary.
The changes also makes it easier to subclass aribitrary gobject derived classes.
gegl/Makefile.am | 2 +
gegl/property-types/gegl-paramspecs.c | 599 +++++++++++++++++++++++++++++++++
gegl/property-types/gegl-paramspecs.h | 28 ++
3 files changed, 629 insertions(+), 0 deletions(-)
---
diff --git a/gegl/Makefile.am b/gegl/Makefile.am
index 58bbd9e..19ca064 100644
--- a/gegl/Makefile.am
+++ b/gegl/Makefile.am
@@ -74,6 +74,7 @@ GEGL_public_HEADERS = \
gegl-c.h \
gegl-chant.h \
gegl-cpuaccel.h \
+ gegl-op.h \
gegl-plugin.h \
buffer/gegl-tile.h \
buffer/gegl-buffer-cl-iterator.h
@@ -110,6 +111,7 @@ GEGL_sources = \
gegl-lookup.h \
gegl-matrix.h \
gegl-module.h \
+ gegl-op.h \
gegl-plugin.h \
gegl-random-private.h \
gegl-types-internal.h \
diff --git a/gegl/property-types/gegl-paramspecs.c b/gegl/property-types/gegl-paramspecs.c
index 2438306..231b1da 100644
--- a/gegl/property-types/gegl-paramspecs.c
+++ b/gegl/property-types/gegl-paramspecs.c
@@ -25,6 +25,11 @@
#include <glib.h>
#include <glib-object.h>
#include "gegl-paramspecs.h"
+#include "gegl-types.h"
+#include <babl/babl.h>
+#include "gegl-color.h"
+#include "gegl-curve.h"
+#include "gegl-path.h"
static void gegl_param_double_class_init (GParamSpecClass *klass);
static void gegl_param_double_init (GParamSpec *pspec);
@@ -740,3 +745,597 @@ gegl_param_spec_format (const gchar *name,
return G_PARAM_SPEC (pspec);
}
+
+GParamSpec *
+gegl_param_spec_double_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ gdouble min_value = DBL_MIN,
+ max_value = DBL_MAX,
+ default_value = 0.0,
+ ui_min = -100,
+ ui_max = 100,
+ ui_gamma = 1.0;
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "min"))
+ min_value = va_arg (var_args, double);
+ else if (g_str_equal (key, "max"))
+ max_value = va_arg (var_args, double);
+ else if (g_str_equal (key, "ui-min"))
+ ui_min = va_arg (var_args, double);
+ else if (g_str_equal (key, "ui-gamma"))
+ ui_gamma = va_arg (var_args, double);
+ else if (g_str_equal (key, "ui-max"))
+ ui_max = va_arg (var_args, double);
+ else if (g_str_equal (key, "default"))
+ default_value = va_arg (var_args, double);
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+
+ if (ui_min < min_value)
+ ui_min = min_value;
+ if (ui_max > max_value)
+ ui_max = max_value;
+
+ pspec = gegl_param_spec_double (name, nick, blurb,
+ min_value, max_value, default_value,
+ ui_min, ui_max, ui_gamma, \
+ (GParamFlags) ( \
+ G_PARAM_READWRITE | \
+ G_PARAM_CONSTRUCT | \
+ GEGL_PARAM_PAD_INPUT));
+
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+
+GParamSpec *
+gegl_param_spec_int_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ gint min_value = G_MININT,
+ max_value = G_MAXINT,
+ default_value = 0,
+ ui_min = -100,
+ ui_max = 100,
+ ui_gamma = 1.0;
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "min"))
+ min_value = va_arg (var_args, gint);
+ else if (g_str_equal (key, "max"))
+ max_value = va_arg (var_args, gint);
+ else if (g_str_equal (key, "ui-min"))
+ ui_min = va_arg (var_args, gint);
+ else if (g_str_equal (key, "ui-gamma"))
+ ui_gamma = va_arg (var_args, double);
+ else if (g_str_equal (key, "ui-max"))
+ ui_max = va_arg (var_args, gint);
+ else if (g_str_equal (key, "default"))
+ default_value = va_arg (var_args, gint);
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+
+ if (ui_min < min_value)
+ ui_min = min_value;
+ if (ui_max > max_value)
+ ui_max = max_value;
+
+ pspec = gegl_param_spec_int (name, nick, blurb,
+ min_value, max_value, default_value,
+ ui_min, ui_max, ui_gamma, \
+ (GParamFlags) ( \
+ G_PARAM_READWRITE | \
+ G_PARAM_CONSTRUCT | \
+ GEGL_PARAM_PAD_INPUT));
+
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+
+GParamSpec *
+gegl_param_spec_boolean_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ gboolean default_value = FALSE;
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "default"))
+ default_value = va_arg (var_args, gboolean);
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = g_param_spec_boolean (name, nick, blurb,
+ default_value,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_string_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ const gchar *default_value = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "default"))
+ default_value = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = g_param_spec_string (name, nick, blurb,
+ default_value,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_file_path_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ const gchar *default_value = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "default"))
+ default_value = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = gegl_param_spec_file_path (name, nick, blurb,
+ FALSE, FALSE, /* XXX: take from varargs? */
+ default_value,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_enum_from_vararg (const char *name, GType enum_type, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ int default_value = 0;
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, enum_type);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "default"))
+ default_value = va_arg (var_args, int);
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+
+ pspec = g_param_spec_enum (name, nick, blurb,
+ enum_type,
+ default_value,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_pointer_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = g_param_spec_pointer (name, nick, blurb,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_object_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = g_param_spec_object (name, nick, blurb,
+ G_TYPE_OBJECT,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_curve_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+ GeglCurve *curve;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ curve = gegl_curve_new_default ();
+ pspec = gegl_param_spec_curve (name, nick, blurb,
+ curve,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_object_unref (curve);
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_path_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = gegl_param_spec_path (name, nick, blurb, NULL,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_format_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = gegl_param_spec_format (name, nick, blurb,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_color_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+ const gchar *default_value = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "default"))
+ {
+ default_value = va_arg (var_args, const gchar *);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (default_value));
+ }
+ else if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = gegl_param_spec_color_from_string (name, nick, blurb,
+ default_value,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
+
+GParamSpec *
+gegl_param_spec_seed_from_vararg (const char *name, ...)
+{
+ const gchar *nick = name,
+ *blurb = "";
+
+ GParamSpec *pspec;
+ GHashTable *ht;
+
+ va_list var_args;
+ const gchar *key;
+
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ va_start (var_args, name);
+ key = va_arg (var_args, const char*);
+ while (key)
+ {
+ if (g_str_equal (key, "blurb"))
+ blurb = va_arg (var_args, const gchar *);
+ else if (g_str_equal (key, "nick"))
+ nick = va_arg (var_args, const gchar *);
+ else
+ {
+ const char *value = va_arg (var_args, const gchar*);
+ g_hash_table_insert (ht, g_strdup (key), g_strdup (value));
+ }
+ key = va_arg (var_args, const char*);
+ }
+ va_end (var_args);
+ pspec = gegl_param_spec_seed (name, nick, blurb,
+ (GParamFlags) (
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ GEGL_PARAM_PAD_INPUT));
+ g_param_spec_set_qdata_full (pspec, g_quark_from_static_string ("gegl-property-keys"),
+ ht, (GDestroyNotify)g_hash_table_unref);
+ return pspec;
+}
diff --git a/gegl/property-types/gegl-paramspecs.h b/gegl/property-types/gegl-paramspecs.h
index 6142e46..9e9108e 100644
--- a/gegl/property-types/gegl-paramspecs.h
+++ b/gegl/property-types/gegl-paramspecs.h
@@ -374,5 +374,33 @@ GParamSpec * gegl_param_spec_format (const gchar *name,
const gchar *blurb,
GParamFlags flags);
+GParamSpec * gegl_param_spec_double_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_int_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_string_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_boolean_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_pointer_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_enum_from_vararg (const char *name, GType enum_type, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_color_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_seed_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_object_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_format_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_curve_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_path_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+GParamSpec * gegl_param_spec_file_path_from_vararg (const char *name, ...)
+ G_GNUC_NULL_TERMINATED;
+
+
G_END_DECLS
#endif /* __GEGL_PARAM_SPECS_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]