Code

fix by dvlierop2 for snapping bugs 1579556 and 1579587
[inkscape.git] / src / sp-namedview.h
index f96207794ea7215ebb43afa025af7b0efa9f3d27..619bf02ccb062c95f237f32901938bdadca8995c 100644 (file)
@@ -7,6 +7,7 @@
  * Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *
+ * Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
  * Copyright (C) Lauris Kaplinski 2000-2002
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
 #include "sp-object-group.h"
 #include "libnr/nr-point.h"
 #include "sp-metric.h"
-#include "grid-snapper.h"
-#include "guide-snapper.h"
-#include "object-snapper.h"
-
+#include "snap.h"
 
 enum {
     SP_BORDER_LAYER_BOTTOM,
@@ -35,20 +33,12 @@ enum {
 struct SPNamedView : public SPObjectGroup {
     unsigned int editable : 1;
     unsigned int showgrid : 1;
+    unsigned int gridtype : 1; // 0=normal 1=axonometric
     unsigned int showguides : 1;
     unsigned int showborder : 1;
     unsigned int showpageshadow : 1;
     unsigned int borderlayer : 2;
 
-    int snap_grid_bbox;
-    int snap_grid_point;
-    int snap_guide_bbox;
-    int snap_guide_point;
-    int snap_object_bbox;
-    int snap_object_point;
-    int snap_object_paths;
-    int snap_object_nodes;
-
     double zoom;
     double cx;
     double cy;
@@ -57,14 +47,14 @@ struct SPNamedView : public SPObjectGroup {
     gint window_x;
     gint window_y;
 
-    Inkscape::GridSnapper grid_snapper;
-    Inkscape::GuideSnapper guide_snapper;
-    Inkscape::ObjectSnapper object_snapper;
+    SnapManager snap_manager;
+    //GridManager grid_manager;
 
     SPUnit const *gridunit;
     /* Grid data is in points regardless of unit */
     NR::Point gridorigin;
     gdouble gridspacing[2];
+    gdouble gridangle[2];   // for axonometric grid
     gint gridempspacing;
 
     SPUnit const *doc_units;
@@ -81,6 +71,8 @@ struct SPNamedView : public SPObjectGroup {
     bool has_abs_tolerance;
     
     GQuark default_layer_id;
+    
+    double connector_spacing;
 
     guint32 gridcolor;
     guint32 gridempcolor;
@@ -93,6 +85,7 @@ struct SPNamedView : public SPObjectGroup {
     GSList *guides;
     GSList *views;
     GSList *gridviews;
+    
     gint viewcount;
 
     void show(SPDesktop *desktop);
@@ -102,9 +95,6 @@ struct SPNamedView : public SPObjectGroup {
     guint getViewCount();
     GSList const *getViewList() const;
     SPMetric getDefaultMetric() const;
-
-    typedef std::list<const Inkscape::Snapper *> SnapperList;
-    SnapperList getSnappers() const;
 };
 
 struct SPNamedViewClass {
@@ -117,9 +107,11 @@ SPNamedView *sp_document_namedview(SPDocument *document, gchar const *name);
 
 void sp_namedview_window_from_document(SPDesktop *desktop);
 void sp_namedview_document_from_window(SPDesktop *desktop);
+void sp_namedview_update_layers_from_document (SPDesktop *desktop);
 
 void sp_namedview_toggle_guides(SPDocument *doc, Inkscape::XML::Node *repr);
 void sp_namedview_toggle_grid(SPDocument *doc, Inkscape::XML::Node *repr);
+void sp_namedview_set_gridtype(unsigned int type, SPDocument *doc, Inkscape::XML::Node *repr);
 
 #endif /* !INKSCAPE_SP_NAMEDVIEW_H */