Code

more unreffing temporary styles properly
[inkscape.git] / src / style.h
index 1cc4b5a106e595058e8abc1259d397852936cd06..544bde55778251ae3c9bf978c7cbd67ae3b5757a 100644 (file)
@@ -159,14 +159,14 @@ struct SPIPaint {
     unsigned inherit : 1;
     unsigned currentcolor : 1;
     unsigned type : 2;
-    union {
-        SPColor color;
+    struct {
         struct {
             SPPaintServer *server;
             gchar *uri;
         } paint;
+        SPColor color;
+        SVGICCColor *iccColor;
     } value;
-    SVGICCColor *iccColor;
 };
 
 /// Filter type internal to SPStyle
@@ -336,6 +336,12 @@ struct SPStyle {
     /** Filter effect */
     SPIFilter filter;
 
+    SPIEnum filter_blend_mode;
+
+   /** normally not used, but duplicates the Gaussian blur deviation (if any) from the attached
+        filter when the style is used for querying */
+    SPILength filter_gaussianBlur_deviation;
+
     /** enable-background, used for defining where filter effects get
      * their background image */
     SPIEnum enable_background;
@@ -345,6 +351,7 @@ struct SPStyle {
     /// style has hreffed its fill/stroke paintservers, needs to release.
     bool fill_hreffed; 
     bool stroke_hreffed; 
+    bool filter_hreffed; 
 
     sigc::connection release_connection;
 
@@ -353,6 +360,9 @@ struct SPStyle {
 
     sigc::connection stroke_release_connection;
     sigc::connection stroke_modified_connection;
+
+    sigc::connection filter_release_connection;
+    sigc::connection filter_modified_connection;
 };
 
 SPStyle *sp_style_new();
@@ -531,6 +541,11 @@ SPCSSAttr *sp_css_attr_scale(SPCSSAttr *css, double ex);
 
 void sp_style_unset_property_attrs(SPObject *o);
 
+void sp_style_set_property_url (SPObject *item, gchar const *property, SPObject *linked, bool recursive);
+
+gchar *attribute_unquote(gchar const *val);
+gchar *css2_escape_quote(gchar const *val);
+
 #endif