LibreOffice Module svx (master)  1
sdrtextprimitive2d.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 
21 #include <svx/svdotext.hxx>
24 #include <editeng/outlobj.hxx>
25 #include <editeng/editobj.hxx>
26 #include <editeng/flditem.hxx>
28 #include <svx/unoapi.hxx>
29 #include <svx/svdpage.hxx>
30 #include <svx/svdmodel.hxx>
31 #include <svx/svdoutl.hxx>
32 #include <com/sun/star/beans/XPropertySet.hpp>
33 
34 
35 using namespace com::sun::star;
36 
37 
38 namespace
39 {
40  sal_Int16 getPageNumber(const uno::Reference< drawing::XDrawPage >& rxDrawPage)
41  {
42  sal_Int16 nRetval(0);
43  uno::Reference< beans::XPropertySet > xSet(rxDrawPage, uno::UNO_QUERY);
44 
45  if (xSet.is())
46  {
47  try
48  {
49  const uno::Any aNumber(xSet->getPropertyValue("Number"));
50  aNumber >>= nRetval;
51  }
52  catch(const uno::Exception&)
53  {
54  OSL_ASSERT(false);
55  }
56  }
57 
58  return nRetval;
59  }
60 
61  sal_Int16 getPageCount(const uno::Reference< drawing::XDrawPage >& rxDrawPage)
62  {
63  sal_Int16 nRetval(0);
64  SdrPage* pPage = GetSdrPageFromXDrawPage(rxDrawPage);
65 
66  if(pPage)
67  {
68  if( (pPage->GetPageNum() == 0) && !pPage->IsMasterPage() )
69  {
70  // handout page!
72  }
73  else
74  {
75  const sal_uInt16 nPageCount(pPage->getSdrModelFromSdrPage().GetPageCount());
76  nRetval = (static_cast<sal_Int16>(nPageCount) - 1) / 2;
77  }
78  }
79 
80  return nRetval;
81  }
82 } // end of anonymous namespace
83 
84 
86 {
87  // support for XTEXT_PAINTSHAPE_BEGIN/XTEXT_PAINTSHAPE_END Metafile comments
88  // for slideshow. This uses TextHierarchyBlockPrimitive2D to mark a text block.
89  // ATM there is only one text block per SdrObject, this may get more in the future
90  void SdrTextPrimitive2D::encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer& rContainer, Primitive2DContainer&& aCandidate)
91  {
93  }
94 
95  SdrTextPrimitive2D::SdrTextPrimitive2D(
96  const SdrText* pSdrText,
97  const OutlinerParaObject& rOutlinerParaObject)
98  : mrSdrText(const_cast< SdrText* >(pSdrText)),
99  maOutlinerParaObject(rOutlinerParaObject),
100  mnLastPageNumber(0),
101  mnLastPageCount(0),
102  mbContainsPageField(false),
103  mbContainsPageCountField(false),
104  mbContainsOtherFields(false)
105  {
107 
114  }
115 
117 
118  bool SdrTextPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
119  {
120  if(BufferedDecompositionPrimitive2D::operator==(rPrimitive))
121  {
122  const SdrTextPrimitive2D& rCompare = static_cast<const SdrTextPrimitive2D&>(rPrimitive);
123 
124  return (
125 
126  // compare OPO and content, but not WrongList
128 
129  // also compare WrongList (not-persistent data, but visualized)
131  }
132 
133  return false;
134  }
135 
137  {
138  uno::Reference< drawing::XDrawPage > xCurrentlyVisualizingPage;
139  bool bCurrentlyVisualizingPageIsSet(false);
140  Color aNewTextBackgroundColor;
141  bool bNewTextBackgroundColorIsSet(false);
142  sal_Int16 nCurrentlyValidPageNumber(0);
143  sal_Int16 nCurrentlyValidPageCount(0);
144 
145  if(!getBuffered2DDecomposition().empty())
146  {
147  bool bDoDelete(false);
148 
149  // check visualized page
151  {
152  // get visualized page and remember
153  xCurrentlyVisualizingPage = rViewInformation.getVisualizedPage();
154  bCurrentlyVisualizingPageIsSet = true;
155 
156  if(xCurrentlyVisualizingPage != mxLastVisualizingPage)
157  {
158  bDoDelete = true;
159  }
160 
161  // #i98870# check visualized PageNumber
162  if(!bDoDelete && mbContainsPageField)
163  {
164  nCurrentlyValidPageNumber = getPageNumber(xCurrentlyVisualizingPage);
165 
166  if(nCurrentlyValidPageNumber != mnLastPageNumber)
167  {
168  bDoDelete = true;
169  }
170  }
171 
172  // #i98870# check visualized PageCount, too
173  if(!bDoDelete && mbContainsPageCountField)
174  {
175  nCurrentlyValidPageCount = getPageCount(xCurrentlyVisualizingPage);
176 
177  if(nCurrentlyValidPageCount != mnLastPageCount)
178  {
179  bDoDelete = true;
180  }
181  }
182  }
183 
184  // #i101443# check change of TextBackgroundolor
185  if(!bDoDelete && getSdrText())
186  {
188  aNewTextBackgroundColor = rDrawOutliner.GetBackgroundColor();
189  bNewTextBackgroundColorIsSet = true;
190 
191  if(aNewTextBackgroundColor != maLastTextBackgroundColor)
192  {
193  bDoDelete = true;
194  }
195  }
196 
197  if(bDoDelete)
198  {
200  }
201  }
202 
203  if(getBuffered2DDecomposition().empty())
204  {
205  if(!bCurrentlyVisualizingPageIsSet && mbContainsPageField)
206  {
207  xCurrentlyVisualizingPage = rViewInformation.getVisualizedPage();
208  }
209 
210  if(!nCurrentlyValidPageNumber && mbContainsPageField)
211  {
212  nCurrentlyValidPageNumber = getPageNumber(xCurrentlyVisualizingPage);
213  }
214 
215  if(!nCurrentlyValidPageCount && mbContainsPageCountField)
216  {
217  nCurrentlyValidPageCount = getPageCount(xCurrentlyVisualizingPage);
218  }
219 
220  if(!bNewTextBackgroundColorIsSet && getSdrText())
221  {
223  aNewTextBackgroundColor = rDrawOutliner.GetBackgroundColor();
224  }
225 
226  const_cast< SdrTextPrimitive2D* >(this)->mxLastVisualizingPage = xCurrentlyVisualizingPage;
227  const_cast< SdrTextPrimitive2D* >(this)->mnLastPageNumber = nCurrentlyValidPageNumber;
228  const_cast< SdrTextPrimitive2D* >(this)->mnLastPageCount = nCurrentlyValidPageCount;
229  const_cast< SdrTextPrimitive2D* >(this)->maLastTextBackgroundColor = aNewTextBackgroundColor;
230  }
231 
232  // call parent
233  BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation);
234  }
235 
236 
237 
238 
240  {
241  Primitive2DContainer aRetval;
242  getSdrText()->GetObject().impDecomposeContourTextPrimitive(aRetval, *this, aViewInformation);
243 
244  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
245  }
246 
248  const SdrText* pSdrText,
249  const OutlinerParaObject& rOutlinerParaObject,
250  const basegfx::B2DPolyPolygon& rUnitPolyPolygon,
251  const basegfx::B2DHomMatrix& rObjectTransform)
252  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
253  maUnitPolyPolygon(rUnitPolyPolygon),
254  maObjectTransform(rObjectTransform)
255  {
256  }
257 
259  {
260  if(SdrTextPrimitive2D::operator==(rPrimitive))
261  {
262  const SdrContourTextPrimitive2D& rCompare = static_cast<const SdrContourTextPrimitive2D&>(rPrimitive);
263 
264  return (getUnitPolyPolygon() == rCompare.getUnitPolyPolygon()
265  && getObjectTransform() == rCompare.getObjectTransform());
266  }
267 
268  return false;
269  }
270 
272  {
273  return new SdrContourTextPrimitive2D(
274  getSdrText(),
277  rTransform * getObjectTransform());
278  }
279 
280  // provide unique ID
282  {
284  }
285 
286 
287 
289  {
290  Primitive2DContainer aRetval;
291  getSdrText()->GetObject().impDecomposePathTextPrimitive(aRetval, *this, aViewInformation);
292 
293  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
294  }
295 
297  const SdrText* pSdrText,
298  const OutlinerParaObject& rOutlinerParaObject,
299  const basegfx::B2DPolyPolygon& rPathPolyPolygon,
300  const attribute::SdrFormTextAttribute& rSdrFormTextAttribute)
301  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
302  maPathPolyPolygon(rPathPolyPolygon),
303  maSdrFormTextAttribute(rSdrFormTextAttribute)
304  {
305  }
306 
308  {
309  if(SdrTextPrimitive2D::operator==(rPrimitive))
310  {
311  const SdrPathTextPrimitive2D& rCompare = static_cast<const SdrPathTextPrimitive2D&>(rPrimitive);
312 
313  return (getPathPolyPolygon() == rCompare.getPathPolyPolygon()
315  }
316 
317  return false;
318  }
319 
321  {
322  basegfx::B2DPolyPolygon aNewPolyPolygon(getPathPolyPolygon());
323  aNewPolyPolygon.transform(rTransform);
324 
325  return new SdrPathTextPrimitive2D(
326  getSdrText(),
328  aNewPolyPolygon,
330  }
331 
332  // provide unique ID
334  {
336  }
337 
338 
339 
341  {
342  Primitive2DContainer aRetval;
343  getSdrText()->GetObject().impDecomposeBlockTextPrimitive(aRetval, *this, aViewInformation);
344 
345  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
346  }
347 
349  const SdrText* pSdrText,
350  const OutlinerParaObject& rOutlinerParaObject,
351  const basegfx::B2DHomMatrix& rTextRangeTransform,
352  SdrTextHorzAdjust aSdrTextHorzAdjust,
353  SdrTextVertAdjust aSdrTextVertAdjust,
354  bool bFixedCellHeight,
355  bool bUnlimitedPage,
356  bool bCellText,
357  bool bWordWrap)
358  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
359  maTextRangeTransform(rTextRangeTransform),
360  maSdrTextHorzAdjust(aSdrTextHorzAdjust),
361  maSdrTextVertAdjust(aSdrTextVertAdjust),
362  mbFixedCellHeight(bFixedCellHeight),
363  mbUnlimitedPage(bUnlimitedPage),
364  mbCellText(bCellText),
365  mbWordWrap(bWordWrap)
366  {
367  }
368 
370  {
371  if(SdrTextPrimitive2D::operator==(rPrimitive))
372  {
373  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
374 
375  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
376  && getSdrTextHorzAdjust() == rCompare.getSdrTextHorzAdjust()
377  && getSdrTextVertAdjust() == rCompare.getSdrTextVertAdjust()
378  && isFixedCellHeight() == rCompare.isFixedCellHeight()
379  && getUnlimitedPage() == rCompare.getUnlimitedPage()
380  && getCellText() == rCompare.getCellText()
381  && getWordWrap() == rCompare.getWordWrap());
382  }
383 
384  return false;
385  }
386 
388  {
389  return new SdrBlockTextPrimitive2D(
390  getSdrText(),
392  rTransform * getTextRangeTransform(),
397  getCellText(),
398  getWordWrap());
399  }
400 
401  // provide unique ID
403  {
405  }
406 
407 
408 
410  {
411  Primitive2DContainer aRetval;
412  getSdrText()->GetObject().impDecomposeAutoFitTextPrimitive(aRetval, *this, aViewInformation);
413 
414  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
415  }
416 
418  const SdrText* pSdrText,
419  const OutlinerParaObject& rParaObj,
420  const ::basegfx::B2DHomMatrix& rTextRangeTransform,
421  bool bWordWrap)
422  : SdrTextPrimitive2D(pSdrText, rParaObj),
423  maTextRangeTransform(rTextRangeTransform),
424  mbWordWrap(bWordWrap)
425  {
426  }
427 
429  {
430  if(SdrTextPrimitive2D::operator==(rPrimitive))
431  {
432  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
433 
434  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
435  && getWordWrap() == rCompare.getWordWrap());
436  }
437 
438  return false;
439  }
440 
442  {
444  }
445 
446  // provide unique ID
448  {
450  }
451 
452 
453 
454 
456  const SdrText* pSdrText,
457  const OutlinerParaObject& rOutlinerParaObject,
458  const basegfx::B2DHomMatrix& rTextRangeTransform)
459  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
460  maTextRangeTransform(rTextRangeTransform)
461  { }
462 
464  {
465  Primitive2DContainer aRetval;
466  getSdrText()->GetObject().impDecomposeChainedTextPrimitive(aRetval, *this, aViewInformation);
467 
468  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
469  }
470 
472  {
473  if(SdrTextPrimitive2D::operator==(rPrimitive))
474  {
475  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
476 
477  return (getTextRangeTransform() == rCompare.getTextRangeTransform());
478  }
479 
480  return false;
481  }
482 
484  {
486  }
487 
488  // provide unique ID
490  {
492  }
493 
494 
496  {
497  Primitive2DContainer aRetval;
498  getSdrText()->GetObject().impDecomposeStretchTextPrimitive(aRetval, *this, aViewInformation);
499 
500  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
501  }
502 
504  const SdrText* pSdrText,
505  const OutlinerParaObject& rOutlinerParaObject,
506  const basegfx::B2DHomMatrix& rTextRangeTransform,
507  bool bFixedCellHeight)
508  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
509  maTextRangeTransform(rTextRangeTransform),
510  mbFixedCellHeight(bFixedCellHeight)
511  {
512  }
513 
515  {
516  if(SdrTextPrimitive2D::operator==(rPrimitive))
517  {
518  const SdrStretchTextPrimitive2D& rCompare = static_cast<const SdrStretchTextPrimitive2D&>(rPrimitive);
519 
520  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
521  && isFixedCellHeight() == rCompare.isFixedCellHeight());
522  }
523 
524  return false;
525  }
526 
528  {
529  return new SdrStretchTextPrimitive2D(
530  getSdrText(),
532  rTransform * getTextRangeTransform(),
534  }
535 
536  // provide unique ID
538  {
540  }
541 
542 } // end of namespace
543 
544 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SdrOutliner & GetDrawOutliner(const SdrTextObj *pObj=nullptr) const
Definition: svdmodel.cxx:648
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
virtual rtl::Reference< SdrTextPrimitive2D > createTransformedClone(const ::basegfx::B2DHomMatrix &rTransform) const override
static constexpr auto CLASS_ID
#define PRIMITIVE2D_ID_SDRCONTOURTEXTPRIMITIVE2D
void impDecomposeContourTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrContourTextPrimitive2D &rSdrContourTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
static constexpr auto CLASS_ID
virtual sal_uInt32 getPrimitive2DID() const override
static constexpr auto CLASS_ID
bool isWrongListEqual(const OutlinerParaObject &rCompare) const
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
const basegfx::B2DHomMatrix & getTextRangeTransform() const
const OutlinerParaObject & getOutlinerParaObject() const
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
virtual void get2DDecomposition(Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override
static void encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer &rContainer, Primitive2DContainer &&aCandidate)
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
SdrTextHorzAdjust
Definition: sdtaitm.hxx:53
SdrChainedTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtrs, const ::basegfx::B2DHomMatrix &rTextRangeTransform)
virtual rtl::Reference< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
virtual rtl::Reference< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
SdrBlockTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const basegfx::B2DHomMatrix &rTextRangeTransform, SdrTextHorzAdjust aSdrTextHorzAdjust, SdrTextVertAdjust aSdrTextVertAdjust, bool bFixedCellHeight, bool bUnlimitedPage, bool bCellText, bool bWordWrap)
const basegfx::B2DPolyPolygon & getUnitPolyPolygon() const
void impDecomposeBlockTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrBlockTextPrimitive2D &rSdrBlockTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
#define PRIMITIVE2D_ID_SDRAUTOFITTEXTPRIMITIVE2D
virtual sal_uInt32 getPrimitive2DID() const override
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
const css::uno::Reference< css::drawing::XDrawPage > & getVisualizedPage() const
const attribute::SdrFormTextAttribute & getSdrFormTextAttribute() const
SdrPathTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const basegfx::B2DPolyPolygon &rPathPolyPolygon, const attribute::SdrFormTextAttribute &rSdrFormTextAttribute)
void impDecomposeChainedTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrChainedTextPrimitive2D &rSdrChainedTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
void impDecomposeStretchTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrStretchTextPrimitive2D &rSdrStretchTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
virtual sal_uInt32 getPrimitive2DID() const override
const EditTextObject & GetTextObject() const
virtual rtl::Reference< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
const Primitive2DContainer & getBuffered2DDecomposition() const
#define PRIMITIVE2D_ID_SDRSTRETCHTEXTPRIMITIVE2D
virtual void get2DDecomposition(Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override
const basegfx::B2DPolyPolygon & getPathPolyPolygon() const
virtual sal_uInt32 getPrimitive2DID() const override
SdrTextObj & GetObject() const
Definition: svdtext.hxx:66
virtual sal_uInt32 getPrimitive2DID() const override
#define PRIMITIVE2D_ID_SDRBLOCKTEXTPRIMITIVE2D
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
sal_uInt16 getHandoutPageCount() const
Definition: svdmodel.hxx:231
SdrAutoFitTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const ::basegfx::B2DHomMatrix &rTextRangeTransform, bool bWordWrap)
SdrModel & getSdrModelFromSdrObject() const
Definition: svdobj.cxx:279
void transform(const basegfx::B2DHomMatrix &rMatrix)
#define PRIMITIVE2D_ID_SDRCHAINEDTEXTPRIMITIVE2D
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
static constexpr auto CLASS_ID
virtual bool HasField(sal_Int32 nType=css::text::textfield::Type::UNSPECIFIED) const =0
bool IsMasterPage() const
Definition: svdpage.hxx:451
css::uno::Reference< css::drawing::XDrawPage > mxLastVisualizingPage
static constexpr auto CLASS_ID
SdrStretchTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const basegfx::B2DHomMatrix &rTextRangeTransform, bool bFixedCellHeight)
virtual rtl::Reference< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
sal_Int32 getPageCount(const uno::Reference< frame::XModel > &xModel)
void impDecomposePathTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrPathTextPrimitive2D &rSdrPathTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
const basegfx::B2DHomMatrix & getObjectTransform() const
SdrPage * GetSdrPageFromXDrawPage(const uno::Reference< drawing::XDrawPage > &xDrawPage) noexcept
returns the SdrObject from the given StarOffice API wrapper
Definition: unopage.cxx:883
SdrModel & getSdrModelFromSdrPage() const
Definition: svdpage.hxx:390
SdrContourTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const basegfx::B2DPolyPolygon &rUnitPolyPolygon, const basegfx::B2DHomMatrix &rObjectTransform)
static constexpr auto CLASS_ID
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
reference_type * get() const
::tools::WeakReference< SdrText > mrSdrText
void impDecomposeAutoFitTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrAutoFitTextPrimitive2D &rSdrAutofitTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
const basegfx::B2DHomMatrix & getTextRangeTransform() const
const basegfx::B2DHomMatrix & getTextRangeTransform() const
virtual sal_uInt32 getPrimitive2DID() const override
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
virtual rtl::Reference< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
const basegfx::B2DHomMatrix & getTextRangeTransform() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
Definition: svdpage.hxx:365
sal_uInt16 GetPageNum() const
Definition: svdpage.cxx:1576
void setBuffered2DDecomposition(Primitive2DContainer &&rNew)
SdrTextVertAdjust
Definition: sdtaitm.hxx:29
sal_uInt16 GetPageCount() const
Definition: svdmodel.cxx:1805
Color const & GetBackgroundColor() const
#define PRIMITIVE2D_ID_SDRPATHTEXTPRIMITIVE2D