summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2020-05-27 15:27:14 +0200
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2020-07-30 13:36:55 +0200
commit7bcf2daf86d793086f8028b1da9cf167047295ff (patch)
treee78b774bdf3fbbfca68bd88ba3f45ad085221d17 /include
parent5a677ca3715b7e1da3f3a2a79083f06958d97aaa (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.hxx10
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