Code

GSoC C++-ificiation merge and cleanup.
[inkscape.git] / src / sp-pattern.h
index 42cac7a7e1b449980f0b6efc94109495cadef52b..f50504a76fac0f69972d16bfad5b81a2665f6b39 100644 (file)
@@ -1,11 +1,12 @@
-#ifndef __SP_PATTERN_H__
-#define __SP_PATTERN_H__
+#ifndef SEEN_SP_PATTERN_H
+#define SEEN_SP_PATTERN_H
 
 /*
  * SVG <pattern> implementation
  *
  * Author:
  *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   Abhishek Sharma
  *
  * Copyright (C) 2002 Lauris Kaplinski
  *
@@ -15,7 +16,7 @@
 #include <gtk/gtktypeutils.h>
 
 #include "forward.h"
-
+#include "sp-item.h"
 #define SP_TYPE_PATTERN (sp_pattern_get_type ())
 #define SP_PATTERN(o) (GTK_CHECK_CAST ((o), SP_TYPE_PATTERN, SPPattern))
 #define SP_PATTERN_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_PATTERN, SPPatternClass))
@@ -32,67 +33,82 @@ class SPPatternClass;
 #include "sp-paint-server.h"
 #include "uri-references.h"
 
+#include <sigc++/connection.h>
+
 class SPPatternReference : public Inkscape::URIReference {
 public:
-        SPPatternReference (SPObject *obj) : URIReference(obj) {}
-        SPPattern *getObject() const {
-                return (SPPattern *)URIReference::getObject();
-        }
+    SPPatternReference (SPObject *obj) : URIReference(obj) {}
+    SPPattern *getObject() const {
+        return (SPPattern *)URIReference::getObject();
+    }
+
 protected:
-        virtual bool _acceptObject(SPObject *obj) const {
-                return SP_IS_PATTERN (obj);
-        }
+    virtual bool _acceptObject(SPObject *obj) const {
+        return SP_IS_PATTERN (obj);
+    }
 };
 
 enum {
-       SP_PATTERN_UNITS_USERSPACEONUSE,
-       SP_PATTERN_UNITS_OBJECTBOUNDINGBOX
+    SP_PATTERN_UNITS_USERSPACEONUSE,
+    SP_PATTERN_UNITS_OBJECTBOUNDINGBOX
 };
 
 struct SPPattern : public SPPaintServer {
-       /* Reference (href) */
-       gchar *href;
-       SPPatternReference *ref;
-
-       /* patternUnits and patternContentUnits attribute */
-       guint patternUnits : 1;
-       guint patternUnits_set : 1;
-       guint patternContentUnits : 1;
-       guint patternContentUnits_set : 1;
-       /* patternTransform attribute */
-       NR::Matrix patternTransform;
-       guint patternTransform_set : 1;
-       /* Tile rectangle */
-       SVGLength x;
-       SVGLength y;
-       SVGLength width;
-       SVGLength height;
-       /* VieBox */
-       NRRect viewBox;
-       guint viewBox_set : 1;
+    /* Reference (href) */
+    gchar *href;
+    SPPatternReference *ref;
+
+    /* patternUnits and patternContentUnits attribute */
+    guint patternUnits : 1;
+    guint patternUnits_set : 1;
+    guint patternContentUnits : 1;
+    guint patternContentUnits_set : 1;
+    /* patternTransform attribute */
+    Geom::Matrix patternTransform;
+    guint patternTransform_set : 1;
+    /* Tile rectangle */
+    SVGLength x;
+    SVGLength y;
+    SVGLength width;
+    SVGLength height;
+    /* VieBox */
+    NRRect viewBox;
+    guint viewBox_set : 1;
+
+    sigc::connection modified_connection;
 };
 
 struct SPPatternClass {
-       SPPaintServerClass parent_class;
+    SPPaintServerClass parent_class;
 };
 
 guint pattern_users (SPPattern *pattern);
 SPPattern *pattern_chain (SPPattern *pattern);
 SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property);
-void sp_pattern_transform_multiply (SPPattern *pattern, NR::Matrix postmul, bool set);
+void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Matrix postmul, bool set);
 
-const gchar *pattern_tile (GSList *reprs, NR::Rect bounds, SPDocument *document, NR::Matrix transform, NR::Matrix move);
+const gchar *pattern_tile (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Matrix transform, Geom::Matrix move);
 
 SPPattern *pattern_getroot (SPPattern *pat);
 
 guint pattern_patternUnits (SPPattern *pat);
 guint pattern_patternContentUnits (SPPattern *pat);
-NR::Matrix const &pattern_patternTransform(SPPattern const *pat);
+Geom::Matrix const &pattern_patternTransform(SPPattern const *pat);
 gdouble pattern_x (SPPattern *pat);
 gdouble pattern_y (SPPattern *pat);
 gdouble pattern_width (SPPattern *pat);
 gdouble pattern_height (SPPattern *pat);
 NRRect *pattern_viewBox (SPPattern *pat);
 
+#endif // SEEN_SP_PATTERN_H
 
-#endif
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :