Code

Added the ability to toggle a layer "solo". Fixes bug #171530.
[inkscape.git] / src / desktop.h
index 672cd2b5c6a80ea89649ad7fd95c4ca54478eb46..adb6cb98b1f67089c9877d5801ce7846be458912 100644 (file)
@@ -36,6 +36,7 @@
 #include "ui/view/edit-widget-interface.h"
 
 #include "display/rendermode.h"
+#include "display/snap-indicator.h"
 
 class NRRect;
 class SPCSSAttr;
@@ -77,7 +78,7 @@ namespace Inkscape {
   namespace Display {
       class TemporaryItemList;
       class TemporaryItem;
-      class SnapIndicator;
+      //class SnapIndicator;
   }
 }
 
@@ -184,14 +185,23 @@ struct SPDesktop : public Inkscape::UI::View::View
         return _guides_message_context;
     }
 
-    Inkscape::Display::TemporaryItem * add_temporary_canvasitem (SPCanvasItem *item, guint lifetime);
+    Inkscape::Display::TemporaryItem * add_temporary_canvasitem (SPCanvasItem *item, guint lifetime, bool move_to_bottom = true);
     void remove_temporary_canvasitem (Inkscape::Display::TemporaryItem * tempitem);
 
-    void setDisplayModeNormal();
-    void setDisplayModeOutline();
+    void _setDisplayMode(Inkscape::RenderMode mode);
+    void setDisplayModeNormal() {
+        _setDisplayMode(Inkscape::RENDERMODE_NORMAL);
+    }
+    void setDisplayModeNoFilters() {
+        _setDisplayMode(Inkscape::RENDERMODE_NO_FILTERS);
+    }
+    void setDisplayModeOutline() {
+        _setDisplayMode(Inkscape::RENDERMODE_OUTLINE);
+    }
     void displayModeToggle();
-    Inkscape::RenderMode displayMode;
-    Inkscape::RenderMode getMode() const { return displayMode; }
+    Inkscape::RenderMode _display_mode;
+    Inkscape::RenderMode _saved_display_mode;
+    Inkscape::RenderMode getMode() const { return _display_mode; }
 
     Inkscape::UI::Widget::Dock* getDock() { return _widget->getDock(); }
 
@@ -199,6 +209,7 @@ struct SPDesktop : public Inkscape::UI::View::View
     SPObject *currentRoot() const;
     SPObject *currentLayer() const;
     void setCurrentLayer(SPObject *object);
+    void toggleLayerSolo(SPObject *object);
     SPObject *layerForObject(SPObject *object);
     bool isLayer(SPObject *object) const;
     bool isWithinViewport(SPItem *item) const;
@@ -247,6 +258,7 @@ struct SPDesktop : public Inkscape::UI::View::View
         using NR::Y;
         scroll_world(scroll[X], scroll[Y], is_scrolling);
     }
+    void scroll_world_in_svg_coords (double dx, double dy, bool is_scrolling = false);
 
     void getWindowGeometry (gint &x, gint &y, gint &w, gint &h);
     void setWindowPosition (NR::Point p);