From 73d24d066094549193e1ceda7daa244e5c0dc1e8 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Tue, 28 Aug 2007 20:07:38 +0000 Subject: Implement snapping of guides while dragging them, and snap TO item centers (we only had snapping FROM item centers so far) (bzr r3603) --- src/object-snapper.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/object-snapper.h') diff --git a/src/object-snapper.h b/src/object-snapper.h index a0d5f0b65..ad4cfc649 100644 --- a/src/object-snapper.h +++ b/src/object-snapper.h @@ -24,9 +24,12 @@ namespace Inkscape class ObjectSnapper : public Snapper { + public: ObjectSnapper(SPNamedView const *nv, NR::Coord const d); + enum DimensionToSnap {SNAP_X, SNAP_Y, SNAP_XY}; + void setSnapToItemNode(bool s) { _snap_to_itemnode = s; } @@ -59,10 +62,21 @@ public: return _snap_to_bboxpath; } + void setIncludeItemCenter(bool s) { + _include_item_center = s; + } + + bool getIncludeItemCenter() const { + return _include_item_center; + } + void setStrictSnapping(bool enabled) { _strict_snapping = enabled; } + SnappedPoint guideSnap(NR::Point const &p, + DimensionToSnap const snap_dim) const; + bool ThisSnapperMightSnap() const; private: @@ -78,11 +92,13 @@ private: void _findCandidates(std::list& c, SPObject* r, std::list const &it, - NR::Point const &p) const; + NR::Point const &p, + DimensionToSnap const snap_dim) const; void _snapNodes(Inkscape::Snapper::PointType const &t, Inkscape::SnappedPoint &s, NR::Point const &p, + DimensionToSnap const snap_dim, std::list const &cand) const; void _snapPaths(Inkscape::Snapper::PointType const &t, @@ -100,6 +116,7 @@ private: //snap bbox corners to nodes, or nodes to bboxes. //(snapping to grids and guides is not affected by this) bool _strict_snapping; + bool _include_item_center; }; } -- cgit v1.2.3