[lasem/properties] [SVG] Property list WIP.
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [lasem/properties] [SVG] Property list WIP.
- Date: Fri, 7 Aug 2009 09:29:30 +0000 (UTC)
commit 94c0da85f52044a7717176b9fbab8351c3017834
Author: Emmanuel Pacaud <emmanuel pacaud lapp in2p3 fr>
Date: Fri Aug 7 10:21:31 2009 +0200
[SVG] Property list WIP.
src/lsmproperties.c | 3 ---
src/lsmsvgclippathelement.c | 43 ++++++++-----------------------------------
src/lsmsvgelement.c | 6 ++++--
src/lsmsvgmaskelement.c | 19 +++++++++++++------
src/lsmsvgpatternelement.c | 20 ++++++++++++++------
5 files changed, 39 insertions(+), 52 deletions(-)
---
diff --git a/src/lsmproperties.c b/src/lsmproperties.c
index 1a1406b..4f8dd35 100644
--- a/src/lsmproperties.c
+++ b/src/lsmproperties.c
@@ -317,9 +317,6 @@ void lsm_property_manager_init_default_style (LsmPropertyManager *property_manag
property_infos = &property_manager->property_infos[i];
trait_class = property_infos->trait_class;
- lsm_debug ("Init default property '%s' with '%s'",
- property_infos->name, property_infos->trait_default);
-
property = g_slice_alloc0 (PROPERTY_SIZE (trait_class));
property->id = property_infos->id;
property->value = g_strdup (property_infos->trait_default);
diff --git a/src/lsmsvgclippathelement.c b/src/lsmsvgclippathelement.c
index bb8079c..9409733 100644
--- a/src/lsmsvgclippathelement.c
+++ b/src/lsmsvgclippathelement.c
@@ -36,34 +36,22 @@ _clip_path_element_get_node_name (LsmDomNode *node)
/* LsmSvgElement implementation */
-#if 0
-static void
-_clip_path_element_update (LsmSvgElement *self, LsmSvgStyle *parent_style)
-{
- LsmSvgClipPathElement *pattern = LSM_SVG_CLIP_PATH_ELEMENT (self);
- LsmSvgPatternUnits units;
-
- units = LSM_SVG_PATTERN_UNITS_USER_SPACE_ON_USE;
- lsm_svg_pattern_units_attribute_parse (&pattern->units, &units);
-
- LSM_SVG_ELEMENT_CLASS (parent_class)->update (self, parent_style);
-}
-#endif
-
-/*static void*/
-/*_clip_path_element_render_clip (LsmSvgElement *self, LsmSvgView *view)*/
static void
lsm_svg_clip_path_element_render (LsmSvgElement *self, LsmSvgView *view)
{
LsmSvgClipPathElement *clip = LSM_SVG_CLIP_PATH_ELEMENT (self);
gboolean is_object_bounding_box;
+ LsmSvgStyle *style;
if (!clip->enable_rendering) {
lsm_debug ("[LsmSvgClipPathElement::render] Direct rendering not allowed");
return;
+ } else {
+ clip->enable_rendering = FALSE;
}
- clip->enable_rendering = FALSE;
+ style = lsm_svg_style_new_inherited (NULL, &self->property_bag);
+ lsm_svg_view_push_style (view, style);
is_object_bounding_box = (clip->units.value == LSM_SVG_PATTERN_UNITS_OBJECT_BOUNDING_BOX);
@@ -84,6 +72,9 @@ lsm_svg_clip_path_element_render (LsmSvgElement *self, LsmSvgView *view)
lsm_svg_view_pop_matrix (view);
lsm_svg_view_pop_viewbox (view);
}
+
+ lsm_svg_view_pop_style (view);
+ lsm_svg_style_free (style);
}
static void
@@ -105,16 +96,6 @@ lsm_svg_clip_path_element_init (LsmSvgClipPathElement *self)
{
self->enable_rendering = FALSE;
self->units.value = units_default;
-
- /* Hack - Force the creation of the attribute bags,
- making sure the properties will be inherited from the
- pattern element ancestor, not the referencing one. */
-
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "fill", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stroke", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "transform", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "font-family", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stop-color", NULL);
}
/* LsmSvgClipPathElement class */
@@ -138,9 +119,6 @@ lsm_svg_clip_path_element_class_init (LsmSvgClipPathElementClass *klass)
d_node_class->get_node_name = _clip_path_element_get_node_name;
-/* s_element_class->update = _clip_path_element_update;*/
-/* s_element_class->render_clip = _clip_path_element_render_clip;*/
-/* s_element_class->render = NULL;*/
s_element_class->render = lsm_svg_clip_path_element_render;
s_element_class->enable_rendering = lsm_svg_clip_path_element_enable_rendering;
@@ -149,11 +127,6 @@ lsm_svg_clip_path_element_class_init (LsmSvgClipPathElementClass *klass)
lsm_attribute_manager_add_attributes (s_element_class->attribute_manager,
G_N_ELEMENTS (lsm_svg_clip_path_element_attribute_infos),
lsm_svg_clip_path_element_attribute_infos);
-
-/* s_element_class->attributes = lsm_dom_attribute_map_duplicate (s_element_class->attributes);*/
-
-/* lsm_dom_attribute_map_add_attribute (s_element_class->attributes, "clipPathUnits",*/
-/* offsetof (LsmSvgClipPathElement, units));*/
}
G_DEFINE_TYPE (LsmSvgClipPathElement, lsm_svg_clip_path_element, LSM_TYPE_SVG_ELEMENT)
diff --git a/src/lsmsvgelement.c b/src/lsmsvgelement.c
index 2a11892..a12fa49 100644
--- a/src/lsmsvgelement.c
+++ b/src/lsmsvgelement.c
@@ -197,8 +197,8 @@ lsm_svg_element_render (LsmSvgElement *element, LsmSvgView *view)
if (!lsm_svg_matrix_is_identity (&element->transform.matrix))
lsm_svg_view_push_matrix (view, &element->transform.matrix);
- lsm_svg_view_push_style (view, style);
lsm_svg_view_push_element (view, element);
+ lsm_svg_view_push_style (view, style);
element_class = LSM_SVG_ELEMENT_GET_CLASS (element);
if (element_class->render != NULL) {
@@ -209,12 +209,14 @@ lsm_svg_element_render (LsmSvgElement *element, LsmSvgView *view)
element_class->render (element, view);
}
- lsm_svg_view_pop_element (view);
lsm_svg_view_pop_style (view);
+ lsm_svg_view_pop_element (view);
/* if (matrix != NULL)*/
if (!lsm_svg_matrix_is_identity (&element->transform.matrix))
lsm_svg_view_pop_matrix (view);
+
+ lsm_svg_style_free (style);
}
static void
diff --git a/src/lsmsvgmaskelement.c b/src/lsmsvgmaskelement.c
index dff2e23..20dfb59 100644
--- a/src/lsmsvgmaskelement.c
+++ b/src/lsmsvgmaskelement.c
@@ -77,13 +77,17 @@ lsm_svg_mask_element_render (LsmSvgElement *self, LsmSvgView *view)
gboolean is_object_bounding_box;
LsmBox viewport;
const LsmBox *mask_extents;
+ LsmSvgStyle *style;
if (!mask->enable_rendering) {
lsm_debug ("[LsmSvgMaskElement::render] Direct rendering not allowed");
return;
+ } else {
+ mask->enable_rendering = FALSE;
}
- mask->enable_rendering = FALSE;
+ style = lsm_svg_style_new_inherited (NULL, &self->property_bag);
+ lsm_svg_view_push_style (view, style);
mask_extents = lsm_svg_view_get_pattern_extents (view);
@@ -147,6 +151,9 @@ lsm_svg_mask_element_render (LsmSvgElement *self, LsmSvgView *view)
lsm_svg_view_pop_matrix (view);
lsm_svg_view_pop_viewbox (view);
}
+
+ lsm_svg_view_pop_style (view);
+ lsm_svg_style_free (style);
}
static void
@@ -183,11 +190,11 @@ lsm_svg_mask_element_init (LsmSvgMaskElement *self)
making sure the properties will be inherited from the
mask element ancestor, not the referencing one. */
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "fill", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stroke", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "transform", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "font-family", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stop-color", NULL);
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "fill", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stroke", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "transform", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "font-family", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stop-color", NULL);*/
}
/* LsmSvgMaskElement class */
diff --git a/src/lsmsvgpatternelement.c b/src/lsmsvgpatternelement.c
index 870ab1c..63c3985 100644
--- a/src/lsmsvgpatternelement.c
+++ b/src/lsmsvgpatternelement.c
@@ -83,13 +83,18 @@ lsm_svg_pattern_element_render (LsmSvgElement *self, LsmSvgView *view)
gboolean is_viewbox_defined;
LsmBox viewport;
const LsmBox *pattern_extents;
+ LsmSvgStyle *style;
if (!pattern->enable_rendering) {
lsm_debug ("[LsmSvgPatternElement::render] Direct rendering not allowed");
return;
+ } else {
+ pattern->enable_rendering = FALSE;
}
- pattern->enable_rendering = FALSE;
+
+ style = lsm_svg_style_new_inherited (NULL, &self->property_bag);
+ lsm_svg_view_push_style (view, style);
pattern_extents = lsm_svg_view_get_pattern_extents (view);
@@ -165,6 +170,9 @@ lsm_svg_pattern_element_render (LsmSvgElement *self, LsmSvgView *view)
lsm_svg_view_pop_matrix (view);
lsm_svg_view_pop_viewbox (view);
}
+
+ lsm_svg_view_pop_style (view);
+ lsm_svg_style_free (style);
}
static void
@@ -209,11 +217,11 @@ lsm_svg_pattern_element_init (LsmSvgPatternElement *self)
making sure the properties will be inherited from the
pattern element ancestor, not the referencing one. */
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "fill", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stroke", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "transform", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "font-family", NULL);
- lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stop-color", NULL);
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "fill", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stroke", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "transform", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "font-family", NULL);*/
+/* lsm_dom_element_set_attribute (LSM_DOM_ELEMENT (self), "stop-color", NULL);*/
}
/* LsmSvgPatternElement class */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]