[gimp] app: Add type for dynamics output
- From: Alexia Death <alexiade src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: Add type for dynamics output
- Date: Sun, 21 Feb 2010 23:09:24 +0000 (UTC)
commit 468b30b58557e7671cd917c3cebb8aeddc4e6dd8
Author: Alexia Death <alexiadeath gmail com>
Date: Mon Feb 22 00:41:55 2010 +0200
app: Add type for dynamics output
app/core/core-enums.c | 43 ++++++++++++++++++++
app/core/core-enums.h | 17 ++++++++
app/core/gimpdynamics.c | 88 +++++++++++++++++++++++++++++++++++------
app/core/gimpdynamics.h | 3 +
app/core/gimpdynamicsoutput.c | 18 ++++++++-
app/core/gimpdynamicsoutput.h | 5 ++-
6 files changed, 159 insertions(+), 15 deletions(-)
---
diff --git a/app/core/core-enums.c b/app/core/core-enums.c
index c87886c..69440c4 100644
--- a/app/core/core-enums.c
+++ b/app/core/core-enums.c
@@ -1303,6 +1303,49 @@ gimp_color_profile_policy_get_type (void)
return type;
}
+GType
+gimp_dynamics_output_type_get_type (void)
+{
+ static const GEnumValue values[] =
+ {
+ { GIMP_DYNAMICS_OUTPUT_OPACITY, "GIMP_DYNAMICS_OUTPUT_OPACITY", "opacity" },
+ { GIMP_DYNAMICS_OUTPUT_HARDNESS, "GIMP_DYNAMICS_OUTPUT_HARDNESS", "hardness" },
+ { GIMP_DYNAMICS_OUTPUT_RATE, "GIMP_DYNAMICS_OUTPUT_RATE", "rate" },
+ { GIMP_DYNAMICS_OUTPUT_SIZE, "GIMP_DYNAMICS_OUTPUT_SIZE", "size" },
+ { GIMP_DYNAMICS_OUTPUT_ASPECT_RATIO, "GIMP_DYNAMICS_OUTPUT_ASPECT_RATIO", "aspect-ratio" },
+ { GIMP_DYNAMICS_OUTPUT_COLOR, "GIMP_DYNAMICS_OUTPUT_COLOR", "color" },
+ { GIMP_DYNAMICS_OUTPUT_ANGLE, "GIMP_DYNAMICS_OUTPUT_ANGLE", "angle" },
+ { GIMP_DYNAMICS_OUTPUT_JITTER, "GIMP_DYNAMICS_OUTPUT_JITTER", "jitter" },
+ { GIMP_DYNAMICS_OUTPUT_SPACING, "GIMP_DYNAMICS_OUTPUT_SPACING", "spacing" },
+ { 0, NULL, NULL }
+ };
+
+ static const GimpEnumDesc descs[] =
+ {
+ { GIMP_DYNAMICS_OUTPUT_OPACITY, NC_("dynamics-output-type", "Opacity"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_HARDNESS, NC_("dynamics-output-type", "Hardness"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_RATE, NC_("dynamics-output-type", "Rate"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_SIZE, NC_("dynamics-output-type", "Size"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_ASPECT_RATIO, NC_("dynamics-output-type", "Aspect ratio"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_COLOR, NC_("dynamics-output-type", "Color"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_ANGLE, NC_("dynamics-output-type", "Angle"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_JITTER, NC_("dynamics-output-type", "Jitter"), NULL },
+ { GIMP_DYNAMICS_OUTPUT_SPACING, NC_("dynamics-output-type", "Spacing"), NULL },
+ { 0, NULL, NULL }
+ };
+
+ static GType type = 0;
+
+ if (G_UNLIKELY (! type))
+ {
+ type = g_enum_register_static ("GimpDynamicsOutputType", values);
+ gimp_type_set_translation_context (type, "dynamics-output-type");
+ gimp_enum_set_value_descriptions (type, descs);
+ }
+
+ return type;
+}
+
/* Generated data ends here */
diff --git a/app/core/core-enums.h b/app/core/core-enums.h
index 1d34bdf..868f8a0 100644
--- a/app/core/core-enums.h
+++ b/app/core/core-enums.h
@@ -583,6 +583,23 @@ typedef enum /*< pdb-skip >*/
GIMP_COLOR_PROFILE_POLICY_CONVERT /*< desc="Convert to RGB workspace" >*/
} GimpColorProfilePolicy;
+#define GIMP_TYPE_DYNAMICS_OUTPUT_TYPE (gimp_dynamics_output_type_get_type ())
+
+GType gimp_dynamics_output_type_get_type (void) G_GNUC_CONST;
+
+typedef enum /*< pdb-skip >*/
+{
+ GIMP_DYNAMICS_OUTPUT_OPACITY, /*< desc="Opacity" >*/
+ GIMP_DYNAMICS_OUTPUT_HARDNESS, /*< desc="Hardness" >*/
+ GIMP_DYNAMICS_OUTPUT_RATE, /*< desc="Rate" >*/
+ GIMP_DYNAMICS_OUTPUT_SIZE, /*< desc="Size" >*/
+ GIMP_DYNAMICS_OUTPUT_ASPECT_RATIO, /*< desc="Aspect ratio" >*/
+ GIMP_DYNAMICS_OUTPUT_COLOR, /*< desc="Color" >*/
+ GIMP_DYNAMICS_OUTPUT_ANGLE, /*< desc="Angle" >*/
+ GIMP_DYNAMICS_OUTPUT_JITTER, /*< desc="Jitter" >*/
+ GIMP_DYNAMICS_OUTPUT_SPACING, /*< desc="Spacing" >*/
+} GimpDynamicsOutputType;
+
/*
* non-registered enums; register them if needed
diff --git a/app/core/gimpdynamics.c b/app/core/gimpdynamics.c
index 204d19d..2531e1a 100644
--- a/app/core/gimpdynamics.c
+++ b/app/core/gimpdynamics.c
@@ -70,8 +70,9 @@ static void
static const gchar * gimp_dynamics_get_extension (GimpData *data);
static GimpDynamicsOutput *
- gimp_dynamics_create_output (GimpDynamics *dynamics,
- const gchar *name);
+ gimp_dynamics_create_output (GimpDynamics *dynamics,
+ const gchar *name,
+ GimpDynamicsOutputType type);
static void gimp_dynamics_output_notify (GObject *output,
const GParamSpec *pspec,
GimpDynamics *dynamics);
@@ -152,23 +153,32 @@ static void
gimp_dynamics_init (GimpDynamics *dynamics)
{
dynamics->opacity_output = gimp_dynamics_create_output (dynamics,
- "opacity-output");
+ "opacity-output",
+ GIMP_DYNAMICS_OUTPUT_OPACITY);
dynamics->hardness_output = gimp_dynamics_create_output (dynamics,
- "hardness-output");
+ "hardness-output",
+ GIMP_DYNAMICS_OUTPUT_HARDNESS);
dynamics->rate_output = gimp_dynamics_create_output (dynamics,
- "rate-output");
+ "rate-output",
+ GIMP_DYNAMICS_OUTPUT_RATE);
dynamics->size_output = gimp_dynamics_create_output (dynamics,
- "size-output");
+ "size-output",
+ GIMP_DYNAMICS_OUTPUT_SIZE);
dynamics->aspect_ratio_output = gimp_dynamics_create_output (dynamics,
- "aspect-ratio-output");
+ "aspect-ratio-output",
+ GIMP_DYNAMICS_OUTPUT_ASPECT_RATIO);
dynamics->color_output = gimp_dynamics_create_output (dynamics,
- "color-output");
+ "color-output",
+ GIMP_DYNAMICS_OUTPUT_COLOR);
dynamics->angle_output = gimp_dynamics_create_output (dynamics,
- "angle-output");
+ "angle-output",
+ GIMP_DYNAMICS_OUTPUT_ANGLE);
dynamics->jitter_output = gimp_dynamics_create_output (dynamics,
- "jitter-output");
+ "jitter-output",
+ GIMP_DYNAMICS_OUTPUT_JITTER);
dynamics->spacing_output = gimp_dynamics_create_output (dynamics,
- "spacing-output");
+ "spacing-output",
+ GIMP_DYNAMICS_OUTPUT_SPACING);
}
static void
@@ -374,14 +384,64 @@ gimp_dynamics_get_standard (void)
return standard_dynamics;
}
+GimpDynamicsOutput *
+gimp_dynamics_get_output (GimpDynamics *dynamics,
+ GimpDynamicsOutputType type_id)
+{
+
+ switch (type_id)
+ {
+ case GIMP_DYNAMICS_OUTPUT_OPACITY:
+ return dynamics->opacity_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_HARDNESS:
+ return dynamics->hardness_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_RATE:
+ return dynamics->rate_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_SIZE:
+ return dynamics->size_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_ASPECT_RATIO:
+ return dynamics->aspect_ratio_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_COLOR:
+ return dynamics->color_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_ANGLE:
+ return dynamics->angle_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_JITTER:
+ return dynamics->jitter_output;
+ break;
+
+ case GIMP_DYNAMICS_OUTPUT_SPACING:
+ return dynamics->spacing_output;
+ break;
+
+ default:
+ return NULL;
+ break;
+ }
+}
+
/* private functions */
static GimpDynamicsOutput *
gimp_dynamics_create_output (GimpDynamics *dynamics,
- const gchar *name)
+ const gchar *name,
+ GimpDynamicsOutputType type)
{
- GimpDynamicsOutput *output = gimp_dynamics_output_new (name);
+ GimpDynamicsOutput *output = gimp_dynamics_output_new (name, type);
g_signal_connect (output, "notify",
G_CALLBACK (gimp_dynamics_output_notify),
@@ -397,3 +457,5 @@ gimp_dynamics_output_notify (GObject *output,
{
g_object_notify (G_OBJECT (dynamics), gimp_object_get_name (output));
}
+
+
diff --git a/app/core/gimpdynamics.h b/app/core/gimpdynamics.h
index 695244a..acdef54 100644
--- a/app/core/gimpdynamics.h
+++ b/app/core/gimpdynamics.h
@@ -59,4 +59,7 @@ GimpData * gimp_dynamics_new (const gchar *name);
GimpData * gimp_dynamics_get_standard (void);
+GimpDynamicsOutput * gimp_dynamics_get_output (GimpDynamics *dynamics,
+ GimpDynamicsOutputType type_id);
+
#endif /* __GIMP_DYNAMICS_H__ */
diff --git a/app/core/gimpdynamicsoutput.c b/app/core/gimpdynamicsoutput.c
index 66d2440..f9132cd 100644
--- a/app/core/gimpdynamicsoutput.c
+++ b/app/core/gimpdynamicsoutput.c
@@ -45,6 +45,7 @@ enum
{
PROP_0,
+ PROP_TYPE,
PROP_USE_PRESSURE,
PROP_USE_VELOCITY,
PROP_USE_DIRECTION,
@@ -111,6 +112,14 @@ gimp_dynamics_output_class_init (GimpDynamicsOutputClass *klass)
"use-fade", NULL,
DEFAULT_USE_FADE,
GIMP_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_property (object_class, PROP_TYPE,
+ g_param_spec_enum ("type", NULL,
+ _("Output type"),
+ GIMP_TYPE_DYNAMICS_OUTPUT_TYPE,
+ GIMP_DYNAMICS_OUTPUT_OPACITY,
+ GIMP_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
}
static void
@@ -149,6 +158,9 @@ gimp_dynamics_output_set_property (GObject *object,
switch (property_id)
{
+ case PROP_TYPE:
+ output->type = g_value_get_enum (value);
+ break;
case PROP_USE_PRESSURE:
output->use_pressure = g_value_get_boolean (value);
break;
@@ -189,6 +201,9 @@ gimp_dynamics_output_get_property (GObject *object,
switch (property_id)
{
+ case PROP_TYPE:
+ g_value_set_enum (value, output->type);
+ break;
case PROP_USE_PRESSURE:
g_value_set_boolean (value, output->use_pressure);
break;
@@ -223,12 +238,13 @@ gimp_dynamics_output_get_property (GObject *object,
/* public functions */
GimpDynamicsOutput *
-gimp_dynamics_output_new (const gchar *name)
+gimp_dynamics_output_new (const gchar *name, GimpDynamicsOutputType type)
{
g_return_val_if_fail (name != NULL, NULL);
return g_object_new (GIMP_TYPE_DYNAMICS_OUTPUT,
"name", name,
+ "type", type,
NULL);
}
diff --git a/app/core/gimpdynamicsoutput.h b/app/core/gimpdynamicsoutput.h
index 3116fd1..c703a0d 100644
--- a/app/core/gimpdynamicsoutput.h
+++ b/app/core/gimpdynamicsoutput.h
@@ -36,6 +36,8 @@ struct _GimpDynamicsOutput
{
GimpObject parent_instance;
+ GimpDynamicsOutputType type;
+
gboolean use_pressure;
gboolean use_velocity;
gboolean use_direction;
@@ -59,7 +61,8 @@ struct _GimpDynamicsOutputClass
GType gimp_dynamics_output_get_type (void) G_GNUC_CONST;
-GimpDynamicsOutput * gimp_dynamics_output_new (const gchar *name);
+GimpDynamicsOutput * gimp_dynamics_output_new (const gchar *name,
+ GimpDynamicsOutputType type);
gboolean gimp_dynamics_output_is_enabled (GimpDynamicsOutput *output);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]