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