Blame gegl/gegl-chant.h

Packit bc1512
/* gegl-chant contains incantations to that produce the boilerplate
Packit bc1512
 * needed to write GEGL operation plug-ins. It abstracts away inheritance
Packit bc1512
 * by giving a limited amount of base classes, and reduced creation of
Packit bc1512
 * a properties struct and registration of properties for that structure to
Packit bc1512
 * a minimum amount of code through use of the C preprocessor. You should
Packit bc1512
 * look at the operations implemented using chanting (they #include this file)
Packit bc1512
 * to see how it is used in practice.
Packit bc1512
 *
Packit bc1512
 * GEGL is free software; you can redistribute it and/or
Packit bc1512
 * modify it under the terms of the GNU Lesser General Public
Packit bc1512
 * License as published by the Free Software Foundation; either
Packit bc1512
 * version 3 of the License, or (at your option) any later version.
Packit bc1512
 *
Packit bc1512
 * GEGL is distributed in the hope that it will be useful,
Packit bc1512
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit bc1512
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit bc1512
 * Lesser General Public License for more details.
Packit bc1512
 *
Packit bc1512
 * You should have received a copy of the GNU Lesser General Public
Packit bc1512
 * License along with GEGL; if not, see <http://www.gnu.org/licenses/>.
Packit bc1512
 *
Packit bc1512
 * 2006-2008 © Øyvind Kolås.
Packit bc1512
 */
Packit bc1512
Packit bc1512
#ifndef GEGL_CHANT_C_FILE
Packit bc1512
#error "GEGL_CHANT_C_FILE not defined"
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#include <gegl-plugin.h>
Packit bc1512
Packit bc1512
G_BEGIN_DECLS
Packit bc1512
Packit bc1512
GType gegl_chant_get_type (void);
Packit bc1512
typedef struct _GeglChantO  GeglChantO;
Packit bc1512
typedef struct _GeglChant   GeglChant;
Packit bc1512
Packit bc1512
static void gegl_chant_register_type       (GTypeModule *module);
Packit bc1512
static void gegl_chant_init_properties     (GeglChant   *self);
Packit bc1512
static void gegl_chant_class_intern_init   (gpointer     klass);
Packit bc1512
static gpointer gegl_chant_parent_class = NULL;
Packit bc1512
Packit bc1512
#define GEGL_DEFINE_DYNAMIC_OPERATION(T_P)  GEGL_DEFINE_DYNAMIC_OPERATION_EXTENDED (GEGL_CHANT_C_FILE, GeglChant, gegl_chant, T_P, 0, {})
Packit bc1512
#define GEGL_DEFINE_DYNAMIC_OPERATION_EXTENDED(C_FILE, TypeName, type_name, TYPE_PARENT, flags, CODE) \
Packit bc1512
static void     type_name##_init              (TypeName        *self);  \
Packit bc1512
static void     type_name##_class_init        (TypeName##Class *klass); \
Packit bc1512
static void     type_name##_class_finalize    (TypeName##Class *klass); \
Packit bc1512
static GType    type_name##_type_id = 0;                                \
Packit bc1512
static void     type_name##_class_chant_intern_init (gpointer klass)    \
Packit bc1512
  {                                                                     \
Packit bc1512
    gegl_chant_parent_class = g_type_class_peek_parent (klass);         \
Packit bc1512
    type_name##_class_init ((TypeName##Class*) klass);                  \
Packit bc1512
    gegl_chant_class_intern_init (klass);                               \
Packit bc1512
  }                                                                     \
Packit bc1512
GType                                                                   \
Packit bc1512
type_name##_get_type (void)                                             \
Packit bc1512
  {                                                                     \
Packit bc1512
    return type_name##_type_id;                                         \
Packit bc1512
  }                                                                     \
