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 <quikee@gmail.com>2020-06-02 18:55:07 +0200
commitcf812f15b3295a17a9b5d7e3a1c51b00dcbf2629 (patch)
tree1845ff84e2731c7ecb5b7446099c93e429e71602 /include
parent36071e96e75556285ece937923e5240e343e2185 (diff)
svx: add ability to show sub-selections in a marked object
Draws selection rectangles inside the object window. Change-Id: I994477426489ea4cea89c86f9e51c9978f16b350 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95347 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
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 9ccf77ef2784..c7d7a4db4189 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;
@@ -84,6 +86,7 @@ enum class ImpGetDescriptionOptions
};
class ImplMarkingOverlay;
+class MarkingSubSelectionOverlay;
class SVXCORE_DLLPUBLIC SdrMarkView : public SdrSnapView
{
@@ -94,6 +97,8 @@ class SVXCORE_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.
@@ -101,8 +106,10 @@ protected:
Point maRef1; // Persistent - Rotation center / axis of reflection
Point maRef2; // Persistent
SdrHdlList maHdlList;
+
sdr::ViewSelection maSdrViewSelection;
+ std::vector<basegfx::B2DRectangle> maSubSelectionList;
tools::Rectangle maMarkedObjRect;
tools::Rectangle maMarkedPointsRect;
tools::Rectangle maMarkedGluePointsRect;
@@ -302,7 +309,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