LibreOffice Module xmloff (master)  1
PageMasterImportPropMapper.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 
22 #include <PageMasterStyleMap.hxx>
23 #include <xmloff/maptype.hxx>
24 #include <com/sun/star/table/BorderLine2.hpp>
25 #include <com/sun/star/container/XNameContainer.hpp>
26 #include <xmloff/xmlimp.hxx>
27 #include <xmloff/xmlprmap.hxx>
28 #include <memory>
29 
30 #define XML_LINE_LEFT 0
31 #define XML_LINE_RIGHT 1
32 #define XML_LINE_TOP 2
33 #define XML_LINE_BOTTOM 3
34 
35 using namespace ::com::sun::star;
36 using namespace ::com::sun::star::uno;
37 using namespace ::com::sun::star::container;
38 
41  SvXMLImport& rImp ) :
42  SvXMLImportPropertyMapper( rMapper, rImp ),
43  rImport( rImp )
44 {
45 }
46 
48 {
49 }
50 
52  XMLPropertyState& rProperty,
53  std::vector< XMLPropertyState >& rProperties,
54  const OUString& rValue,
55  const SvXMLUnitConverter& rUnitConverter,
56  const SvXMLNamespaceMap& rNamespaceMap ) const
57 {
58  bool bRet = false;
59  sal_Int16 nContextID =
60  getPropertySetMapper()->GetEntryContextId(rProperty.mnIndex);
61 
62  if( CTF_PM_REGISTER_STYLE==nContextID )
63  {
66  Reference < XNameContainer > xParaStyles =
67  rImport.GetTextImport()->GetParaStyles();
68  if( xParaStyles.is() && xParaStyles->hasByName( sDisplayName ) )
69  {
70  rProperty.maValue <<= sDisplayName;
71  bRet = true;
72  }
73  }
74  else
75  {
77  rProperty, rProperties, rValue,
78  rUnitConverter, rNamespaceMap );
79  }
80 
81  return bRet;
82 }
83 
84 
85 void PageMasterImportPropertyMapper::finished(std::vector< XMLPropertyState >& rProperties, sal_Int32 nStartIndex, sal_Int32 nEndIndex ) const
86 {
87  SvXMLImportPropertyMapper::finished(rProperties, nStartIndex, nEndIndex);
88  XMLPropertyState* pAllPaddingProperty = nullptr;
89  XMLPropertyState* pPadding[4] = { nullptr, nullptr, nullptr, nullptr };
90  XMLPropertyState* pNewPadding[4] = { nullptr, nullptr, nullptr, nullptr };
91  XMLPropertyState* pAllBorderProperty = nullptr;
92  XMLPropertyState* pBorders[4] = { nullptr, nullptr, nullptr, nullptr };
93  XMLPropertyState* pNewBorders[4] = { nullptr, nullptr, nullptr, nullptr };
94  XMLPropertyState* pAllBorderWidthProperty = nullptr;
95  XMLPropertyState* pBorderWidths[4] = { nullptr, nullptr, nullptr, nullptr };
96  XMLPropertyState* pAllHeaderPaddingProperty = nullptr;
97  XMLPropertyState* pHeaderPadding[4] = { nullptr, nullptr, nullptr, nullptr };
98  XMLPropertyState* pHeaderNewPadding[4] = { nullptr, nullptr, nullptr, nullptr };
99  XMLPropertyState* pAllHeaderBorderProperty = nullptr;
100  XMLPropertyState* pHeaderBorders[4] = { nullptr, nullptr, nullptr, nullptr };
101  XMLPropertyState* pHeaderNewBorders[4] = { nullptr, nullptr, nullptr, nullptr };
102  XMLPropertyState* pAllHeaderBorderWidthProperty = nullptr;
103  XMLPropertyState* pHeaderBorderWidths[4] = { nullptr, nullptr, nullptr, nullptr };
104  XMLPropertyState* pAllFooterPaddingProperty = nullptr;
105  XMLPropertyState* pFooterPadding[4] = { nullptr, nullptr, nullptr, nullptr };
106  XMLPropertyState* pFooterNewPadding[4] = { nullptr, nullptr, nullptr, nullptr };
107  XMLPropertyState* pAllFooterBorderProperty = nullptr;
108  XMLPropertyState* pFooterBorders[4] = { nullptr, nullptr, nullptr, nullptr };
109  XMLPropertyState* pFooterNewBorders[4] = { nullptr, nullptr, nullptr, nullptr };
110  XMLPropertyState* pAllFooterBorderWidthProperty = nullptr;
111  XMLPropertyState* pFooterBorderWidths[4] = { nullptr, nullptr, nullptr, nullptr };
112  XMLPropertyState* pHeaderHeight = nullptr;
113  XMLPropertyState* pHeaderMinHeight = nullptr;
114  std::unique_ptr<XMLPropertyState> xHeaderDynamic;
115  XMLPropertyState* pFooterHeight = nullptr;
116  XMLPropertyState* pFooterMinHeight = nullptr;
117  std::unique_ptr<XMLPropertyState> xFooterDynamic;
118  XMLPropertyState* pAllMarginProperty = nullptr;
119  XMLPropertyState* pMargins[4] = { nullptr, nullptr, nullptr, nullptr };
120  std::unique_ptr<XMLPropertyState> pNewMargins[4];
121  XMLPropertyState* pAllHeaderMarginProperty = nullptr;
122  XMLPropertyState* pHeaderMargins[4] = { nullptr, nullptr, nullptr, nullptr };
123  std::unique_ptr<XMLPropertyState> pNewHeaderMargins[4];
124  XMLPropertyState* pAllFooterMarginProperty = nullptr;
125  XMLPropertyState* pFooterMargins[4] = { nullptr, nullptr, nullptr, nullptr };
126  std::unique_ptr<XMLPropertyState> pNewFooterMargins[4];
127 
128  for (auto& rProp : rProperties)
129  {
130  XMLPropertyState *property = &rProp;
131  sal_Int16 nContextID = getPropertySetMapper()->GetEntryContextId(property->mnIndex);
132  if (property->mnIndex >= nStartIndex && property->mnIndex < nEndIndex)
133  {
134  switch (nContextID)
135  {
136  case CTF_PM_PADDINGALL : pAllPaddingProperty = property; break;
137  case CTF_PM_PADDINGLEFT : pPadding[XML_LINE_LEFT] = property; break;
138  case CTF_PM_PADDINGRIGHT : pPadding[XML_LINE_RIGHT] = property; break;
139  case CTF_PM_PADDINGTOP : pPadding[XML_LINE_TOP] = property; break;
140  case CTF_PM_PADDINGBOTTOM : pPadding[XML_LINE_BOTTOM] = property; break;
141  case CTF_PM_BORDERALL : pAllBorderProperty = property; break;
142  case CTF_PM_BORDERLEFT : pBorders[XML_LINE_LEFT] = property; break;
143  case CTF_PM_BORDERRIGHT : pBorders[XML_LINE_RIGHT] = property; break;
144  case CTF_PM_BORDERTOP : pBorders[XML_LINE_TOP] = property; break;
145  case CTF_PM_BORDERBOTTOM : pBorders[XML_LINE_BOTTOM] = property; break;
146  case CTF_PM_BORDERWIDTHALL : pAllBorderWidthProperty = property; break;
147  case CTF_PM_BORDERWIDTHLEFT : pBorderWidths[XML_LINE_LEFT] = property; break;
148  case CTF_PM_BORDERWIDTHRIGHT : pBorderWidths[XML_LINE_RIGHT] = property; break;
149  case CTF_PM_BORDERWIDTHTOP : pBorderWidths[XML_LINE_TOP] = property; break;
150  case CTF_PM_BORDERWIDTHBOTTOM : pBorderWidths[XML_LINE_BOTTOM] = property; break;
151  case CTF_PM_HEADERPADDINGALL : pAllHeaderPaddingProperty = property; break;
152  case CTF_PM_HEADERPADDINGLEFT : pHeaderPadding[XML_LINE_LEFT] = property; break;
153  case CTF_PM_HEADERPADDINGRIGHT : pHeaderPadding[XML_LINE_RIGHT] = property; break;
154  case CTF_PM_HEADERPADDINGTOP : pHeaderPadding[XML_LINE_TOP] = property; break;
155  case CTF_PM_HEADERPADDINGBOTTOM : pHeaderPadding[XML_LINE_BOTTOM] = property; break;
156  case CTF_PM_HEADERBORDERALL : pAllHeaderBorderProperty = property; break;
157  case CTF_PM_HEADERBORDERLEFT : pHeaderBorders[XML_LINE_LEFT] = property; break;
158  case CTF_PM_HEADERBORDERRIGHT : pHeaderBorders[XML_LINE_RIGHT] = property; break;
159  case CTF_PM_HEADERBORDERTOP : pHeaderBorders[XML_LINE_TOP] = property; break;
160  case CTF_PM_HEADERBORDERBOTTOM : pHeaderBorders[XML_LINE_BOTTOM] = property; break;
161  case CTF_PM_HEADERBORDERWIDTHALL : pAllHeaderBorderWidthProperty = property; break;
162  case CTF_PM_HEADERBORDERWIDTHLEFT : pHeaderBorderWidths[XML_LINE_LEFT] = property; break;
163  case CTF_PM_HEADERBORDERWIDTHRIGHT : pHeaderBorderWidths[XML_LINE_RIGHT] = property; break;
164  case CTF_PM_HEADERBORDERWIDTHTOP : pHeaderBorderWidths[XML_LINE_TOP] = property; break;
165  case CTF_PM_HEADERBORDERWIDTHBOTTOM : pHeaderBorderWidths[XML_LINE_BOTTOM] = property; break;
166  case CTF_PM_FOOTERPADDINGALL : pAllFooterPaddingProperty = property; break;
167  case CTF_PM_FOOTERPADDINGLEFT : pFooterPadding[XML_LINE_LEFT] = property; break;
168  case CTF_PM_FOOTERPADDINGRIGHT : pFooterPadding[XML_LINE_RIGHT] = property; break;
169  case CTF_PM_FOOTERPADDINGTOP : pFooterPadding[XML_LINE_TOP] = property; break;
170  case CTF_PM_FOOTERPADDINGBOTTOM : pFooterPadding[XML_LINE_BOTTOM] = property; break;
171  case CTF_PM_FOOTERBORDERALL : pAllFooterBorderProperty = property; break;
172  case CTF_PM_FOOTERBORDERLEFT : pFooterBorders[XML_LINE_LEFT] = property; break;
173  case CTF_PM_FOOTERBORDERRIGHT : pFooterBorders[XML_LINE_RIGHT] = property; break;
174  case CTF_PM_FOOTERBORDERTOP : pFooterBorders[XML_LINE_TOP] = property; break;
175  case CTF_PM_FOOTERBORDERBOTTOM : pFooterBorders[XML_LINE_BOTTOM] = property; break;
176  case CTF_PM_FOOTERBORDERWIDTHALL : pAllFooterBorderWidthProperty = property; break;
177  case CTF_PM_FOOTERBORDERWIDTHLEFT : pFooterBorderWidths[XML_LINE_LEFT] = property; break;
178  case CTF_PM_FOOTERBORDERWIDTHRIGHT : pFooterBorderWidths[XML_LINE_RIGHT] = property; break;
179  case CTF_PM_FOOTERBORDERWIDTHTOP : pFooterBorderWidths[XML_LINE_TOP] = property; break;
180  case CTF_PM_FOOTERBORDERWIDTHBOTTOM : pFooterBorderWidths[XML_LINE_BOTTOM] = property; break;
181  case CTF_PM_HEADERHEIGHT : pHeaderHeight = property; break;
182  case CTF_PM_HEADERMINHEIGHT : pHeaderMinHeight = property; break;
183  case CTF_PM_FOOTERHEIGHT : pFooterHeight = property; break;
184  case CTF_PM_FOOTERMINHEIGHT : pFooterMinHeight = property; break;
185  case CTF_PM_MARGINALL :
186  pAllMarginProperty = property; break;
187  case CTF_PM_MARGINTOP :
188  pMargins[XML_LINE_TOP] = property; break;
189  case CTF_PM_MARGINBOTTOM:
190  pMargins[XML_LINE_BOTTOM] = property; break;
191  case CTF_PM_MARGINLEFT :
192  pMargins[XML_LINE_LEFT] = property; break;
193  case CTF_PM_MARGINRIGHT :
194  pMargins[XML_LINE_RIGHT] = property; break;
196  pAllHeaderMarginProperty = property; break;
198  pHeaderMargins[XML_LINE_TOP] = property; break;
200  pHeaderMargins[XML_LINE_BOTTOM] = property; break;
202  pHeaderMargins[XML_LINE_LEFT] = property; break;
204  pHeaderMargins[XML_LINE_RIGHT] = property; break;
206  pAllFooterMarginProperty = property; break;
208  pFooterMargins[XML_LINE_TOP] = property; break;
210  pFooterMargins[XML_LINE_BOTTOM] = property; break;
212  pFooterMargins[XML_LINE_LEFT] = property; break;
214  pFooterMargins[XML_LINE_RIGHT] = property; break;
215  }
216  }
217  }
218 
219  for (sal_uInt16 i = 0; i < 4; i++)
220  {
221  if (pAllMarginProperty && !pMargins[i])
222  {
223  pNewMargins[i].reset(new XMLPropertyState(
224  pAllMarginProperty->mnIndex + 1 + i,
225  pAllMarginProperty->maValue));
226  }
227  if (pAllHeaderMarginProperty && !pHeaderMargins[i])
228  {
229  pNewHeaderMargins[i].reset(new XMLPropertyState(
230  pAllHeaderMarginProperty->mnIndex + 1 + i,
231  pAllHeaderMarginProperty->maValue));
232  }
233  if (pAllFooterMarginProperty && !pFooterMargins[i])
234  {
235  pNewFooterMargins[i].reset(new XMLPropertyState(
236  pAllFooterMarginProperty->mnIndex + 1 + i,
237  pAllFooterMarginProperty->maValue));
238  }
239  if (pAllPaddingProperty && !pPadding[i])
240  pNewPadding[i] = new XMLPropertyState(pAllPaddingProperty->mnIndex + 1 + i, pAllPaddingProperty->maValue);
241  if (pAllBorderProperty && !pBorders[i])
242  {
243  pNewBorders[i] = new XMLPropertyState(pAllBorderProperty->mnIndex + 1 + i, pAllBorderProperty->maValue);
244  pBorders[i] = pNewBorders[i];
245  }
246  if( !pBorderWidths[i] )
247  pBorderWidths[i] = pAllBorderWidthProperty;
248  else
249  pBorderWidths[i]->mnIndex = -1;
250  if( pBorders[i] )
251  {
252  table::BorderLine2 aBorderLine;
253  pBorders[i]->maValue >>= aBorderLine;
254  if( pBorderWidths[i] )
255  {
256  table::BorderLine2 aBorderLineWidth;
257  pBorderWidths[i]->maValue >>= aBorderLineWidth;
258  aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
259  aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
260  aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
261  aBorderLine.LineWidth = aBorderLineWidth.LineWidth;
262  pBorders[i]->maValue <<= aBorderLine;
263  }
264  }
265  if (pAllHeaderPaddingProperty && !pHeaderPadding[i])
266  pHeaderNewPadding[i] = new XMLPropertyState(pAllHeaderPaddingProperty->mnIndex + 1 + i, pAllHeaderPaddingProperty->maValue);
267  if (pAllHeaderBorderProperty && !pHeaderBorders[i])
268  pHeaderNewBorders[i] = new XMLPropertyState(pAllHeaderBorderProperty->mnIndex + 1 + i, pAllHeaderBorderProperty->maValue);
269  if( !pHeaderBorderWidths[i] )
270  pHeaderBorderWidths[i] = pAllHeaderBorderWidthProperty;
271  else
272  pHeaderBorderWidths[i]->mnIndex = -1;
273  if( pHeaderBorders[i] )
274  {
275  table::BorderLine2 aBorderLine;
276  pHeaderBorders[i]->maValue >>= aBorderLine;
277  if( pHeaderBorderWidths[i] )
278  {
279  table::BorderLine2 aBorderLineWidth;
280  pHeaderBorderWidths[i]->maValue >>= aBorderLineWidth;
281  aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
282  aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
283  aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
284  aBorderLine.LineWidth = aBorderLineWidth.LineWidth;
285  pHeaderBorders[i]->maValue <<= aBorderLine;
286  }
287  }
288  if (pAllFooterPaddingProperty && !pFooterPadding[i])
289  pFooterNewPadding[i] = new XMLPropertyState(pAllFooterPaddingProperty->mnIndex + 1 + i, pAllFooterPaddingProperty->maValue);
290  if (pAllFooterBorderProperty && !pFooterBorders[i])
291  pFooterNewBorders[i] = new XMLPropertyState(pAllFooterBorderProperty->mnIndex + 1 + i, pAllFooterBorderProperty->maValue);
292  if( !pFooterBorderWidths[i] )
293  pFooterBorderWidths[i] = pAllFooterBorderWidthProperty;
294  else
295  pFooterBorderWidths[i]->mnIndex = -1;
296  if( pFooterBorders[i] )
297  {
298  table::BorderLine2 aBorderLine;
299  pFooterBorders[i]->maValue >>= aBorderLine;
300  if( pFooterBorderWidths[i] )
301  {
302  table::BorderLine2 aBorderLineWidth;
303  pFooterBorderWidths[i]->maValue >>= aBorderLineWidth;
304  aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
305  aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
306  aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
307  aBorderLine.LineWidth = aBorderLineWidth.LineWidth;
308  pFooterBorders[i]->maValue <<= aBorderLine;
309  }
310  }
311  }
312 
313  if (pHeaderHeight)
314  {
315  xHeaderDynamic.reset(new XMLPropertyState(pHeaderHeight->mnIndex + 2, Any(false)));
316  }
317  if (pHeaderMinHeight)
318  {
319  xHeaderDynamic.reset(new XMLPropertyState(pHeaderMinHeight->mnIndex + 1, Any(true)));
320  }
321  if (pFooterHeight)
322  {
323  xFooterDynamic.reset(new XMLPropertyState(pFooterHeight->mnIndex + 2, Any(false)));
324  }
325  if (pFooterMinHeight)
326  {
327  xFooterDynamic.reset(new XMLPropertyState(pFooterMinHeight->mnIndex + 1, Any(true)));
328  }
329 
330  // fdo#38056: nerf the various AllFoo properties so they do not override
331  // the individual Foo properties later on
332  if (pAllPaddingProperty)
333  {
334  pAllPaddingProperty->mnIndex = -1;
335  }
336  if (pAllBorderProperty)
337  {
338  pAllBorderProperty->mnIndex = -1;
339  }
340  if (pAllBorderWidthProperty)
341  {
342  pAllBorderWidthProperty->mnIndex = -1;
343  }
344  if (pAllHeaderPaddingProperty)
345  {
346  pAllHeaderPaddingProperty->mnIndex = -1;
347  }
348  if (pAllHeaderBorderProperty)
349  {
350  pAllHeaderBorderProperty->mnIndex = -1;
351  }
352  if (pAllHeaderBorderWidthProperty)
353  {
354  pAllHeaderBorderWidthProperty->mnIndex = -1;
355  }
356  if (pAllFooterPaddingProperty)
357  {
358  pAllFooterPaddingProperty->mnIndex = -1;
359  }
360  if (pAllFooterBorderProperty)
361  {
362  pAllFooterBorderProperty->mnIndex = -1;
363  }
364  if (pAllFooterBorderWidthProperty)
365  {
366  pAllFooterBorderWidthProperty->mnIndex = -1;
367  }
368  if (pAllMarginProperty)
369  {
370  pAllMarginProperty->mnIndex = -1;
371  }
372  if (pAllHeaderMarginProperty)
373  {
374  pAllHeaderMarginProperty->mnIndex = -1;
375  }
376  if (pAllFooterMarginProperty)
377  {
378  pAllFooterMarginProperty->mnIndex = -1;
379  }
380 
381  for (sal_uInt16 i = 0; i < 4; i++)
382  {
383  if (pNewMargins[i])
384  {
385  rProperties.push_back(*pNewMargins[i]);
386  }
387  if (pNewHeaderMargins[i])
388  {
389  rProperties.push_back(*pNewHeaderMargins[i]);
390  }
391  if (pNewFooterMargins[i])
392  {
393  rProperties.push_back(*pNewFooterMargins[i]);
394  }
395  if (pNewPadding[i])
396  {
397  rProperties.push_back(*pNewPadding[i]);
398  delete pNewPadding[i];
399  }
400  if (pNewBorders[i])
401  {
402  rProperties.push_back(*pNewBorders[i]);
403  delete pNewBorders[i];
404  }
405  if (pHeaderNewPadding[i])
406  {
407  rProperties.push_back(*pHeaderNewPadding[i]);
408  delete pHeaderNewPadding[i];
409  }
410  if (pHeaderNewBorders[i])
411  {
412  rProperties.push_back(*pHeaderNewBorders[i]);
413  delete pHeaderNewBorders[i];
414  }
415  if (pFooterNewPadding[i])
416  {
417  rProperties.push_back(*pFooterNewPadding[i]);
418  delete pFooterNewPadding[i];
419  }
420  if (pFooterNewBorders[i])
421  {
422  rProperties.push_back(*pFooterNewBorders[i]);
423  delete pFooterNewBorders[i];
424  }
425  }
426  if(xHeaderDynamic)
427  {
428  rProperties.push_back(*xHeaderDynamic);
429  xHeaderDynamic.reset();
430  }
431  if(xFooterDynamic)
432  {
433  rProperties.push_back(*xFooterDynamic);
434  xFooterDynamic.reset();
435  }
436 }
437 
438 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define CTF_PM_HEADERBORDERRIGHT
#define CTF_PM_HEADERHEIGHT
PageMasterImportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLImport &rImp)
#define CTF_PM_HEADERPADDINGTOP
#define CTF_PM_FOOTERBORDERRIGHT
#define CTF_PM_HEADERPADDINGALL
#define CTF_PM_PADDINGTOP
the SvXMLTypeConverter converts values of various types from their internal representation to the tex...
Definition: xmluconv.hxx:77
#define CTF_PM_HEADERPADDINGLEFT
#define CTF_PM_HEADERBORDERWIDTHLEFT
#define CTF_PM_FOOTERMARGINLEFT
#define CTF_PM_FOOTERMARGINBOTTOM
#define CTF_PM_HEADERPADDINGBOTTOM
sal_Int32 mnIndex
Definition: maptype.hxx:124
#define CTF_PM_PADDINGRIGHT
#define CTF_PM_FOOTERBORDERWIDTHLEFT
#define CTF_PM_FOOTERMARGINALL
rtl::Reference< XMLTextImportHelper > const & GetTextImport()
Definition: xmlimp.hxx:600
#define CTF_PM_HEADERMARGINLEFT
#define CTF_PM_BORDERLEFT
#define CTF_PM_MARGINRIGHT
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
Definition: xmlimppr.hxx:195
#define CTF_PM_PADDINGBOTTOM
css::uno::Any const & rValue
Definition: ImageStyle.hxx:38
#define CTF_PM_HEADERMINHEIGHT
#define CTF_PM_MARGINALL
#define CTF_PM_HEADERPADDINGRIGHT
#define CTF_PM_FOOTERPADDINGRIGHT
#define CTF_PM_FOOTERPADDINGBOTTOM
#define CTF_PM_HEADERBORDERLEFT
#define CTF_PM_BORDERTOP
#define CTF_PM_HEADERBORDERALL
#define CTF_PM_HEADERBORDERBOTTOM
#define CTF_PM_BORDERWIDTHLEFT
#define CTF_PM_FOOTERBORDERWIDTHTOP
virtual bool handleSpecialItem(XMLPropertyState &rProperty,::std::vector< XMLPropertyState > &rProperties, const OUString &rValue, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_IMPORT flag set ...
#define CTF_PM_MARGINTOP
#define CTF_PM_BORDERWIDTHTOP
#define CTF_PM_HEADERBORDERWIDTHTOP
#define CTF_PM_HEADERBORDERWIDTHRIGHT
#define XML_LINE_RIGHT
virtual bool handleSpecialItem(XMLPropertyState &rProperty,::std::vector< XMLPropertyState > &rProperties, const OUString &rValue, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_IMPORT flag set ...
Definition: xmlimppr.cxx:350
#define CTF_PM_HEADERMARGINTOP
int i
#define CTF_PM_HEADERMARGINALL
#define CTF_PM_FOOTERMARGINTOP
virtual void finished(::std::vector< XMLPropertyState > &rProperties, sal_Int32 nStartIndex, sal_Int32 nEndIndex) const
This method is called when all attributes have benn processed.
Definition: xmlimppr.cxx:757
#define CTF_PM_BORDERWIDTHRIGHT
#define CTF_PM_FOOTERBORDERWIDTHALL
#define CTF_PM_HEADERBORDERWIDTHBOTTOM
#define CTF_PM_FOOTERBORDERTOP
#define CTF_PM_FOOTERBORDERLEFT
#define CTF_PM_BORDERWIDTHBOTTOM
#define CTF_PM_FOOTERPADDINGALL
#define XML_LINE_BOTTOM
#define CTF_PM_REGISTER_STYLE
#define CTF_PM_HEADERBORDERTOP
#define CTF_PM_MARGINBOTTOM
#define CTF_PM_HEADERMARGINBOTTOM
css::uno::Any maValue
Definition: maptype.hxx:125
OUString GetStyleDisplayName(XmlStyleFamily nFamily, const OUString &rName) const
Definition: xmlimp.cxx:1494
#define CTF_PM_BORDERWIDTHALL
#define CTF_PM_FOOTERMINHEIGHT
#define CTF_PM_FOOTERMARGINRIGHT
Smart struct to transport an Any with an index to the appropriate property-name.
Definition: maptype.hxx:122
#define CTF_PM_FOOTERBORDERWIDTHRIGHT
#define CTF_PM_FOOTERBORDERWIDTHBOTTOM
#define CTF_PM_FOOTERHEIGHT
#define CTF_PM_PADDINGALL
virtual void finished(::std::vector< XMLPropertyState > &rProperties, sal_Int32 nStartIndex, sal_Int32 nEndIndex) const override
This method is called when all attributes have been processed.
#define CTF_PM_PADDINGLEFT
#define CTF_PM_FOOTERPADDINGTOP
#define CTF_PM_HEADERMARGINRIGHT
#define XML_LINE_LEFT
#define CTF_PM_FOOTERBORDERALL
#define CTF_PM_BORDERBOTTOM
#define CTF_PM_BORDERALL
#define CTF_PM_FOOTERBORDERBOTTOM
#define CTF_PM_HEADERBORDERWIDTHALL
#define CTF_PM_FOOTERPADDINGLEFT
#define CTF_PM_MARGINLEFT
#define XML_LINE_TOP
OUString sDisplayName
#define CTF_PM_BORDERRIGHT