diff options
Diffstat (limited to 'src/display')
| -rw-r--r-- | src/display/canvas-grid.cpp | 23 | ||||
| -rw-r--r-- | src/display/canvas-grid.h | 10 |
2 files changed, 29 insertions, 4 deletions
diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 643ffccdc..f343077c3 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -143,7 +143,7 @@ CanvasGrid::CanvasGrid(SPDesktop *desktop, Inkscape::XML::Node * in_repr) gtk_object_ref(GTK_OBJECT(canvasitem)); // since we're keeping a copy, we need to bump up the ref count canvasitem->grid = this; - enabled = false; + snapenabled = false; visible = false; // sp_canvas_item_hide(canvasitem); @@ -166,7 +166,6 @@ CanvasGrid::~CanvasGrid() // deref canvasitem gtk_object_unref(GTK_OBJECT(canvasitem)); g_free(canvasitem); - g_message("~CanvasGrid"); } /* @@ -217,6 +216,7 @@ CanvasGrid::hide() { sp_canvas_item_hide(canvasitem); visible = false; + disable_snapping(); // temporary hack, because at the moment visibilty and snapping are linked } void @@ -224,6 +224,25 @@ CanvasGrid::show() { sp_canvas_item_show(canvasitem); visible = true; + enable_snapping(); // temporary hack, because at the moment visibilty and snapping are linked +} + +void +CanvasGrid::set_visibility(bool visible) +{ + this->visible = visible; + if(visible) { + show(); + } else { + hide(); + } +} + +void +CanvasGrid::toggle_visibility() +{ + visible = !visible; + set_visibility(visible); } void diff --git a/src/display/canvas-grid.h b/src/display/canvas-grid.h index c501ab3f3..54a57d3d0 100644 --- a/src/display/canvas-grid.h +++ b/src/display/canvas-grid.h @@ -73,10 +73,13 @@ public: virtual Gtk::Widget & getWidget() = 0; - bool enabled; - bool visible; void hide(); void show(); + void set_visibility(bool visible); + void toggle_visibility(); + void enable_snapping() { snapenabled = true; snapper->setEnabled(true); } ; + void disable_snapping() { snapenabled = false; snapper->setEnabled(false); } ; + void toggle_snapping() { snapenabled = !snapenabled; snapper->setEnabled(snapenabled);}; Inkscape::XML::Node * repr; @@ -90,6 +93,9 @@ protected: Gtk::VBox vbox; + bool snapenabled; + bool visible; + private: CanvasGrid(const CanvasGrid&); CanvasGrid& operator=(const CanvasGrid&); |
