Code

Avoid crash by uninitialized perspectives.
[inkscape.git] / src / sp-gradient.h
index 9c152598b3a033063dbac03591e7def38f0ee866..abd44538e71204c6f3c7ce389c75a21777088f0b 100644 (file)
@@ -6,7 +6,9 @@
  *
  * Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
  *
+ * Copyright (C) 2007 Johan Engelen
  * Copyright (C) 1999-2002 Lauris Kaplinski
  * Copyright (C) 2000-2001 Ximian, Inc.
  *
@@ -20,6 +22,8 @@
 #include "sp-gradient-units.h"
 #include "sp-gradient-vector.h"
 
+#include <sigc++/connection.h>
+
 struct SPGradientReference;
 
 typedef enum {
@@ -35,13 +39,19 @@ typedef enum {
 } SPGradientState;
 
 typedef enum {
-    POINT_LG_P1,
-    POINT_LG_P2,
+    POINT_LG_BEGIN =0, //start enum at 0 (for indexing into gr_knot_shapes array for example)
+    POINT_LG_END,
+    POINT_LG_MID,
     POINT_RG_CENTER,
     POINT_RG_R1,
     POINT_RG_R2,
-    POINT_RG_FOCUS
-} GrPoint;
+    POINT_RG_FOCUS,
+    POINT_RG_MID1,
+    POINT_RG_MID2,
+    // insert new point types here.
+    
+    POINT_G_INVALID
+} GrPointType;
 
 /**
  * Gradient
@@ -50,25 +60,35 @@ typedef enum {
  * \todo fixme: Implement more here (Lauris)
  */
 struct SPGradient : public SPPaintServer {
+
        /** Reference (href) */
        SPGradientReference *ref;
+
        /** State in Inkscape gradient system */
        guint state : 2;
+
        /** gradientUnits attribute */
        SPGradientUnits units;
        guint units_set : 1;
+
        /** gradientTransform attribute */
-       NR::Matrix gradientTransform;
+       Geom::Matrix gradientTransform;
        guint gradientTransform_set : 1;
+
        /** spreadMethod attribute */
        SPGradientSpread spread;
        guint spread_set : 1;
+
        /** Gradient stops */
        guint has_stops : 1;
+
        /** Composed vector */
        SPGradientVector vector;
+
        /** Rendered color array (4 * 1024 bytes) */
        guchar *color;
+
+        sigc::connection modified_connection;
 };
 
 /**