Packit bc1512
static void                                                             \
Packit bc1512
type_name##_register_type (GTypeModule *type_module)                    \
Packit bc1512
  {                                                                     \
Packit bc1512
    gchar  tempname[256];                                               \
Packit bc1512
    gchar *p;                                                           \
Packit bc1512
    const GTypeInfo g_define_type_info =                                \
Packit bc1512
    {                                                                   \
Packit bc1512
      sizeof (TypeName##Class),                                         \
Packit bc1512
      (GBaseInitFunc) NULL,                                             \
Packit bc1512
      (GBaseFinalizeFunc) NULL,                                         \
Packit bc1512
      (GClassInitFunc) type_name##_class_chant_intern_init,             \
Packit bc1512
      (GClassFinalizeFunc) type_name##_class_finalize,                  \
Packit bc1512
      NULL,   /* class_data */                                          \
Packit bc1512
      sizeof (TypeName),                                                \
Packit bc1512
      0,      /* n_preallocs */                                         \
Packit bc1512
      (GInstanceInitFunc) type_name##_init,                             \
Packit bc1512
      NULL    /* value_table */                                         \
Packit bc1512
    };                                                                  \
Packit bc1512
    g_snprintf (tempname, sizeof (tempname),                            \
Packit bc1512
                "%s", #TypeName GEGL_CHANT_C_FILE);                     \
Packit bc1512
    for (p = tempname; *p; p++)                                         \
Packit bc1512
      if (*p=='.') *p='_';                                              \
Packit bc1512
                                                                        \
Packit bc1512
    type_name##_type_id = g_type_module_register_type (type_module,     \
Packit bc1512
                                                       TYPE_PARENT,     \
Packit bc1512
                                                       tempname,        \
Packit bc1512
                                                       &g_define_type_info, \
Packit bc1512
                                                       (GTypeFlags) flags); \
Packit bc1512
    { CODE ; }                                                          \
Packit bc1512
  }
Packit bc1512
Packit bc1512
Packit bc1512
#define GEGL_CHANT_PROPERTIES(op) \
Packit bc1512
    ((GeglChantO *) (((GeglChant *) (op))->properties))
Packit bc1512
Packit bc1512
/****************************************************************************/
Packit bc1512
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_OPERATION
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperation parent_instance;
Packit bc1512
  gpointer      properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_META
Packit bc1512
#include <operation/gegl-operation-meta.h>
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationMeta parent_instance;
Packit bc1512
  gpointer          properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationMetaClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_META)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_SOURCE
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationSource parent_instance;
Packit bc1512
  gpointer            properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationSourceClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_SOURCE)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_SINK
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationSink parent_instance;
Packit bc1512
  gpointer          properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationSinkClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_SINK)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_FILTER
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationFilter parent_instance;
Packit bc1512
  gpointer            properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationFilterClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_FILTER)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_COMPOSER
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationComposer parent_instance;
Packit bc1512
  gpointer              properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationComposerClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_COMPOSER)
Packit bc1512
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_COMPOSER3
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationComposer3 parent_instance;
Packit bc1512
  gpointer               properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationComposer3Class parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_COMPOSER3)
Packit bc1512
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_POINT_FILTER
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationPointFilter parent_instance;
Packit bc1512
  gpointer                 properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationPointFilterClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_POINT_FILTER)
Packit bc1512
Packit bc1512
#endif
Packit bc1512
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_POINT_RENDER
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationPointRender parent_instance;
Packit bc1512
  gpointer                 properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationPointRenderClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_POINT_RENDER)
Packit bc1512
Packit bc1512
#endif
Packit bc1512
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_TEMPORAL
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationTemporal parent_instance;
Packit bc1512
  gpointer              properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationTemporalClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_TEMPORAL)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_AREA_FILTER
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationAreaFilter parent_instance;
Packit bc1512
  gpointer                properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationAreaFilterClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_AREA_FILTER)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_POINT_COMPOSER
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationPointComposer parent_instance;
Packit bc1512
  gpointer                   properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationPointComposerClass parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_POINT_COMPOSER)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_TYPE_POINT_COMPOSER3
Packit bc1512
struct _GeglChant
Packit bc1512
{
Packit bc1512
  GeglOperationPointComposer3 parent_instance;
Packit bc1512
  gpointer                    properties;
Packit bc1512
};
Packit bc1512
Packit bc1512
typedef struct
Packit bc1512
{
Packit bc1512
  GeglOperationPointComposer3Class parent_class;
Packit bc1512
} GeglChantClass;
Packit bc1512
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_POINT_COMPOSER3)
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#define GEGL_CHANT(obj)  ((GeglChant*)(obj))
Packit bc1512
Packit bc1512
/* if GEGL_CHANT_CUSTOM is defined you have to provide the following
Packit bc1512
 * code or your own implementation of it
Packit bc1512
 */
Packit bc1512
#ifndef GEGL_CHANT_CUSTOM
Packit bc1512
static void
Packit bc1512
gegl_chant_init (GeglChant *self)
Packit bc1512
{
Packit bc1512
  gegl_chant_init_properties (self);
Packit bc1512
}
Packit bc1512
Packit bc1512
static void
Packit bc1512
gegl_chant_class_finalize (GeglChantClass *self)
Packit bc1512
{
Packit bc1512
}
Packit bc1512
Packit bc1512
static const GeglModuleInfo modinfo =
Packit bc1512
{
Packit bc1512
  GEGL_MODULE_ABI_VERSION
Packit bc1512
};
Packit bc1512
Packit bc1512
/* prototypes added to silence warnings from gcc for -Wmissing-prototypes*/
Packit bc1512
gboolean                gegl_module_register (GTypeModule *module);
Packit bc1512
const GeglModuleInfo  * gegl_module_query    (GTypeModule *module);
Packit bc1512
Packit bc1512
G_MODULE_EXPORT const GeglModuleInfo *
Packit bc1512
gegl_module_query (GTypeModule *module)
Packit bc1512
{
Packit bc1512
  return &modinfo;
Packit bc1512
}
Packit bc1512
Packit bc1512
G_MODULE_EXPORT gboolean
Packit bc1512
gegl_module_register (GTypeModule *module)
Packit bc1512
{
Packit bc1512
  gegl_chant_register_type (module);
Packit bc1512
Packit bc1512
  return TRUE;
Packit bc1512
}
Packit bc1512
#endif
Packit bc1512
Packit bc1512
Packit bc1512
struct _GeglChantO
Packit bc1512
{
Packit bc1512
  gpointer chant_data; /* Unused by the chanting framework can be used by operations
Packit bc1512
                        * for storage of a private struct, (remember to clean up
Packit bc1512
                        * in finalize). Also serves as a filler making sure that we
Packit bc1512
                        * do not create an empty struct if there are no chanted properties.
Packit bc1512
                        */
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)                        gint               name;
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)     gint               name;
Packit bc1512
#define gegl_chant_double(name, nick, min, max, def, blurb)                     gdouble            name;
Packit bc1512
#define gegl_chant_double_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb) gdouble   name;
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)                              gboolean           name;
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)                               gchar             *name;
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)                     enum               name;
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb)                            gchar             *name;
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)                            gchar             *name;
Packit bc1512
#define gegl_chant_object(name,nick,  blurb)                                    GObject           *name;
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)                                   gpointer           name;
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)                                GeglColor         *name;
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)                                     GeglCurve         *name;
Packit bc1512
#define gegl_chant_path(name, nick, blurb)                                      GeglPath          *name;\
Packit bc1512
                                                                                guint path_changed_handler;
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
};
Packit bc1512
Packit bc1512
#define GEGL_CHANT_OPERATION(obj) ((Operation*)(obj))
Packit bc1512
Packit bc1512
enum
Packit bc1512
{
Packit bc1512
  PROP_0,
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)                        PROP_##name,
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)     PROP_##name,
Packit bc1512
#define gegl_chant_double(name, nick, min, max, def, blurb)                     PROP_##name,
Packit bc1512
#define gegl_chant_double_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb) PROP_##name,
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)                              PROP_##name,
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)                               PROP_##name,
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)                     PROP_##name,
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb)                            PROP_##name,
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)                            PROP_##name,
Packit bc1512
#define gegl_chant_object(name, nick, blurb)                                    PROP_##name,
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)                                   PROP_##name,
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)                                PROP_##name,
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)                                     PROP_##name,
Packit bc1512
#define gegl_chant_path(name, nick, blurb)                                      PROP_##name,
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
  PROP_LAST
Packit bc1512
};
Packit bc1512
Packit bc1512
static void
Packit bc1512
get_property (GObject      *gobject,
Packit bc1512
              guint         property_id,
Packit bc1512
              GValue       *value,
Packit bc1512
              GParamSpec   *pspec)
Packit bc1512
{
Packit bc1512
  GeglChantO *properties;
Packit bc1512
Packit bc1512
  properties = GEGL_CHANT_PROPERTIES(gobject);
Packit bc1512
Packit bc1512
  switch (property_id)
Packit bc1512
  {
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)      \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_int (value, properties->name);              \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb) \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_int (value, properties->name);              \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_double(name,nick,  min, max, def, blurb)   \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_double (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_double_ui(name,nick,  min, max, def, ui_min, ui_max, ui_gamma, blurb)   \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_double (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)            \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_boolean (value, properties->name);          \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)             \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_string (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)   \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_enum (value, properties->name);             \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb)          \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_string (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)          \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_string (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_object(name, nick, blurb)                  \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_object (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)                 \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_pointer (value, properties->name);          \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)              \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_object (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)                   \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      g_value_set_object (value, properties->name);           \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_path(name, nick, blurb)                    \
Packit bc1512
    case PROP_##name:                                         \
