1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #include "PageMasterExportPropMapper.hxx"
21 #include <xmloff/xmltoken.hxx>
22 #include <comphelper/types.hxx>
23 #include <com/sun/star/table/BorderLine2.hpp>
24 #include <xmloff/PageMasterStyleMap.hxx>
25 #include <rtl/ustrbuf.hxx>
26 #include <comphelper/extract.hxx>
29 #include <xmloff/txtprmap.hxx>
31 using namespace ::com::sun::star
;
32 using namespace ::com::sun::star::uno
;
33 using namespace ::com::sun::star::beans
;
34 using namespace ::comphelper
;
35 using namespace ::xmloff::token
;
37 static inline bool lcl_HasSameLineWidth( const table::BorderLine2
& rLine1
, const table::BorderLine2
& rLine2
)
39 return (rLine1
.InnerLineWidth
== rLine2
.InnerLineWidth
) &&
40 (rLine1
.OuterLineWidth
== rLine2
.OuterLineWidth
) &&
41 (rLine1
.LineDistance
== rLine2
.LineDistance
) &&
42 (rLine1
.LineWidth
== rLine2
.LineWidth
);
45 inline bool operator==( const table::BorderLine2
& rLine1
, const table::BorderLine2
& rLine2
)
47 return (rLine1
.Color
== rLine2
.Color
) &&
48 lcl_HasSameLineWidth( rLine1
, rLine2
) &&
49 ( rLine1
.LineStyle
== rLine2
.LineStyle
);
52 static inline void lcl_RemoveState( XMLPropertyState
* pState
)
55 pState
->maValue
.clear();
58 static void lcl_RemoveStateIfZero16( XMLPropertyState
* pState
)
60 sal_Int16 nValue
= sal_Int16();
61 if( (pState
->maValue
>>= nValue
) && !nValue
)
62 lcl_RemoveState( pState
);
65 static void lcl_AddState(::std::vector
< XMLPropertyState
>& rPropState
, sal_Int32 nIndex
, const OUString
& rProperty
, uno::Reference
< beans::XPropertySet
>& xProps
)
67 if(::cppu::any2bool(xProps
->getPropertyValue(rProperty
)))
68 rPropState
.push_back(XMLPropertyState (nIndex
, css::uno::Any(true)));
71 // helper struct to handle equal XMLPropertyState's for page, header and footer
73 struct XMLPropertyStateBuffer
75 XMLPropertyState
* pPMMarginAll
;
76 XMLPropertyState
* pPMMarginTop
;
77 XMLPropertyState
* pPMMarginBottom
;
78 XMLPropertyState
* pPMMarginLeft
;
79 XMLPropertyState
* pPMMarginRight
;
81 XMLPropertyState
* pPMBorderAll
;
82 XMLPropertyState
* pPMBorderTop
;
83 XMLPropertyState
* pPMBorderBottom
;
84 XMLPropertyState
* pPMBorderLeft
;
85 XMLPropertyState
* pPMBorderRight
;
87 XMLPropertyState
* pPMBorderWidthAll
;
88 XMLPropertyState
* pPMBorderWidthTop
;
89 XMLPropertyState
* pPMBorderWidthBottom
;
90 XMLPropertyState
* pPMBorderWidthLeft
;
91 XMLPropertyState
* pPMBorderWidthRight
;
93 XMLPropertyState
* pPMPaddingAll
;
94 XMLPropertyState
* pPMPaddingTop
;
95 XMLPropertyState
* pPMPaddingBottom
;
96 XMLPropertyState
* pPMPaddingLeft
;
97 XMLPropertyState
* pPMPaddingRight
;
99 XMLPropertyStateBuffer();
100 void ContextFilter( ::std::vector
< XMLPropertyState
>& rPropState
);
103 XMLPropertyStateBuffer::XMLPropertyStateBuffer()
104 : pPMMarginAll( NULL
)
105 , pPMMarginTop( NULL
)
106 , pPMMarginBottom( NULL
)
107 , pPMMarginLeft( NULL
)
108 , pPMMarginRight( NULL
)
110 pPMBorderAll( NULL
),
111 pPMBorderTop( NULL
),
112 pPMBorderBottom( NULL
),
113 pPMBorderLeft( NULL
),
114 pPMBorderRight( NULL
),
116 pPMBorderWidthAll( NULL
),
117 pPMBorderWidthTop( NULL
),
118 pPMBorderWidthBottom( NULL
),
119 pPMBorderWidthLeft( NULL
),
120 pPMBorderWidthRight( NULL
),
122 pPMPaddingAll( NULL
),
123 pPMPaddingTop( NULL
),
124 pPMPaddingBottom( NULL
),
125 pPMPaddingLeft( NULL
),
126 pPMPaddingRight( NULL
)
130 void XMLPropertyStateBuffer::ContextFilter( ::std::vector
< XMLPropertyState
>& )
134 lcl_RemoveState(pPMMarginAll
); // #i117696# do not write fo:margin
139 if( pPMBorderTop
&& pPMBorderBottom
&& pPMBorderLeft
&& pPMBorderRight
)
141 table::BorderLine2 aLineTop
, aLineBottom
, aLineLeft
, aLineRight
;
143 pPMBorderTop
->maValue
>>= aLineTop
;
144 pPMBorderBottom
->maValue
>>= aLineBottom
;
145 pPMBorderLeft
->maValue
>>= aLineLeft
;
146 pPMBorderRight
->maValue
>>= aLineRight
;
148 if( (aLineTop
== aLineBottom
) && (aLineBottom
== aLineLeft
) && (aLineLeft
== aLineRight
) )
150 lcl_RemoveState( pPMBorderTop
);
151 lcl_RemoveState( pPMBorderBottom
);
152 lcl_RemoveState( pPMBorderLeft
);
153 lcl_RemoveState( pPMBorderRight
);
156 lcl_RemoveState( pPMBorderAll
);
159 lcl_RemoveState( pPMBorderAll
);
162 if( pPMBorderWidthAll
)
164 if( pPMBorderWidthTop
&& pPMBorderWidthBottom
&& pPMBorderWidthLeft
&& pPMBorderWidthRight
)
166 table::BorderLine2 aLineTop
, aLineBottom
, aLineLeft
, aLineRight
;
168 pPMBorderWidthTop
->maValue
>>= aLineTop
;
169 pPMBorderWidthBottom
->maValue
>>= aLineBottom
;
170 pPMBorderWidthLeft
->maValue
>>= aLineLeft
;
171 pPMBorderWidthRight
->maValue
>>= aLineRight
;
173 if( lcl_HasSameLineWidth( aLineTop
, aLineBottom
) &&
174 lcl_HasSameLineWidth( aLineBottom
, aLineLeft
) &&
175 lcl_HasSameLineWidth( aLineLeft
, aLineRight
) )
177 lcl_RemoveState( pPMBorderWidthTop
);
178 lcl_RemoveState( pPMBorderWidthBottom
);
179 lcl_RemoveState( pPMBorderWidthLeft
);
180 lcl_RemoveState( pPMBorderWidthRight
);
183 lcl_RemoveState( pPMBorderWidthAll
);
186 lcl_RemoveState( pPMBorderWidthAll
);
191 if( pPMPaddingTop
&& pPMPaddingBottom
&& pPMPaddingLeft
&& pPMPaddingRight
)
193 sal_Int32 nTop
= 0, nBottom
= 0, nLeft
= 0, nRight
= 0;
195 pPMPaddingTop
->maValue
>>= nTop
;
196 pPMPaddingBottom
->maValue
>>= nBottom
;
197 pPMPaddingLeft
->maValue
>>= nLeft
;
198 pPMPaddingRight
->maValue
>>= nRight
;
200 if( (nTop
== nBottom
) && (nBottom
== nLeft
) && (nLeft
== nRight
) )
202 lcl_RemoveState( pPMPaddingTop
);
203 lcl_RemoveState( pPMPaddingBottom
);
204 lcl_RemoveState( pPMPaddingLeft
);
205 lcl_RemoveState( pPMPaddingRight
);
208 lcl_RemoveState( pPMPaddingAll
);
211 lcl_RemoveState( pPMPaddingAll
);
215 XMLPageMasterExportPropMapper::XMLPageMasterExportPropMapper(
216 const rtl::Reference
< XMLPropertySetMapper
>& rMapper
,
217 SvXMLExport
& rExport
) :
218 SvXMLExportPropertyMapper( rMapper
),
219 aBackgroundImageExport( rExport
),
220 aTextColumnsExport( rExport
),
221 aFootnoteSeparatorExport( rExport
)
225 XMLPageMasterExportPropMapper::~XMLPageMasterExportPropMapper()
229 void XMLPageMasterExportPropMapper::handleElementItem(
231 const XMLPropertyState
& rProperty
,
232 SvXmlExportFlags
/*nFlags*/,
233 const ::std::vector
< XMLPropertyState
>* pProperties
,
234 sal_uInt32 nIdx
) const
236 XMLPageMasterExportPropMapper
* pThis
= const_cast<XMLPageMasterExportPropMapper
*>(this);
238 sal_uInt32 nContextId
= getPropertySetMapper()->GetEntryContextId( rProperty
.mnIndex
);
241 case CTF_PM_GRAPHICURL
:
242 case CTF_PM_HEADERGRAPHICURL
:
243 case CTF_PM_FOOTERGRAPHICURL
:
246 assert(nIdx
>= 2 && "horrible array ordering borked again");
248 sal_Int32
nFilter(-1);
251 case CTF_PM_GRAPHICURL
:
252 nPos
= CTF_PM_GRAPHICPOSITION
;
253 nFilter
= CTF_PM_GRAPHICFILTER
;
255 case CTF_PM_HEADERGRAPHICURL
:
256 nPos
= CTF_PM_HEADERGRAPHICPOSITION
;
257 nFilter
= CTF_PM_HEADERGRAPHICFILTER
;
259 case CTF_PM_FOOTERGRAPHICURL
:
260 nPos
= CTF_PM_FOOTERGRAPHICPOSITION
;
261 nFilter
= CTF_PM_FOOTERGRAPHICFILTER
;
266 const Any
* pPos
= NULL
;
267 const Any
* pFilter
= NULL
;
268 sal_uInt32
nIndex(nIdx
- 1);
269 const XMLPropertyState
& rFilter
= (*pProperties
)[nIndex
];
270 if (getPropertySetMapper()->GetEntryContextId(rFilter
.mnIndex
) == nFilter
)
272 pFilter
= &rFilter
.maValue
;
275 const XMLPropertyState
& rPos
= (*pProperties
)[nIndex
];
276 if (getPropertySetMapper()->GetEntryContextId(rPos
.mnIndex
) == nPos
)
278 pPos
= &rPos
.maValue
;
281 sal_uInt32 nPropIndex
= rProperty
.mnIndex
;
282 pThis
->aBackgroundImageExport
.exportXML( rProperty
.maValue
, pPos
, pFilter
, NULL
,
283 getPropertySetMapper()->GetEntryNameSpace( nPropIndex
),
284 getPropertySetMapper()->GetEntryXMLName( nPropIndex
) );
287 case CTF_PM_TEXTCOLUMNS
:
288 pThis
->aTextColumnsExport
.exportXML( rProperty
.maValue
);
290 case CTF_PM_FTN_LINE_WEIGHT
:
291 pThis
->aFootnoteSeparatorExport
.exportXML( pProperties
, nIdx
,
292 getPropertySetMapper());
297 void XMLPageMasterExportPropMapper::handleSpecialItem(
299 const XMLPropertyState
&,
300 const SvXMLUnitConverter
&,
301 const SvXMLNamespaceMap
&,
302 const ::std::vector
< XMLPropertyState
>*,
303 sal_uInt32
/*nIdx*/) const
307 void XMLPageMasterExportPropMapper::ContextFilter(
308 bool bEnableFoFontFamily
,
309 ::std::vector
< XMLPropertyState
>& rPropState
,
310 Reference
< XPropertySet
> rPropSet
) const
312 XMLPropertyStateBuffer aPageBuffer
;
313 XMLPropertyStateBuffer aHeaderBuffer
;
314 XMLPropertyStateBuffer aFooterBuffer
;
316 XMLPropertyState
* pPMHeaderHeight
= NULL
;
317 XMLPropertyState
* pPMHeaderMinHeight
= NULL
;
318 XMLPropertyState
* pPMHeaderDynamic
= NULL
;
320 XMLPropertyState
* pPMFooterHeight
= NULL
;
321 XMLPropertyState
* pPMFooterMinHeight
= NULL
;
322 XMLPropertyState
* pPMFooterDynamic
= NULL
;
324 XMLPropertyState
* pPMScaleTo
= NULL
;
325 XMLPropertyState
* pPMScaleToPages
= NULL
;
326 XMLPropertyState
* pPMScaleToX
= NULL
;
327 XMLPropertyState
* pPMScaleToY
= NULL
;
328 XMLPropertyState
* pPMStandardMode
= NULL
;
329 XMLPropertyState
* pPMGridBaseWidth
= NULL
;
330 // same as pPMGridSnapTo but for backward compatibility only
331 XMLPropertyState
* pPMGridSnapToChars
= NULL
;
332 XMLPropertyState
* pPMGridSnapTo
= NULL
;
334 XMLPropertyState
* pPrint
= NULL
;
337 XMLPropertyState
* pRepeatOffsetX
= NULL
;
338 XMLPropertyState
* pRepeatOffsetY
= NULL
;
339 XMLPropertyState
* pHeaderRepeatOffsetX
= NULL
;
340 XMLPropertyState
* pHeaderRepeatOffsetY
= NULL
;
341 XMLPropertyState
* pFooterRepeatOffsetX
= NULL
;
342 XMLPropertyState
* pFooterRepeatOffsetY
= NULL
;
344 rtl::Reference
< XMLPropertySetMapper
> aPropMapper(getPropertySetMapper());
346 for( ::std::vector
< XMLPropertyState
>::iterator aIter
= rPropState
.begin(); aIter
!= rPropState
.end(); ++aIter
)
348 XMLPropertyState
*pProp
= &(*aIter
);
349 sal_Int16 nContextId
= aPropMapper
->GetEntryContextId( pProp
->mnIndex
);
350 sal_Int16 nFlag
= nContextId
& CTF_PM_FLAGMASK
;
351 sal_Int16 nSimpleId
= nContextId
& (~CTF_PM_FLAGMASK
| XML_PM_CTF_START
);
352 sal_Int16 nPrintId
= nContextId
& CTF_PM_PRINTMASK
;
354 XMLPropertyStateBuffer
* pBuffer
;
357 case CTF_PM_HEADERFLAG
: pBuffer
= &aHeaderBuffer
; break;
358 case CTF_PM_FOOTERFLAG
: pBuffer
= &aFooterBuffer
; break;
359 default: pBuffer
= &aPageBuffer
; break;
364 case CTF_PM_MARGINALL
: pBuffer
->pPMMarginAll
= pProp
; break;
365 case CTF_PM_MARGINTOP
: pBuffer
->pPMMarginTop
= pProp
; break;
366 case CTF_PM_MARGINBOTTOM
: pBuffer
->pPMMarginBottom
= pProp
; break;
367 case CTF_PM_MARGINLEFT
: pBuffer
->pPMMarginLeft
= pProp
; break;
368 case CTF_PM_MARGINRIGHT
: pBuffer
->pPMMarginRight
= pProp
; break;
369 case CTF_PM_BORDERALL
: pBuffer
->pPMBorderAll
= pProp
; break;
370 case CTF_PM_BORDERTOP
: pBuffer
->pPMBorderTop
= pProp
; break;
371 case CTF_PM_BORDERBOTTOM
: pBuffer
->pPMBorderBottom
= pProp
; break;
372 case CTF_PM_BORDERLEFT
: pBuffer
->pPMBorderLeft
= pProp
; break;
373 case CTF_PM_BORDERRIGHT
: pBuffer
->pPMBorderRight
= pProp
; break;
374 case CTF_PM_BORDERWIDTHALL
: pBuffer
->pPMBorderWidthAll
= pProp
; break;
375 case CTF_PM_BORDERWIDTHTOP
: pBuffer
->pPMBorderWidthTop
= pProp
; break;
376 case CTF_PM_BORDERWIDTHBOTTOM
: pBuffer
->pPMBorderWidthBottom
= pProp
; break;
377 case CTF_PM_BORDERWIDTHLEFT
: pBuffer
->pPMBorderWidthLeft
= pProp
; break;
378 case CTF_PM_BORDERWIDTHRIGHT
: pBuffer
->pPMBorderWidthRight
= pProp
; break;
379 case CTF_PM_PADDINGALL
: pBuffer
->pPMPaddingAll
= pProp
; break;
380 case CTF_PM_PADDINGTOP
: pBuffer
->pPMPaddingTop
= pProp
; break;
381 case CTF_PM_PADDINGBOTTOM
: pBuffer
->pPMPaddingBottom
= pProp
; break;
382 case CTF_PM_PADDINGLEFT
: pBuffer
->pPMPaddingLeft
= pProp
; break;
383 case CTF_PM_PADDINGRIGHT
: pBuffer
->pPMPaddingRight
= pProp
; break;
388 case CTF_PM_HEADERHEIGHT
: pPMHeaderHeight
= pProp
; break;
389 case CTF_PM_HEADERMINHEIGHT
: pPMHeaderMinHeight
= pProp
; break;
390 case CTF_PM_HEADERDYNAMIC
: pPMHeaderDynamic
= pProp
; break;
391 case CTF_PM_FOOTERHEIGHT
: pPMFooterHeight
= pProp
; break;
392 case CTF_PM_FOOTERMINHEIGHT
: pPMFooterMinHeight
= pProp
; break;
393 case CTF_PM_FOOTERDYNAMIC
: pPMFooterDynamic
= pProp
; break;
394 case CTF_PM_SCALETO
: pPMScaleTo
= pProp
; break;
395 case CTF_PM_SCALETOPAGES
: pPMScaleToPages
= pProp
; break;
396 case CTF_PM_SCALETOX
: pPMScaleToX
= pProp
; break;
397 case CTF_PM_SCALETOY
: pPMScaleToY
= pProp
; break;
398 case CTF_PM_STANDARD_MODE
: pPMStandardMode
= pProp
; break;
399 case CTP_PM_GRID_BASE_WIDTH
: pPMGridBaseWidth
= pProp
; break;
400 case CTP_PM_GRID_SNAP_TO_CHARS
: pPMGridSnapToChars
= pProp
; break;
401 case CTP_PM_GRID_SNAP_TO
: pPMGridSnapTo
= pProp
; break;
404 case CTF_PM_REPEAT_OFFSET_X
:
405 pRepeatOffsetX
= pProp
;
409 case CTF_PM_REPEAT_OFFSET_Y
:
410 pRepeatOffsetY
= pProp
;
414 case CTF_PM_HEADERREPEAT_OFFSET_X
:
415 pHeaderRepeatOffsetX
= pProp
;
419 case CTF_PM_HEADERREPEAT_OFFSET_Y
:
420 pHeaderRepeatOffsetY
= pProp
;
424 case CTF_PM_FOOTERREPEAT_OFFSET_X
:
425 pFooterRepeatOffsetX
= pProp
;
429 case CTF_PM_FOOTERREPEAT_OFFSET_Y
:
430 pFooterRepeatOffsetY
= pProp
;
433 //UUUU Sort out empty entries
434 case CTF_PM_FILLGRADIENTNAME
:
435 case CTF_PM_FILLHATCHNAME
:
436 case CTF_PM_FILLBITMAPNAME
:
437 case CTF_PM_FILLTRANSNAME
:
439 case CTF_PM_HEADERFILLGRADIENTNAME
:
440 case CTF_PM_HEADERFILLHATCHNAME
:
441 case CTF_PM_HEADERFILLBITMAPNAME
:
442 case CTF_PM_HEADERFILLTRANSNAME
:
444 case CTF_PM_FOOTERFILLGRADIENTNAME
:
445 case CTF_PM_FOOTERFILLHATCHNAME
:
446 case CTF_PM_FOOTERFILLBITMAPNAME
:
447 case CTF_PM_FOOTERFILLTRANSNAME
:
451 if( (pProp
->maValue
>>= aStr
) && 0 == aStr
.getLength() )
460 if (nPrintId
== CTF_PM_PRINTMASK
)
463 lcl_RemoveState(pPrint
);
467 //UUUU These entries need to be reduced to a single one for XML export.
468 // Both would be exported as 'draw:tile-repeat-offset' following a percent
469 // value and a 'vertical' or 'horizontal' tag as mark. If both would be active
470 // and both would be exported this would create an XML error (same property twice)
471 if(pRepeatOffsetX
&& pRepeatOffsetY
)
473 sal_Int32
nOffset(0);
475 if((pRepeatOffsetX
->maValue
>>= nOffset
) && (!nOffset
))
477 pRepeatOffsetX
->mnIndex
= -1;
481 pRepeatOffsetY
->mnIndex
= -1;
485 //UUUU Same as above for Header
486 if(pHeaderRepeatOffsetX
&& pHeaderRepeatOffsetY
)
488 sal_Int32
nOffset(0);
490 if((pHeaderRepeatOffsetX
->maValue
>>= nOffset
) && (!nOffset
))
492 pHeaderRepeatOffsetX
->mnIndex
= -1;
496 pHeaderRepeatOffsetY
->mnIndex
= -1;
500 //UUUU Same as above for Footer
501 if(pFooterRepeatOffsetX
&& pFooterRepeatOffsetY
)
503 sal_Int32
nOffset(0);
505 if((pFooterRepeatOffsetX
->maValue
>>= nOffset
) && (!nOffset
))
507 pFooterRepeatOffsetX
->mnIndex
= -1;
511 pFooterRepeatOffsetY
->mnIndex
= -1;
515 if( pPMStandardMode
&& !getBOOL(pPMStandardMode
->maValue
) )
517 lcl_RemoveState(pPMStandardMode
);
518 if( pPMGridBaseWidth
)
519 lcl_RemoveState(pPMGridBaseWidth
);
520 if( pPMGridSnapToChars
)
521 lcl_RemoveState(pPMGridSnapToChars
);
524 lcl_RemoveState(pPMGridSnapTo
);
528 if( pPMGridBaseWidth
&& pPMStandardMode
)
529 lcl_RemoveState(pPMStandardMode
);
531 aPageBuffer
.ContextFilter( rPropState
);
532 aHeaderBuffer
.ContextFilter( rPropState
);
533 aFooterBuffer
.ContextFilter( rPropState
);
535 if( pPMHeaderHeight
&& (!pPMHeaderDynamic
|| (pPMHeaderDynamic
&& getBOOL( pPMHeaderDynamic
->maValue
))) )
536 lcl_RemoveState( pPMHeaderHeight
);
537 if( pPMHeaderMinHeight
&& pPMHeaderDynamic
&& !getBOOL( pPMHeaderDynamic
->maValue
) )
538 lcl_RemoveState( pPMHeaderMinHeight
);
539 if( pPMHeaderDynamic
)
540 lcl_RemoveState( pPMHeaderDynamic
);
542 if( pPMFooterHeight
&& (!pPMFooterDynamic
|| (pPMFooterDynamic
&& getBOOL( pPMFooterDynamic
->maValue
))) )
543 lcl_RemoveState( pPMFooterHeight
);
544 if( pPMFooterMinHeight
&& pPMFooterDynamic
&& !getBOOL( pPMFooterDynamic
->maValue
) )
545 lcl_RemoveState( pPMFooterMinHeight
);
546 if( pPMFooterDynamic
)
547 lcl_RemoveState( pPMFooterDynamic
);
550 lcl_RemoveStateIfZero16( pPMScaleTo
);
551 if( pPMScaleToPages
)
552 lcl_RemoveStateIfZero16( pPMScaleToPages
);
554 lcl_RemoveStateIfZero16( pPMScaleToX
);
556 lcl_RemoveStateIfZero16( pPMScaleToY
);
560 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_ANNOTATIONS
), "PrintAnnotations", rPropSet
);
561 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_CHARTS
), "PrintCharts", rPropSet
);
562 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_DRAWING
), "PrintDrawing", rPropSet
);
563 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_FORMULAS
), "PrintFormulas", rPropSet
);
564 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_GRID
), "PrintGrid", rPropSet
);
565 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_HEADERS
), "PrintHeaders", rPropSet
);
566 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_OBJECTS
), "PrintObjects", rPropSet
);
567 lcl_AddState(rPropState
, aPropMapper
->FindEntryIndex(CTF_PM_PRINT_ZEROVALUES
), "PrintZeroValues", rPropSet
);
570 SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily
, rPropState
, rPropSet
);
573 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */