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>
22 #include <basegfx/color/bcolor.hxx>
25 #include <editeng/outlobj.hxx>
26 #include <editeng/editobj.hxx>
27 #include <editeng/flditem.hxx>
29 #include <svx/unoapi.hxx>
30 #include <svx/svdpage.hxx>
31 #include <svx/svdmodel.hxx>
32 #include <svx/svdoutl.hxx>
33 #include <com/sun/star/beans/XPropertySet.hpp>
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 
86 namespace drawinglayer
87 {
88  namespace primitive2d
89  {
90  // support for XTEXT_PAINTSHAPE_BEGIN/XTEXT_PAINTSHAPE_END Metafile comments
91  // for slideshow. This uses TextHierarchyBlockPrimitive2D to mark a text block.
92  // ATM there is only one text block per SdrObject, this may get more in the future
93  void SdrTextPrimitive2D::encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer& rContainer, const Primitive2DContainer& rCandidate)
94  {
95  rContainer.push_back(new TextHierarchyBlockPrimitive2D(rCandidate));
96  }
97 
98  SdrTextPrimitive2D::SdrTextPrimitive2D(
99  const SdrText* pSdrText,
100  const OutlinerParaObject& rOutlinerParaObject)
102  mrSdrText(const_cast< SdrText* >(pSdrText)),
103  maOutlinerParaObject(rOutlinerParaObject),
104  mxLastVisualizingPage(),
105  mnLastPageNumber(0),
106  mnLastPageCount(0),
107  maLastTextBackgroundColor(),
108  mbContainsPageField(false),
109  mbContainsPageCountField(false),
110  mbContainsOtherFields(false)
111  {
113 
120  }
121 
123 
124  bool SdrTextPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
125  {
126  if(BufferedDecompositionPrimitive2D::operator==(rPrimitive))
127  {
128  const SdrTextPrimitive2D& rCompare = static_cast<const SdrTextPrimitive2D&>(rPrimitive);
129 
130  return (
131 
132  // compare OPO and content, but not WrongList
134 
135  // also compare WrongList (not-persistent data, but visualized)
137  }
138 
139  return false;
140  }
141 
143  {
144  uno::Reference< drawing::XDrawPage > xCurrentlyVisualizingPage;
145  bool bCurrentlyVisualizingPageIsSet(false);
146  Color aNewTextBackgroundColor;
147  bool bNewTextBackgroundColorIsSet(false);
148  sal_Int16 nCurrentlyValidPageNumber(0);
149  sal_Int16 nCurrentlyValidPageCount(0);
150 
151  if(!getBuffered2DDecomposition().empty())
152  {
153  bool bDoDelete(false);
154 
155  // check visualized page
157  {
158  // get visualized page and remember
159  xCurrentlyVisualizingPage = rViewInformation.getVisualizedPage();
160  bCurrentlyVisualizingPageIsSet = true;
161 
162  if(xCurrentlyVisualizingPage != mxLastVisualizingPage)
163  {
164  bDoDelete = true;
165  }
166 
167  // #i98870# check visualized PageNumber
168  if(!bDoDelete && mbContainsPageField)
169  {
170  nCurrentlyValidPageNumber = getPageNumber(xCurrentlyVisualizingPage);
171 
172  if(nCurrentlyValidPageNumber != mnLastPageNumber)
173  {
174  bDoDelete = true;
175  }
176  }
177 
178  // #i98870# check visualized PageCount, too
179  if(!bDoDelete && mbContainsPageCountField)
180  {
181  nCurrentlyValidPageCount = getPageCount(xCurrentlyVisualizingPage);
182 
183  if(nCurrentlyValidPageCount != mnLastPageCount)
184  {
185  bDoDelete = true;
186  }
187  }
188  }
189 
190  // #i101443# check change of TextBackgroundolor
191  if(!bDoDelete && getSdrText())
192  {
194  aNewTextBackgroundColor = rDrawOutliner.GetBackgroundColor();
195  bNewTextBackgroundColorIsSet = true;
196 
197  if(aNewTextBackgroundColor != maLastTextBackgroundColor)
198  {
199  bDoDelete = true;
200  }
201  }
202 
203  if(bDoDelete)
204  {
206  }
207  }
208 
209  if(getBuffered2DDecomposition().empty())
210  {
211  if(!bCurrentlyVisualizingPageIsSet && mbContainsPageField)
212  {
213  xCurrentlyVisualizingPage = rViewInformation.getVisualizedPage();
214  }
215 
216  if(!nCurrentlyValidPageNumber && mbContainsPageField)
217  {
218  nCurrentlyValidPageNumber = getPageNumber(xCurrentlyVisualizingPage);
219  }
220 
221  if(!nCurrentlyValidPageCount && mbContainsPageCountField)
222  {
223  nCurrentlyValidPageCount = getPageCount(xCurrentlyVisualizingPage);
224  }
225 
226  if(!bNewTextBackgroundColorIsSet && getSdrText())
227  {
229  aNewTextBackgroundColor = rDrawOutliner.GetBackgroundColor();
230  }
231 
232  const_cast< SdrTextPrimitive2D* >(this)->mxLastVisualizingPage = xCurrentlyVisualizingPage;
233  const_cast< SdrTextPrimitive2D* >(this)->mnLastPageNumber = nCurrentlyValidPageNumber;
234  const_cast< SdrTextPrimitive2D* >(this)->mnLastPageCount = nCurrentlyValidPageCount;
235  const_cast< SdrTextPrimitive2D* >(this)->maLastTextBackgroundColor = aNewTextBackgroundColor;
236  }
237 
238  // call parent
239  BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation);
240  }
241  } // end of namespace primitive2d
242 } // end of namespace drawinglayer
243 
244 
245 namespace drawinglayer
246 {
247  namespace primitive2d
248  {
250  {
251  Primitive2DContainer aRetval;
252  getSdrText()->GetObject().impDecomposeContourTextPrimitive(aRetval, *this, aViewInformation);
253 
255  }
256 
258  const SdrText* pSdrText,
259  const OutlinerParaObject& rOutlinerParaObject,
260  const basegfx::B2DPolyPolygon& rUnitPolyPolygon,
261  const basegfx::B2DHomMatrix& rObjectTransform)
262  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
263  maUnitPolyPolygon(rUnitPolyPolygon),
264  maObjectTransform(rObjectTransform)
265  {
266  }
267 
269  {
270  if(SdrTextPrimitive2D::operator==(rPrimitive))
271  {
272  const SdrContourTextPrimitive2D& rCompare = static_cast<const SdrContourTextPrimitive2D&>(rPrimitive);
273 
274  return (getUnitPolyPolygon() == rCompare.getUnitPolyPolygon()
275  && getObjectTransform() == rCompare.getObjectTransform());
276  }
277 
278  return false;
279  }
280 
281  std::unique_ptr<SdrTextPrimitive2D> SdrContourTextPrimitive2D::createTransformedClone(const basegfx::B2DHomMatrix& rTransform) const
282  {
283  return std::make_unique<SdrContourTextPrimitive2D>(
284  getSdrText(),
287  rTransform * getObjectTransform());
288  }
289 
290  // provide unique ID
292 
293  } // end of namespace primitive2d
294 } // end of namespace drawinglayer
295 
296 
297 namespace drawinglayer
298 {
299  namespace primitive2d
300  {
302  {
303  Primitive2DContainer aRetval;
304  getSdrText()->GetObject().impDecomposePathTextPrimitive(aRetval, *this, aViewInformation);
305 
307  }
308 
310  const SdrText* pSdrText,
311  const OutlinerParaObject& rOutlinerParaObject,
312  const basegfx::B2DPolyPolygon& rPathPolyPolygon,
313  const attribute::SdrFormTextAttribute& rSdrFormTextAttribute)
314  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
315  maPathPolyPolygon(rPathPolyPolygon),
316  maSdrFormTextAttribute(rSdrFormTextAttribute)
317  {
318  }
319 
321  {
322  if(SdrTextPrimitive2D::operator==(rPrimitive))
323  {
324  const SdrPathTextPrimitive2D& rCompare = static_cast<const SdrPathTextPrimitive2D&>(rPrimitive);
325 
326  return (getPathPolyPolygon() == rCompare.getPathPolyPolygon()
328  }
329 
330  return false;
331  }
332 
333  std::unique_ptr<SdrTextPrimitive2D> SdrPathTextPrimitive2D::createTransformedClone(const basegfx::B2DHomMatrix& rTransform) const
334  {
335  basegfx::B2DPolyPolygon aNewPolyPolygon(getPathPolyPolygon());
336  aNewPolyPolygon.transform(rTransform);
337 
338  return std::make_unique<SdrPathTextPrimitive2D>(
339  getSdrText(),
341  aNewPolyPolygon,
343  }
344 
345  // provide unique ID
347 
348  } // end of namespace primitive2d
349 } // end of namespace drawinglayer
350 
351 
352 namespace drawinglayer
353 {
354  namespace primitive2d
355  {
357  {
358  Primitive2DContainer aRetval;
359  getSdrText()->GetObject().impDecomposeBlockTextPrimitive(aRetval, *this, aViewInformation);
360 
362  }
363 
365  const SdrText* pSdrText,
366  const OutlinerParaObject& rOutlinerParaObject,
367  const basegfx::B2DHomMatrix& rTextRangeTransform,
368  SdrTextHorzAdjust aSdrTextHorzAdjust,
369  SdrTextVertAdjust aSdrTextVertAdjust,
370  bool bFixedCellHeight,
371  bool bUnlimitedPage,
372  bool bCellText,
373  bool bWordWrap,
374  bool bClipOnBounds)
375  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
376  maTextRangeTransform(rTextRangeTransform),
377  maSdrTextHorzAdjust(aSdrTextHorzAdjust),
378  maSdrTextVertAdjust(aSdrTextVertAdjust),
379  mbFixedCellHeight(bFixedCellHeight),
380  mbUnlimitedPage(bUnlimitedPage),
381  mbCellText(bCellText),
382  mbWordWrap(bWordWrap),
383  mbClipOnBounds(bClipOnBounds)
384  {
385  }
386 
388  {
389  if(SdrTextPrimitive2D::operator==(rPrimitive))
390  {
391  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
392 
393  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
394  && getSdrTextHorzAdjust() == rCompare.getSdrTextHorzAdjust()
395  && getSdrTextVertAdjust() == rCompare.getSdrTextVertAdjust()
396  && isFixedCellHeight() == rCompare.isFixedCellHeight()
397  && getUnlimitedPage() == rCompare.getUnlimitedPage()
398  && getCellText() == rCompare.getCellText()
399  && getWordWrap() == rCompare.getWordWrap()
400  && getClipOnBounds() == rCompare.getClipOnBounds());
401  }
402 
403  return false;
404  }
405 
406  std::unique_ptr<SdrTextPrimitive2D> SdrBlockTextPrimitive2D::createTransformedClone(const basegfx::B2DHomMatrix& rTransform) const
407  {
408  return std::make_unique<SdrBlockTextPrimitive2D>(
409  getSdrText(),
411  rTransform * getTextRangeTransform(),
416  getCellText(),
417  getWordWrap(),
418  getClipOnBounds());
419  }
420 
421  // provide unique ID
423 
424  } // end of namespace primitive2d
425 } // end of namespace drawinglayer
426 
427 
428 namespace drawinglayer
429 {
430  namespace primitive2d
431  {
433  {
434  Primitive2DContainer aRetval;
435  getSdrText()->GetObject().impDecomposeAutoFitTextPrimitive(aRetval, *this, aViewInformation);
436 
438  }
439 
441  const SdrText* pSdrText,
442  const OutlinerParaObject& rParaObj,
443  const ::basegfx::B2DHomMatrix& rTextRangeTransform,
444  bool bWordWrap)
445  : SdrTextPrimitive2D(pSdrText, rParaObj),
446  maTextRangeTransform(rTextRangeTransform),
447  mbWordWrap(bWordWrap)
448  {
449  }
450 
452  {
453  if(SdrTextPrimitive2D::operator==(rPrimitive))
454  {
455  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
456 
457  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
458  && getWordWrap() == rCompare.getWordWrap());
459  }
460 
461  return false;
462  }
463 
464  std::unique_ptr<SdrTextPrimitive2D> SdrAutoFitTextPrimitive2D::createTransformedClone(const ::basegfx::B2DHomMatrix& rTransform) const
465  {
466  return std::make_unique<SdrAutoFitTextPrimitive2D>(getSdrText(), getOutlinerParaObject(), rTransform * getTextRangeTransform(), getWordWrap());
467  }
468 
469  // provide unique ID
471 
472  } // end of namespace primitive2d
473  } // end of namespace drawinglayer
474 
475 namespace drawinglayer
476 {
477  namespace primitive2d
478  {
479 
481  const SdrText* pSdrText,
482  const OutlinerParaObject& rOutlinerParaObject,
483  const basegfx::B2DHomMatrix& rTextRangeTransform)
484  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
485  maTextRangeTransform(rTextRangeTransform)
486  { }
487 
489  {
490  Primitive2DContainer aRetval;
491  getSdrText()->GetObject().impDecomposeChainedTextPrimitive(aRetval, *this, aViewInformation);
492 
494  }
495 
497  {
498  if(SdrTextPrimitive2D::operator==(rPrimitive))
499  {
500  const SdrBlockTextPrimitive2D& rCompare = static_cast<const SdrBlockTextPrimitive2D&>(rPrimitive);
501 
502  return (getTextRangeTransform() == rCompare.getTextRangeTransform());
503  }
504 
505  return false;
506  }
507 
508  std::unique_ptr<SdrTextPrimitive2D> SdrChainedTextPrimitive2D::createTransformedClone(const basegfx::B2DHomMatrix& rTransform) const
509  {
510  return std::make_unique<SdrChainedTextPrimitive2D>(getSdrText(), getOutlinerParaObject(), rTransform * getTextRangeTransform());
511  }
512 
513  // provide unique ID
515  } // end of namespace primitive2d
516 } // end of namespace drawinglayer
517 
518 
519  namespace drawinglayer
520  {
521  namespace primitive2d
522  {
524  {
525  Primitive2DContainer aRetval;
526  getSdrText()->GetObject().impDecomposeStretchTextPrimitive(aRetval, *this, aViewInformation);
527 
529  }
530 
532  const SdrText* pSdrText,
533  const OutlinerParaObject& rOutlinerParaObject,
534  const basegfx::B2DHomMatrix& rTextRangeTransform,
535  bool bFixedCellHeight)
536  : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject),
537  maTextRangeTransform(rTextRangeTransform),
538  mbFixedCellHeight(bFixedCellHeight)
539  {
540  }
541 
543  {
544  if(SdrTextPrimitive2D::operator==(rPrimitive))
545  {
546  const SdrStretchTextPrimitive2D& rCompare = static_cast<const SdrStretchTextPrimitive2D&>(rPrimitive);
547 
548  return (getTextRangeTransform() == rCompare.getTextRangeTransform()
549  && isFixedCellHeight() == rCompare.isFixedCellHeight());
550  }
551 
552  return false;
553  }
554 
555  std::unique_ptr<SdrTextPrimitive2D> SdrStretchTextPrimitive2D::createTransformedClone(const basegfx::B2DHomMatrix& rTransform) const
556  {
557  return std::make_unique<SdrStretchTextPrimitive2D>(
558  getSdrText(),
560  rTransform * getTextRangeTransform(),
562  }
563 
564  // provide unique ID
566 
567  } // end of namespace primitive2d
568 } // end of namespace drawinglayer
569 
570 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SdrOutliner & GetDrawOutliner(const SdrTextObj *pObj=nullptr) const
Definition: svdmodel.cxx:707
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
static constexpr auto CLASS_ID
#define PRIMITIVE2D_ID_SDRCONTOURTEXTPRIMITIVE2D
virtual std::unique_ptr< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
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
ImplPrimitive2DIDBlock(BorderLinePrimitive2D, PRIMITIVE2D_ID_BORDERLINEPRIMITIVE2D) Primitive2DReference tryMergeBorderLinePrimitive2D(const Primitive2DReference &rCandidateA
static constexpr auto CLASS_ID
bool isWrongListEqual(const OutlinerParaObject &rCompare) const
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, bool bClipOnBounds)
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
virtual std::unique_ptr< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
SdrPage * GetSdrPageFromXDrawPage(const uno::Reference< drawing::XDrawPage > &xDrawPage)
returns the SdrObject from the given StarOffice API wrapper
Definition: unopage.cxx:898
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 std::unique_ptr< SdrTextPrimitive2D > createTransformedClone(const ::basegfx::B2DHomMatrix &rTransform) const override
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
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 bool operator==(const BasePrimitive2D &rPrimitive) const override
const css::uno::Reference< css::drawing::XDrawPage > & getVisualizedPage() const
static void encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer &rContainer, const Primitive2DContainer &rCandidate)
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
const EditTextObject & GetTextObject() const
const Primitive2DContainer & getBuffered2DDecomposition() const
bool HasField(sal_Int32 nType=css::text::textfield::Type::UNSPECIFIED) const
#define PRIMITIVE2D_ID_SDRSTRETCHTEXTPRIMITIVE2D
virtual void get2DDecomposition(Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override
const basegfx::B2DPolyPolygon & getPathPolyPolygon() const
SdrTextObj & GetObject() const
Definition: svdtext.hxx:64
#define PRIMITIVE2D_ID_SDRBLOCKTEXTPRIMITIVE2D
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
sal_uInt16 getHandoutPageCount() const
Definition: svdmodel.hxx:229
SdrAutoFitTextPrimitive2D(const SdrText *pSdrText, const OutlinerParaObject &rOutlinerParaObjectPtr, const ::basegfx::B2DHomMatrix &rTextRangeTransform, bool bWordWrap)
SdrModel & getSdrModelFromSdrObject() const
Definition: svdobj.cxx:299
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
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)
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
SdrModel & getSdrModelFromSdrPage() const
Definition: svdpage.hxx:391
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 std::unique_ptr< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
virtual std::unique_ptr< 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:366
sal_uInt16 GetPageNum() const
Definition: svdpage.cxx:1525
virtual std::unique_ptr< SdrTextPrimitive2D > createTransformedClone(const basegfx::B2DHomMatrix &rTransform) const override
SdrTextVertAdjust
Definition: sdtaitm.hxx:29
sal_uInt16 GetPageCount() const
Definition: svdmodel.cxx:1929
void setBuffered2DDecomposition(const Primitive2DContainer &rNew)
Color const & GetBackgroundColor() const
#define PRIMITIVE2D_ID_SDRPATHTEXTPRIMITIVE2D