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