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