summaryrefslogtreecommitdiffstats
path: root/src/sp-feflood.cpp
diff options
context:
space:
mode:
authorFelipe Corr??a da Silva Sanches <juca@members.fsf.org>2008-01-16 10:35:46 +0000
committerjucablues <jucablues@users.sourceforge.net>2008-01-16 10:35:46 +0000
commit5d82b3de8585b08cda97027067e7e9461ea79e2f (patch)
treeae2456e685ff75e7f16d5fb156a6f64dba68a445 /src/sp-feflood.cpp
parentAdd option in Preferences to keep objects after conversion to guides (diff)
downloadinkscape-5d82b3de8585b08cda97027067e7e9461ea79e2f.tar.gz
inkscape-5d82b3de8585b08cda97027067e7e9461ea79e2f.zip
implementation of Flood Filter Effect renderer
(bzr r4515)
Diffstat (limited to 'src/sp-feflood.cpp')
-rw-r--r--src/sp-feflood.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/sp-feflood.cpp b/src/sp-feflood.cpp
index b3b9ac1d5..685859c63 100644
--- a/src/sp-feflood.cpp
+++ b/src/sp-feflood.cpp
@@ -21,7 +21,8 @@
#include "svg/svg.h"
#include "sp-feflood.h"
#include "xml/repr.h"
-
+#include "helper-fns.h"
+#include "svg/svg-color.h"
/* FeFlood base class */
@@ -92,6 +93,8 @@ sp_feFlood_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *re
}
/*LOAD ATTRIBUTES FROM REPR HERE*/
+ sp_object_read_attr(object, "flood-opacity");
+ sp_object_read_attr(object, "flood-color");
}
/**
@@ -112,9 +115,27 @@ sp_feFlood_set(SPObject *object, unsigned int key, gchar const *value)
{
SPFeFlood *feFlood = SP_FEFLOOD(object);
(void)feFlood;
-
+ gchar const *cend_ptr = NULL;
+ guint32 read_color;
+ double read_num;
+
switch(key) {
/*DEAL WITH SETTING ATTRIBUTES HERE*/
+ case SP_PROP_FLOOD_COLOR:
+ cend_ptr = NULL;
+ read_color = sp_svg_read_color(value, &cend_ptr, 0xffffffff);
+ if (cend_ptr && read_color != feFlood->color){
+ feFlood->color = read_color;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
+ break;
+ case SP_PROP_FLOOD_OPACITY:
+ read_num = helperfns_read_number(value);
+ if (read_num != feFlood->opacity){
+ feFlood->opacity = read_num;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
+ break;
default:
if (((SPObjectClass *) feFlood_parent_class)->set)
((SPObjectClass *) feFlood_parent_class)->set(object, key, value);
@@ -177,6 +198,9 @@ static void sp_feFlood_build_renderer(SPFilterPrimitive *primitive, NR::Filter *
g_assert(nr_flood != NULL);
sp_filter_primitive_renderer_common(primitive, nr_primitive);
+
+ nr_flood->set_opacity(sp_flood->opacity);
+ nr_flood->set_color(sp_flood->color);
}