[lasem] svg_morphology: operator attribute implementation
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [lasem] svg_morphology: operator attribute implementation
- Date: Sat, 1 Aug 2015 21:38:18 +0000 (UTC)
commit f4ca8fe1c06336ab34f887e73623cc7070c38ecd
Author: Emmanuel Pacaud <emmanuel gnome org>
Date: Sat Aug 1 16:56:32 2015 +0200
svg_morphology: operator attribute implementation
src/lsmsvgattributes.h | 5 +++++
src/lsmsvgenums.c | 20 ++++++++++++++++++++
src/lsmsvgenums.h | 9 +++++++++
src/lsmsvgtraits.c | 23 +++++++++++++++++++++++
4 files changed, 57 insertions(+), 0 deletions(-)
---
diff --git a/src/lsmsvgattributes.h b/src/lsmsvgattributes.h
index a9c2cfb..5059377 100644
--- a/src/lsmsvgattributes.h
+++ b/src/lsmsvgattributes.h
@@ -123,6 +123,11 @@ typedef struct {
LsmSvgAngle value;
} LsmSvgAngleAttribute;
+typedef struct {
+ LsmAttribute base;
+ LsmSvgMorphologyOperator value;
+} LsmSvgMorphologyOperatorAttribute;
+
G_END_DECLS
#endif
diff --git a/src/lsmsvgenums.c b/src/lsmsvgenums.c
index 8844383..4920d70 100644
--- a/src/lsmsvgenums.c
+++ b/src/lsmsvgenums.c
@@ -565,3 +565,23 @@ lsm_svg_color_filter_type_from_string (const char *string)
G_N_ELEMENTS (lsm_svg_color_filter_type_strings));
}
+static const char *lsm_svg_morphology_operator_strings[] = {
+ "erode",
+ "dilate"
+};
+
+const char *
+lsm_svg_morphology_operator_to_string (LsmSvgMorphologyOperator morphology_operator)
+{
+ if (morphology_operator < 0 || morphology_operator > LSM_SVG_MORPHOLOGY_OPERATOR_DILATE)
+ return NULL;
+
+ return lsm_svg_morphology_operator_strings[morphology_operator];
+}
+
+LsmSvgMorphologyOperator
+lsm_svg_morphology_operator_from_string (const char *string)
+{
+ return lsm_enum_value_from_string (string, lsm_svg_morphology_operator_strings,
+ G_N_ELEMENTS (lsm_svg_morphology_operator_strings));
+}
diff --git a/src/lsmsvgenums.h b/src/lsmsvgenums.h
index 34c2248..19471b4 100644
--- a/src/lsmsvgenums.h
+++ b/src/lsmsvgenums.h
@@ -363,6 +363,15 @@ typedef enum {
const char * lsm_svg_color_filter_type_to_string (LsmSvgColorFilterType type);
LsmSvgColorFilterType lsm_svg_color_filter_type_from_string (const char *string);
+typedef enum {
+ LSM_SVG_MORPHOLOGY_OPERATOR_ERROR = -1,
+ LSM_SVG_MORPHOLOGY_OPERATOR_ERODE,
+ LSM_SVG_MORPHOLOGY_OPERATOR_DILATE
+} LsmSvgMorphologyOperator;
+
+const char * lsm_svg_morphology_operator_to_string (LsmSvgMorphologyOperator
morpholoy_operator);
+LsmSvgMorphologyOperator lsm_svg_morphology_operator_from_string (const char *string);
+
G_END_DECLS
#endif
diff --git a/src/lsmsvgtraits.c b/src/lsmsvgtraits.c
index 30e6b08..61a7616 100644
--- a/src/lsmsvgtraits.c
+++ b/src/lsmsvgtraits.c
@@ -1319,3 +1319,26 @@ const LsmTraitClass lsm_svg_writing_mode_trait_class = {
.to_string = lsm_svg_writing_mode_trait_to_string
};
+static gboolean
+lsm_svg_morphology_operator_trait_from_string (LsmTrait *abstract_trait, char *string)
+{
+ LsmSvgMorphologyOperator *trait = (LsmSvgMorphologyOperator *) abstract_trait;
+
+ *trait = lsm_svg_morphology_operator_from_string (string);
+
+ return *trait >= 0;
+}
+
+static char *
+lsm_svg_morphology_operator_trait_to_string (LsmTrait *abstract_trait)
+{
+ LsmSvgMorphologyOperator *trait = (LsmSvgMorphologyOperator *) abstract_trait;
+
+ return g_strdup (lsm_svg_morphology_operator_to_string (*trait));
+}
+
+const LsmTraitClass lsm_svg_morphology_operator_trait_class = {
+ .size = sizeof (LsmSvgMorphologyOperator),
+ .from_string = lsm_svg_morphology_operator_trait_from_string,
+ .to_string = lsm_svg_morphology_operator_trait_to_string
+};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]