Code

support for <rect> tag (Bug 657289)
[inkscape.git] / src / sp-namedview.h
index 619bf02ccb062c95f237f32901938bdadca8995c..86b16a5577e2bb63b6e2775340d56a25498a0fca 100644 (file)
@@ -6,6 +6,7 @@
  *
  * Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   Abhishek Sharma
  *
  * Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
  * Copyright (C) Lauris Kaplinski 2000-2002
 
 #include "helper/helper-forward.h"
 #include "sp-object-group.h"
-#include "libnr/nr-point.h"
 #include "sp-metric.h"
 #include "snap.h"
+#include "display/canvas-grid.h"
+#include "document.h"
+
+namespace Inkscape {
+class CanvasGrid;
+}
 
 enum {
     SP_BORDER_LAYER_BOTTOM,
@@ -32,8 +38,6 @@ 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;
@@ -46,36 +50,19 @@ struct SPNamedView : public SPObjectGroup {
     gint window_height;
     gint window_x;
     gint window_y;
+    gint window_maximized;
 
     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;
+    GSList * grids;
+    bool grids_visible;
 
     SPUnit const *doc_units;
-
-    SPUnit const *gridtoleranceunit;
-    gdouble gridtolerance;
-
-    SPUnit const *guidetoleranceunit;
-    gdouble guidetolerance;
-
-    SPUnit const *objecttoleranceunit;
-    gdouble objecttolerance;
-
-    bool has_abs_tolerance;
+    SPUnit const *units;
     
     GQuark default_layer_id;
-    
+
     double connector_spacing;
 
-    guint32 gridcolor;
-    guint32 gridempcolor;
     guint32 guidecolor;
     guint32 guidehicolor;
     guint32 bordercolor;
@@ -84,8 +71,7 @@ struct SPNamedView : public SPObjectGroup {
 
     GSList *guides;
     GSList *views;
-    GSList *gridviews;
-    
+
     gint viewcount;
 
     void show(SPDesktop *desktop);
@@ -95,6 +81,17 @@ struct SPNamedView : public SPObjectGroup {
     guint getViewCount();
     GSList const *getViewList() const;
     SPMetric getDefaultMetric() const;
+
+    void translateGuides(Geom::Translate const &translation);
+    void scrollAllDesktops(double dx, double dy, bool is_scrolling);
+    void writeNewGrid(SPDocument *document,int gridtype);
+    bool getSnapGlobal() const;
+    void setSnapGlobal(bool v);
+    void setGuides(bool v);
+
+private:
+    double getMarginLength(gchar const * const key,SPUnit const * const margin_units,SPUnit const * const return_units,double const width,double const height,bool const use_width);
+    friend class SPDocument;
 };
 
 struct SPNamedViewClass {
@@ -110,8 +107,8 @@ 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);
+void sp_namedview_show_grids(SPNamedView *namedview, bool show, bool dirty_document);
+Inkscape::CanvasGrid * sp_namedview_get_first_enabled_grid(SPNamedView *namedview);
 
 #endif /* !INKSCAPE_SP_NAMEDVIEW_H */
 
@@ -125,4 +122,4 @@ void sp_namedview_set_gridtype(unsigned int type, SPDocument *doc, Inkscape::XML
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :