LibreOffice Module xmloff (master)  1
txtexppr.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 #include <com/sun/star/table/BorderLine2.hpp>
21 
22 #include "txtexppr.hxx"
23 
24 #include <com/sun/star/frame/XModel.hpp>
25 #include <com/sun/star/text/SizeType.hpp>
26 #include <com/sun/star/text/WrapTextMode.hpp>
27 #include <com/sun/star/text/TextContentAnchorType.hpp>
28 #include <com/sun/star/awt/FontUnderline.hpp>
29 #include <com/sun/star/text/XChapterNumberingSupplier.hpp>
30 #include <com/sun/star/beans/XPropertySet.hpp>
31 #include <o3tl/any.hxx>
32 #include <sal/log.hxx>
33 #include <tools/color.hxx>
34 #include <xmloff/txtprmap.hxx>
35 #include <xmloff/xmlexp.hxx>
36 #include <xmloff/maptype.hxx>
38 #include <xmlsdtypes.hxx>
39 
40 using namespace ::com::sun::star;
41 using namespace ::com::sun::star::uno;
42 using namespace ::com::sun::star::style;
43 using namespace ::com::sun::star::beans;
44 using namespace ::com::sun::star::text;
45 
47  SvXMLExport& rExp,
48  const XMLPropertyState& rProperty,
49  SvXmlExportFlags nFlags,
50  const ::std::vector< XMLPropertyState > *pProperties,
51  sal_uInt32 nIdx ) const
52 {
54  const_cast<XMLTextExportPropertySetMapper*>(this);
55 
56  switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
57  {
58  case CTF_DROPCAPFORMAT:
61  pThis->bDropWholeWord = false;
62  pThis->sDropCharStyle.clear();
63  break;
64 
65  case CTF_TABSTOP:
66  pThis->maTabStopExport.Export( rProperty.maValue );
67  break;
68 
69  case CTF_TEXTCOLUMNS:
70  pThis->maTextColumnsExport.exportXML( rProperty.maValue );
71  break;
72 
73  case CTF_BACKGROUND_URL:
74  {
75  const Any *pPos = nullptr, *pFilter = nullptr, *pTrans = nullptr;
76  sal_uInt32 nPropIndex = rProperty.mnIndex;
77 
78  // these are all optional, so have to check them in order
79  // note: this index order dependency is a steaming pile of manure
80  if (nIdx)
81  {
82  const XMLPropertyState& rFilter = (*pProperties)[nIdx - 1];
84  ->GetEntryContextId(rFilter.mnIndex))
85  {
86  pFilter = &rFilter.maValue;
87  --nIdx;
88  }
89  }
90 
91  if (nIdx)
92  {
93  const XMLPropertyState& rPos = (*pProperties)[nIdx - 1];
95  ->GetEntryContextId(rPos.mnIndex))
96  {
97  pPos = &rPos.maValue;
98  --nIdx;
99  }
100  }
101 
102  if (nIdx)
103  {
104  const XMLPropertyState& rTrans = (*pProperties)[nIdx - 1];
105  // #99657# transparency may be there, but doesn't have to be.
106  // If it's there, it must be in the right position.
108  ->GetEntryContextId( rTrans.mnIndex ) )
109  pTrans = &rTrans.maValue;
110  }
111 
113  rProperty.maValue, pPos, pFilter, pTrans,
114  getPropertySetMapper()->GetEntryNameSpace( nPropIndex ),
115  getPropertySetMapper()->GetEntryXMLName( nPropIndex ) );
116  }
117  break;
118 
121  pProperties, nIdx,
123  break;
124 
127  pProperties, nIdx,
129  break;
130 
131  default:
132  SvXMLExportPropertyMapper::handleElementItem( rExp, rProperty, nFlags, pProperties, nIdx );
133  break;
134  }
135 }
136 
138  SvXMLAttributeList& rAttrList,
139  const XMLPropertyState& rProperty,
140  const SvXMLUnitConverter& rUnitConverter,
141  const SvXMLNamespaceMap& rNamespaceMap,
142  const ::std::vector< XMLPropertyState > *pProperties,
143  sal_uInt32 nIdx ) const
144 {
146  const_cast<XMLTextExportPropertySetMapper*>(this);
147 
148  switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
149  {
151  SAL_WARN_IF( !!bDropWholeWord, "xmloff", "drop whole word is set already!" );
152  pThis->bDropWholeWord = *o3tl::doAccess<bool>(rProperty.maValue);
153  break;
155  SAL_WARN_IF( !sDropCharStyle.isEmpty(), "xmloff", "drop char style is set already!" );
156  rProperty.maValue >>= pThis->sDropCharStyle;
157  break;
159  case CTF_PAGEDESCNAME:
161  case CTF_BACKGROUND_POS:
178  // There's nothing to do here!
179  break;
180  default:
181  SvXMLExportPropertyMapper::handleSpecialItem(rAttrList, rProperty, rUnitConverter, rNamespaceMap, pProperties, nIdx );
182  break;
183  }
184 }
185 
188  SvXMLExport& rExp ) :
189  SvXMLExportPropertyMapper( rMapper ),
190  rExport( rExp ),
191  bDropWholeWord( false ),
192  maDropCapExport( rExp ),
193  maTabStopExport( rExp ),
194  maTextColumnsExport( rExp ),
195  maBackgroundImageExport( rExp )
196 {
197 }
198 
200 {
201 }
202 
204  bool bEnableFoFontFamily,
205  XMLPropertyState *pFontNameState,
206  XMLPropertyState *pFontFamilyNameState,
207  XMLPropertyState *pFontStyleNameState,
208  XMLPropertyState *pFontFamilyState,
209  XMLPropertyState *pFontPitchState,
210  XMLPropertyState *pFontCharsetState ) const
211 {
212  OUString sFamilyName;
213  OUString sStyleName;
214  FontFamily nFamily = FAMILY_DONTKNOW;
215  FontPitch nPitch = PITCH_DONTKNOW;
216  rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
217 
218  OUString sTmp;
219  if( pFontFamilyNameState && (pFontFamilyNameState->maValue >>= sTmp ) )
220  sFamilyName = sTmp;
221  if( pFontStyleNameState && (pFontStyleNameState->maValue >>= sTmp ) )
222  sStyleName = sTmp;
223 
224  sal_Int16 nTmp = sal_Int16();
225  if( pFontFamilyState && (pFontFamilyState->maValue >>= nTmp ) )
226  nFamily = static_cast< FontFamily >( nTmp );
227  if( pFontPitchState && (pFontPitchState->maValue >>= nTmp ) )
228  nPitch = static_cast< FontPitch >( nTmp );
229  if( pFontCharsetState && (pFontCharsetState->maValue >>= nTmp ) )
230  eEnc = static_cast<rtl_TextEncoding>(nTmp);
231 
232  //Resolves: fdo#67665 The purpose here appears to be to replace
233  //FontFamilyName and FontStyleName etc with a single FontName property. The
234  //problem is that repeated calls to here will first set
235  //pFontFamilyNameState->mnIndex to -1 to indicate it is disabled, so the
236  //next time pFontFamilyNameState is not passed here at all, which gives an
237  //empty sFamilyName resulting in disabling pFontNameState->mnIndex to -1.
238  //That doesn't seem right to me.
239 
240  //So assuming that the main purpose is just to convert the properties in
241  //the main when we can, and to leave them alone when we can't. And with a
242  //secondary purpose to filter out empty font properties, then is would
243  //appear to make sense to base attempting the conversion if we have
244  //both of the major facts of the font description
245 
246  //An alternative solution is to *not* fill the FontAutoStylePool with
247  //every font in the document, but to partition the fonts into the
248  //hard-attribute fonts which go into that pool and the style-attribute
249  //fonts which go into some additional pool which get merged just for
250  //the purposes of writing the embedded fonts but are not queried by
251  //"Find" which restores the original logic.
252  if (pFontFamilyNameState || pFontStyleNameState)
253  {
254  OUString sName( const_cast<SvXMLExport&>(GetExport()).GetFontAutoStylePool()->Find(
255  sFamilyName, sStyleName, nFamily, nPitch, eEnc ) );
256  if (!sName.isEmpty())
257  {
258  pFontNameState->maValue <<= sName;
259  //Resolves: fdo#68431 style:font-name unrecognized by LibreOffice
260  //<= 4.1 in styles (but recognized in autostyles) so add
261  //fo:font-family, etc
262  if (!bEnableFoFontFamily)
263  {
264  if( pFontFamilyNameState )
265  pFontFamilyNameState->mnIndex = -1;
266  if( pFontStyleNameState )
267  pFontStyleNameState->mnIndex = -1;
268  if( pFontFamilyState )
269  pFontFamilyState->mnIndex = -1;
270  if( pFontPitchState )
271  pFontPitchState->mnIndex = -1;
272  if( pFontCharsetState )
273  pFontCharsetState->mnIndex = -1;
274  }
275  }
276  else
277  {
278  pFontNameState->mnIndex = -1;
279  }
280  }
281 
282  if( pFontFamilyNameState && sFamilyName.isEmpty() )
283  {
284  pFontFamilyNameState->mnIndex = -1;
285  }
286 
287  if( pFontStyleNameState && sStyleName.isEmpty() )
288  {
289  pFontStyleNameState->mnIndex = -1;
290  }
291 }
292 
294  XMLPropertyState* pCharHeightState,
295  XMLPropertyState* pCharPropHeightState,
296  XMLPropertyState* pCharDiffHeightState )
297 {
298  if( pCharPropHeightState )
299  {
300  sal_Int32 nTemp = 0;
301  pCharPropHeightState->maValue >>= nTemp;
302  if( nTemp == 100 )
303  {
304  pCharPropHeightState->mnIndex = -1;
305  pCharPropHeightState->maValue.clear();
306  }
307  else
308  {
309  pCharHeightState->mnIndex = -1;
310  pCharHeightState->maValue.clear();
311  }
312  }
313  if( pCharDiffHeightState )
314  {
315  float nTemp = 0;
316  pCharDiffHeightState->maValue >>= nTemp;
317  if( nTemp == 0. )
318  {
319  pCharDiffHeightState->mnIndex = -1;
320  pCharDiffHeightState->maValue.clear();
321  }
322  else
323  {
324  pCharHeightState->mnIndex = -1;
325  pCharHeightState->maValue.clear();
326  }
327  }
328 
329 }
330 
331 namespace {
332 
333 // helper method; implementation below
334 bool lcl_IsOutlineStyle(const SvXMLExport&, const OUString&);
335 
336 void
337 lcl_checkMultiProperty(XMLPropertyState *const pState,
338  XMLPropertyState *const pRelState)
339 {
340  if (pState && pRelState)
341  {
342  sal_Int32 nTemp = 0;
343  pRelState->maValue >>= nTemp;
344  if (100 == nTemp)
345  {
346  pRelState->mnIndex = -1;
347  pRelState->maValue.clear();
348  }
349  else
350  {
351  pState->mnIndex = -1;
352  pState->maValue.clear();
353  }
354  }
355 }
356 
362 void lcl_FilterBorders(
363  XMLPropertyState* pAllBorderWidthState, XMLPropertyState* pLeftBorderWidthState,
364  XMLPropertyState* pRightBorderWidthState, XMLPropertyState* pTopBorderWidthState,
365  XMLPropertyState* pBottomBorderWidthState, XMLPropertyState* pAllBorderDistanceState,
366  XMLPropertyState* pLeftBorderDistanceState, XMLPropertyState* pRightBorderDistanceState,
367  XMLPropertyState* pTopBorderDistanceState, XMLPropertyState* pBottomBorderDistanceState,
368  XMLPropertyState* pAllBorderState, XMLPropertyState* pLeftBorderState,
369  XMLPropertyState* pRightBorderState,XMLPropertyState* pTopBorderState,
370  XMLPropertyState* pBottomBorderState )
371 {
372  if( pAllBorderWidthState )
373  {
374  if( pLeftBorderWidthState && pRightBorderWidthState && pTopBorderWidthState && pBottomBorderWidthState )
375  {
376  table::BorderLine2 aLeft, aRight, aTop, aBottom;
377 
378  pLeftBorderWidthState->maValue >>= aLeft;
379  pRightBorderWidthState->maValue >>= aRight;
380  pTopBorderWidthState->maValue >>= aTop;
381  pBottomBorderWidthState->maValue >>= aBottom;
382  if( aLeft.Color == aRight.Color && aLeft.InnerLineWidth == aRight.InnerLineWidth &&
383  aLeft.OuterLineWidth == aRight.OuterLineWidth && aLeft.LineDistance == aRight.LineDistance &&
384  aLeft.LineStyle == aRight.LineStyle &&
385  aLeft.LineWidth == aRight.LineWidth &&
386  aLeft.Color == aTop.Color && aLeft.InnerLineWidth == aTop.InnerLineWidth &&
387  aLeft.OuterLineWidth == aTop.OuterLineWidth && aLeft.LineDistance == aTop.LineDistance &&
388  aLeft.LineStyle == aTop.LineStyle &&
389  aLeft.LineWidth == aTop.LineWidth &&
390  aLeft.Color == aBottom.Color && aLeft.InnerLineWidth == aBottom.InnerLineWidth &&
391  aLeft.OuterLineWidth == aBottom.OuterLineWidth && aLeft.LineDistance == aBottom.LineDistance &&
392  aLeft.LineStyle == aBottom.LineStyle &&
393  aLeft.LineWidth == aBottom.LineWidth )
394  {
395  pLeftBorderWidthState->mnIndex = -1;
396  pLeftBorderWidthState->maValue.clear();
397  pRightBorderWidthState->mnIndex = -1;
398  pRightBorderWidthState->maValue.clear();
399  pTopBorderWidthState->mnIndex = -1;
400  pTopBorderWidthState->maValue.clear();
401  pBottomBorderWidthState->mnIndex = -1;
402  pBottomBorderWidthState->maValue.clear();
403  }
404  else
405  {
406  pAllBorderWidthState->mnIndex = -1;
407  pAllBorderWidthState->maValue.clear();
408  }
409  }
410  else
411  {
412  pAllBorderWidthState->mnIndex = -1;
413  pAllBorderWidthState->maValue.clear();
414  }
415  }
416 
417  if( pAllBorderDistanceState )
418  {
419  if( pLeftBorderDistanceState && pRightBorderDistanceState && pTopBorderDistanceState && pBottomBorderDistanceState )
420  {
421  sal_Int32 aLeft = 0, aRight = 0, aTop = 0, aBottom = 0;
422 
423  pLeftBorderDistanceState->maValue >>= aLeft;
424  pRightBorderDistanceState->maValue >>= aRight;
425  pTopBorderDistanceState->maValue >>= aTop;
426  pBottomBorderDistanceState->maValue >>= aBottom;
427  if( aLeft == aRight && aLeft == aTop && aLeft == aBottom )
428  {
429  pLeftBorderDistanceState->mnIndex = -1;
430  pLeftBorderDistanceState->maValue.clear();
431  pRightBorderDistanceState->mnIndex = -1;
432  pRightBorderDistanceState->maValue.clear();
433  pTopBorderDistanceState->mnIndex = -1;
434  pTopBorderDistanceState->maValue.clear();
435  pBottomBorderDistanceState->mnIndex = -1;
436  pBottomBorderDistanceState->maValue.clear();
437  }
438  else
439  {
440  pAllBorderDistanceState->mnIndex = -1;
441  pAllBorderDistanceState->maValue.clear();
442  }
443  }
444  else
445  {
446  pAllBorderDistanceState->mnIndex = -1;
447  pAllBorderDistanceState->maValue.clear();
448  }
449  }
450 
451  if( pAllBorderState )
452  {
453  if( pLeftBorderState && pRightBorderState && pTopBorderState && pBottomBorderState )
454  {
455  table::BorderLine2 aLeft, aRight, aTop, aBottom;
456 
457  pLeftBorderState->maValue >>= aLeft;
458  pRightBorderState->maValue >>= aRight;
459  pTopBorderState->maValue >>= aTop;
460  pBottomBorderState->maValue >>= aBottom;
461  if( aLeft.Color == aRight.Color && aLeft.InnerLineWidth == aRight.InnerLineWidth &&
462  aLeft.OuterLineWidth == aRight.OuterLineWidth && aLeft.LineDistance == aRight.LineDistance &&
463  aLeft.LineStyle == aRight.LineStyle &&
464  aLeft.LineWidth == aRight.LineWidth &&
465  aLeft.Color == aTop.Color && aLeft.InnerLineWidth == aTop.InnerLineWidth &&
466  aLeft.OuterLineWidth == aTop.OuterLineWidth && aLeft.LineDistance == aTop.LineDistance &&
467  aLeft.LineStyle == aTop.LineStyle &&
468  aLeft.LineWidth == aTop.LineWidth &&
469  aLeft.Color == aBottom.Color && aLeft.InnerLineWidth == aBottom.InnerLineWidth &&
470  aLeft.OuterLineWidth == aBottom.OuterLineWidth && aLeft.LineDistance == aBottom.LineDistance &&
471  aLeft.LineWidth == aBottom.LineWidth &&
472  aLeft.LineStyle == aBottom.LineStyle )
473  {
474  pLeftBorderState->mnIndex = -1;
475  pLeftBorderState->maValue.clear();
476  pRightBorderState->mnIndex = -1;
477  pRightBorderState->maValue.clear();
478  pTopBorderState->mnIndex = -1;
479  pTopBorderState->maValue.clear();
480  pBottomBorderState->mnIndex = -1;
481  pBottomBorderState->maValue.clear();
482  }
483  else
484  {
485  pAllBorderState->mnIndex = -1;
486  pAllBorderState->maValue.clear();
487  }
488  }
489  else
490  {
491  pAllBorderState->mnIndex = -1;
492  pAllBorderState->maValue.clear();
493  }
494  }
495 }
496 
497 }
498 
500  bool bEnableFoFontFamily,
501  ::std::vector< XMLPropertyState >& rProperties,
502  const Reference< XPropertySet >& rPropSet ) const
503 {
504  // filter font
505  XMLPropertyState *pFontNameState = nullptr;
506  XMLPropertyState *pFontFamilyNameState = nullptr;
507  XMLPropertyState *pFontStyleNameState = nullptr;
508  XMLPropertyState *pFontFamilyState = nullptr;
509  XMLPropertyState *pFontPitchState = nullptr;
510  XMLPropertyState *pFontCharsetState = nullptr;
511  XMLPropertyState *pFontNameCJKState = nullptr;
512  XMLPropertyState *pFontFamilyNameCJKState = nullptr;
513  XMLPropertyState *pFontStyleNameCJKState = nullptr;
514  XMLPropertyState *pFontFamilyCJKState = nullptr;
515  XMLPropertyState *pFontPitchCJKState = nullptr;
516  XMLPropertyState *pFontCharsetCJKState = nullptr;
517  XMLPropertyState *pFontNameCTLState = nullptr;
518  XMLPropertyState *pFontFamilyNameCTLState = nullptr;
519  XMLPropertyState *pFontStyleNameCTLState = nullptr;
520  XMLPropertyState *pFontFamilyCTLState = nullptr;
521  XMLPropertyState *pFontPitchCTLState = nullptr;
522  XMLPropertyState *pFontCharsetCTLState = nullptr;
523 
524  // filter char height point/percent
525  XMLPropertyState* pCharHeightState = nullptr;
526  XMLPropertyState* pCharPropHeightState = nullptr;
527  XMLPropertyState* pCharDiffHeightState = nullptr;
528  XMLPropertyState* pCharHeightCJKState = nullptr;
529  XMLPropertyState* pCharPropHeightCJKState = nullptr;
530  XMLPropertyState* pCharDiffHeightCJKState = nullptr;
531  XMLPropertyState* pCharHeightCTLState = nullptr;
532  XMLPropertyState* pCharPropHeightCTLState = nullptr;
533  XMLPropertyState* pCharDiffHeightCTLState = nullptr;
534 
535  // filter left margin measure/percent
536  XMLPropertyState* pParaLeftMarginState = nullptr;
537  XMLPropertyState* pParaLeftMarginRelState = nullptr;
538 
539  // filter right margin measure/percent
540  XMLPropertyState* pParaRightMarginState = nullptr;
541  XMLPropertyState* pParaRightMarginRelState = nullptr;
542 
543  // filter first line indent measure/percent
544  XMLPropertyState* pParaFirstLineState = nullptr;
545  XMLPropertyState* pParaFirstLineRelState = nullptr;
546 
547  // filter ParaTopMargin/Relative
548  XMLPropertyState* pParaTopMarginState = nullptr;
549  XMLPropertyState* pParaTopMarginRelState = nullptr;
550 
551  // filter ParaTopMargin/Relative
552  XMLPropertyState* pParaBottomMarginState = nullptr;
553  XMLPropertyState* pParaBottomMarginRelState = nullptr;
554 
555  // filter (Left|Right|Top|Bottom|)BorderWidth
556  XMLPropertyState* pAllBorderWidthState = nullptr;
557  XMLPropertyState* pLeftBorderWidthState = nullptr;
558  XMLPropertyState* pRightBorderWidthState = nullptr;
559  XMLPropertyState* pTopBorderWidthState = nullptr;
560  XMLPropertyState* pBottomBorderWidthState = nullptr;
561 
562  // filter (Left|Right|Top|)BorderDistance
563  XMLPropertyState* pAllBorderDistanceState = nullptr;
564  XMLPropertyState* pLeftBorderDistanceState = nullptr;
565  XMLPropertyState* pRightBorderDistanceState = nullptr;
566  XMLPropertyState* pTopBorderDistanceState = nullptr;
567  XMLPropertyState* pBottomBorderDistanceState = nullptr;
568 
569  // filter (Left|Right|Top|Bottom|)Border
570  XMLPropertyState* pAllBorderState = nullptr;
571  XMLPropertyState* pLeftBorderState = nullptr;
572  XMLPropertyState* pRightBorderState = nullptr;
573  XMLPropertyState* pTopBorderState = nullptr;
574  XMLPropertyState* pBottomBorderState = nullptr;
575 
576  // filter Char(Left|Right|Top|Bottom|)BorderWidth
577  XMLPropertyState* pCharAllBorderWidthState = nullptr;
578  XMLPropertyState* pCharLeftBorderWidthState = nullptr;
579  XMLPropertyState* pCharRightBorderWidthState = nullptr;
580  XMLPropertyState* pCharTopBorderWidthState = nullptr;
581  XMLPropertyState* pCharBottomBorderWidthState = nullptr;
582 
583  // filter Char(Left|Right|Top|)BorderDistance
584  XMLPropertyState* pCharAllBorderDistanceState = nullptr;
585  XMLPropertyState* pCharLeftBorderDistanceState = nullptr;
586  XMLPropertyState* pCharRightBorderDistanceState = nullptr;
587  XMLPropertyState* pCharTopBorderDistanceState = nullptr;
588  XMLPropertyState* pCharBottomBorderDistanceState = nullptr;
589 
590  // filter Char(Left|Right|Top|Bottom|)Border
591  XMLPropertyState* pCharAllBorderState = nullptr;
592  XMLPropertyState* pCharLeftBorderState = nullptr;
593  XMLPropertyState* pCharRightBorderState = nullptr;
594  XMLPropertyState* pCharTopBorderState = nullptr;
595  XMLPropertyState* pCharBottomBorderState = nullptr;
596 
597  // filter height properties
598  XMLPropertyState* pHeightMinAbsState = nullptr;
599  XMLPropertyState* pHeightMinRelState = nullptr;
600  XMLPropertyState* pHeightAbsState = nullptr;
601  XMLPropertyState* pHeightRelState = nullptr;
602  XMLPropertyState* pSizeTypeState = nullptr;
603 
604  // filter width properties
605  XMLPropertyState* pWidthMinAbsState = nullptr;
606  XMLPropertyState* pWidthMinRelState = nullptr;
607  XMLPropertyState* pWidthAbsState = nullptr;
608  XMLPropertyState* pWidthRelState = nullptr;
609  XMLPropertyState* pWidthTypeState = nullptr;
610 
611  // wrap
612  XMLPropertyState* pWrapState = nullptr;
613  XMLPropertyState* pWrapContourState = nullptr;
614  XMLPropertyState* pWrapContourModeState = nullptr;
615  XMLPropertyState* pWrapParagraphOnlyState = nullptr;
616 
617  // anchor
618  XMLPropertyState* pAnchorTypeState = nullptr;
619 
620  // horizontal position and relation
621  XMLPropertyState* pHoriOrientState = nullptr;
622  XMLPropertyState* pHoriOrientMirroredState = nullptr;
623  XMLPropertyState* pHoriOrientRelState = nullptr;
624  XMLPropertyState* pHoriOrientRelFrameState = nullptr;
625  XMLPropertyState* pHoriOrientMirrorState = nullptr;
626  // Horizontal position and relation for shapes (#i28749#)
627  XMLPropertyState* pShapeHoriOrientState = nullptr;
628  XMLPropertyState* pShapeHoriOrientMirroredState = nullptr;
629  XMLPropertyState* pShapeHoriOrientRelState = nullptr;
630  XMLPropertyState* pShapeHoriOrientRelFrameState = nullptr;
631  XMLPropertyState* pShapeHoriOrientMirrorState = nullptr;
632 
633  // vertical position and relation
634  XMLPropertyState* pVertOrientState = nullptr;
635  XMLPropertyState* pVertOrientAtCharState = nullptr;
636  XMLPropertyState* pVertOrientRelState = nullptr;
637  XMLPropertyState* pVertOrientRelPageState = nullptr;
638  XMLPropertyState* pVertOrientRelFrameState = nullptr;
639  XMLPropertyState* pVertOrientRelAsCharState = nullptr;
640  XMLPropertyState* pRelWidthRel = nullptr;
641  XMLPropertyState* pRelHeightRel = nullptr;
642 
643  // Vertical position and relation for shapes (#i28749#)
644  XMLPropertyState* pShapeVertOrientState = nullptr;
645  XMLPropertyState* pShapeVertOrientAtCharState = nullptr;
646  XMLPropertyState* pShapeVertOrientRelState = nullptr;
647  XMLPropertyState* pShapeVertOrientRelPageState = nullptr;
648  XMLPropertyState* pShapeVertOrientRelFrameState = nullptr;
649 
650  // filter underline color
651  XMLPropertyState* pUnderlineState = nullptr;
652  XMLPropertyState* pUnderlineColorState = nullptr;
653  XMLPropertyState* pUnderlineHasColorState = nullptr;
654 
655  // filter list style name
656  XMLPropertyState* pListStyleName = nullptr;
657 
658  // filter fo:clip
659  XMLPropertyState* pClip11State = nullptr;
660  XMLPropertyState* pClipState = nullptr;
661 
662  // filter fo:margin
663  XMLPropertyState* pAllParaMarginRel = nullptr;
664  XMLPropertyState* pAllParaMargin = nullptr;
665  XMLPropertyState* pAllMargin = nullptr;
666 
667  XMLPropertyState* pRepeatOffsetX = nullptr;
668  XMLPropertyState* pRepeatOffsetY = nullptr;
669 
670  // character background and highlight
671  XMLPropertyState* pCharBackground = nullptr;
672  XMLPropertyState* pCharBackgroundTransparency = nullptr;
673  XMLPropertyState* pCharHighlight = nullptr;
674 
675  bool bNeedsAnchor = false;
676 
677  for( auto& rPropertyState : rProperties )
678  {
679  XMLPropertyState *propertyState = &rPropertyState;
680  if( propertyState->mnIndex == -1 )
681  continue;
682 
683  switch( getPropertySetMapper()->GetEntryContextId( propertyState->mnIndex ) )
684  {
685  case CTF_CHARHEIGHT: pCharHeightState = propertyState; break;
686  case CTF_CHARHEIGHT_REL: pCharPropHeightState = propertyState; break;
687  case CTF_CHARHEIGHT_DIFF: pCharDiffHeightState = propertyState; break;
688  case CTF_CHARHEIGHT_CJK: pCharHeightCJKState = propertyState; break;
689  case CTF_CHARHEIGHT_REL_CJK: pCharPropHeightCJKState = propertyState; break;
690  case CTF_CHARHEIGHT_DIFF_CJK: pCharDiffHeightCJKState = propertyState; break;
691  case CTF_CHARHEIGHT_CTL: pCharHeightCTLState = propertyState; break;
692  case CTF_CHARHEIGHT_REL_CTL: pCharPropHeightCTLState = propertyState; break;
693  case CTF_CHARHEIGHT_DIFF_CTL: pCharDiffHeightCTLState = propertyState; break;
694  case CTF_PARALEFTMARGIN: pParaLeftMarginState = propertyState; break;
695  case CTF_PARALEFTMARGIN_REL: pParaLeftMarginRelState = propertyState; break;
696  case CTF_PARARIGHTMARGIN: pParaRightMarginState = propertyState; break;
697  case CTF_PARARIGHTMARGIN_REL: pParaRightMarginRelState = propertyState; break;
698  case CTF_PARAFIRSTLINE: pParaFirstLineState = propertyState; break;
699  case CTF_PARAFIRSTLINE_REL: pParaFirstLineRelState = propertyState; break;
700  case CTF_PARATOPMARGIN: pParaTopMarginState = propertyState; break;
701  case CTF_PARATOPMARGIN_REL: pParaTopMarginRelState = propertyState; break;
702  case CTF_PARABOTTOMMARGIN: pParaBottomMarginState = propertyState; break;
703  case CTF_PARABOTTOMMARGIN_REL: pParaBottomMarginRelState = propertyState; break;
704 
705  case CTF_ALLBORDERWIDTH: pAllBorderWidthState = propertyState; break;
706  case CTF_LEFTBORDERWIDTH: pLeftBorderWidthState = propertyState; break;
707  case CTF_RIGHTBORDERWIDTH: pRightBorderWidthState = propertyState; break;
708  case CTF_TOPBORDERWIDTH: pTopBorderWidthState = propertyState; break;
709  case CTF_BOTTOMBORDERWIDTH: pBottomBorderWidthState = propertyState; break;
710  case CTF_ALLBORDERDISTANCE: pAllBorderDistanceState = propertyState; break;
711  case CTF_LEFTBORDERDISTANCE: pLeftBorderDistanceState = propertyState; break;
712  case CTF_RIGHTBORDERDISTANCE: pRightBorderDistanceState = propertyState; break;
713  case CTF_TOPBORDERDISTANCE: pTopBorderDistanceState = propertyState; break;
714  case CTF_BOTTOMBORDERDISTANCE: pBottomBorderDistanceState = propertyState; break;
715  case CTF_ALLBORDER: pAllBorderState = propertyState; break;
716  case CTF_LEFTBORDER: pLeftBorderState = propertyState; break;
717  case CTF_RIGHTBORDER: pRightBorderState = propertyState; break;
718  case CTF_TOPBORDER: pTopBorderState = propertyState; break;
719  case CTF_BOTTOMBORDER: pBottomBorderState = propertyState; break;
720 
721  case CTF_CHARALLBORDERWIDTH: pCharAllBorderWidthState = propertyState; break;
722  case CTF_CHARLEFTBORDERWIDTH: pCharLeftBorderWidthState = propertyState; break;
723  case CTF_CHARRIGHTBORDERWIDTH: pCharRightBorderWidthState = propertyState; break;
724  case CTF_CHARTOPBORDERWIDTH: pCharTopBorderWidthState = propertyState; break;
725  case CTF_CHARBOTTOMBORDERWIDTH: pCharBottomBorderWidthState = propertyState; break;
726  case CTF_CHARALLBORDERDISTANCE: pCharAllBorderDistanceState = propertyState; break;
727  case CTF_CHARLEFTBORDERDISTANCE: pCharLeftBorderDistanceState = propertyState; break;
728  case CTF_CHARRIGHTBORDERDISTANCE: pCharRightBorderDistanceState = propertyState; break;
729  case CTF_CHARTOPBORDERDISTANCE: pCharTopBorderDistanceState = propertyState; break;
730  case CTF_CHARBOTTOMBORDERDISTANCE: pCharBottomBorderDistanceState = propertyState; break;
731  case CTF_CHARALLBORDER: pCharAllBorderState = propertyState; break;
732  case CTF_CHARLEFTBORDER: pCharLeftBorderState = propertyState; break;
733  case CTF_CHARRIGHTBORDER: pCharRightBorderState = propertyState; break;
734  case CTF_CHARTOPBORDER: pCharTopBorderState = propertyState; break;
735  case CTF_CHARBOTTOMBORDER: pCharBottomBorderState = propertyState; break;
736 
737  case CTF_FRAMEHEIGHT_MIN_ABS: pHeightMinAbsState = propertyState; break;
738  case CTF_FRAMEHEIGHT_MIN_REL: pHeightMinRelState = propertyState; break;
739  case CTF_FRAMEHEIGHT_ABS: pHeightAbsState = propertyState; break;
740  case CTF_FRAMEHEIGHT_REL: pHeightRelState = propertyState; break;
741  case CTF_SIZETYPE: pSizeTypeState = propertyState; break;
742 
743  case CTF_FRAMEWIDTH_MIN_ABS: pWidthMinAbsState = propertyState; break;
744  case CTF_FRAMEWIDTH_MIN_REL: pWidthMinRelState = propertyState; break;
745  case CTF_FRAMEWIDTH_ABS: pWidthAbsState = propertyState; break;
746  case CTF_FRAMEWIDTH_REL: pWidthRelState = propertyState; break;
747  case CTF_FRAMEWIDTH_TYPE: pWidthTypeState = propertyState; break;
748 
749  case CTF_WRAP: pWrapState = propertyState; break;
750  case CTF_WRAP_CONTOUR: pWrapContourState = propertyState; break;
751  case CTF_WRAP_CONTOUR_MODE: pWrapContourModeState = propertyState; break;
752  case CTF_WRAP_PARAGRAPH_ONLY: pWrapParagraphOnlyState = propertyState; break;
753  case CTF_ANCHORTYPE: pAnchorTypeState = propertyState; break;
754 
755  case CTF_HORIZONTALPOS: pHoriOrientState = propertyState; bNeedsAnchor = true; break;
756  case CTF_HORIZONTALPOS_MIRRORED: pHoriOrientMirroredState = propertyState; bNeedsAnchor = true; break;
757  case CTF_HORIZONTALREL: pHoriOrientRelState = propertyState; bNeedsAnchor = true; break;
758  case CTF_HORIZONTALREL_FRAME: pHoriOrientRelFrameState = propertyState; bNeedsAnchor = true; break;
759  case CTF_HORIZONTALMIRROR: pHoriOrientMirrorState = propertyState; bNeedsAnchor = true; break;
760  case CTF_RELWIDTHREL: pRelWidthRel = propertyState; break;
761  case CTF_VERTICALPOS: pVertOrientState = propertyState; bNeedsAnchor = true; break;
762  case CTF_VERTICALPOS_ATCHAR: pVertOrientAtCharState = propertyState; bNeedsAnchor = true; break;
763  case CTF_VERTICALREL: pVertOrientRelState = propertyState; bNeedsAnchor = true; break;
764  case CTF_VERTICALREL_PAGE: pVertOrientRelPageState = propertyState; bNeedsAnchor = true; break;
765  case CTF_VERTICALREL_FRAME: pVertOrientRelFrameState = propertyState; bNeedsAnchor = true; break;
766  case CTF_VERTICALREL_ASCHAR: pVertOrientRelAsCharState = propertyState; bNeedsAnchor = true; break;
767  case CTF_RELHEIGHTREL: pRelHeightRel = propertyState; break;
768 
769  // Handle new CTFs for shape positioning properties (#i28749#)
770  case CTF_SHAPE_HORIZONTALPOS: pShapeHoriOrientState = propertyState; bNeedsAnchor = true; break;
771  case CTF_SHAPE_HORIZONTALPOS_MIRRORED: pShapeHoriOrientMirroredState = propertyState; bNeedsAnchor = true; break;
772  case CTF_SHAPE_HORIZONTALREL: pShapeHoriOrientRelState = propertyState; bNeedsAnchor = true; break;
773  case CTF_SHAPE_HORIZONTALREL_FRAME: pShapeHoriOrientRelFrameState = propertyState; bNeedsAnchor = true; break;
774  case CTF_SHAPE_HORIZONTALMIRROR: pShapeHoriOrientMirrorState = propertyState; bNeedsAnchor = true; break;
775  case CTF_SHAPE_VERTICALPOS: pShapeVertOrientState = propertyState; bNeedsAnchor = true; break;
776  case CTF_SHAPE_VERTICALPOS_ATCHAR: pShapeVertOrientAtCharState = propertyState; bNeedsAnchor = true; break;
777  case CTF_SHAPE_VERTICALREL: pShapeVertOrientRelState = propertyState; bNeedsAnchor = true; break;
778  case CTF_SHAPE_VERTICALREL_PAGE: pShapeVertOrientRelPageState = propertyState; bNeedsAnchor = true; break;
779  case CTF_SHAPE_VERTICALREL_FRAME: pShapeVertOrientRelFrameState = propertyState; bNeedsAnchor = true; break;
780  case CTF_FONTNAME: pFontNameState = propertyState; break;
781  case CTF_FONTFAMILYNAME: pFontFamilyNameState = propertyState; break;
782  case CTF_FONTSTYLENAME: pFontStyleNameState = propertyState; break;
783  case CTF_FONTFAMILY: pFontFamilyState = propertyState; break;
784  case CTF_FONTPITCH: pFontPitchState = propertyState; break;
785  case CTF_FONTCHARSET: pFontCharsetState = propertyState; break;
786 
787  case CTF_FONTNAME_CJK: pFontNameCJKState = propertyState; break;
788  case CTF_FONTFAMILYNAME_CJK: pFontFamilyNameCJKState = propertyState; break;
789  case CTF_FONTSTYLENAME_CJK: pFontStyleNameCJKState = propertyState; break;
790  case CTF_FONTFAMILY_CJK: pFontFamilyCJKState = propertyState; break;
791  case CTF_FONTPITCH_CJK: pFontPitchCJKState = propertyState; break;
792  case CTF_FONTCHARSET_CJK: pFontCharsetCJKState = propertyState; break;
793 
794  case CTF_FONTNAME_CTL: pFontNameCTLState = propertyState; break;
795  case CTF_FONTFAMILYNAME_CTL: pFontFamilyNameCTLState = propertyState; break;
796  case CTF_FONTSTYLENAME_CTL: pFontStyleNameCTLState = propertyState; break;
797  case CTF_FONTFAMILY_CTL: pFontFamilyCTLState = propertyState; break;
798  case CTF_FONTPITCH_CTL: pFontPitchCTLState = propertyState; break;
799  case CTF_FONTCHARSET_CTL: pFontCharsetCTLState = propertyState; break;
800  case CTF_UNDERLINE: pUnderlineState = propertyState; break;
801  case CTF_UNDERLINE_COLOR: pUnderlineColorState = propertyState; break;
802  case CTF_UNDERLINE_HASCOLOR: pUnderlineHasColorState = propertyState; break;
803  case CTF_NUMBERINGSTYLENAME: pListStyleName = propertyState; break;
804  case CTF_TEXT_CLIP11: pClip11State = propertyState; break;
805  case CTF_TEXT_CLIP: pClipState = propertyState; break;
806  case CTF_PARAMARGINALL_REL: pAllParaMarginRel = propertyState; break;
807  case CTF_PARAMARGINALL: pAllParaMargin = propertyState; break;
808  case CTF_MARGINALL: pAllMargin = propertyState; break;
809 
810  case CTF_REPEAT_OFFSET_X:
811  pRepeatOffsetX = propertyState;
812  break;
813 
814  case CTF_REPEAT_OFFSET_Y:
815  pRepeatOffsetY = propertyState;
816  break;
817 
819  case CTF_FILLHATCHNAME:
820  case CTF_FILLBITMAPNAME:
821  case CTF_FILLTRANSNAME:
822  {
823  OUString aStr;
824  if( (propertyState->maValue >>= aStr) && 0 == aStr.getLength() )
825  propertyState->mnIndex = -1;
826  }
827  break;
828 
829  case CTF_CHAR_BACKGROUND: pCharBackground = propertyState; break;
830  case CTF_CHAR_BACKGROUND_TRANSPARENCY: pCharBackgroundTransparency = propertyState; break;
831  case CTF_CHAR_HIGHLIGHT: pCharHighlight = propertyState; break;
832  }
833  }
834 
835  if( pRepeatOffsetX && pRepeatOffsetY )
836  {
837  sal_Int32 nOffset = 0;
838  if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
839  pRepeatOffsetX->mnIndex = -1;
840  else
841  pRepeatOffsetY->mnIndex = -1;
842  }
843 
844  if( pFontNameState )
845  ContextFontFilter( bEnableFoFontFamily, pFontNameState, pFontFamilyNameState,
846  pFontStyleNameState, pFontFamilyState,
847  pFontPitchState, pFontCharsetState );
848  if( pFontNameCJKState )
849  ContextFontFilter( bEnableFoFontFamily, pFontNameCJKState, pFontFamilyNameCJKState,
850  pFontStyleNameCJKState, pFontFamilyCJKState,
851  pFontPitchCJKState, pFontCharsetCJKState );
852  if( pFontNameCTLState )
853  ContextFontFilter( bEnableFoFontFamily, pFontNameCTLState, pFontFamilyNameCTLState,
854  pFontStyleNameCTLState, pFontFamilyCTLState,
855  pFontPitchCTLState, pFontCharsetCTLState );
856 
857  if( pCharHeightState && (pCharPropHeightState || pCharDiffHeightState ) )
858  ContextFontHeightFilter( pCharHeightState, pCharPropHeightState,
859  pCharDiffHeightState );
860  if( pCharHeightCJKState &&
861  (pCharPropHeightCJKState || pCharDiffHeightCJKState ) )
862  ContextFontHeightFilter( pCharHeightCJKState, pCharPropHeightCJKState,
863  pCharDiffHeightCJKState );
864  if( pCharHeightCTLState &&
865  (pCharPropHeightCTLState || pCharDiffHeightCTLState ) )
866  ContextFontHeightFilter( pCharHeightCTLState, pCharPropHeightCTLState,
867  pCharDiffHeightCTLState );
868  if( pUnderlineColorState || pUnderlineHasColorState )
869  {
870  bool bClear = !pUnderlineState;
871  if( !bClear )
872  {
873  sal_Int16 nUnderline = 0;
874  pUnderlineState->maValue >>= nUnderline;
875  bClear = awt::FontUnderline::NONE == nUnderline;
876  }
877  if( bClear )
878  {
879  if( pUnderlineColorState )
880  pUnderlineColorState->mnIndex = -1;
881  if( pUnderlineHasColorState )
882  pUnderlineHasColorState->mnIndex = -1;
883  }
884  }
885 
886  lcl_checkMultiProperty(pParaLeftMarginState, pParaLeftMarginRelState);
887  lcl_checkMultiProperty(pParaRightMarginState, pParaRightMarginRelState);
888  lcl_checkMultiProperty(pParaTopMarginState, pParaTopMarginRelState);
889  lcl_checkMultiProperty(pParaBottomMarginState, pParaBottomMarginRelState);
890  lcl_checkMultiProperty(pParaFirstLineState, pParaFirstLineRelState);
891 
892  if (pAllParaMarginRel)
893  { // because older OOo/LO versions can't read fo:margin:
894  pAllParaMarginRel->mnIndex = -1; // just export individual attributes...
895  pAllParaMarginRel->maValue.clear();
896  }
897  if (pAllParaMargin)
898  {
899  pAllParaMargin->mnIndex = -1; // just export individual attributes...
900  pAllParaMargin->maValue.clear();
901  }
902  if (pAllMargin)
903  {
904  pAllMargin->mnIndex = -1; // just export individual attributes...
905  pAllMargin->maValue.clear();
906  }
907 
908  lcl_FilterBorders(
909  pAllBorderWidthState, pLeftBorderWidthState, pRightBorderWidthState,
910  pTopBorderWidthState, pBottomBorderWidthState, pAllBorderDistanceState,
911  pLeftBorderDistanceState, pRightBorderDistanceState, pTopBorderDistanceState,
912  pBottomBorderDistanceState, pAllBorderState, pLeftBorderState,
913  pRightBorderState, pTopBorderState, pBottomBorderState);
914 
915  lcl_FilterBorders(
916  pCharAllBorderWidthState, pCharLeftBorderWidthState, pCharRightBorderWidthState,
917  pCharTopBorderWidthState, pCharBottomBorderWidthState, pCharAllBorderDistanceState,
918  pCharLeftBorderDistanceState, pCharRightBorderDistanceState, pCharTopBorderDistanceState,
919  pCharBottomBorderDistanceState, pCharAllBorderState, pCharLeftBorderState,
920  pCharRightBorderState, pCharTopBorderState, pCharBottomBorderState);
921 
922  sal_Int16 nSizeType = SizeType::FIX;
923  if( pSizeTypeState )
924  {
925  pSizeTypeState->maValue >>= nSizeType;
926  pSizeTypeState->mnIndex = -1;
927  }
928 
929  if( pHeightMinAbsState )
930  {
931  sal_Int16 nRel = sal_Int16();
932  if( (SizeType::FIX == nSizeType) ||
933  ( pHeightMinRelState &&
934  ( !(pHeightMinRelState->maValue >>= nRel) || nRel > 0 ) ) )
935  {
936  pHeightMinAbsState->mnIndex = -1;
937  }
938 
939  // export SizeType::VARIABLE as min-width="0"
940  if( SizeType::VARIABLE == nSizeType )
941  pHeightMinAbsState->maValue <<= static_cast<sal_Int32>( 0 );
942  }
943  if( pHeightMinRelState && SizeType::MIN != nSizeType)
944  pHeightMinRelState->mnIndex = -1;
945  if( pHeightAbsState && pHeightMinAbsState &&
946  -1 != pHeightMinAbsState->mnIndex )
947  pHeightAbsState->mnIndex = -1;
948  if( pHeightRelState && SizeType::FIX != nSizeType)
949  pHeightRelState->mnIndex = -1;
950 
951  // frame width
952  nSizeType = SizeType::FIX;
953  if( pWidthTypeState )
954  {
955  pWidthTypeState->maValue >>= nSizeType;
956  pWidthTypeState->mnIndex = -1;
957  }
958  if( pWidthMinAbsState )
959  {
960  sal_Int16 nRel = sal_Int16();
961  if( (SizeType::FIX == nSizeType) ||
962  ( pWidthMinRelState &&
963  ( !(pWidthMinRelState->maValue >>= nRel) || nRel > 0 ) ) )
964  {
965  pWidthMinAbsState->mnIndex = -1;
966  }
967 
968  // export SizeType::VARIABLE as min-width="0"
969  if( SizeType::VARIABLE == nSizeType )
970  pWidthMinAbsState->maValue <<= static_cast<sal_Int32>( 0 );
971  }
972  if( pWidthMinRelState && SizeType::MIN != nSizeType)
973  pWidthMinRelState->mnIndex = -1;
974  if( pWidthAbsState && pWidthMinAbsState &&
975  -1 != pWidthMinAbsState->mnIndex )
976  pWidthAbsState->mnIndex = -1;
977  if( pWidthRelState && SizeType::FIX != nSizeType)
978  pWidthRelState->mnIndex = -1;
979 
980  if( pWrapState )
981  {
982  WrapTextMode eVal;
983  pWrapState->maValue >>= eVal;
984  switch( eVal )
985  {
986  case WrapTextMode_NONE:
987  // no wrapping: disable para-only and contour
988  if( pWrapParagraphOnlyState )
989  pWrapParagraphOnlyState->mnIndex = -1;
990  [[fallthrough]];
991  case WrapTextMode_THROUGH:
992  // wrap through: disable only contour
993  if( pWrapContourState )
994  pWrapContourState->mnIndex = -1;
995  break;
996  default:
997  break;
998  }
999  if( pWrapContourModeState &&
1000  (!pWrapContourState ||
1001  !*o3tl::doAccess<bool>(pWrapContourState ->maValue) ) )
1002  pWrapContourModeState->mnIndex = -1;
1003  }
1004 
1005  TextContentAnchorType eAnchor = TextContentAnchorType_AT_PARAGRAPH;
1006  if( pAnchorTypeState )
1007  pAnchorTypeState->maValue >>= eAnchor;
1008  else if( bNeedsAnchor )
1009  {
1010  Any aAny = rPropSet->getPropertyValue("AnchorType");
1011  aAny >>= eAnchor;
1012  }
1013 
1014  // states for frame positioning attributes
1015  {
1016  if( pHoriOrientState && pHoriOrientMirroredState )
1017  {
1018  if( pHoriOrientMirrorState &&
1019  *o3tl::doAccess<bool>(pHoriOrientMirrorState->maValue) )
1020  pHoriOrientState->mnIndex = -1;
1021  else
1022  pHoriOrientMirroredState->mnIndex = -1;
1023  }
1024  if( pHoriOrientMirrorState )
1025  pHoriOrientMirrorState->mnIndex = -1;
1026 
1027  if( pHoriOrientRelState && TextContentAnchorType_AT_FRAME == eAnchor )
1028  pHoriOrientRelState->mnIndex = -1;
1029  if( pHoriOrientRelFrameState && TextContentAnchorType_AT_FRAME != eAnchor )
1030  pHoriOrientRelFrameState->mnIndex = -1;
1031  if (pRelWidthRel)
1032  {
1033  sal_Int16 nRelWidth = 0;
1034  rPropSet->getPropertyValue("RelativeWidth") >>= nRelWidth;
1035  if (!nRelWidth)
1036  pRelWidthRel->mnIndex = -1;
1037  }
1038 
1039  if( pVertOrientState && TextContentAnchorType_AT_CHARACTER == eAnchor )
1040  pVertOrientState->mnIndex = -1;
1041  if( pVertOrientAtCharState && TextContentAnchorType_AT_CHARACTER != eAnchor )
1042  pVertOrientAtCharState->mnIndex = -1;
1043  if( pVertOrientRelState && TextContentAnchorType_AT_PARAGRAPH != eAnchor &&
1044  TextContentAnchorType_AT_CHARACTER != eAnchor )
1045  pVertOrientRelState->mnIndex = -1;
1046  if( pVertOrientRelPageState && TextContentAnchorType_AT_PAGE != eAnchor )
1047  pVertOrientRelPageState->mnIndex = -1;
1048  if( pVertOrientRelFrameState && TextContentAnchorType_AT_FRAME != eAnchor )
1049  pVertOrientRelFrameState->mnIndex = -1;
1050  if( pVertOrientRelAsCharState && TextContentAnchorType_AS_CHARACTER != eAnchor )
1051  pVertOrientRelAsCharState->mnIndex = -1;
1052  if (pRelHeightRel)
1053  {
1054  sal_Int16 nRelHeight = 0;
1055  rPropSet->getPropertyValue("RelativeHeight") >>= nRelHeight;
1056  if (!nRelHeight)
1057  pRelHeightRel->mnIndex = -1;
1058  }
1059  }
1060 
1061  // States for shape positioning properties (#i28749#)
1062  if ( eAnchor != TextContentAnchorType_AS_CHARACTER &&
1063  !( GetExport().getExportFlags() & SvXMLExportFlags::OASIS ) )
1064  {
1065  // no export of shape positioning properties,
1066  // if shape isn't anchored as-character and
1067  // destination file format is OpenOffice.org file format
1068  if ( pShapeHoriOrientState )
1069  pShapeHoriOrientState->mnIndex = -1;
1070  if ( pShapeHoriOrientMirroredState )
1071  pShapeHoriOrientMirroredState->mnIndex = -1;
1072  if ( pShapeHoriOrientRelState )
1073  pShapeHoriOrientRelState->mnIndex = -1;
1074  if ( pShapeHoriOrientRelFrameState )
1075  pShapeHoriOrientRelFrameState->mnIndex = -1;
1076  if ( pShapeHoriOrientMirrorState )
1077  pShapeHoriOrientMirrorState->mnIndex = -1;
1078  if ( pShapeVertOrientState )
1079  pShapeVertOrientState->mnIndex = -1;
1080  if ( pShapeVertOrientAtCharState )
1081  pShapeVertOrientAtCharState->mnIndex = -1;
1082  if ( pShapeVertOrientRelState )
1083  pShapeVertOrientRelState->mnIndex = -1;
1084  if ( pShapeVertOrientRelPageState )
1085  pShapeVertOrientRelPageState->mnIndex = -1;
1086  if ( pShapeVertOrientRelFrameState )
1087  pShapeVertOrientRelFrameState->mnIndex = -1;
1088  }
1089  else
1090  {
1091  // handling of shape positioning property states as for frames - see above
1092  if( pShapeHoriOrientState && pShapeHoriOrientMirroredState )
1093  {
1094  if( pShapeHoriOrientMirrorState &&
1095  *o3tl::doAccess<bool>(pShapeHoriOrientMirrorState->maValue) )
1096  pShapeHoriOrientState->mnIndex = -1;
1097  else
1098  pShapeHoriOrientMirroredState->mnIndex = -1;
1099  }
1100  if( pShapeHoriOrientMirrorState )
1101  pShapeHoriOrientMirrorState->mnIndex = -1;
1102 
1103  if( pShapeHoriOrientRelState && TextContentAnchorType_AT_FRAME == eAnchor )
1104  pShapeHoriOrientRelState->mnIndex = -1;
1105  if( pShapeHoriOrientRelFrameState && TextContentAnchorType_AT_FRAME != eAnchor )
1106  pShapeHoriOrientRelFrameState->mnIndex = -1;
1107 
1108  if( pShapeVertOrientState && TextContentAnchorType_AT_CHARACTER == eAnchor )
1109  pShapeVertOrientState->mnIndex = -1;
1110  if( pShapeVertOrientAtCharState && TextContentAnchorType_AT_CHARACTER != eAnchor )
1111  pShapeVertOrientAtCharState->mnIndex = -1;
1112  if( pShapeVertOrientRelState && TextContentAnchorType_AT_PARAGRAPH != eAnchor &&
1113  TextContentAnchorType_AT_CHARACTER != eAnchor )
1114  pShapeVertOrientRelState->mnIndex = -1;
1115  if( pShapeVertOrientRelPageState && TextContentAnchorType_AT_PAGE != eAnchor )
1116  pShapeVertOrientRelPageState->mnIndex = -1;
1117  if( pShapeVertOrientRelFrameState && TextContentAnchorType_AT_FRAME != eAnchor )
1118  pShapeVertOrientRelFrameState->mnIndex = -1;
1119  }
1120 
1121  // list style name: remove list style if it is the default outline style
1122  if( pListStyleName != nullptr )
1123  {
1124  OUString sListStyleName;
1125  pListStyleName->maValue >>= sListStyleName;
1126  if( lcl_IsOutlineStyle( GetExport(), sListStyleName ) )
1127  pListStyleName->mnIndex = -1;
1128  }
1129 
1130  if( pClipState != nullptr && pClip11State != nullptr )
1131  pClip11State->mnIndex = -1;
1132 
1133  // When both background attributes are available export the visible one
1134  if (pCharHighlight)
1135  {
1136  Color nColor = COL_TRANSPARENT;
1137  pCharHighlight->maValue >>= nColor;
1138  if( nColor == COL_TRANSPARENT )
1139  {
1140  // actually this would not be exported as transparent anyway
1141  // and we'd need another property CharHighlightTransparent for that
1142  pCharHighlight->mnIndex = -1;
1143  }
1144  // When both background attributes are available export the visible one
1145  else if(pCharBackground)
1146  {
1147  assert(pCharBackgroundTransparency); // always together
1148  pCharBackground->mnIndex = -1;
1149  pCharBackgroundTransparency->mnIndex = -1;
1150  }
1151  }
1152 
1153  SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily, rProperties, rPropSet);
1154 }
1155 
1156 namespace {
1157 
1158 bool lcl_IsOutlineStyle(const SvXMLExport &rExport, const OUString & rName)
1159 {
1160  Reference< XChapterNumberingSupplier >
1161  xCNSupplier(rExport.GetModel(), UNO_QUERY);
1162 
1163  OUString sOutlineName;
1164 
1165  if (xCNSupplier.is())
1166  {
1167  Reference<XPropertySet> xNumRule(
1168  xCNSupplier->getChapterNumberingRules(), UNO_QUERY );
1169  SAL_WARN_IF( !xNumRule.is(), "xmloff", "no chapter numbering rules" );
1170  if (xNumRule.is())
1171  {
1172  xNumRule->getPropertyValue("Name") >>= sOutlineName;
1173  }
1174  }
1175 
1176  return rName == sOutlineName;
1177 }
1178 
1179 }
1180 
1181 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define CTF_CHARHEIGHT
Definition: txtprmap.hxx:25
#define CTF_FONTPITCH_CJK
Definition: txtprmap.hxx:98
#define CTF_WRAP_PARAGRAPH_ONLY
Definition: txtprmap.hxx:74
#define CTF_FONTFAMILY_CTL
Definition: txtprmap.hxx:106
#define CTF_CHARHEIGHT_DIFF_CTL
Definition: txtprmap.hxx:111
#define CTF_FRAMEWIDTH_MIN_REL
Definition: txtprmap.hxx:148
#define CTF_CHARHEIGHT_DIFF
Definition: txtprmap.hxx:92
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set ...
Definition: xmlexppr.cxx:839
SvxXMLTabStopExport maTabStopExport
Definition: txtexppr.hxx:54
#define CTF_SHAPE_HORIZONTALPOS_MIRRORED
Definition: txtprmap.hxx:157
#define CTF_SECTION_FOOTNOTE_NUM_PREFIX
Definition: txtprmap.hxx:119
#define CTF_SHAPE_VERTICALREL
Definition: txtprmap.hxx:163
#define CTF_BOTTOMBORDER
Definition: txtprmap.hxx:51
#define CTF_SHAPE_HORIZONTALREL
Definition: txtprmap.hxx:158
#define CTF_PARALEFTMARGIN_REL
Definition: txtprmap.hxx:28
#define CTF_TABSTOP
Definition: txtprmap.hxx:55
#define CTF_CHARTOPBORDERDISTANCE
Definition: txtprmap.hxx:190
#define CTF_SHAPE_VERTICALREL_FRAME
Definition: txtprmap.hxx:165
#define CTF_LEFTBORDER
Definition: txtprmap.hxx:48
the SvXMLTypeConverter converts values of various types from their internal representation to the tex...
Definition: xmluconv.hxx:77
#define CTF_CHARRIGHTBORDERDISTANCE
Definition: txtprmap.hxx:189
#define CTF_FRAMEHEIGHT_ABS
Definition: txtprmap.hxx:65
#define CTF_FRAMEHEIGHT_MIN_REL
Definition: txtprmap.hxx:68
#define CTF_SIZETYPE
Definition: txtprmap.hxx:69
#define CTF_PARAMARGINALL
Definition: txtprmap.hxx:173
#define CTF_FONTSTYLENAME_CJK
Definition: txtprmap.hxx:96
FAMILY_DONTKNOW
#define CTF_VERTICALREL_PAGE
Definition: txtprmap.hxx:85
#define CTF_SECTION_ENDNOTE_NUM_RESTART
Definition: txtprmap.hxx:123
virtual ~XMLTextExportPropertySetMapper() override
Definition: txtexppr.cxx:199
#define CTF_NUMBERINGSTYLENAME
Definition: txtprmap.hxx:56
XMLTextColumnsExport maTextColumnsExport
Definition: txtexppr.hxx:55
#define CTF_ALLBORDER
Definition: txtprmap.hxx:47
sal_Int32 mnIndex
Definition: maptype.hxx:106
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
Definition: txtexppr.cxx:499
#define CTF_SECTION_ENDNOTE_NUM_TYPE
Definition: txtprmap.hxx:125
#define CTF_FRAMEWIDTH_ABS
Definition: txtprmap.hxx:146
void ContextFontFilter(bool bEnableFoFontFamily, XMLPropertyState *pFontNameState, XMLPropertyState *pFontFamilyNameState, XMLPropertyState *pFontStyleNameState, XMLPropertyState *pFontFamilyState, XMLPropertyState *pFontPitchState, XMLPropertyState *pFontCharsetState) const
Definition: txtexppr.cxx:203
#define CTF_CHARHEIGHT_REL_CJK
Definition: txtprmap.hxx:101
#define CTF_FONTFAMILYNAME_CJK
Definition: txtprmap.hxx:95
#define CTF_FONTPITCH_CTL
Definition: txtprmap.hxx:107
#define CTF_FILLGRADIENTNAME
Definition: xmlsdtypes.hxx:139
#define CTF_BACKGROUND_POS
Definition: txtprmap.hxx:90
#define CTF_DEFAULT_OUTLINE_LEVEL
Definition: txtprmap.hxx:167
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
Definition: xmlexppr.cxx:823
#define CTF_FILLTRANSNAME
Definition: xmlsdtypes.hxx:142
#define CTF_PARABOTTOMMARGIN_REL
Definition: txtprmap.hxx:36
#define CTF_FONTCHARSET
Definition: txtprmap.hxx:62
#define CTF_FONTFAMILYNAME
Definition: txtprmap.hxx:58
#define CTF_REPEAT_OFFSET_X
Definition: xmlsdtypes.hxx:127
#define CTF_RIGHTBORDERDISTANCE
Definition: txtprmap.hxx:44
#define CTF_TOPBORDERWIDTH
Definition: txtprmap.hxx:40
#define CTF_FONTCHARSET_CJK
Definition: txtprmap.hxx:99
#define CTF_RIGHTBORDER
Definition: txtprmap.hxx:49
constexpr::Color COL_TRANSPARENT(0xFF, 0xFF, 0xFF, 0xFF)
const css::uno::Reference< css::frame::XModel > & GetModel() const
Definition: xmlexp.hxx:415
#define CTF_CHARHEIGHT_REL_CTL
Definition: txtprmap.hxx:110
#define CTF_SECTION_ENDNOTE_NUM_PREFIX
Definition: txtprmap.hxx:126
#define CTF_FILLBITMAPNAME
Definition: xmlsdtypes.hxx:141
#define CTF_BACKGROUND_TRANSPARENCY
Definition: txtprmap.hxx:143
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const
Application-specific filter.
Definition: xmlexppr.cxx:638
#define CTF_CHARLEFTBORDER
Definition: txtprmap.hxx:193
#define CTF_SECTION_ENDNOTE_END
Definition: txtprmap.hxx:122
#define CTF_PARATOPMARGIN
Definition: txtprmap.hxx:33
#define CTF_DROPCAPCHARSTYLE
Definition: txtprmap.hxx:54
#define CTF_VERTICALREL_ASCHAR
Definition: txtprmap.hxx:87
#define CTF_VERTICALREL_FRAME
Definition: txtprmap.hxx:86
#define CTF_DROPCAPFORMAT
Definition: txtprmap.hxx:53
const char * sName
#define CTF_FRAMEWIDTH_MIN_ABS
Definition: txtprmap.hxx:147
#define CTF_CHARLEFTBORDERDISTANCE
Definition: txtprmap.hxx:188
#define CTF_LEFTBORDERDISTANCE
Definition: txtprmap.hxx:43
#define CTF_CHAR_BACKGROUND_TRANSPARENCY
Definition: txtprmap.hxx:200
#define CTF_FONTCHARSET_CTL
Definition: txtprmap.hxx:108
#define CTF_FONTNAME_CJK
Definition: txtprmap.hxx:94
#define CTF_VERTICALPOS_ATCHAR
Definition: txtprmap.hxx:142
#define CTF_SHAPE_HORIZONTALMIRROR
Definition: txtprmap.hxx:160
#define CTF_TEXT_CLIP
Definition: txtprmap.hxx:171
#define CTF_LEFTBORDERWIDTH
Definition: txtprmap.hxx:38
#define CTF_CHARALLBORDERWIDTH
Definition: txtprmap.hxx:182
#define CTF_BACKGROUND_URL
Definition: txtprmap.hxx:89
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
Definition: txtexppr.cxx:137
#define CTF_PARAFIRSTLINE
Definition: txtprmap.hxx:31
#define CTF_SECTION_FOOTNOTE_NUM_TYPE
Definition: txtprmap.hxx:118
#define CTF_PARATOPMARGIN_REL
Definition: txtprmap.hxx:34
#define CTF_SHAPE_HORIZONTALREL_FRAME
Definition: txtprmap.hxx:159
#define CTF_CHARHEIGHT_REL
Definition: txtprmap.hxx:26
#define CTF_FONTFAMILY
Definition: txtprmap.hxx:60
#define CTF_SECTION_ENDNOTE_NUM_SUFFIX
Definition: txtprmap.hxx:127
XMLBackgroundImageExport maBackgroundImageExport
Definition: txtexppr.hxx:56
#define CTF_CHAR_BACKGROUND
Definition: txtprmap.hxx:199
#define CTF_CHARRIGHTBORDERWIDTH
Definition: txtprmap.hxx:184
void Export(const css::uno::Any &rAny)
Definition: xmltabe.cxx:103
#define CTF_VERTICALREL
Definition: txtprmap.hxx:84
const SvXMLExport & GetExport() const
Definition: txtexppr.hxx:63
PITCH_DONTKNOW
#define CTF_SECTION_FOOTNOTE_NUM_RESTART
Definition: txtprmap.hxx:116
#define CTF_FONTPITCH
Definition: txtprmap.hxx:61
XMLTextExportPropertySetMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLExport &rExt)
Definition: txtexppr.cxx:186
#define CTF_OLD_FLOW_WITH_TEXT
Definition: txtprmap.hxx:168
#define CTF_SHAPE_VERTICALPOS_ATCHAR
Definition: txtprmap.hxx:162
FontPitch
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set ...
Definition: txtexppr.cxx:46
#define CTF_SECTION_FOOTNOTE_NUM_SUFFIX
Definition: txtprmap.hxx:120
#define CTF_FONTSTYLENAME_CTL
Definition: txtprmap.hxx:105
#define CTF_SHAPE_HORIZONTALPOS
Definition: txtprmap.hxx:156
#define CTF_TOPBORDERDISTANCE
Definition: txtprmap.hxx:45
#define CTF_RELWIDTHREL
Definition: txtprmap.hxx:197
#define CTF_FILLHATCHNAME
Definition: xmlsdtypes.hxx:140
#define CTF_SECTION_FOOTNOTE_NUM_RESTART_AT
Definition: txtprmap.hxx:117
#define CTF_SECTION_FOOTNOTE_NUM_OWN
Definition: txtprmap.hxx:121
void exportXML(const css::uno::Any &rURL, const css::uno::Any *pPos, const css::uno::Any *pFilter, const css::uno::Any *pTransparency, sal_uInt16 nPrefix, const OUString &rLocalName)
void exportXML(const css::uno::Any &rAny, bool bWholeWord, const OUString &rStyleName)
Definition: txtdrope.cxx:44
#define CTF_CHARTOPBORDERWIDTH
Definition: txtprmap.hxx:185
FontFamily
#define CTF_BOTTOMBORDERDISTANCE
Definition: txtprmap.hxx:46
#define CTF_FRAMEWIDTH_REL
Definition: txtprmap.hxx:149
#define CTF_FRAMEHEIGHT_MIN_ABS
Definition: txtprmap.hxx:67
#define CTF_CHARALLBORDERDISTANCE
Definition: txtprmap.hxx:187
#define CTF_PARALEFTMARGIN
Definition: txtprmap.hxx:27
#define CTF_ANCHORTYPE
Definition: txtprmap.hxx:75
css::uno::Any maValue
Definition: maptype.hxx:107
#define CTF_CHARTOPBORDER
Definition: txtprmap.hxx:195
#define CTF_CHARALLBORDER
Definition: txtprmap.hxx:192
SvXmlExportFlags
Definition: xmlexppr.hxx:39
#define CTF_BACKGROUND_FILTER
Definition: txtprmap.hxx:91
#define SAL_WARN_IF(condition, area, stream)
#define CTF_PAGEDESCNAME
Definition: txtprmap.hxx:88
#define CTF_HORIZONTALREL
Definition: txtprmap.hxx:80
#define CTF_CHARBOTTOMBORDER
Definition: txtprmap.hxx:196
#define CTF_FONTSTYLENAME
Definition: txtprmap.hxx:59
#define CTF_UNDERLINE
Definition: txtprmap.hxx:112
#define CTF_PARARIGHTMARGIN_REL
Definition: txtprmap.hxx:30
#define CTF_HORIZONTALMIRROR
Definition: txtprmap.hxx:82
#define CTF_CHAR_HIGHLIGHT
Definition: txtprmap.hxx:201
#define CTF_UNDERLINE_COLOR
Definition: txtprmap.hxx:113
#define CTF_DROPCAPWHOLEWORD
Definition: txtprmap.hxx:52
#define CTF_FRAMEWIDTH_TYPE
Definition: txtprmap.hxx:150
#define CTF_FONTFAMILYNAME_CTL
Definition: txtprmap.hxx:104
Smart struct to transport an Any with an index to the appropriate property-name.
Definition: maptype.hxx:104
#define CTF_MARGINALL
Definition: txtprmap.hxx:175
#define CTF_CHARBOTTOMBORDERWIDTH
Definition: txtprmap.hxx:186
#define CTF_WRAP
Definition: txtprmap.hxx:71
#define CTF_ALLBORDERDISTANCE
Definition: txtprmap.hxx:42
#define CTF_FONTNAME_CTL
Definition: txtprmap.hxx:103
#define CTF_FRAMEHEIGHT_REL
Definition: txtprmap.hxx:66
#define CTF_PARARIGHTMARGIN
Definition: txtprmap.hxx:29
#define CTF_SECTION_ENDNOTE_NUM_RESTART_AT
Definition: txtprmap.hxx:124
#define CTF_CHARLEFTBORDERWIDTH
Definition: txtprmap.hxx:183
#define CTF_VERTICALPOS
Definition: txtprmap.hxx:83
#define CTF_WRAP_CONTOUR
Definition: txtprmap.hxx:72
static void exportXML(SvXMLExport &rExport, bool bEndnote, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx, const rtl::Reference< XMLPropertySetMapper > &rMapper)
#define CTF_UNDERLINE_HASCOLOR
Definition: txtprmap.hxx:114
static void ContextFontHeightFilter(XMLPropertyState *pCharHeightState, XMLPropertyState *pCharPropHeightState, XMLPropertyState *pCharDiffHeightState)
Definition: txtexppr.cxx:293
#define CTF_CHARHEIGHT_DIFF_CJK
Definition: txtprmap.hxx:102
#define CTF_HORIZONTALREL_FRAME
Definition: txtprmap.hxx:81
#define CTF_CHARRIGHTBORDER
Definition: txtprmap.hxx:194
#define CTF_TEXT_CLIP11
Definition: txtprmap.hxx:172
#define CTF_PARAFIRSTLINE_REL
Definition: txtprmap.hxx:32
#define CTF_SHAPE_VERTICALPOS
Definition: txtprmap.hxx:161
#define CTF_ALLBORDERWIDTH
Definition: txtprmap.hxx:37
#define CTF_BOTTOMBORDERWIDTH
Definition: txtprmap.hxx:41
#define CTF_CHARBOTTOMBORDERDISTANCE
Definition: txtprmap.hxx:191
#define CTF_SECTION_ENDNOTE_NUM_OWN
Definition: txtprmap.hxx:128
#define CTF_OLDTEXTBACKGROUND
Definition: txtprmap.hxx:57
#define CTF_HORIZONTALPOS_MIRRORED
Definition: txtprmap.hxx:79
#define CTF_FONTNAME
Definition: txtprmap.hxx:93
#define CTF_REPEAT_OFFSET_Y
Definition: xmlsdtypes.hxx:128
#define CTF_TEXTCOLUMNS
Definition: txtprmap.hxx:77
#define CTF_PARABOTTOMMARGIN
Definition: txtprmap.hxx:35
#define CTF_RIGHTBORDERWIDTH
Definition: txtprmap.hxx:39
#define CTF_HORIZONTALPOS
Definition: txtprmap.hxx:78
css::uno::Any const SvXMLExport & rExport
Definition: ImageStyle.hxx:38
XMLTextDropCapExport maDropCapExport
Definition: txtexppr.hxx:53
#define CTF_RELHEIGHTREL
Definition: txtprmap.hxx:198
#define CTF_SHAPE_VERTICALREL_PAGE
Definition: txtprmap.hxx:164
aStr
#define CTF_CHARHEIGHT_CJK
Definition: txtprmap.hxx:100
#define CTF_WRAP_CONTOUR_MODE
Definition: txtprmap.hxx:73
double maValue
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
Definition: xmlexppr.cxx:1082
#define CTF_FONTFAMILY_CJK
Definition: txtprmap.hxx:97
#define CTF_PARAMARGINALL_REL
Definition: txtprmap.hxx:174
void exportXML(const css::uno::Any &rAny)
#define CTF_CHARHEIGHT_CTL
Definition: txtprmap.hxx:109
#define CTF_TOPBORDER
Definition: txtprmap.hxx:50
#define CTF_SECTION_FOOTNOTE_END
Definition: txtprmap.hxx:115