diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-05-27 15:27:14 +0200 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-07-30 13:36:55 +0200 |
commit | 7bcf2daf86d793086f8028b1da9cf167047295ff (patch) | |
tree | e78b774bdf3fbbfca68bd88ba3f45ad085221d17 /include | |
parent | 5a677ca3715b7e1da3f3a2a79083f06958d97aaa (diff) |
svx: add ability to show sub-selections in a marked object
Draws selection rectangles inside the object window.
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95347
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit cf812f15b3295a17a9b5d7e3a1c51b00dcbf2629)
Change-Id: I994477426489ea4cea89c86f9e51c9978f16b350
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95921
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit fe69802e22bb2c8365b7542f3f0fbf71cb6182e7)
Diffstat (limited to 'include')
-rw-r--r-- | include/svx/svdmrkv.hxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/svx/svdmrkv.hxx b/include/svx/svdmrkv.hxx index c66ddf5bca8e..4b94f630cbb7 100644 --- a/include/svx/svdmrkv.hxx +++ b/include/svx/svdmrkv.hxx @@ -26,6 +26,8 @@ #include <svx/svdtypes.hxx> #include <svx/svxdllapi.h> #include <o3tl/typed_flags_set.hxx> +#include <basegfx/range/b2drectangle.hxx> + class SfxViewShell; @@ -88,6 +90,7 @@ enum class ImpGetDescriptionOptions }; class ImplMarkingOverlay; +class MarkingSubSelectionOverlay; class SVX_DLLPUBLIC SdrMarkView : public SdrSnapView { @@ -98,6 +101,8 @@ class SVX_DLLPUBLIC SdrMarkView : public SdrSnapView std::unique_ptr<ImplMarkingOverlay> mpMarkPointsOverlay; std::unique_ptr<ImplMarkingOverlay> mpMarkGluePointsOverlay; + std::unique_ptr<MarkingSubSelectionOverlay> mpMarkingSubSelectionOverlay; + protected: SdrObject* mpMarkedObj; // If not just one object ( i.e. More than one object ) is marked. SdrPageView* mpMarkedPV; // If all marked obects are situated on the same PageView. @@ -106,8 +111,10 @@ protected: Point maRef2; // Persistent Point maLastCrookCenter; // Persistent SdrHdlList maHdlList; + sdr::ViewSelection maSdrViewSelection; + std::vector<basegfx::B2DRectangle> maSubSelectionList; tools::Rectangle maMarkedObjRect; tools::Rectangle maMarkedObjRectNoOffset; tools::Rectangle maMarkedPointsRect; @@ -294,7 +301,8 @@ public: // Mark all objects within a rectangular area // Just objects are marked which are inclosed completely void MarkObj(const tools::Rectangle& rRect, bool bUnmark); - void MarkObj(SdrObject* pObj, SdrPageView* pPV, bool bUnmark=false, bool bImpNoSetMarkHdl=false); + void MarkObj(SdrObject* pObj, SdrPageView* pPV, bool bUnmark = false, bool bDoNoSetMarkHdl = false, + std::vector<basegfx::B2DRectangle> const & rSubSelections = std::vector<basegfx::B2DRectangle>()); void MarkAllObj(SdrPageView* pPV=nullptr); // pPage=NULL => all displayed pages void UnmarkAllObj(SdrPageView const * pPV=nullptr); // pPage=NULL => all displayed pages |