Code

fix 1675213: update symm nodes when moving with Ctrl and when adding new node
[inkscape.git] / src / desktop.h
index e499358c7d4ab23e77297403b8960e30677774a3..1770af9f5d7b45aa84d27f4629e037fdc01d01e8 100644 (file)
@@ -9,7 +9,11 @@
  *   Frank Felfe <innerspace@iname.com>
  *   bulia byak <buliabyak@users.sf.net>
  *   Ralf Stephan <ralf@ark.in-berlin.de>
+ *   John Bintz <jcoswell@coswellproductions.org>
+ *   Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
  *
+ * Copyright (C) 2007 Johan Engelen
+ * Copyright (C) 2006 John Bintz
  * Copyright (C) 1999-2005 authors
  * Copyright (C) 2000-2001 Ximian, Inc.
  *
@@ -50,6 +54,7 @@ namespace Inkscape {
   class Selection; 
   class ObjectHierarchy;
   class LayerManager;
+  class EventLog;
   namespace UI { 
       namespace Dialog { 
           class DialogManager; 
@@ -74,6 +79,7 @@ struct SPDesktop : public Inkscape::UI::View::View
     Inkscape::Selection       *selection;
     SPEventContext            *event_context;
     Inkscape::LayerManager    *layer_manager;
+    Inkscape::EventLog        *event_log;
 
     SPCanvasItem  *acetate;
     SPCanvasGroup *main;
@@ -92,6 +98,8 @@ struct SPDesktop : public Inkscape::UI::View::View
     unsigned int dkey;
     unsigned int number;
     bool is_fullscreen;
+    unsigned int interaction_disabled_counter;
+    bool waiting_cursor;
 
     /// \todo fixme: This has to be implemented in different way */
     guint guides_active : 1;
@@ -99,8 +107,10 @@ struct SPDesktop : public Inkscape::UI::View::View
     // storage for selected dragger used by GrDrag as it's 
     // created and deleted by tools
     SPItem *gr_item;
-    guint  gr_point_num;
+    guint  gr_point_type;
+    guint  gr_point_i;
     bool   gr_fill_or_stroke;   
+    
 
     Inkscape::ObjectHierarchy *_layer_hierarchy;
     gchar * _reconstruction_old_layer_id;
@@ -156,6 +166,9 @@ struct SPDesktop : public Inkscape::UI::View::View
 
     void setDisplayModeNormal();
     void setDisplayModeOutline();
+    void displayModeToggle();
+    int displayMode;
+    int getMode() const { return displayMode; }
 
     void set_active (bool new_active);
     SPObject *currentRoot() const;
@@ -202,12 +215,12 @@ struct SPDesktop : public Inkscape::UI::View::View
     void next_zoom();
 
     bool scroll_to_point (NR::Point const *s_dt, gdouble autoscrollspeed = 0);
-    void scroll_world (double dx, double dy);
-    void scroll_world (NR::Point const scroll)
+    void scroll_world (double dx, double dy, bool is_scrolling = false);
+    void scroll_world (NR::Point const scroll, bool is_scrolling = false)
     {
         using NR::X;
-       using NR::Y;
-       scroll_world(scroll[X], scroll[Y]);
+        using NR::Y;
+        scroll_world(scroll[X], scroll[Y], is_scrolling);
     }
 
     void getWindowGeometry (gint &x, gint &y, gint &w, gint &h);
@@ -224,6 +237,15 @@ struct SPDesktop : public Inkscape::UI::View::View
     void setToolboxAdjustmentValue (gchar const* id, double val);
     bool isToolboxButtonActive (gchar const *id);
     void updateNow();
+    void updateCanvasNow();
+    
+    void enableInteraction();
+    void disableInteraction();
+
+    void setWaitingCursor();
+    void clearWaitingCursor();
+    
+    void toggleGrid();
     
     void fullscreen();