xref: /aoo41x/main/svx/inc/svx/svddrgmt.hxx (revision f106eca9)
13334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
33334a7e6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
43334a7e6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
53334a7e6SAndrew Rist  * distributed with this work for additional information
63334a7e6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
73334a7e6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
83334a7e6SAndrew Rist  * "License"); you may not use this file except in compliance
93334a7e6SAndrew Rist  * with the License.  You may obtain a copy of the License at
103334a7e6SAndrew Rist  *
113334a7e6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
123334a7e6SAndrew Rist  *
133334a7e6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
143334a7e6SAndrew Rist  * software distributed under the License is distributed on an
153334a7e6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
163334a7e6SAndrew Rist  * KIND, either express or implied.  See the License for the
173334a7e6SAndrew Rist  * specific language governing permissions and limitations
183334a7e6SAndrew Rist  * under the License.
193334a7e6SAndrew Rist  *
203334a7e6SAndrew Rist  *************************************************************/
213334a7e6SAndrew Rist 
223334a7e6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SVDDRGMT_HXX
25cdf0e10cSrcweir #define _SVDDRGMT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svx/svddrgv.hxx>
28cdf0e10cSrcweir #include "svx/svxdllapi.h"
29cdf0e10cSrcweir #include <svx/sdr/contact/objectcontact.hxx>
30cdf0e10cSrcweir 
31cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
32cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
33cdf0e10cSrcweir //
34cdf0e10cSrcweir //  @@@@@  @@@@@   @@@@   @@@@   @@   @@ @@@@@ @@@@@@ @@  @@  @@@@  @@@@@   @@@@
35cdf0e10cSrcweir //  @@  @@ @@  @@ @@  @@ @@  @@  @@@ @@@ @@      @@   @@  @@ @@  @@ @@  @@ @@  @@
36cdf0e10cSrcweir //  @@  @@ @@  @@ @@  @@ @@      @@@@@@@ @@      @@   @@  @@ @@  @@ @@  @@ @@
37cdf0e10cSrcweir //  @@  @@ @@@@@  @@@@@@ @@ @@@  @@@@@@@ @@@@    @@   @@@@@@ @@  @@ @@  @@  @@@@
38cdf0e10cSrcweir //  @@  @@ @@  @@ @@  @@ @@  @@  @@ @ @@ @@      @@   @@  @@ @@  @@ @@  @@     @@
39cdf0e10cSrcweir //  @@  @@ @@  @@ @@  @@ @@  @@  @@   @@ @@      @@   @@  @@ @@  @@ @@  @@ @@  @@
40cdf0e10cSrcweir //  @@@@@  @@  @@ @@  @@  @@@@@  @@   @@ @@@@@   @@   @@  @@  @@@@  @@@@@   @@@@
41cdf0e10cSrcweir //
42cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
43cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
44cdf0e10cSrcweir 
45cdf0e10cSrcweir class SdrDragView;
46cdf0e10cSrcweir class SdrDragStat;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
49cdf0e10cSrcweir 
50cdf0e10cSrcweir class SdrDragEntry
51cdf0e10cSrcweir {
52cdf0e10cSrcweir private:
53cdf0e10cSrcweir 	// bitfield
54cdf0e10cSrcweir 	unsigned					mbAddToTransparent : 1;
55cdf0e10cSrcweir 
56cdf0e10cSrcweir protected:
57cdf0e10cSrcweir 	// access for derived classes
setAddToTransparent(bool bNew)58cdf0e10cSrcweir 	void setAddToTransparent(bool bNew) { mbAddToTransparent = bNew; }
59cdf0e10cSrcweir 
60cdf0e10cSrcweir public:
61cdf0e10cSrcweir     SdrDragEntry();
62cdf0e10cSrcweir     virtual ~SdrDragEntry();
63cdf0e10cSrcweir 
64cdf0e10cSrcweir 	virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) = 0;
65cdf0e10cSrcweir 
66cdf0e10cSrcweir 	// data read access
getAddToTransparent() const67cdf0e10cSrcweir 	bool getAddToTransparent() const { return mbAddToTransparent; }
68cdf0e10cSrcweir };
69cdf0e10cSrcweir 
70cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
71cdf0e10cSrcweir 
72cdf0e10cSrcweir class SVX_DLLPUBLIC SdrDragEntryPolyPolygon : public SdrDragEntry
73cdf0e10cSrcweir {
74cdf0e10cSrcweir private:
75cdf0e10cSrcweir     basegfx::B2DPolyPolygon             maOriginalPolyPolygon;
76cdf0e10cSrcweir 
77cdf0e10cSrcweir public:
78cdf0e10cSrcweir     SdrDragEntryPolyPolygon(const basegfx::B2DPolyPolygon& rOriginalPolyPolygon);
79cdf0e10cSrcweir     virtual ~SdrDragEntryPolyPolygon();
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 	virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod);
82cdf0e10cSrcweir };
83cdf0e10cSrcweir 
84cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
85cdf0e10cSrcweir 
86cdf0e10cSrcweir class SdrDragEntrySdrObject : public SdrDragEntry
87cdf0e10cSrcweir {
88cdf0e10cSrcweir private:
89cdf0e10cSrcweir     const SdrObject&                                maOriginal;
90cdf0e10cSrcweir     SdrObject*                                      mpClone;
91cdf0e10cSrcweir     sdr::contact::ObjectContact&                    mrObjectContact;
92cdf0e10cSrcweir 	bool											mbModify;
93cdf0e10cSrcweir 
94cdf0e10cSrcweir public:
95cdf0e10cSrcweir     SdrDragEntrySdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact, bool bModify);
96cdf0e10cSrcweir     virtual ~SdrDragEntrySdrObject();
97cdf0e10cSrcweir 
98*f106eca9SArmin Le Grand     // #54102# Split createPrimitive2DSequenceInCurrentState in prepareCurrentState and processing,
99*f106eca9SArmin Le Grand     // added accessors to original and clone
100*f106eca9SArmin Le Grand     void prepareCurrentState(SdrDragMethod& rDragMethod);
getOriginal() const101*f106eca9SArmin Le Grand     const SdrObject& getOriginal() const { return maOriginal; }
getClone()102*f106eca9SArmin Le Grand     SdrObject* getClone() { return mpClone; }
103*f106eca9SArmin Le Grand 
104*f106eca9SArmin Le Grand     virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod);
105cdf0e10cSrcweir };
106cdf0e10cSrcweir 
107cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
108cdf0e10cSrcweir 
109cdf0e10cSrcweir class SdrDragEntryPrimitive2DSequence : public SdrDragEntry
110cdf0e10cSrcweir {
111cdf0e10cSrcweir private:
112cdf0e10cSrcweir     drawinglayer::primitive2d::Primitive2DSequence  maPrimitive2DSequence;
113cdf0e10cSrcweir 
114cdf0e10cSrcweir public:
115cdf0e10cSrcweir     SdrDragEntryPrimitive2DSequence(
116cdf0e10cSrcweir         const drawinglayer::primitive2d::Primitive2DSequence& rSequence,
117cdf0e10cSrcweir         bool bAddToTransparent);
118cdf0e10cSrcweir     virtual ~SdrDragEntryPrimitive2DSequence();
119cdf0e10cSrcweir 
120cdf0e10cSrcweir 	virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod);
121cdf0e10cSrcweir };
122cdf0e10cSrcweir 
123cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
124cdf0e10cSrcweir 
125cdf0e10cSrcweir class SdrDragEntryPointGlueDrag : public SdrDragEntry
126cdf0e10cSrcweir {
127cdf0e10cSrcweir private:
128cdf0e10cSrcweir     std::vector< basegfx::B2DPoint >                maPositions;
129cdf0e10cSrcweir     bool                                            mbIsPointDrag;
130cdf0e10cSrcweir 
131cdf0e10cSrcweir public:
132cdf0e10cSrcweir     SdrDragEntryPointGlueDrag(const std::vector< basegfx::B2DPoint >& rPositions, bool bIsPointDrag);
133cdf0e10cSrcweir     virtual ~SdrDragEntryPointGlueDrag();
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 	virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod);
136cdf0e10cSrcweir };
137cdf0e10cSrcweir 
138cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
139cdf0e10cSrcweir 
140cdf0e10cSrcweir class SVX_DLLPUBLIC SdrDragMethod
141cdf0e10cSrcweir {
142cdf0e10cSrcweir private:
143cdf0e10cSrcweir     std::vector< SdrDragEntry* >            maSdrDragEntries;
144cdf0e10cSrcweir 	sdr::overlay::OverlayObjectList	        maOverlayObjectList;
145cdf0e10cSrcweir 	SdrDragView&				            mrSdrDragView;
146cdf0e10cSrcweir 
147cdf0e10cSrcweir 	// bitfield
148cdf0e10cSrcweir 	unsigned						        mbMoveOnly : 1;
149cdf0e10cSrcweir 	unsigned								mbSolidDraggingActive : 1;
150cdf0e10cSrcweir 
151cdf0e10cSrcweir protected:
152cdf0e10cSrcweir 	// access for derivated classes to maSdrDragEntries
153*f106eca9SArmin Le Grand 	void clearSdrDragEntries();
154*f106eca9SArmin Le Grand     void addSdrDragEntry(SdrDragEntry* pNew);
155cdf0e10cSrcweir     virtual void createSdrDragEntries();
156cdf0e10cSrcweir     virtual void createSdrDragEntryForSdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact, bool bModify);
157cdf0e10cSrcweir 
158cdf0e10cSrcweir 	// access for derivated classes to maOverlayObjectList
clearOverlayObjectList()159cdf0e10cSrcweir 	void clearOverlayObjectList() { maOverlayObjectList.clear(); }
addToOverlayObjectList(sdr::overlay::OverlayObject & rNew)160cdf0e10cSrcweir 	void addToOverlayObjectList(sdr::overlay::OverlayObject& rNew) { maOverlayObjectList.append(rNew); }
getB2DRangeFromOverlayObjectList() const161cdf0e10cSrcweir 	basegfx::B2DRange getB2DRangeFromOverlayObjectList() const { return maOverlayObjectList.getBaseRange(); }
162cdf0e10cSrcweir 
163cdf0e10cSrcweir 	// access for derivated classes to mrSdrDragView
getSdrDragView()164cdf0e10cSrcweir 	SdrDragView& getSdrDragView() { return mrSdrDragView; }
getSdrDragView() const165cdf0e10cSrcweir 	const SdrDragView& getSdrDragView() const { return mrSdrDragView; }
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 	// access for derivated classes for bools
setMoveOnly(bool bNew)168cdf0e10cSrcweir 	void setMoveOnly(bool bNew) { mbMoveOnly = bNew; }
setSolidDraggingActive(bool bNew)169cdf0e10cSrcweir 	void setSolidDraggingActive(bool bNew) { mbSolidDraggingActive = bNew; }
170cdf0e10cSrcweir 
171cdf0e10cSrcweir 	// internal helpers for creation of standard drag entries
172cdf0e10cSrcweir     void createSdrDragEntries_SolidDrag();
173cdf0e10cSrcweir     void createSdrDragEntries_PolygonDrag();
174cdf0e10cSrcweir     void createSdrDragEntries_PointDrag();
175cdf0e10cSrcweir     void createSdrDragEntries_GlueDrag();
176cdf0e10cSrcweir 
177cdf0e10cSrcweir 	// old call forwarders to the SdrDragView
178cdf0e10cSrcweir 	void               ImpTakeDescriptionStr(sal_uInt16 nStrCacheID, String& rStr, sal_uInt16 nVal=0) const;
GetDragHdl() const179cdf0e10cSrcweir 	SdrHdl*            GetDragHdl() const              { return getSdrDragView().pDragHdl; }
GetDragHdlKind() const180cdf0e10cSrcweir 	SdrHdlKind         GetDragHdlKind() const          { return getSdrDragView().eDragHdl; }
DragStat()181cdf0e10cSrcweir 	SdrDragStat&       DragStat()                      { return getSdrDragView().aDragStat; }
DragStat() const182cdf0e10cSrcweir 	const SdrDragStat& DragStat() const                { return getSdrDragView().aDragStat; }
Ref1() const183cdf0e10cSrcweir 	Point&             Ref1() const                    { return mrSdrDragView.aRef1; }
Ref2() const184cdf0e10cSrcweir 	Point&             Ref2() const                    { return mrSdrDragView.aRef2; }
GetHdlList() const185cdf0e10cSrcweir 	const SdrHdlList&  GetHdlList() const              { return getSdrDragView().aHdl; }
AddUndo(SdrUndoAction * pUndo)186cdf0e10cSrcweir 	void               AddUndo(SdrUndoAction* pUndo)   { getSdrDragView().AddUndo(pUndo); }
IsDragLimit()187cdf0e10cSrcweir 	bool               IsDragLimit()                   { return getSdrDragView().bDragLimit; }
GetDragLimitRect()188cdf0e10cSrcweir 	const Rectangle&   GetDragLimitRect()              { return getSdrDragView().aDragLimit; }
GetMarkedObjectList()189cdf0e10cSrcweir 	const SdrMarkList& GetMarkedObjectList()                   { return getSdrDragView().GetMarkedObjectList(); }
GetSnapPos(const Point & rPt) const190cdf0e10cSrcweir 	Point              GetSnapPos(const Point& rPt) const { return getSdrDragView().GetSnapPos(rPt,getSdrDragView().pMarkedPV); }
SnapPos(Point & rPt) const191cdf0e10cSrcweir 	sal_uInt16         SnapPos(Point& rPt) const       { return getSdrDragView().SnapPos(rPt,getSdrDragView().pMarkedPV); }
192cdf0e10cSrcweir 	inline const Rectangle& GetMarkedRect() const;
193cdf0e10cSrcweir 	SdrPageView*       GetDragPV() const;
194cdf0e10cSrcweir 	SdrObject*         GetDragObj() const;
GetDragWin() const195cdf0e10cSrcweir 	OutputDevice*      GetDragWin() const              { return getSdrDragView().pDragWin; }
IsDraggingPoints() const196cdf0e10cSrcweir 	bool               IsDraggingPoints() const        { return getSdrDragView().IsDraggingPoints(); }
IsDraggingGluePoints() const197cdf0e10cSrcweir 	bool               IsDraggingGluePoints() const    { return getSdrDragView().IsDraggingGluePoints(); }
198cdf0e10cSrcweir 
199cdf0e10cSrcweir 	bool DoAddConnectorOverlays();
200cdf0e10cSrcweir 	drawinglayer::primitive2d::Primitive2DSequence AddConnectorOverlays();
201cdf0e10cSrcweir 
202cdf0e10cSrcweir public:
203cdf0e10cSrcweir 	TYPEINFO();
204cdf0e10cSrcweir 
205cdf0e10cSrcweir     void resetSdrDragEntries();
206cdf0e10cSrcweir     basegfx::B2DRange getCurrentRange() const;
207cdf0e10cSrcweir 
208cdf0e10cSrcweir 	// #i58950# also moved constructor implementation to cxx
209cdf0e10cSrcweir 	SdrDragMethod(SdrDragView& rNewView);
210cdf0e10cSrcweir 
211cdf0e10cSrcweir 	// #i58950# virtual destructor was missing
212cdf0e10cSrcweir 	virtual ~SdrDragMethod();
213cdf0e10cSrcweir 
214cdf0e10cSrcweir 	void Show();
215cdf0e10cSrcweir 	void Hide();
216cdf0e10cSrcweir 	virtual void TakeSdrDragComment(String& rStr) const=0;
217cdf0e10cSrcweir 	virtual bool BeginSdrDrag()=0;
218cdf0e10cSrcweir 	virtual void MoveSdrDrag(const Point& rPnt)=0;
219cdf0e10cSrcweir 	virtual bool EndSdrDrag(bool bCopy)=0;
220cdf0e10cSrcweir 	virtual void CancelSdrDrag();
221cdf0e10cSrcweir 	virtual Pointer GetSdrDragPointer() const=0;
222cdf0e10cSrcweir 
223cdf0e10cSrcweir 	virtual void CreateOverlayGeometry(sdr::overlay::OverlayManager& rOverlayManager);
224cdf0e10cSrcweir     void destroyOverlayGeometry();
225cdf0e10cSrcweir 
226cdf0e10cSrcweir 	virtual basegfx::B2DHomMatrix getCurrentTransformation();
227cdf0e10cSrcweir     virtual void applyCurrentTransformationToSdrObject(SdrObject& rTarget);
228cdf0e10cSrcweir 	virtual void applyCurrentTransformationToPolyPolygon(basegfx::B2DPolyPolygon& rTarget);
229cdf0e10cSrcweir 
230cdf0e10cSrcweir 	// data read access
getMoveOnly() const231cdf0e10cSrcweir 	bool getMoveOnly() const { return mbMoveOnly; }
getSolidDraggingActive() const232cdf0e10cSrcweir 	bool getSolidDraggingActive() const { return mbSolidDraggingActive; }
233cdf0e10cSrcweir };
234cdf0e10cSrcweir 
GetMarkedRect() const235cdf0e10cSrcweir inline const Rectangle& SdrDragMethod::GetMarkedRect() const
236cdf0e10cSrcweir {
237cdf0e10cSrcweir 	return getSdrDragView().eDragHdl==HDL_POLY ? getSdrDragView().GetMarkedPointsRect() :
238cdf0e10cSrcweir 		   getSdrDragView().eDragHdl==HDL_GLUE ? getSdrDragView().GetMarkedGluePointsRect() :
239cdf0e10cSrcweir 		   getSdrDragView().GetMarkedObjRect();
240cdf0e10cSrcweir }
241cdf0e10cSrcweir 
242cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
243cdf0e10cSrcweir //   SdrDragMove
244cdf0e10cSrcweir 
245cdf0e10cSrcweir class SVX_DLLPUBLIC SdrDragMove : public SdrDragMethod
246cdf0e10cSrcweir {
247cdf0e10cSrcweir private:
248cdf0e10cSrcweir 	long						nBestXSnap;
249cdf0e10cSrcweir 	long						nBestYSnap;
250cdf0e10cSrcweir 	bool    					bXSnapped;
251cdf0e10cSrcweir 	bool    					bYSnapped;
252cdf0e10cSrcweir 
253cdf0e10cSrcweir 	void ImpCheckSnap(const Point& rPt);
254cdf0e10cSrcweir 
255cdf0e10cSrcweir protected:
256cdf0e10cSrcweir     virtual void createSdrDragEntryForSdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact, bool bModify);
257cdf0e10cSrcweir 
258cdf0e10cSrcweir public:
259cdf0e10cSrcweir 	TYPEINFO();
260cdf0e10cSrcweir 	SdrDragMove(SdrDragView& rNewView);
261cdf0e10cSrcweir 
262cdf0e10cSrcweir 	virtual void TakeSdrDragComment(String& rStr) const;
263cdf0e10cSrcweir 	virtual bool BeginSdrDrag();
264cdf0e10cSrcweir 	virtual void MoveSdrDrag(const Point& rPnt);
265cdf0e10cSrcweir 	virtual bool EndSdrDrag(bool bCopy);
266cdf0e10cSrcweir 	virtual Pointer GetSdrDragPointer() const;
267cdf0e10cSrcweir 
268cdf0e10cSrcweir 	virtual basegfx::B2DHomMatrix getCurrentTransformation();
269cdf0e10cSrcweir     virtual void applyCurrentTransformationToSdrObject(SdrObject& rTarget);
270cdf0e10cSrcweir };
271cdf0e10cSrcweir 
272cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
273cdf0e10cSrcweir //   SdrDragResize
274cdf0e10cSrcweir 
275cdf0e10cSrcweir class SVX_DLLPUBLIC SdrDragResize : public SdrDragMethod
276cdf0e10cSrcweir {
277cdf0e10cSrcweir protected:
278cdf0e10cSrcweir 	Fraction					aXFact;
279cdf0e10cSrcweir 	Fraction					aYFact;
280cdf0e10cSrcweir 
281cdf0e10cSrcweir public:
282cdf0e10cSrcweir 	TYPEINFO();
283cdf0e10cSrcweir 	SdrDragResize(SdrDragView& rNewView);
284cdf0e10cSrcweir 
285cdf0e10cSrcweir 	virtual void TakeSdrDragComment(String& rStr) const;
286cdf0e10cSrcweir 	virtual bool BeginSdrDrag();
287cdf0e10cSrcweir 	virtual void MoveSdrDrag(const Point& rPnt);
288cdf0e10cSrcweir 	virtual bool EndSdrDrag(bool bCopy);
289cdf0e10cSrcweir 	virtual Pointer GetSdrDragPointer() const;
290cdf0e10cSrcweir 
291cdf0e10cSrcweir 	virtual basegfx::B2DHomMatrix getCurrentTransformation();
292cdf0e10cSrcweir     virtual void applyCurrentTransformationToSdrObject(SdrObject& rTarget);
293cdf0e10cSrcweir };
294cdf0e10cSrcweir 
295cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
296cdf0e10cSrcweir //   SdrDragObjOwn
297cdf0e10cSrcweir 
298cdf0e10cSrcweir class SVX_DLLPUBLIC SdrDragObjOwn : public SdrDragMethod
299cdf0e10cSrcweir {
300cdf0e10cSrcweir private:
301cdf0e10cSrcweir 	// SdrDragObjOwn always works on a clone since it has no transformation
302cdf0e10cSrcweir 	// mechanism to modify wireframe visualisations, but uses the
303cdf0e10cSrcweir 	// SdrObject::applySpecialDrag() method to change a clone of the
304cdf0e10cSrcweir 	// SdrObject
305cdf0e10cSrcweir 	SdrObject*					mpClone;
306cdf0e10cSrcweir 
307cdf0e10cSrcweir protected:
308cdf0e10cSrcweir     virtual void createSdrDragEntries();
309cdf0e10cSrcweir 
310cdf0e10cSrcweir public:
311cdf0e10cSrcweir 	TYPEINFO();
312cdf0e10cSrcweir 	SdrDragObjOwn(SdrDragView& rNewView);
313cdf0e10cSrcweir 	virtual ~SdrDragObjOwn();
314cdf0e10cSrcweir 
315cdf0e10cSrcweir 	virtual void TakeSdrDragComment(String& rStr) const;
316cdf0e10cSrcweir 	virtual bool BeginSdrDrag();
317cdf0e10cSrcweir 	virtual void MoveSdrDrag(const Point& rPnt);
318cdf0e10cSrcweir 	virtual bool EndSdrDrag(bool bCopy);
319cdf0e10cSrcweir 	virtual Pointer GetSdrDragPointer() const;
320cdf0e10cSrcweir };
321cdf0e10cSrcweir 
322cdf0e10cSrcweir 
323cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
324cdf0e10cSrcweir #endif //_SVDDRGMT_HXX
325cdf0e10cSrcweir 
326cdf0e10cSrcweir // eof
327