Code

more unreffing temporary styles properly
[inkscape.git] / src / style.h
index 9a70881de927a462d783b107eaaa720e14fd1bfe..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,12 +351,18 @@ 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;
 
     sigc::connection fill_release_connection;
     sigc::connection fill_modified_connection;
 
     sigc::connection stroke_release_connection;
     sigc::connection stroke_modified_connection;
+
+    sigc::connection filter_release_connection;
+    sigc::connection filter_modified_connection;
 };
 
 SPStyle *sp_style_new();
@@ -529,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