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
114void SdrVirtObj::SetName(const OUString& rStr, const bool bSetChanged)
115{
116 return mxRefObj->SetName(rStr, bSetChanged);
117}
118
119const OUString & SdrVirtObj::GetName() const
120{
121 return mxRefObj->GetName();
122}
123
124void SdrVirtObj::SetTitle(const OUString& rStr)
125{
126 return mxRefObj->SetTitle(rStr);
127}
128
129OUString SdrVirtObj::GetTitle() const
130{
131 return mxRefObj->GetTitle();
132}
133
134void SdrVirtObj::SetDescription(const OUString& rStr)
135{
136 return mxRefObj->SetDescription(rStr);
137}
138
140{
141 return mxRefObj->GetDescription();
142}
143
145{
146 auto aRectangle = mxRefObj->GetCurrentBoundRect(); // TODO: Optimize this.
147 aRectangle += m_aAnchor;
148 setOutRectangleConst(aRectangle);
149 return getOutRectangle();
150}
151
153{
154 auto aRectangle = mxRefObj->GetLastBoundRect(); // TODO: Optimize this.
155 aRectangle += m_aAnchor;
156 setOutRectangleConst(aRectangle);
157 return getOutRectangle();
158}
159
161{
162 tools::Rectangle aRectangle = mxRefObj->GetCurrentBoundRect();
163 aRectangle += m_aAnchor;
164 setOutRectangle(aRectangle);
165}
166
168{
169 return new SdrVirtObj(rTargetModel, *this);
170 // TTTT not sure if the above works - how could SdrObjFactory::MakeNewObject
171 // create an object with correct rRefObj (?) OTOH VirtObj probably needs not
172 // to be cloned ever - only used in Writer for multiple instances e.g. Header/Footer
173 // return new SdrVirtObj(
174 // getSdrModelFromSdrObject(),
175 // rRefObj); // only a further reference
176}
177
179{
180 OUString sName = "[" + mxRefObj->TakeObjNameSingul() + "]";
181
182 OUString aName(GetName());
183 if (!aName.isEmpty())
184 sName += " '" + aName + "'";
185
186 return sName;
187}
188
190{
191 return "[" + mxRefObj->TakeObjNamePlural() + "]";
192}
193
195{
196 // RotGrfFlyFrame: If true, this SdrObject supports only limited rotation
197 return mxRefObj->HasLimitedRotation();
198}
199
201{
202 basegfx::B2DPolyPolygon aPolyPolygon(mxRefObj->TakeXorPoly());
203
204 if(m_aAnchor.X() || m_aAnchor.Y())
205 {
207 }
208
209 return aPolyPolygon;
210}
211
212
213sal_uInt32 SdrVirtObj::GetHdlCount() const
214{
215 return mxRefObj->GetHdlCount();
216}
217
219{
220 SdrHdlList tempList(nullptr);
221 mxRefObj->AddToHdlList(tempList);
222 for (size_t i=0; i<tempList.GetHdlCount(); ++i)
223 {
224 SdrHdl* pHdl = tempList.GetHdl(i);
225 Point aP(pHdl->GetPos()+m_aAnchor);
226 pHdl->SetPos(aP);
227 }
228 tempList.MoveTo(rHdlList);
229}
230
232{
233 SdrHdlList tempList(nullptr);
234 mxRefObj->AddToPlusHdlList(tempList, rHdl);
235 for (size_t i=0; i<tempList.GetHdlCount(); ++i)
236 {
237 SdrHdl* pHdl = tempList.GetHdl(i);
238 Point aP(pHdl->GetPos()+m_aAnchor);
239 pHdl->SetPos(aP);
240 }
241 tempList.MoveTo(rHdlList);
242}
243
245{
246 return mxRefObj->hasSpecialDrag();
247}
248
250{
251 return false;
252}
253
255{
256 SdrObject& rReferencedObject = const_cast<SdrVirtObj*>(this)->ReferencedObj();
259 SdrDragView::GetObjGraphic(rReferencedObject),
260 GetLogicRect()));
261}
262
264{
265 return mxRefObj->beginSpecialDrag(rDrag);
266}
267
269{
270 return mxRefObj->applySpecialDrag(rDrag);
271}
272
274{
275 return mxRefObj->getSpecialDragPoly(rDrag);
276 // TODO: we don't handle offsets yet!
277}
278
280{
281 return mxRefObj->getSpecialDragComment(rDrag);
282}
283
284
286{
287 return mxRefObj->BegCreate(rStat);
288}
289
291{
292 return mxRefObj->MovCreate(rStat);
293}
294
296{
297 return mxRefObj->EndCreate(rStat,eCmd);
298}
299
301{
302 return mxRefObj->BckCreate(rStat);
303}
304
306{
307 mxRefObj->BrkCreate(rStat);
308}
309
311{
312 return mxRefObj->TakeCreatePoly(rDrag);
313 // TODO: we don't handle offsets yet!
314}
315
316
317void SdrVirtObj::NbcMove(const Size& rSiz)
318{
319 m_aAnchor.Move(rSiz);
321}
322
323void SdrVirtObj::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact)
324{
325 mxRefObj->NbcResize(rRef-m_aAnchor,xFact,yFact);
327}
328
329void SdrVirtObj::NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs)
330{
331 mxRefObj->NbcRotate(rRef-m_aAnchor,nAngle,sn,cs);
333}
334
335void SdrVirtObj::NbcMirror(const Point& rRef1, const Point& rRef2)
336{
337 mxRefObj->NbcMirror(rRef1-m_aAnchor,rRef2-m_aAnchor);
339}
340
341void SdrVirtObj::NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear)
342{
343 mxRefObj->NbcShear(rRef-m_aAnchor,nAngle,tn,bVShear);
345}
346
347
348void SdrVirtObj::Move(const Size& rSiz)
349{
350 if (!rSiz.IsEmpty()) {
351 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
352 NbcMove(rSiz);
353 SetChanged();
356 }
357}
358
359void SdrVirtObj::Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bUnsetRelative)
360{
361 if (xFact.GetNumerator()!=xFact.GetDenominator() || yFact.GetNumerator()!=yFact.GetDenominator()) {
362 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
363 mxRefObj->Resize(rRef-m_aAnchor,xFact,yFact, bUnsetRelative);
366 }
367}
368
369void SdrVirtObj::Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs)
370{
371 if (nAngle) {
372 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
373 mxRefObj->Rotate(rRef-m_aAnchor,nAngle,sn,cs);
376 }
377}
378
379void SdrVirtObj::Mirror(const Point& rRef1, const Point& rRef2)
380{
381 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
382 mxRefObj->Mirror(rRef1-m_aAnchor,rRef2-m_aAnchor);
385}
386
387void SdrVirtObj::Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear)
388{
389 if (nAngle) {
390 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
391 mxRefObj->Shear(rRef-m_aAnchor,nAngle,tn,bVShear);
394 }
395}
396
397
399{
400 aSnapRect=mxRefObj->GetSnapRect();
402}
403
405{
406 const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetSnapRect();
407 const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor;
408 return aSnapRect;
409}
410
412{
413 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
414 tools::Rectangle aR(rRect);
415 aR-=m_aAnchor;
416 mxRefObj->SetSnapRect(aR);
419}
420
422{
423 tools::Rectangle aR(rRect);
424 aR-=m_aAnchor;
426 mxRefObj->NbcSetSnapRect(aR);
427}
428
429
431{
432 const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetLogicRect(); // An abuse of aSnapRect!
433 const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor; // If there's trouble, we need another Rectangle Member (or a Heap).
434 return aSnapRect;
435}
436
438{
439 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
440 tools::Rectangle aR(rRect);
441 aR-=m_aAnchor;
442 mxRefObj->SetLogicRect(aR);
445}
446
448{
449 tools::Rectangle aR(rRect);
450 aR-=m_aAnchor;
452 mxRefObj->NbcSetLogicRect(aR);
453}
454
455
457{
458 return mxRefObj->GetRotateAngle();
459}
460
462{
463 return mxRefObj->GetShearAngle(bVertical);
464}
465
466
468{
469 return mxRefObj->GetSnapPointCount();
470}
471
473{
474 Point aP(mxRefObj->GetSnapPoint(i));
475 aP+=m_aAnchor;
476 return aP;
477}
478
480{
481 return mxRefObj->IsPolyObj();
482}
483
485{
486 return mxRefObj->GetPointCount();
487}
488
489Point SdrVirtObj::GetPoint(sal_uInt32 i) const
490{
491 return mxRefObj->GetPoint(i) + m_aAnchor;
492}
493
494void SdrVirtObj::NbcSetPoint(const Point& rPnt, sal_uInt32 i)
495{
496 Point aP(rPnt);
497 aP-=m_aAnchor;
498 mxRefObj->SetPoint(aP,i);
500}
501
502
503std::unique_ptr<SdrObjGeoData> SdrVirtObj::NewGeoData() const
504{
505 return mxRefObj->NewGeoData();
506}
507
509{
510 mxRefObj->SaveGeoData(rGeo);
511}
512
514{
515 mxRefObj->RestoreGeoData(rGeo);
517}
518
519
520std::unique_ptr<SdrObjGeoData> SdrVirtObj::GetGeoData() const
521{
522 return mxRefObj->GetGeoData();
523}
524
526{
527 tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect();
528 mxRefObj->SetGeoData(rGeo);
531}
532
533
535{
536 mxRefObj->NbcReformatText();
537}
538
540{
541 return mxRefObj->HasMacro();
542}
543
545{
546 return mxRefObj->CheckMacroHit(rRec); // TODO: positioning offset
547}
548
550{
551 return mxRefObj->GetMacroPointer(rRec); // TODO: positioning offset
552}
553
554void SdrVirtObj::PaintMacro(OutputDevice& rOut, const tools::Rectangle& rDirtyRect, const SdrObjMacroHitRec& rRec) const
555{
556 mxRefObj->PaintMacro(rOut,rDirtyRect,rRec); // TODO: positioning offset
557}
558
560{
561 return mxRefObj->DoMacro(rRec); // TODO: positioning offset
562}
563
565{
566 // #i73248# default offset of SdrVirtObj is aAnchor
567 return m_aAnchor;
568}
569
570/* 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:597
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:174
Provides information about various ZObject properties.
Definition: svdobj.hxx:196
Abstract DrawObject.
Definition: svdobj.hxx:260
void setOutRectangleConst(tools::Rectangle const &rRectangle) const
Definition: svdobj.cxx:3142
friend class SdrVirtObj
Definition: svdobj.hxx:269
void ActionChanged() const
Definition: svdobj.cxx:273
const tools::Rectangle & getOutRectangle() const
Definition: svdobj.cxx:3137
void BroadcastObjectChange() const
Definition: svdobj.cxx:982
Point m_aAnchor
Definition: svdobj.hxx:895
SdrModel & getSdrModelFromSdrObject() const
Definition: svdobj.cxx:289
SdrObjUserCall * m_pUserCall
Definition: svdobj.hxx:896
void SendUserCall(SdrUserCallType eUserCall, const tools::Rectangle &rBoundRect) const
Definition: svdobj.cxx:2727
virtual void SetChanged()
Definition: svdobj.cxx:1006
bool m_bClosedObj
Definition: svdobj.hxx:914
bool m_bVirtObj
Definition: svdobj.hxx:900
void setOutRectangle(tools::Rectangle const &rRectangle)
Definition: svdobj.cxx:3147
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:503
virtual void Move(const Size &rSiz) override
Definition: svdovirt.cxx:348
virtual bool applySpecialDrag(SdrDragStat &rDrag) override
Definition: svdovirt.cxx:268
virtual bool MovCreate(SdrDragStat &rStat) override
Definition: svdovirt.cxx:290
virtual bool HasLimitedRotation() const override
Definition: svdovirt.cxx:194
virtual OUString getSpecialDragComment(const SdrDragStat &rDrag) const override
Definition: svdovirt.cxx:279
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:317
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:285
virtual rtl::Reference< SdrObject > CloneSdrObject(SdrModel &rTargetModel) const override
Definition: svdovirt.cxx:167
rtl::Reference< SdrObject > mxRefObj
Definition: svdovirt.hxx:39
virtual PointerStyle GetMacroPointer(const SdrObjMacroHitRec &rRec) const override
Definition: svdovirt.cxx:549
virtual void Shear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear) override
Definition: svdovirt.cxx:387
virtual void NbcShear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear) override
Definition: svdovirt.cxx:341
virtual SdrObjList * GetSubList() const override
Definition: svdovirt.cxx:109
virtual bool BckCreate(SdrDragStat &rStat) override
Definition: svdovirt.cxx:300
virtual std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact() override
Definition: svdovirt.cxx:35
virtual void SetGeoData(const SdrObjGeoData &rGeo) override
Definition: svdovirt.cxx:525
virtual Point GetOffset() const
Definition: svdovirt.cxx:564
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
Definition: svdovirt.cxx:295
tools::Rectangle aSnapRect
Definition: svdovirt.hxx:40
virtual const tools::Rectangle & GetCurrentBoundRect() const override
Definition: svdovirt.cxx:144
virtual void Rotate(const Point &rRef, Degree100 nAngle, double sn, double cs) override
Definition: svdovirt.cxx:369
virtual OUString TakeObjNamePlural() const override
Definition: svdovirt.cxx:189
virtual void RecalcSnapRect() override
Snap is not done on the BoundRect but if possible on logic coordinates (i.e.
Definition: svdovirt.cxx:398
virtual void TakeObjInfo(SdrObjTransformInfoRec &rInfo) const override
Definition: svdovirt.cxx:94
virtual void SetDescription(const OUString &rStr) override
Definition: svdovirt.cxx:134
virtual OUString TakeObjNameSingul() const override
Definition: svdovirt.cxx:178
virtual void SetTitle(const OUString &rStr) override
Definition: svdovirt.cxx:124
virtual void NbcSetSnapRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:421
virtual void NbcReformatText() override
Definition: svdovirt.cxx:534
virtual void SetSnapRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:411
virtual bool IsPolyObj() const override
Definition: svdovirt.cxx:479
virtual Point GetSnapPoint(sal_uInt32 i) const override
Definition: svdovirt.cxx:472
virtual sal_uInt32 GetSnapPointCount() const override
snap to special points of an Object (polygon points, center of circle)
Definition: svdovirt.cxx:467
virtual void NbcSetAnchorPos(const Point &rAnchorPos) override
Definition: svdovirt.cxx:89
virtual rtl::Reference< SdrObject > getFullDragClone() const override
Definition: svdovirt.cxx:254
virtual void SetLogicRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:437
virtual OUString GetTitle() const override
Definition: svdovirt.cxx:129
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:213
SdrObject & ReferencedObj()
Definition: svdovirt.cxx:75
virtual const tools::Rectangle & GetLogicRect() const override
Definition: svdovirt.cxx:430
virtual void SetName(const OUString &rStr, const bool bSetChanged=true) override
Definition: svdovirt.cxx:114
virtual bool beginSpecialDrag(SdrDragStat &rDrag) const override
Definition: svdovirt.cxx:263
virtual void NbcRotate(const Point &rRef, Degree100 nAngle, double sn, double cs) override
Definition: svdovirt.cxx:329
virtual void RecalcBoundRect() override
Definition: svdovirt.cxx:160
virtual OUString GetDescription() const override
Definition: svdovirt.cxx:139
virtual basegfx::B2DPolyPolygon TakeXorPoly() const override
The Xor-Polygon is required by the View to drag the object.
Definition: svdovirt.cxx:200
virtual bool hasSpecialDrag() const override
The standard transformations (Move,Resize,Rotate,Mirror,Shear) are taken over by the View (TakeXorPol...
Definition: svdovirt.cxx:244
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
Definition: svdovirt.cxx:447
virtual void BrkCreate(SdrDragStat &rStat) override
Definition: svdovirt.cxx:305
virtual void RestoreGeoData(const SdrObjGeoData &rGeo) override
Definition: svdovirt.cxx:513
virtual void AddToPlusHdlList(SdrHdlList &rHdlList, SdrHdl &rHdl) const override
Definition: svdovirt.cxx:231
virtual Degree100 GetRotateAngle() const override
Definition: svdovirt.cxx:456
virtual void NbcMirror(const Point &rRef1, const Point &rRef2) override
Definition: svdovirt.cxx:335
virtual basegfx::B2DPolyPolygon getSpecialDragPoly(const SdrDragStat &rDrag) const override
Definition: svdovirt.cxx:273
virtual sal_uInt32 GetPointCount() const override
Definition: svdovirt.cxx:484
virtual sdr::properties::BaseProperties & GetProperties() const override
Definition: svdovirt.cxx:28
virtual void NbcSetPoint(const Point &rPnt, sal_uInt32 i) override
Definition: svdovirt.cxx:494
virtual bool HasMacro() const override
Definition: svdovirt.cxx:539
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: svdovirt.cxx:323
virtual void SaveGeoData(SdrObjGeoData &rGeo) const override
Definition: svdovirt.cxx:508
virtual ~SdrVirtObj() override
Definition: svdovirt.cxx:65
virtual std::unique_ptr< SdrObjGeoData > GetGeoData() const override
Definition: svdovirt.cxx:520
virtual Degree100 GetShearAngle(bool bVertical=false) const override
Definition: svdovirt.cxx:461
virtual void Mirror(const Point &rRef1, const Point &rRef2) override
Definition: svdovirt.cxx:379
virtual void PaintMacro(OutputDevice &rOut, const tools::Rectangle &rDirtyRect, const SdrObjMacroHitRec &rRec) const override
Definition: svdovirt.cxx:554
virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat &rDrag) const override
Polygon dragged by the user when creating the object.
Definition: svdovirt.cxx:310
virtual const tools::Rectangle & GetSnapRect() const override
Definition: svdovirt.cxx:404
virtual SdrObject * CheckMacroHit(const SdrObjMacroHitRec &rRec) const override
Definition: svdovirt.cxx:544
virtual Point GetPoint(sal_uInt32 i) const override
Definition: svdovirt.cxx:489
virtual void AddToHdlList(SdrHdlList &rHdlList) const override
Definition: svdovirt.cxx:218
virtual const OUString & GetName() const override
Definition: svdovirt.cxx:119
virtual const tools::Rectangle & GetLastBoundRect() const override
Definition: svdovirt.cxx:152
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:359
virtual bool supportsFullDrag() const override
Definition: svdovirt.cxx:249
virtual bool DoMacro(const SdrObjMacroHitRec &rRec) override
Definition: svdovirt.cxx:559
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:98
SdrObjKind
Definition: svdobjkind.hxx:25
SdrCreateCmd
Definition: svdtypes.hxx:27