Packit bc1512
      if (!properties->name)properties->name = gegl_path_new (); /* this feels ugly */\
Packit bc1512
      g_value_set_object (value, properties->name);           \
Packit bc1512
      break;/*XXX*/
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
    default:
Packit bc1512
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec);
Packit bc1512
      break;
Packit bc1512
  }
Packit bc1512
  properties ++; /* evil hack to silence gcc */
Packit bc1512
}
Packit bc1512
Packit bc1512
static void
Packit bc1512
set_property (GObject      *gobject,
Packit bc1512
              guint         property_id,
Packit bc1512
              const GValue *value,
Packit bc1512
              GParamSpec   *pspec)
Packit bc1512
{
Packit bc1512
  GeglChantO *properties;
Packit bc1512
Packit bc1512
  properties = GEGL_CHANT_PROPERTIES(gobject);
Packit bc1512
Packit bc1512
  switch (property_id)
Packit bc1512
  {
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)              \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_int (value);                     \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb) \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_int (value);                     \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_double(name, nick, min, max, def, blurb)           \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_double (value);                  \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_double_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb) \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_double (value);                  \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)                    \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_boolean (value);                 \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)                     \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name)                                           \
Packit bc1512
        g_free (properties->name);                                    \
Packit bc1512
      properties->name = g_strdup (g_value_get_string (value));       \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)           \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_enum (value);                    \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb)                  \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name)                                           \
Packit bc1512
        g_free (properties->name);                                    \
Packit bc1512
      properties->name = g_strdup (g_value_get_string (value));       \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)                  \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name)                                           \
Packit bc1512
        g_free (properties->name);                                    \
Packit bc1512
      properties->name = g_strdup (g_value_get_string (value));       \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_object(name, nick, blurb)                          \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name != NULL)                                   \
Packit bc1512
         g_object_unref (properties->name);                           \
Packit bc1512
      properties->name = g_value_dup_object (value);                  \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)                         \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      properties->name = g_value_get_pointer (value);                 \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)                      \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name != NULL)                                   \
Packit bc1512
         g_object_unref (properties->name);                           \
Packit bc1512
      properties->name = g_value_dup_object (value);                  \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)                           \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name != NULL)                                   \
Packit bc1512
         g_object_unref (properties->name);                           \
Packit bc1512
      properties->name = g_value_dup_object (value);                  \
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_path(name, nick, blurb)                            \
Packit bc1512
    case PROP_##name:                                                 \
Packit bc1512
      if (properties->name != NULL)                                   \
Packit bc1512
        {\
Packit bc1512
          if (properties->path_changed_handler) \
Packit bc1512
            g_signal_handler_disconnect (G_OBJECT (properties->name), properties->path_changed_handler);\
Packit bc1512
         properties->path_changed_handler = 0;\
Packit bc1512
        }                                                             \
Packit bc1512
      properties->name = NULL;                                        \
Packit bc1512
      if (g_value_peek_pointer (value))                               \
Packit bc1512
        {                                                             \
Packit bc1512
          properties->name = g_value_dup_object (value);              \
Packit bc1512
          properties->path_changed_handler = g_signal_connect (G_OBJECT (properties->name), "changed",   \
Packit bc1512
          G_CALLBACK(path_changed), gobject);     \
Packit bc1512
         }\
Packit bc1512
      break; /*XXX*/
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
Packit bc1512
    default:
Packit bc1512
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec);
Packit bc1512
      break;
Packit bc1512
  }
Packit bc1512
Packit bc1512
  properties ++; /* evil hack to silence gcc */
Packit bc1512
}
Packit bc1512
Packit bc1512
static void gegl_chant_destroy_notify (gpointer data)
Packit bc1512
{
Packit bc1512
  GeglChantO *properties = GEGL_CHANT_PROPERTIES (data);
Packit bc1512
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)
Packit bc1512
#define gegl_chant_double(name, nick, min, max, def, blurb)
Packit bc1512
#define gegl_chant_double_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)   \
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {                                               \
Packit bc1512
      g_free (properties->name);                    \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb) \
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {                                               \
Packit bc1512
      g_free (properties->name);                    \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)\
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {                                               \
Packit bc1512
      g_free (properties->name);                    \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
#define gegl_chant_object(name, nick, blurb)        \
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {                                               \
Packit bc1512
      g_object_unref (properties->name);            \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)    \
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {                                               \
Packit bc1512
      g_object_unref (properties->name);            \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)         \
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {\
Packit bc1512
      g_object_unref (properties->name);            \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
#define gegl_chant_path(name, nick, blurb)          \
Packit bc1512
  if (properties->name)                             \
Packit bc1512
    {                                               \
Packit bc1512
      g_object_unref (properties->name);            \
Packit bc1512
      properties->name = NULL;                      \
Packit bc1512
    }
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
Packit bc1512
  g_slice_free (GeglChantO, properties);
Packit bc1512
}
Packit bc1512
Packit bc1512
static GObject *
Packit bc1512
gegl_chant_constructor (GType                  type,
Packit bc1512
                        guint                  n_construct_properties,
Packit bc1512
                        GObjectConstructParam *construct_properties)
Packit bc1512
{
Packit bc1512
  GObject *obj;
Packit bc1512
  GeglChantO *properties;
Packit bc1512
Packit bc1512
  obj = G_OBJECT_CLASS (gegl_chant_parent_class)->constructor (
Packit bc1512
            type, n_construct_properties, construct_properties);
Packit bc1512
Packit bc1512
  /* create dummy colors and vectors */
Packit bc1512
  properties = GEGL_CHANT_PROPERTIES (obj);
Packit bc1512
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)
Packit bc1512
#define gegl_chant_double(name, nick, min, max, def, blurb)
Packit bc1512
#define gegl_chant_double_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb)
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)
Packit bc1512
#define gegl_chant_object(name, nick, blurb)
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)              \
Packit bc1512
    if (properties->name == NULL) \
Packit bc1512
    {properties->name = gegl_color_new(def?def:"black");}
Packit bc1512
#define gegl_chant_path(name, nick, blurb)
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
Packit bc1512
  g_object_set_data_full (obj, "chant-data", obj, gegl_chant_destroy_notify);
Packit bc1512
  properties ++; /* evil hack to silence gcc */
Packit bc1512
  return obj;
