summaryrefslogtreecommitdiff
path: root/include/svx/svddrgmt.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/svx/svddrgmt.hxx')
-rw-r--r--include/svx/svddrgmt.hxx28
1 files changed, 20 insertions, 8 deletions
diff --git a/include/svx/svddrgmt.hxx b/include/svx/svddrgmt.hxx
index 0013da3284e3..3e1a13d6a3d3 100644
--- a/include/svx/svddrgmt.hxx
+++ b/include/svx/svddrgmt.hxx
@@ -66,11 +66,12 @@ class SdrDragEntrySdrObject : public SdrDragEntry
private:
const SdrObject& maOriginal;
SdrObject* mpClone;
- sdr::contact::ObjectContact& mrObjectContact;
bool const mbModify;
public:
- SdrDragEntrySdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact, bool bModify);
+ SdrDragEntrySdrObject(
+ const SdrObject& rOriginal,
+ bool bModify);
virtual ~SdrDragEntrySdrObject() override;
// #i54102# Split createPrimitive2DSequenceInCurrentState in prepareCurrentState and processing,
@@ -127,10 +128,19 @@ protected:
void clearSdrDragEntries();
void addSdrDragEntry(std::unique_ptr<SdrDragEntry> pNew);
virtual void createSdrDragEntries();
- virtual void createSdrDragEntryForSdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact);
-
- // access for derivated classes to maOverlayObjectList (passes ownership)
- void addToOverlayObjectList(std::unique_ptr<sdr::overlay::OverlayObject> pNew) { maOverlayObjectList.append(std::move(pNew)); }
+ virtual void createSdrDragEntryForSdrObject(const SdrObject& rOriginal);
+
+ // Helper to support inserting a new OverlayObject. It will do all
+ // necessary stuff involved with that:
+ // - add GridOffset for non-linear ViewToDevice transformation (calc)
+ // - add to OverlayManager
+ // - add to local OverlayObjectList - ownership change (!)
+ // It is centralized here (and protected) to avoid that new usages/
+ // implementations forget one of these needed steps.
+ void insertNewlyCreatedOverlayObjectForSdrDragMethod(
+ std::unique_ptr<sdr::overlay::OverlayObject> pOverlayObject,
+ const sdr::contact::ObjectContact& rObjectContact,
+ sdr::overlay::OverlayManager& rOverlayManager);
// access for derivated classes to mrSdrDragView
SdrDragView& getSdrDragView() { return mrSdrDragView; }
@@ -192,7 +202,9 @@ public:
virtual void CancelSdrDrag();
virtual Pointer GetSdrDragPointer() const=0;
- virtual void CreateOverlayGeometry(sdr::overlay::OverlayManager& rOverlayManager);
+ virtual void CreateOverlayGeometry(
+ sdr::overlay::OverlayManager& rOverlayManager,
+ const sdr::contact::ObjectContact& rObjectContact);
void destroyOverlayGeometry();
virtual basegfx::B2DHomMatrix getCurrentTransformation();
@@ -225,7 +237,7 @@ private:
void ImpCheckSnap(const Point& rPt);
protected:
- virtual void createSdrDragEntryForSdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact) override;
+ virtual void createSdrDragEntryForSdrObject(const SdrObject& rOriginal) override;
public:
SdrDragMove(SdrDragView& rNewView);