X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fselection.h;h=b5a511e96f6ffbec9dae54d101d79ba48fb12a0c;hb=722a5b294d2a6cee2003c1b5969655204b346089;hp=6ae462fc36c9b57ce534a252a2d1cd3b8db98e52;hpb=90a3966dd44e306d23febc15ebd65cde07d7a4dd;p=inkscape.git diff --git a/src/selection.h b/src/selection.h index 6ae462fc3..b5a511e96 100644 --- a/src/selection.h +++ b/src/selection.h @@ -30,6 +30,7 @@ #include "gc-soft-ptr.h" #include "util/list.h" #include "sp-item.h" +#include "snapped-point.h" class SPItem; class SPBox3D; @@ -57,7 +58,7 @@ namespace Inkscape { * at the given desktop. Both SPItem and SPRepr lists can be retrieved * from the selection. Many actions operate on the selection, so it is * widely used throughout the code. - * It also implements its own asynchronous notification signals that + * It also implements its own asynchronous notification signals that * UI elements can listen to. */ class Selection : public Inkscape::GC::Managed<>, @@ -228,11 +229,14 @@ public: /// method for that GSList const *reprList(); - /* list of all perspectives which have a 3D box in the current selection + /** @brief Returns a list of all perspectives which have a 3D box in the current selection (these may also be nested in groups) */ std::list const perspList(); - std::list const box3DList(); + /** @brief Returns a list of all 3D boxes in the current selection which are associated to @c + persp. If @c pers is @c NULL, return all selected boxes. + */ + std::list const box3DList(Persp3D *persp = NULL); /** @brief Returns the number of layers in which there are selected objects */ guint numberOfLayers(); @@ -243,13 +247,13 @@ public: /** @brief Returns the bounding rectangle of the selection */ NRRect *bounds(NRRect *dest, SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; /** @brief Returns the bounding rectangle of the selection */ - boost::optional bounds(SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; + Geom::OptRect bounds(SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; /** * @brief Returns the bounding rectangle of the selection * * \todo how is this different from bounds()? - */ + */ NRRect *boundsInDocument(NRRect *dest, SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; /** @@ -257,7 +261,7 @@ public: * * \todo how is this different from bounds()? */ - boost::optional boundsInDocument(SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; + Geom::OptRect boundsInDocument(SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; /** * @brief Returns the rotation/skew center of the selection @@ -268,13 +272,13 @@ public: * @brief Gets the selection's snap points. * @return Selection's snap points */ - std::vector getSnapPoints(bool includeItemCenter) const; + std::vector getSnapPoints(SnapPreferences const *snapprefs) const; /** * @brief Gets the snap points of a selection that form a convex hull. * @return Selection's convex hull points */ - std::vector getSnapPointsConvexHull() const; + std::vector getSnapPointsConvexHull(SnapPreferences const *snapprefs) const; /** * @brief Connects a slot to be notified of selection changes @@ -291,8 +295,8 @@ public: } /** - * @brief Connects a slot to be notified of selected - * object modifications + * @brief Connects a slot to be notified of selected + * object modifications * * This method connects the given slot such that it will * receive notifications whenever any selected item is @@ -350,7 +354,6 @@ private: void remove_box_perspective(SPBox3D *box); void remove_3D_boxes_recursively(SPObject *obj); - std::map _persps; std::list _3dboxes; GC::soft_ptr _desktop;