summaryrefslogtreecommitdiffstats
path: root/src/display
diff options
context:
space:
mode:
Diffstat (limited to 'src/display')
-rw-r--r--src/display/canvas-grid.cpp23
-rw-r--r--src/display/canvas-grid.h10
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&);