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 #include <osl/diagnose.h>
34 
35 
36 using namespace com::sun::star;
37 
38 
39 namespace
40 {
41  sal_Int16 getPageNumber(const uno::Reference< drawing::XDrawPage >& rxDrawPage)
42  {
43  sal_Int16 nRetval(0);
44  uno::Reference< beans::XPropertySet > xSet(rxDrawPage, uno::UNO_QUERY);
45 
46  if (xSet.is())
47  {
48  try
49  {
50  const uno::Any aNumber(xSet->getPropertyValue("Number"));
51  aNumber >>= nRetval;
52  }
53  catch(const uno::Exception&)
54  {
55  OSL_ASSERT(false);
56  }
57  }
58 
59  return nRetval;
60  }
61 
62  sal_Int16 getPageCount(const uno::Reference< drawing::XDrawPage >& rxDrawPage)
63  {
64  sal_Int16 nRetval(0);
65  SdrPage* pPage = GetSdrPageFromXDrawPage(rxDrawPage);
66 
67  if(pPage)
68  {
69  if( (pPage->GetPageNum() == 0) && !pPage->IsMasterPage() )
70  {
71  // handout page!
73  }
74  else
75  {
76  const sal_uInt16 nPageCount(pPage->getSdrModelFromSdrPage().GetPageCount());
77  nRetval = (static_cast<sal_Int16>(nPageCount) - 1) / 2;
78  }
79  }
80 
81  return nRetval;
82  }
83 } // end of anonymous namespace
84 
85 
87 {
88  // support for XTEXT_PAINTSHAPE_BEGIN/XTEXT_PAINTSHAPE_END Metafile comments
89  // for slideshow. This uses TextHierarchyBlockPrimitive2D to mark a text block.
90  // ATM there is only one text block per SdrObject, this may get more in the future
91  void SdrTextPrimitive2D::encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer& rContainer, Primitive2DContainer&& aCandidate)
92  {
94  }
95 
96  SdrTextPrimitive2D::SdrTextPrimitive2D(
97  const SdrText* pSdrText,
98  const OutlinerParaObject& rOutlinerParaObject)
99  : mrSdrText(const_cast< SdrText* >(pSdrText)),
100  maOutlinerParaObject(rOutlinerParaObject),
101  mnLastPageNumber(0),
102  mnLastPageCount(0),
103  mbContainsPageField(false),
104  mbContainsPageCountField(false),
105  mbContainsOtherFields(false)
106  {
108 
115  }
116 
118 
119  bool SdrTextPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
120  {
121  if(BufferedDecompositionPrimitive2D::operator==(rPrimitive))
122  {
123  const SdrTextPrimitive2D& rCompare = static_cast<const SdrTextPrimitive2D&>(rPrimitive);
124 
125  return (
126 
127  // compare OPO and content, but not WrongList
129 
130  // also compare WrongList (not-persistent data, but visualized)
132  }
133 
134  return false;
135  }
136 
138  {
139  uno::Reference< drawing::XDrawPage > xCurrentlyVisualizingPage;
140  bool bCurrentlyVisualizingPageIsSet(false);
141  Color aNewTextBackgroundColor;
142  bool bNewTextBackgroundColorIsSet(false);
143  sal_Int16 nCurrentlyValidPageNumber(0);
144  sal_Int16 nCurrentlyValidPageCount(0);
145 
146  if(!getBuffered2DDecomposition().empty())
147  {
148  bool bDoDelete(false);
149 
150  // check visualized page
152  {
153  // get visualized page and remember
154  xCurrentlyVisualizingPage = rViewInformation.getVisualizedPage();
155  bCurrentlyVisualizingPageIsSet = true;
156 
157  if(xCurrentlyVisualizingPage != mxLastVisualizingPage)
158  {
159  bDoDelete = true;
160  }
161 
162  // #i98870# check visualized PageNumber
163  if(!bDoDelete && mbContainsPageField)
164  {
165  nCurrentlyValidPageNumber = getPageNumber(xCurrentlyVisualizingPage);
166 
167  if(nCurrentlyValidPageNumber != mnLastPageNumber)
168  {
169  bDoDelete = true;
170  }
171  }
172 
173  // #i98870# check visualized PageCount, too
174  if(!bDoDelete && mbContainsPageCountField)
175  {
176  nCurrentlyValidPageCount = getPageCount(xCurrentlyVisualizingPage);
177 
178  if(nCurrentlyValidPageCount != mnLastPageCount)
179  {
180  bDoDelete = true;
181  }
182  }
183  }
184 
185  // #i101443# check change of TextBackgroundolor
186  if(!bDoDelete && getSdrText())
187  {
189  aNewTextBackgroundColor = rDrawOutliner.GetBackgroundColor();
190  bNewTextBackgroundColorIsSet = true;
191 
192  if(aNewTextBackgroundColor != maLastTextBackgroundColor)
193  {
194  bDoDelete = true;
195  }
196  }
197 
198  if(bDoDelete)
199  {
201  }
202  }
203 
204  if(getBuffered2DDecomposition().empty())
205  {
206  if(!bCurrentlyVisualizingPageIsSet && mbContainsPageField)
207  {
208  xCurrentlyVisualizingPage = rViewInformation.getVisualizedPage();
209  }
210 
211  if(!nCurrentlyValidPageNumber && mbContainsPageField)
212  {
213  nCurrentlyValidPageNumber = getPageNumber(xCurrentlyVisualizingPage);
214  }
215 
216  if(!nCurrentlyValidPageCount && mbContainsPageCountField)
217  {
218  nCurrentlyValidPageCount = getPageCount(xCurrentlyVisualizingPage);
219  }
220 
221  if(!bNewTextBackgroundColorIsSet && getSdrText())
222  {
224  aNewTextBackgroundColor = rDrawOutliner.GetBackgroundColor();
225  }
226 
227  const_cast< SdrTextPrimitive2D* >(this)->mxLastVisualizingPage = xCurrentlyVisualizingPage;
228  const_cast< SdrTextPrimitive2D* >(this)->mnLastPageNumber = nCurrentlyValidPageNumber;
229  const_cast< SdrTextPrimitive2D* >(this)->mnLastPageCount = nCurrentlyValidPageCount;
230  const_cast< SdrTextPrimitive2D* >(this)->maLastTextBackgroundColor = aNewTextBackgroundColor;
231  }
232 
233  // call parent
234  BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation);
235  }
236 
237 
238 
239 
241  {
242  Primitive2DContainer aRetval;
243  getSdrText()->GetObject().impDecomposeContourTextPrimitive(aRetval, *this, aViewInformation);
244 
245  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
246  }
247 
249  const SdrText* pSdrText,
250  const OutlinerParaObject& rOutlinerParaObject,
251  const basegfx::B2DPolyPolygon& rUnitPolyPolygon,
252  const basegfx::B2DHomMatrix& rObjectTransform)
253  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
254  maUnitPolyPolygon(rUnitPolyPolygon),
255  maObjectTransform(rObjectTransform)
256  {
257  }
258 
260  {
261  if(SdrTextPrimitive2D::operator==(rPrimitive))
262  {
263  const SdrContourTextPrimitive2D& rCompare = static_cast<const SdrContourTextPrimitive2D&>(rPrimitive);
264 
265  return (getUnitPolyPolygon() == rCompare.getUnitPolyPolygon()
266  && getObjectTransform() == rCompare.getObjectTransform());
267  }
268 
269  return false;
270  }
271 
273  {
274  return new SdrContourTextPrimitive2D(
275  getSdrText(),
278  rTransform * getObjectTransform());
279  }
280 
281  // provide unique ID
283  {
285  }
286 
287 
288 
290  {
291  Primitive2DContainer aRetval;
292  getSdrText()->GetObject().impDecomposePathTextPrimitive(aRetval, *this, aViewInformation);
293 
294  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
295  }
296 
298  const SdrText* pSdrText,
299  const OutlinerParaObject& rOutlinerParaObject,
300  const basegfx::B2DPolyPolygon& rPathPolyPolygon,
301  const attribute::SdrFormTextAttribute& rSdrFormTextAttribute)
302  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
303  maPathPolyPolygon(rPathPolyPolygon),
304  maSdrFormTextAttribute(rSdrFormTextAttribute)
305  {
306  }
307 
309  {
310  if(SdrTextPrimitive2D::operator==(rPrimitive))
311  {
312  const SdrPathTextPrimitive2D& rCompare = static_cast<const SdrPathTextPrimitive2D&>(rPrimitive);
313 
314  return (getPathPolyPolygon() == rCompare.getPathPolyPolygon()
316  }
317 
318  return false;
319  }
320 
322  {
323  basegfx::B2DPolyPolygon aNewPolyPolygon(getPathPolyPolygon());
324  aNewPolyPolygon.transform(rTransform);
325 
326  return new SdrPathTextPrimitive2D(
327  getSdrText(),
329  aNewPolyPolygon,
331  }
332 
333  // provide unique ID
335  {
337  }
338 
339 
340 
342  {
343  Primitive2DContainer aRetval;
344  getSdrText()->GetObject().impDecomposeBlockTextPrimitive(aRetval, *this, aViewInformation);
345 
346  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
347  }
348 
350  const SdrText* pSdrText,
351  const OutlinerParaObject& rOutlinerParaObject,
352  const basegfx::B2DHomMatrix& rTextRangeTransform,
353  SdrTextHorzAdjust aSdrTextHorzAdjust,
354  SdrTextVertAdjust aSdrTextVertAdjust,
355  bool bFixedCellHeight,
356  bool bUnlimitedPage,
357  bool bCellText,
358  bool bWordWrap)
359  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
360  maTextRangeTransform(rTextRangeTransform),
361  maSdrTextHorzAdjust(aSdrTextHorzAdjust),
362  maSdrTextVertAdjust(aSdrTextVertAdjust),
363  mbFixedCellHeight(bFixedCellHeight),
364  mbUnlimitedPage(bUnlimitedPage),
365  mbCellText(bCellText),
366  mbWordWrap(bWordWrap)
367  {
368  }
369 
371  {
372  if(SdrTextPrimitive2D::operator==(rPrimitive))
373  {
374  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
375 
376  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
377  && getSdrTextHorzAdjust() == rCompare.getSdrTextHorzAdjust()
378  && getSdrTextVertAdjust() == rCompare.getSdrTextVertAdjust()
379  && isFixedCellHeight() == rCompare.isFixedCellHeight()
380  && getUnlimitedPage() == rCompare.getUnlimitedPage()
381  && getCellText() == rCompare.getCellText()
382  && getWordWrap() == rCompare.getWordWrap());
383  }
384 
385  return false;
386  }
387 
389  {
390  return new SdrBlockTextPrimitive2D(
391  getSdrText(),
393  rTransform * getTextRangeTransform(),
398  getCellText(),
399  getWordWrap());
400  }
401 
402  // provide unique ID
404  {
406  }
407 
408 
409 
411  {
412  Primitive2DContainer aRetval;
413  getSdrText()->GetObject().impDecomposeAutoFitTextPrimitive(aRetval, *this, aViewInformation);
414 
415  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
416  }
417 
419  const SdrText* pSdrText,
420  const OutlinerParaObject& rParaObj,
421  const ::basegfx::B2DHomMatrix& rTextRangeTransform,
422  bool bWordWrap)
423  : SdrTextPrimitive2D(pSdrText, rParaObj),
424  maTextRangeTransform(rTextRangeTransform),
425  mbWordWrap(bWordWrap)
426  {
427  }
428 
430  {
431  if(SdrTextPrimitive2D::operator==(rPrimitive))
432  {
433  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
434 
435  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
436  && getWordWrap() == rCompare.getWordWrap());
437  }
438 
439  return false;
440  }
441 
443  {
445  }
446 
447  // provide unique ID
449  {
451  }
452 
453 
454 
455 
457  const SdrText* pSdrText,
458  const OutlinerParaObject& rOutlinerParaObject,
459  const basegfx::B2DHomMatrix& rTextRangeTransform)
460  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
461  maTextRangeTransform(rTextRangeTransform)
462  { }
463 
465  {
466  Primitive2DContainer aRetval;
467  getSdrText()->GetObject().impDecomposeChainedTextPrimitive(aRetval, *this, aViewInformation);
468 
469  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
470  }
471 
473  {
474  if(SdrTextPrimitive2D::operator==(rPrimitive))
475  {
476  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
477 
478  return (getTextRangeTransform() == rCompare.getTextRangeTransform());
479  }
480 
481  return false;
482  }
483 
485  {
487  }
488 
489  // provide unique ID
491  {
493  }
494 
495 
497  {
498  Primitive2DContainer aRetval;
499  getSdrText()->GetObject().impDecomposeStretchTextPrimitive(aRetval, *this, aViewInformation);
500 
501  encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, std::move(aRetval));
502  }
503 
505  const SdrText* pSdrText,
506  const OutlinerParaObject& rOutlinerParaObject,
507  const basegfx::B2DHomMatrix& rTextRangeTransform,
508  bool bFixedCellHeight)
509  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
510  maTextRangeTransform(rTextRangeTransform),
511  mbFixedCellHeight(bFixedCellHeight)
512  {
513  }
514 
516  {
517  if(SdrTextPrimitive2D::operator==(rPrimitive))
518  {
519  const SdrStretchTextPrimitive2D& rCompare = static_cast<const SdrStretchTextPrimitive2D&>(rPrimitive);
520 
521  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
522  && isFixedCellHeight() == rCompare.isFixedCellHeight());
523  }
524 
525  return false;
526  }
527 
529  {
530  return new SdrStretchTextPrimitive2D(
531  getSdrText(),
533  rTransform * getTextRangeTransform(),
535  }
536 
537  // provide unique ID
539  {
541  }
542 
543 } // end of namespace
544 
545 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SdrOutliner & GetDrawOutliner(const SdrTextObj *pObj=nullptr) const
Definition: svdmodel.cxx:650
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:64
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:237
SdrAutoFitTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const ::basegfx::B2DHomMatrix &rTextRangeTransform, bool bWordWrap)
SdrModel & getSdrModelFromSdrObject() const
Definition: svdobj.cxx:284
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:459
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:398
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:373
sal_uInt16 GetPageNum() const
Definition: svdpage.cxx:1596
void setBuffered2DDecomposition(Primitive2DContainer &&rNew)
SdrTextVertAdjust
Definition: sdtaitm.hxx:29
sal_uInt16 GetPageCount() const
Definition: svdmodel.cxx:1808
Color const & GetBackgroundColor() const
bool m_bDetectedRangeSegmentation false
#define PRIMITIVE2D_ID_SDRPATHTEXTPRIMITIVE2D