Packit bc1512
}
Packit bc1512
Packit bc1512
static void
Packit bc1512
gegl_chant_class_intern_init (gpointer klass)
Packit bc1512
{
Packit bc1512
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
Packit bc1512
Packit bc1512
  object_class->set_property = set_property;
Packit bc1512
  object_class->get_property = get_property;
Packit bc1512
  object_class->constructor  = gegl_chant_constructor;
Packit bc1512
Packit bc1512
#define gegl_chant_int(name, nick, min, max, def, blurb)                     \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_int (#name, nick, blurb,     \
Packit bc1512
                                                     min, max, def,          \
Packit bc1512
                                                     (GParamFlags) (         \
Packit bc1512
                                                     G_PARAM_READWRITE |     \
Packit bc1512
                                                     G_PARAM_CONSTRUCT |     \
Packit bc1512
                                                     GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_int_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_int (#name, nick, blurb,     \
Packit bc1512
                                                     min, max, def, ui_min, ui_max, ui_gamma, \
Packit bc1512
                                                     (GParamFlags) (         \
Packit bc1512
                                                     G_PARAM_READWRITE |     \
Packit bc1512
                                                     G_PARAM_CONSTRUCT |     \
Packit bc1512
                                                     GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_double(name, nick, min, max, def, blurb)                  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_double (#name, nick, blurb,  \
Packit bc1512
                                                        min, max, def,       \
Packit bc1512
                                                        (GParamFlags) (      \
Packit bc1512
                                                        G_PARAM_READWRITE |  \
Packit bc1512
                                                        G_PARAM_CONSTRUCT |  \
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_double_ui(name, nick, min, max, def, ui_min, ui_max, ui_gamma, blurb)                  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_double (#name, nick, blurb,  \
Packit bc1512
                                                           min, max, def, ui_min, ui_max, ui_gamma, \
Packit bc1512
                                                           (GParamFlags) (      \
Packit bc1512
                                                           G_PARAM_READWRITE |  \
Packit bc1512
                                                           G_PARAM_CONSTRUCT |  \
Packit bc1512
                                                           GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_boolean(name, nick, def, blurb)                           \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_boolean (#name, nick, blurb, \
Packit bc1512
                                                         def,                \
Packit bc1512
                                                         (GParamFlags) (     \
Packit bc1512
                                                         G_PARAM_READWRITE | \
Packit bc1512
                                                         G_PARAM_CONSTRUCT | \
Packit bc1512
                                                         GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_string(name, nick, def, blurb)                            \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_string (#name, nick, blurb,  \
Packit bc1512
                                                        def,                 \
Packit bc1512
                                                        (GParamFlags) (      \
Packit bc1512
                                                        G_PARAM_READWRITE |  \
Packit bc1512
                                                        G_PARAM_CONSTRUCT |  \
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_enum(name, nick, enum, type, def, blurb)                  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_enum (#name, nick, blurb,    \
Packit bc1512
                                                      type,                  \
Packit bc1512
                                                      def,                   \
Packit bc1512
                                                      (GParamFlags) (        \
Packit bc1512
                                                      G_PARAM_READWRITE |    \
Packit bc1512
                                                      G_PARAM_CONSTRUCT |    \
Packit bc1512
                                                      GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_file_path(name, nick, def, blurb)                              \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_file_path (#name, nick, blurb, \
Packit bc1512
                                                         FALSE, FALSE,       \
Packit bc1512
                                                         def,                \
Packit bc1512
                                                         (GParamFlags) (     \
Packit bc1512
                                                         G_PARAM_READWRITE | \
Packit bc1512
                                                         G_PARAM_CONSTRUCT | \
Packit bc1512
                                                         GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_multiline(name, nick, def, blurb)                         \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_multiline (#name, nick, blurb, \
Packit bc1512
                                                         def,                \
Packit bc1512
                                                         (GParamFlags) (     \
Packit bc1512
                                                         G_PARAM_READWRITE | \
Packit bc1512
                                                         G_PARAM_CONSTRUCT | \
Packit bc1512
                                                         GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_object(name, nick, blurb)                                 \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_object (#name, nick, blurb,  \
Packit bc1512
                                                        G_TYPE_OBJECT,       \
Packit bc1512
                                                        (GParamFlags) (      \
Packit bc1512
                                                        G_PARAM_READWRITE |  \
Packit bc1512
                                                        G_PARAM_CONSTRUCT |  \
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_pointer(name, nick, blurb)                                \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   g_param_spec_pointer (#name, nick, blurb, \
Packit bc1512
                                                        (GParamFlags) (      \
Packit bc1512
                                                        G_PARAM_READWRITE |  \
Packit bc1512
                                                        G_PARAM_CONSTRUCT |  \
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_color(name, nick, def, blurb)                             \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_color_from_string (#name, nick, blurb,\
Packit bc1512
                                                          def,               \
Packit bc1512
                                                          (GParamFlags) (    \
Packit bc1512
                                                          G_PARAM_READWRITE |\
Packit bc1512
                                                          G_PARAM_CONSTRUCT | \
Packit bc1512
                                                          GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_path(name, nick, blurb)                                 \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_path (#name, nick, blurb,\
Packit bc1512
                                                           NULL,             \
Packit bc1512
                                                          (GParamFlags) (    \
Packit bc1512
                                                          G_PARAM_READWRITE |\
Packit bc1512
                                                          G_PARAM_CONSTRUCT |\
Packit bc1512
                                                          GEGL_PARAM_PAD_INPUT)));
Packit bc1512
#define gegl_chant_curve(name, nick, blurb)                                  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,                \
Packit bc1512
                                   gegl_param_spec_curve (#name, nick, blurb,\
Packit bc1512
                                                          gegl_curve_default_curve(),\
Packit bc1512
                                                          (GParamFlags) (    \
Packit bc1512
                                                          G_PARAM_READWRITE |\
Packit bc1512
                                                          G_PARAM_CONSTRUCT |\
Packit bc1512
                                                          GEGL_PARAM_PAD_INPUT)));
Packit bc1512
Packit bc1512
#include GEGL_CHANT_C_FILE
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_int_ui
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_double_ui
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_enum
Packit bc1512
#undef gegl_chant_file_path
Packit bc1512
#undef gegl_chant_multiline
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
#undef gegl_chant_color
Packit bc1512
#undef gegl_chant_curve
Packit bc1512
#undef gegl_chant_path
Packit bc1512
}
Packit bc1512
Packit bc1512
Packit bc1512
static void
Packit bc1512
gegl_chant_init_properties (GeglChant *self)
Packit bc1512
{
Packit bc1512
  self->properties = g_slice_new0 (GeglChantO);
Packit bc1512
}
Packit bc1512
Packit bc1512
G_END_DECLS
Packit bc1512
/****************************************************************************/