LibreOffice Module svx (master) 1
svdovirt.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20
21#include <svx/svdovirt.hxx>
22#include <svx/svdhdl.hxx>
24#include <svx/svdograf.hxx>
25#include <svx/svddrgv.hxx>
27
29{
30 return mxRefObj->GetProperties();
31}
32
33
34// #i27224#
35std::unique_ptr<sdr::contact::ViewContact> SdrVirtObj::CreateObjectSpecificViewContact()
36{
37 return std::make_unique<sdr::contact::ViewContactOfVirtObj>(*this);
38}
39
41 SdrModel& rSdrModel,
42 SdrObject& rNewObj)
43: SdrObject(rSdrModel),
44 mxRefObj(&rNewObj)
45{
46 m_bVirtObj=true; // this is only a virtual object
47 mxRefObj->AddReference(*this);
48 m_bClosedObj = mxRefObj->IsClosedObj();
49}
50
52 SdrModel& rSdrModel, SdrVirtObj const & rSource)
53: SdrObject(rSdrModel, rSource),
54 mxRefObj(rSource.mxRefObj)
55{
56 m_bVirtObj=true; // this is only a virtual object
57 m_bClosedObj = mxRefObj->IsClosedObj();
58
59 mxRefObj->AddReference(*this);
60
61 aSnapRect = rSource.aSnapRect;
62 m_aAnchor = rSource.m_aAnchor;
63}
64
66{
67 mxRefObj->DelReference(*this);
68}
69
71{
72 return *mxRefObj;
73}
74
76{
77 return *mxRefObj;
78}
79
80void SdrVirtObj::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& /*rHint*/)
81{
82 m_bClosedObj = mxRefObj->IsClosedObj();
83 SetBoundAndSnapRectsDirty(); // TODO: Optimize this.
84
85 // Only a repaint here, rRefObj may have changed and broadcasts
87}
88
89void SdrVirtObj::NbcSetAnchorPos(const Point& rAnchorPos)
90{
91 m_aAnchor=rAnchorPos;
92}
93
95{
96 mxRefObj->TakeObjInfo(rInfo);
97}
98
100{
101 return mxRefObj->GetObjInventor();
102}
103
105{
106 return mxRefObj->GetObjIdentifier();
107}
108
110{
111 return mxRefObj->GetSubList();
112}
113
115{
116 auto aRectangle = mxRefObj->GetCurrentBoundRect(); // TODO: Optimize this.
117 aRectangle += m_aAnchor;
118 setOutRectangleConst(aRectangle);
119 return m_aOutRect;
120}
121
123{
124 auto aRectangle = mxRefObj->GetLastBoundRect(); // TODO: Optimize this.
125 aRectangle += m_aAnchor;
126 setOutRectangleConst(aRectangle);
127 return m_aOutRect;
128}
129
131{
132 tools::Rectangle aRectangle = mxRefObj->GetCurrentBoundRect();
133 aRectangle += m_aAnchor;
134 setOutRectangle(aRectangle);
135}
136
138{
139 return new SdrVirtObj(rTargetModel, *this);
140 // TTTT not sure if the above works - how could SdrObjFactory::MakeNewObject
141 // create an object with correct rRefObj (?) OTOH VirtObj probably needs not
142 // to be cloned ever - only used in Writer for multiple instances e.g. Header/Footer
143 // return new SdrVirtObj(
144 // getSdrModelFromSdrObject(),
145 // rRefObj); // only a further reference
146}
147
149{
150 OUString sName = "[" + mxRefObj->TakeObjNameSingul() + "]";
151
152 OUString aName(GetName());
153 if (!aName.isEmpty())
154 sName += " '" + aName + "'";
155
156 return sName;
157}
158
160{
161 return "[" + mxRefObj->TakeObjNamePlural() + "]";
162}
163
165{
166 // RotGrfFlyFrame: If true, this SdrObject supports only limited rotation
167 return mxRefObj->HasLimitedRotation();
168}
169
171{
172 basegfx::B2DPolyPolygon aPolyPolygon(mxRefObj->TakeXorPoly());
173
174 if(m_aAnchor.X() || m_aAnchor.Y())
175 {
177 }
178
179 return aPolyPolygon;
180}
181
182
183sal_uInt32 SdrVirtObj::GetHdlCount() const
184{
185 return mxRefObj->GetHdlCount();
186}
187
189{
190 SdrHdlList tempList(nullptr);
191 mxRefObj->AddToHdlList(tempList);
192 for (size_t i=0; i<tempList.GetHdlCount(); ++i)
193 {
194 SdrHdl* pHdl = tempList.GetHdl(i);
195 Point aP(pHdl->GetPos()+m_aAnchor);
196 pHdl->SetPos(aP);
197 }
198 tempList.MoveTo(rHdlList);
199}
200
202{
203 SdrHdlList tempList(nullptr);
204 mxRefObj->AddToPlusHdlList(tempList, rHdl);
205 for (size_t i=0; i<tempList.GetHdlCount(); ++i)
206 {
207 SdrHdl* pHdl = tempList.GetHdl(i);
208 Point aP(pHdl->GetPos()+m_aAnchor);
209 pHdl->SetPos(aP);
210 }
211 tempList.MoveTo(rHdlList);
212}
213
215{
216 return mxRefObj->hasSpecialDrag();
217}
218
220{
221 return false;
222}
223
225{
226 SdrObject& rReferencedObject = const_cast<SdrVirtObj*>(this)->ReferencedObj();
229 SdrDragView::GetObjGraphic(rReferencedObject),
230 GetLogicRect()));
231}
232
234{
235 return mxRefObj->beginSpecialDrag(rDrag);
236}
237
239{
240 return mxRefObj->applySpecialDrag(rDrag);
241}
242
244{
245 return mxRefObj->getSpecialDragPoly(rDrag);
246 // TODO: we don't handle offsets yet!
247}
248
250{
251 return mxRefObj->getSpecialDragComment(rDrag);
252}
253
254
256{
257 return mxRefObj->BegCreate(rStat);
258}
259
261{
262 return mxRefObj->MovCreate(rStat);
263}
264
266{
267 return mxRefObj->EndCreate(rStat,eCmd);
268}
269
271{
272 return mxRefObj->BckCreate(rStat);
273}
274
276{
277 mxRefObj->BrkCreate(rStat);
278}
279
281{
282 return mxRefObj->TakeCreatePoly(rDrag);
283 // TODO: we don't handle offsets yet!
284}
285
286
287void SdrVirtObj::NbcMove(const Size& rSiz)
288{
289 m_aAnchor.Move(rSiz);
291}
292
293void SdrVirtObj::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact)
294{
295 mxRefObj->NbcResize(rRef-m_aAnchor,xFact,yFact);
297}
298
299void SdrVirtObj::NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs)
300{
301 mxRefObj->NbcRotate(rRef-m_aAnchor,nAngle,sn,cs);
303}
304
305void SdrVirtObj::NbcMirror(const Point& rRef1, const Point& rRef2)
306{
307 mxRefObj->NbcMirror(rRef1-m_aAnchor,rRef2-m_aAnchor);
309}
310
311void SdrVirtObj::NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear)
312{
313 mxRefObj->NbcShear(rRef-m_aAnchor,nAngle,tn,bVShear);
315}
316
317
318void SdrVirtObj::Move(const Size& rSiz)
319{
320 if (!rSiz.IsEmpty()) {
321 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
322 NbcMove(rSiz);
323 SetChanged();
326 }
327}
328
329void SdrVirtObj::Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bUnsetRelative)
330{
331 if (xFact.GetNumerator()!=xFact.GetDenominator() || yFact.GetNumerator()!=yFact.GetDenominator()) {
332 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
333 mxRefObj->Resize(rRef-m_aAnchor,xFact,yFact, bUnsetRelative);
336 }
337}
338
339void SdrVirtObj::Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs)
340{
341 if (nAngle) {
342 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
343 mxRefObj->Rotate(rRef-m_aAnchor,nAngle,sn,cs);
346 }
347}
348
349void SdrVirtObj::Mirror(const Point& rRef1, const Point& rRef2)
350{
351 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
352 mxRefObj->Mirror(rRef1-m_aAnchor,rRef2-m_aAnchor);
355}
356
357void SdrVirtObj::Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear)
358{
359 if (nAngle) {
360 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
361 mxRefObj->Shear(rRef-m_aAnchor,nAngle,tn,bVShear);
364 }
365}
366
367
369{
370 aSnapRect=mxRefObj->GetSnapRect();
372}
373
375{
376 const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetSnapRect();
377 const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor;
378 return aSnapRect;
379}
380
382{
383 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
384 tools::Rectangle aR(rRect);
385 aR-=m_aAnchor;
386 mxRefObj->SetSnapRect(aR);
389}
390
392{
393 tools::Rectangle aR(rRect);
394 aR-=m_aAnchor;
396 mxRefObj->NbcSetSnapRect(aR);
397}
398
399
401{
402 const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetLogicRect(); // An abuse of aSnapRect!
403 const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor; // If there's trouble, we need another Rectangle Member (or a Heap).
404 return aSnapRect;
405}
406
408{
409 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
410 tools::Rectangle aR(rRect);
411 aR-=m_aAnchor;
412 mxRefObj->SetLogicRect(aR);
415}
416
418{
419 tools::Rectangle aR(rRect);
420 aR-=m_aAnchor;
422 mxRefObj->NbcSetLogicRect(aR);
423}
424
425
427{
428 return mxRefObj->GetRotateAngle();
429}
430
432{
433 return mxRefObj->GetShearAngle(bVertical);
434}
435
436
438{
439 return mxRefObj->GetSnapPointCount();
440}
441
443{
444 Point aP(mxRefObj->GetSnapPoint(i));
445 aP+=m_aAnchor;
446 return aP;
447}
448
450{
451 return mxRefObj->IsPolyObj();
452}
453
455{
456 return mxRefObj->GetPointCount();
457}
458
459Point SdrVirtObj::GetPoint(sal_uInt32 i) const
460{
461 return mxRefObj->GetPoint(i) + m_aAnchor;
462}
463
464void SdrVirtObj::NbcSetPoint(const Point& rPnt, sal_uInt32 i)
465{
466 Point aP(rPnt);
467 aP-=m_aAnchor;
468 mxRefObj->SetPoint(aP,i);
470}
471
472
473std::unique_ptr<SdrObjGeoData> SdrVirtObj::NewGeoData() const
474{
475 return mxRefObj->NewGeoData();
476}
477
479{
480 mxRefObj->SaveGeoData(rGeo);
481}
482
484{
485 mxRefObj->RestoreGeoData(rGeo);
487}
488
489
490std::unique_ptr<SdrObjGeoData> SdrVirtObj::GetGeoData() const
491{
492 return mxRefObj->GetGeoData();
493}
494
496{
497 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
498 mxRefObj->SetGeoData(rGeo);
501}
502
503
505{
506 mxRefObj->NbcReformatText();
507}
508
510{
511 return mxRefObj->HasMacro();
512}
513
515{
516 return mxRefObj->CheckMacroHit(rRec); // TODO: positioning offset
517}
518
520{
521 return mxRefObj->GetMacroPointer(rRec); // TODO: positioning offset
522}
523
524void SdrVirtObj::PaintMacro(OutputDevice& rOut, const tools::Rectangle& rDirtyRect, const SdrObjMacroHitRec& rRec) const
525{
526 mxRefObj->PaintMacro(rOut,rDirtyRect,rRec); // TODO: positioning offset
527}
528
530{
531 return mxRefObj->DoMacro(rRec); // TODO: positioning offset
532}
533
535{
536 // #i73248# default offset of SdrVirtObj is aAnchor
537 return m_aAnchor;
538}
539
540/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_Int32 GetNumerator() const
sal_Int32 GetDenominator() const
static Graphic GetObjGraphic(const SdrObject &rSdrObject)
Generate a Graphic for the given draw object.
Definition: svdxcgv.cxx:602
This class represents an embedded or linked bitmap graphic object.
Definition: svdograf.hxx:68
void MoveTo(SdrHdlList &rOther)
Definition: svdhdl.cxx:2325
size_t GetHdlCount() const
Definition: svdhdl.hxx:459
SdrHdl * GetHdl(size_t nNum) const
Definition: svdhdl.hxx:460
void SetPos(const Point &rPnt)
Definition: svdhdl.cxx:344
const Point & GetPos() const
Definition: svdhdl.hxx:197
All geometrical data of an arbitrary object for use in undo/redo.
Definition: svdobj.hxx:175
Provides information about various ZObject properties.
Definition: svdobj.hxx:197
Abstract DrawObject.
Definition: svdobj.hxx:261
void setOutRectangleConst(tools::Rectangle const &rRectangle) const
Definition: svdobj.cxx:3183
friend class SdrVirtObj
Definition: svdobj.hxx:270
void ActionChanged() const
Definition: svdobj.cxx:273
void BroadcastObjectChange() const
Definition: svdobj.cxx:978
Point m_aAnchor
Definition: svdobj.hxx:902
SdrModel & getSdrModelFromSdrObject() const
Definition: svdobj.cxx:289
SdrObjUserCall * m_pUserCall
Definition: svdobj.hxx:903
const OUString & GetName() const
Definition: svdobj.cxx:769
void SendUserCall(SdrUserCallType eUserCall, const tools::Rectangle &rBoundRect) const
Definition: svdobj.cxx:2766
virtual void SetChanged()
Definition: svdobj.cxx:1002
tools::Rectangle m_aOutRect
Definition: svdobj.hxx:901
bool m_bClosedObj
Definition: svdobj.hxx:921
bool m_bVirtObj
Definition: svdobj.hxx:907
void setOutRectangle(tools::Rectangle const &rRectangle)
Definition: svdobj.cxx:3188
virtual void SetBoundAndSnapRectsDirty(bool bNotMyself=false, bool bRecursive=true)
Definition: svdobj.cxx:509
FIXME: The virtual object is not yet fully implemented and tested.
Definition: svdovirt.hxx:30
virtual std::unique_ptr< SdrObjGeoData > NewGeoData() const override
A derived class must override these 3 methods if it has own geometric data that must be saved for Und...
Definition: svdovirt.cxx:473
virtual void Move(const Size &rSiz) override
Definition: svdovirt.cxx:318
virtual bool applySpecialDrag(SdrDragStat &rDrag) override
Definition: svdovirt.cxx:238
virtual bool MovCreate(SdrDragStat &rStat) override
Definition: svdovirt.cxx:260
virtual bool HasLimitedRotation() const override
Definition: svdovirt.cxx:164
virtual OUString getSpecialDragComment(const SdrDragStat &rDrag) const override
Definition: svdovirt.cxx:249
virtual SdrObjKind GetObjIdentifier() const override
Definition: svdovirt.cxx:104
virtual void NbcMove(const Size &rSiz) override
The methods Move, Resize, Rotate, Mirror, Shear, SetSnapRect and SetLogicRect call the corresponding ...
Definition: svdovirt.cxx:287
const SdrObject & GetReferencedObj() const
Definition: svdovirt.cxx:70
virtual bool BegCreate(SdrDragStat &rStat) override
Every object must be able to create itself interactively.
Definition: svdovirt.cxx:255
virtual rtl::Reference< SdrObject > CloneSdrObject(SdrModel &rTargetModel) const override
Definition: svdovirt.cxx:137
rtl::Reference< SdrObject > mxRefObj
Definition: svdovirt.hxx:39
virtual PointerStyle GetMacroPointer(const SdrObjMacroHitRec &rRec) const override
Definition: svdovirt.cxx:519
virtual void Shear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear) override
Definition: svdovirt.cxx:357
virtual void NbcShear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear) override
Definition: svdovirt.cxx:311
virtual SdrObjList * GetSubList() const override
Definition: svdovirt.cxx:109
virtual bool BckCreate(SdrDragStat &rStat) override
Definition: svdovirt.cxx:270
virtual std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact() override
Definition: svdovirt.cxx:35
virtual void SetGeoData(const SdrObjGeoData &rGeo) override
Definition: svdovirt.cxx:495
virtual Point GetOffset() const
Definition: svdovirt.cxx:534
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
Definition: svdovirt.cxx:265
tools::Rectangle aSnapRect
Definition: svdovirt.hxx:40
virtual const tools::Rectangle & GetCurrentBoundRect() const override
Definition: svdovirt.cxx:114
virtual void Rotate(const Point &rRef, Degree100 nAngle, double sn, double cs) override
Definition: svdovirt.cxx:339
virtual OUString TakeObjNamePlural() const override
Definition: svdovirt.cxx:159
virtual void RecalcSnapRect() override
Snap is not done on the BoundRect but if possible on logic coordinates (i.e.
Definition: svdovirt.cxx:368
virtual void TakeObjInfo(SdrObjTransformInfoRec &rInfo) const override
Definition: svdovirt.cxx:94
virtual OUString TakeObjNameSingul() const override
Definition: svdovirt.cxx:148
virtual void NbcSetSnapRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:391
virtual void NbcReformatText() override
Definition: svdovirt.cxx:504
virtual void SetSnapRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:381
virtual bool IsPolyObj() const override
Definition: svdovirt.cxx:449
virtual Point GetSnapPoint(sal_uInt32 i) const override
Definition: svdovirt.cxx:442
virtual sal_uInt32 GetSnapPointCount() const override
snap to special points of an Object (polygon points, center of circle)
Definition: svdovirt.cxx:437
virtual void NbcSetAnchorPos(const Point &rAnchorPos) override
Definition: svdovirt.cxx:89
virtual rtl::Reference< SdrObject > getFullDragClone() const override
Definition: svdovirt.cxx:224
virtual void SetLogicRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:407
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
Definition: svdovirt.cxx:80
virtual sal_uInt32 GetHdlCount() const override
Via GetHdlCount the number of Handles can be retrieved.
Definition: svdovirt.cxx:183
SdrObject & ReferencedObj()
Definition: svdovirt.cxx:75
virtual const tools::Rectangle & GetLogicRect() const override
Definition: svdovirt.cxx:400
virtual bool beginSpecialDrag(SdrDragStat &rDrag) const override
Definition: svdovirt.cxx:233
virtual void NbcRotate(const Point &rRef, Degree100 nAngle, double sn, double cs) override
Definition: svdovirt.cxx:299
virtual void RecalcBoundRect() override
Definition: svdovirt.cxx:130
virtual basegfx::B2DPolyPolygon TakeXorPoly() const override
The Xor-Polygon is required by the View to drag the object.
Definition: svdovirt.cxx:170
virtual bool hasSpecialDrag() const override
The standard transformations (Move,Resize,Rotate,Mirror,Shear) are taken over by the View (TakeXorPol...
Definition: svdovirt.cxx:214
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:417
virtual void BrkCreate(SdrDragStat &rStat) override
Definition: svdovirt.cxx:275
virtual void RestoreGeoData(const SdrObjGeoData &rGeo) override
Definition: svdovirt.cxx:483
virtual void AddToPlusHdlList(SdrHdlList &rHdlList, SdrHdl &rHdl) const override
Definition: svdovirt.cxx:201
virtual Degree100 GetRotateAngle() const override
Definition: svdovirt.cxx:426
virtual void NbcMirror(const Point &rRef1, const Point &rRef2) override
Definition: svdovirt.cxx:305
virtual basegfx::B2DPolyPolygon getSpecialDragPoly(const SdrDragStat &rDrag) const override
Definition: svdovirt.cxx:243
virtual sal_uInt32 GetPointCount() const override
Definition: svdovirt.cxx:454
virtual sdr::properties::BaseProperties & GetProperties() const override
Definition: svdovirt.cxx:28
virtual void NbcSetPoint(const Point &rPnt, sal_uInt32 i) override
Definition: svdovirt.cxx:464
virtual bool HasMacro() const override
Definition: svdovirt.cxx:509
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: svdovirt.cxx:293
virtual void SaveGeoData(SdrObjGeoData &rGeo) const override
Definition: svdovirt.cxx:478
virtual ~SdrVirtObj() override
Definition: svdovirt.cxx:65
virtual std::unique_ptr< SdrObjGeoData > GetGeoData() const override
Definition: svdovirt.cxx:490
virtual Degree100 GetShearAngle(bool bVertical=false) const override
Definition: svdovirt.cxx:431
virtual void Mirror(const Point &rRef1, const Point &rRef2) override
Definition: svdovirt.cxx:349
virtual void PaintMacro(OutputDevice &rOut, const tools::Rectangle &rDirtyRect, const SdrObjMacroHitRec &rRec) const override
Definition: svdovirt.cxx:524
virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat &rDrag) const override
Polygon dragged by the user when creating the object.
Definition: svdovirt.cxx:280
virtual const tools::Rectangle & GetSnapRect() const override
Definition: svdovirt.cxx:374
virtual SdrObject * CheckMacroHit(const SdrObjMacroHitRec &rRec) const override
Definition: svdovirt.cxx:514
virtual Point GetPoint(sal_uInt32 i) const override
Definition: svdovirt.cxx:459
virtual void AddToHdlList(SdrHdlList &rHdlList) const override
Definition: svdovirt.cxx:188
virtual const tools::Rectangle & GetLastBoundRect() const override
Definition: svdovirt.cxx:122
virtual SdrInventor GetObjInventor() const override
Definition: svdovirt.cxx:99
virtual void Resize(const Point &rRef, const Fraction &xFact, const Fraction &yFact, bool bUnsetRelative=true) override
Definition: svdovirt.cxx:329
virtual bool supportsFullDrag() const override
Definition: svdovirt.cxx:219
virtual bool DoMacro(const SdrObjMacroHitRec &rRec) override
Definition: svdovirt.cxx:529
bool IsEmpty() const
void transform(const basegfx::B2DHomMatrix &rMatrix)
OUString sName
OUString aName
B2DHomMatrix createTranslateB2DHomMatrix(double fTranslateX, double fTranslateY)
int i
PointerStyle
SdrInventor
Definition: svdobj.hxx:99
SdrObjKind
Definition: svdobjkind.hxx:25
SdrCreateCmd
Definition: svdtypes.hxx:27