+
+void RS_Snapper::SetVisible(bool visibility/*= true*/)
+{
+ visible = visibility;
+}
+
+bool RS_Snapper::Visible(void)
+{
+ return visible;
+}
+
+void RS_Snapper::Draw(GraphicView * view, PaintInterface * painter)
+{
+ if (finished || !snapSpot.valid)
+ return;
+
+//hm, I don't like graphicView kicking around in here, especially since it now
+//lives inside GraphicView... How to !!! FIX !!!?
+//We'll pass it in for now...
+ if (snapCoord.valid)
+ {
+ // snap point
+ painter->setPen(RS_Pen(RS_Color(0, 127, 255), RS2::Width00, RS2::DashLine));
+ painter->drawCircle(view->toGui(snapCoord), 4);
+
+ // crosshairs
+ if (showCrosshairs)
+ {
+ painter->setPen(RS_Pen(RS_Color(0, 255, 255), RS2::Width00, RS2::DashLine));
+ painter->drawLine(Vector(0, view->toGuiY(snapCoord.y)),
+ Vector(view->getWidth(), view->toGuiY(snapCoord.y)));
+ painter->drawLine(Vector(view->toGuiX(snapCoord.x), 0),
+ Vector(view->toGuiX(snapCoord.x), view->getHeight()));
+ }
+ }
+
+ if (snapCoord.valid && snapCoord != snapSpot)
+ {
+ painter->drawLine(view->toGui(snapSpot) + Vector(-5, 0),
+ view->toGui(snapSpot) + Vector(-1, 4));
+ painter->drawLine(view->toGui(snapSpot) + Vector(0, 5),
+ view->toGui(snapSpot) + Vector(4, 1));
+ painter->drawLine(view->toGui(snapSpot) + Vector(5, 0),
+ view->toGui(snapSpot) + Vector(1, -4));
+ painter->drawLine(view->toGui(snapSpot) + Vector(0, -5),
+ view->toGui(snapSpot) + Vector(-4, -1));
+ }
+}