X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fselection.h;h=9ac49ae12c698ec51c9427b00cd57734038c597e;hb=ef4a6bf28f7697d57173160803211fef5679309e;hp=88e8ae90de21810118c23daf7cf35bbf581ce78b;hpb=e9b6af083e34e2397a8ddbe9781920733d09d151;p=inkscape.git diff --git a/src/selection.h b/src/selection.h index 88e8ae90d..9ac49ae12 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,21 +247,23 @@ 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()? - */ + * Gives the coordinates in internal format, does not match onscreen guides. + * (0,0 is the upper left corner, not the lower left corner) + */ NRRect *boundsInDocument(NRRect *dest, SPItem::BBoxType type = SPItem::APPROXIMATE_BBOX) const; /** * @brief Returns the bounding rectangle of the selection * - * \todo how is this different from bounds()? + * Gives the coordinates in internal format, does not match onscreen guides. + * (0,0 is the upper left corner, not the lower left corner) */ - 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 +274,13 @@ public: * @brief Gets the selection's snap points. * @return Selection's snap points */ - std::vector getSnapPoints(SnapPreferences const *snapprefs) 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(SnapPreferences const *snapprefs) const; + std::vector getSnapPointsConvexHull(SnapPreferences const *snapprefs) const; /** * @brief Connects a slot to be notified of selection changes @@ -291,8 +297,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 +356,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; @@ -378,4 +383,4 @@ private: fill-column:99 End: */ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :