X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fseltrans.h;h=0183683ffe028026dd0bbdd525a0c4e4cd04d5ba;hb=42382dfb4164b919ffcdf03766da9f8be4e43b42;hp=a472f3366ebd4f6dad7f6cd826de9f7bfe0bd15a;hpb=fd4f8ef876a2d6f7e0a81596857787d05c67778b;p=inkscape.git diff --git a/src/seltrans.h b/src/seltrans.h index a472f3366..0183683ff 100644 --- a/src/seltrans.h +++ b/src/seltrans.h @@ -24,6 +24,7 @@ #include "selcue.h" #include "message-context.h" #include +#include "sp-item.h" struct SPKnot; class SPDesktop; @@ -53,7 +54,7 @@ public: void increaseState(); void resetState(); void setCenter(Geom::Point const &p); - void grab(Geom::Point const &p, gdouble x, gdouble y, bool show_handles); + void grab(Geom::Point const &p, gdouble x, gdouble y, bool show_handles, bool translating); void transform(Geom::Matrix const &rel_affine, Geom::Point const &norm); void ungrab(); void stamp(); @@ -86,7 +87,7 @@ public: return _empty; } bool isGrabbed() { - return _grabbed; + return _grabbed; } bool centerIsVisible() { return ( _chandle && SP_KNOT_IS_VISIBLE (_chandle) ); @@ -102,23 +103,25 @@ private: Geom::Point _getGeomHandlePos(Geom::Point const &visual_handle_pos); Geom::Point _calcAbsAffineDefault(Geom::Scale const default_scale); Geom::Point _calcAbsAffineGeom(Geom::Scale const geom_scale); - void _keepClosestPointOnly(std::vector &points, const Geom::Point &reference); + void _keepClosestPointOnly(std::vector &points, const Geom::Point &reference); + void _display_snapsource(); enum State { STATE_SCALE, //scale or stretch STATE_ROTATE //rotate or skew }; - + SPDesktop *_desktop; std::vector _items; std::vector _items_const; std::vector _items_affines; std::vector _items_centers; - - std::vector _snap_points; - std::vector _bbox_points; - + + std::vector _snap_points; + std::vector _bbox_points; // the bbox point of the selection as a whole, i.e. max. 4 corners plus optionally some midpoints + std::vector _bbox_points_for_translating; // the bbox points of each selected item, only to be used for translating + Inkscape::SelCue _selcue; Inkscape::Selection *_selection; @@ -131,12 +134,12 @@ private: bool _changed; SPItem::BBoxType _snap_bbox_type; - + Geom::OptRect _bbox; Geom::OptRect _approximate_bbox; Geom::OptRect _geometric_bbox; gdouble _strokewidth; - + Geom::Matrix _current_relative_affine; Geom::Matrix _absolute_affine; Geom::Matrix _relative_affine; @@ -145,8 +148,8 @@ private: * lines into straight lines and parallel lines into parallel lines but may alter distance between points * and angles between lines */ - - Geom::Point _opposite; ///< opposite point to where a scale is taking place + + Geom::Point _opposite; ///< opposite point to where a scale is taking place Geom::Point _opposite_for_specpoints; Geom::Point _opposite_for_bboxpoints; Geom::Point _origin_for_specpoints;