index f15c72e8e31394392abaf2860a001e93163f4310..9657715ea72a874c8b7303952429e590e63eaac9 100644 (file)
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include "nr-arena-group.h"
+#include "display/nr-arena-group.h"
+#include "display/nr-filter.h"
+#include "style.h"
static void nr_arena_group_class_init (NRArenaGroupClass *klass);
static void nr_arena_group_init (NRArenaGroup *group);
group->transparent = FALSE;
group->children = NULL;
group->last = NULL;
+ group->style = NULL;
nr_matrix_set_identity (&group->child_transform);
#ifdef arena_item_tile_cache
@@ -181,6 +184,20 @@ nr_arena_group_update (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int
return beststate;
}
+void nr_arena_group_set_style (NRArenaGroup *group, SPStyle *style)
+{
+ g_return_if_fail(group != NULL);
+ g_return_if_fail(NR_IS_ARENA_GROUP(group));
+
+ if (style) sp_style_ref(style);
+ if (group->style) sp_style_unref(group->style);
+ group->style = style;
+
+ if (style && style->filter.set && style->filter.filter) {
+ group->filter = new NR::Filter();
+ }
+}
+
static unsigned int
nr_arena_group_render (NRArenaItem *item, NRRectL *area, NRPixBlock *pb, unsigned int flags)
{