Line data Source code
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 : #include "xmlHelper.hxx"
20 : #include <xmloff/xmlnmspe.hxx>
21 : #include <xmloff/xmltoken.hxx>
22 : #include <xmloff/families.hxx>
23 : #include <xmloff/controlpropertyhdl.hxx>
24 : #include <connectivity/dbtools.hxx>
25 : #include <comphelper/propertysethelper.hxx>
26 : #include <comphelper/genericpropertyset.hxx>
27 : #include <com/sun/star/style/ParagraphAdjust.hpp>
28 : #include <com/sun/star/awt/TextAlign.hpp>
29 : #include <com/sun/star/beans/PropertyAttribute.hpp>
30 : #include <com/sun/star/awt/FontDescriptor.hpp>
31 : #include <com/sun/star/awt/ImagePosition.hpp>
32 : #include <com/sun/star/awt/ImageScaleMode.hpp>
33 : #include <xmloff/prstylei.hxx>
34 : #include "xmlstrings.hrc"
35 : #include "xmlEnums.hxx"
36 : #include <xmloff/contextid.hxx>
37 : #include <xmloff/txtprmap.hxx>
38 : #include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
39 : #include <com/sun/star/table/BorderLine2.hpp>
40 : #include <xmloff/XMLConstantsPropertyHandler.hxx>
41 : #include <com/sun/star/report/ForceNewPage.hpp>
42 : #include <com/sun/star/report/ReportPrintOption.hpp>
43 : #include <com/sun/star/report/GroupOn.hpp>
44 : #include <com/sun/star/report/KeepTogether.hpp>
45 : #include <xmloff/xmlement.hxx>
46 : #include <xmloff/xmltypes.hxx>
47 : #include <xmloff/maptype.hxx>
48 : #include <com/sun/star/report/XReportControlFormat.hpp>
49 : #include <com/sun/star/form/ListSourceType.hpp>
50 : #include <com/sun/star/sdb/CommandType.hpp>
51 : #include <com/sun/star/style/VerticalAlignment.hpp>
52 : #include <xmloff/EnumPropertyHdl.hxx>
53 :
54 : #define XML_RPT_ALGINMENT (XML_DB_TYPES_START+1)
55 : namespace rptxml
56 : {
57 : using namespace ::xmloff::token;
58 : using namespace ::com::sun::star::awt;
59 : using namespace ::com::sun::star;
60 : using namespace ::com::sun::star::sdb;
61 : using namespace ::com::sun::star::form;
62 : using namespace ::com::sun::star::beans;
63 6 : OPropertyHandlerFactory::OPropertyHandlerFactory()
64 : {
65 6 : }
66 :
67 12 : OPropertyHandlerFactory::~OPropertyHandlerFactory()
68 : {
69 12 : }
70 :
71 48 : const XMLPropertyHandler* OPropertyHandlerFactory::GetPropertyHandler(sal_Int32 _nType) const
72 : {
73 48 : const XMLPropertyHandler* pHandler = NULL;
74 48 : sal_Int32 nType = _nType;
75 48 : nType &= MID_FLAG_MASK;
76 :
77 48 : switch(nType)
78 : {
79 : case XML_RPT_ALGINMENT:
80 : {
81 : static SvXMLEnumMapEntry const pXML_VerticalAlign_Enum[] =
82 : {
83 : { XML_TOP, style::VerticalAlignment_TOP },
84 : { XML_MIDDLE, style::VerticalAlignment_MIDDLE },
85 : { XML_BOTTOM, style::VerticalAlignment_BOTTOM },
86 : { XML_TOKEN_INVALID, 0 }
87 : };
88 :
89 6 : pHandler = new XMLEnumPropertyHdl( pXML_VerticalAlign_Enum, cppu::UnoType<com::sun::star::style::VerticalAlignment>::get());
90 : }
91 6 : break;
92 : case (XML_SD_TYPES_START+34):
93 0 : pHandler = new xmloff::ImageScaleModeHandler();
94 : default:
95 : ;
96 : }
97 :
98 48 : if ( !pHandler )
99 42 : pHandler = OControlPropertyHandlerFactory::GetPropertyHandler(_nType);
100 : else
101 6 : PutHdlCache(nType, pHandler);
102 48 : return pHandler;
103 : }
104 :
105 : #define MAP_CONST_T_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_TABLE, context, SvtSaveOptions::ODFVER_010, false }
106 : #define MAP_CONST_P_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_PARAGRAPH, context, SvtSaveOptions::ODFVER_010, false }
107 : #define MAP_CONST_S( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_SECTION, context, SvtSaveOptions::ODFVER_010, false }
108 : #define MAP_CONST_C_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_TABLE_CELL, context, SvtSaveOptions::ODFVER_010, false }
109 : #define MAP_END() { NULL, 0, 0, XML_TOKEN_INVALID, 0 ,0, SvtSaveOptions::ODFVER_010, false}
110 :
111 6 : rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetCellStylePropertyMap(bool _bOldFormat, bool bForExport)
112 : {
113 6 : if ( _bOldFormat )
114 : {
115 : static const XMLPropertyMapEntry s_aXMLCellStylesProperties[] =
116 : {
117 : MAP_CONST_C_ASCII( PROPERTY_FORMATKEY, STYLE, DATA_STYLE_NAME, XML_TYPE_NUMBER | MID_FLAG_SPECIAL_ITEM, CTF_RPT_NUMBERFORMAT ),
118 :
119 : MAP_CONST_C_ASCII( PROPERTY_CONTROLBACKGROUND,
120 : FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
121 : MAP_CONST_C_ASCII( PROPERTY_VERTICALALIGN, STYLE, VERTICAL_ALIGN, XML_RPT_ALGINMENT, 0 ),
122 : MAP_CONST_C_ASCII( PROPERTY_CONTROLBACKGROUNDTRANSPARENT,
123 : FO, BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
124 : MAP_CONST_P_ASCII( PROPERTY_CONTROLBACKGROUND,
125 : FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
126 : MAP_CONST_P_ASCII( PROPERTY_CONTROLBACKGROUNDTRANSPARENT,
127 : FO, BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
128 : MAP_CONST_C_ASCII( "BorderLeft", FO, BORDER_LEFT, XML_TYPE_BORDER, 0 ),
129 : MAP_CONST_C_ASCII( "BorderRight", FO, BORDER_RIGHT, XML_TYPE_BORDER, 0 ),
130 : MAP_CONST_C_ASCII( "BorderTop", FO, BORDER_TOP, XML_TYPE_BORDER, 0 ),
131 : MAP_CONST_C_ASCII( "BorderBottom", FO, BORDER_BOTTOM, XML_TYPE_BORDER, 0 ),
132 : MAP_END()
133 : };
134 0 : return new XMLPropertySetMapper(s_aXMLCellStylesProperties,new OPropertyHandlerFactory(), bForExport);
135 : }
136 : else
137 : {
138 : static const XMLPropertyMapEntry s_aXMLCellStylesProperties[] =
139 : {
140 : MAP_CONST_C_ASCII( PROPERTY_FORMATKEY, STYLE, DATA_STYLE_NAME, XML_TYPE_NUMBER | MID_FLAG_SPECIAL_ITEM, CTF_RPT_NUMBERFORMAT ),
141 :
142 : MAP_CONST_C_ASCII( PROPERTY_CONTROLBACKGROUND,
143 : FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
144 : MAP_CONST_C_ASCII( PROPERTY_CONTROLBACKGROUNDTRANSPARENT,
145 : FO, BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
146 : MAP_CONST_C_ASCII( PROPERTY_VERTICALALIGN,
147 : STYLE, VERTICAL_ALIGN, XML_RPT_ALGINMENT, 0 ),
148 : MAP_CONST_C_ASCII( "BorderLeft", FO, BORDER_LEFT, XML_TYPE_BORDER, 0 ),
149 : MAP_CONST_C_ASCII( "BorderRight", FO, BORDER_RIGHT, XML_TYPE_BORDER, 0 ),
150 : MAP_CONST_C_ASCII( "BorderTop", FO, BORDER_TOP, XML_TYPE_BORDER, 0 ),
151 : MAP_CONST_C_ASCII( "BorderBottom", FO, BORDER_BOTTOM, XML_TYPE_BORDER, 0 ),
152 : MAP_END()
153 : };
154 6 : return new XMLPropertySetMapper(s_aXMLCellStylesProperties,new OPropertyHandlerFactory(), bForExport);
155 : }
156 : }
157 :
158 6 : const XMLPropertyMapEntry* OXMLHelper::GetTableStyleProps()
159 : {
160 : static const XMLPropertyMapEntry aXMLTableStylesProperties[] =
161 : {
162 : MAP_CONST_T_ASCII( PROPERTY_BACKCOLOR, FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
163 : MAP_CONST_T_ASCII( PROPERTY_BACKTRANSPARENT,FO, BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT | MID_FLAG_MERGE_ATTRIBUTE, 0 ),
164 : MAP_END()
165 : };
166 6 : return aXMLTableStylesProperties;
167 : }
168 :
169 6 : const XMLPropertyMapEntry* OXMLHelper::GetRowStyleProps()
170 : {
171 : static const XMLPropertyMapEntry aXMLStylesProperties[] =
172 : {
173 : MAP_CONST_S( "Height", STYLE, ROW_HEIGHT, XML_TYPE_PROP_TABLE_ROW|XML_TYPE_MEASURE, 0),
174 : MAP_END()
175 : };
176 6 : return aXMLStylesProperties;
177 : }
178 :
179 6 : const XMLPropertyMapEntry* OXMLHelper::GetColumnStyleProps()
180 : {
181 : static const XMLPropertyMapEntry aXMLColumnStylesProperties[] =
182 : {
183 : MAP_CONST_S( "Width", STYLE, COLUMN_WIDTH, XML_TYPE_PROP_TABLE_COLUMN|XML_TYPE_MEASURE, 0 ),
184 : MAP_END()
185 : };
186 6 : return aXMLColumnStylesProperties;
187 : }
188 :
189 0 : const SvXMLEnumMapEntry* OXMLHelper::GetReportPrintOptions()
190 : {
191 : static const SvXMLEnumMapEntry s_aXML_EnumMap[] =
192 : {
193 : { XML_NOT_WITH_REPORT_HEADER, report::ReportPrintOption::NOT_WITH_REPORT_HEADER },
194 : { XML_NOT_WITH_REPORT_FOOTER, report::ReportPrintOption::NOT_WITH_REPORT_FOOTER },
195 : { XML_NOT_WITH_REPORT_HEADER_NOR_FOOTER, report::ReportPrintOption::NOT_WITH_REPORT_HEADER_FOOTER },
196 : { XML_TOKEN_INVALID, 0 }
197 : };
198 0 : return s_aXML_EnumMap;
199 : }
200 :
201 0 : const SvXMLEnumMapEntry* OXMLHelper::GetForceNewPageOptions()
202 : {
203 : static const SvXMLEnumMapEntry s_aXML_EnumMap[] =
204 : {
205 : { XML_BEFORE_SECTION, report::ForceNewPage::BEFORE_SECTION },
206 : { XML_AFTER_SECTION, report::ForceNewPage::AFTER_SECTION },
207 : { XML_BEFORE_AFTER_SECTION, report::ForceNewPage::BEFORE_AFTER_SECTION },
208 : { XML_TOKEN_INVALID, 0 }
209 : };
210 0 : return s_aXML_EnumMap;
211 : }
212 :
213 0 : const SvXMLEnumMapEntry* OXMLHelper::GetKeepTogetherOptions()
214 : {
215 : static const SvXMLEnumMapEntry s_aXML_EnumMap[] =
216 : {
217 : { XML_WHOLE_GROUP, report::KeepTogether::WHOLE_GROUP },
218 : { XML_WITH_FIRST_DETAIL, report::KeepTogether::WITH_FIRST_DETAIL },
219 : { XML_TOKEN_INVALID, 0 }
220 : };
221 0 : return s_aXML_EnumMap;
222 : }
223 :
224 0 : const SvXMLEnumMapEntry* OXMLHelper::GetCommandTypeOptions()
225 : {
226 : static const SvXMLEnumMapEntry s_aXML_EnumMap[] =
227 : {
228 : { XML_TABLE, CommandType::TABLE },
229 : { XML_QUERY, CommandType::QUERY },
230 : { XML_TOKEN_INVALID, 0 }
231 : };
232 0 : return s_aXML_EnumMap;
233 : }
234 :
235 : #define PROPERTY_ID_FONTNAME 1
236 : #define PROPERTY_ID_FONTHEIGHT 2
237 : #define PROPERTY_ID_FONTWIDTH 3
238 : #define PROPERTY_ID_FONTSTYLENAME 4
239 : #define PROPERTY_ID_FONTFAMILY 5
240 : #define PROPERTY_ID_FONTCHARSET 6
241 : #define PROPERTY_ID_FONTPITCH 7
242 : #define PROPERTY_ID_FONTCHARWIDTH 8
243 : #define PROPERTY_ID_FONTWEIGHT 9
244 : #define PROPERTY_ID_FONTSLANT 10
245 : #define PROPERTY_ID_FONTUNDERLINE 11
246 : #define PROPERTY_ID_FONTSTRIKEOUT 12
247 : #define PROPERTY_ID_FONTORIENTATION 13
248 : #define PROPERTY_ID_FONTKERNING 14
249 : #define PROPERTY_ID_FONTWORDLINEMODE 15
250 : #define PROPERTY_ID_FONTTYPE 16
251 0 : void OXMLHelper::copyStyleElements(const bool _bOld,const OUString& _sStyleName,const SvXMLStylesContext* _pAutoStyles,const uno::Reference<beans::XPropertySet>& _xProp)
252 : {
253 0 : if ( !_xProp.is() || _sStyleName.isEmpty() || !_pAutoStyles )
254 0 : return;
255 0 : XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_CELL,_sStyleName)));
256 0 : if ( pAutoStyle )
257 : {
258 0 : ::com::sun::star::awt::FontDescriptor aFont;
259 : static comphelper::PropertyMapEntry const pMap[] =
260 : {
261 0 : {OUString(PROPERTY_FONTNAME), PROPERTY_ID_FONTNAME, cppu::UnoType<decltype(aFont.Name)>::get() ,PropertyAttribute::BOUND,0},
262 0 : {OUString(PROPERTY_CHARFONTHEIGHT), PROPERTY_ID_FONTHEIGHT, cppu::UnoType<decltype(aFont.Height)>::get() ,PropertyAttribute::BOUND,0},
263 0 : {OUString(PROPERTY_FONTWIDTH), PROPERTY_ID_FONTWIDTH, cppu::UnoType<decltype(aFont.Width)>::get() ,PropertyAttribute::BOUND,0},
264 0 : {OUString(PROPERTY_FONTSTYLENAME), PROPERTY_ID_FONTSTYLENAME, cppu::UnoType<decltype(aFont.StyleName)>::get() ,PropertyAttribute::BOUND,0},
265 0 : {OUString(PROPERTY_FONTFAMILY), PROPERTY_ID_FONTFAMILY, cppu::UnoType<decltype(aFont.Family)>::get() ,PropertyAttribute::BOUND,0},
266 0 : {OUString(PROPERTY_FONTCHARSET), PROPERTY_ID_FONTCHARSET, cppu::UnoType<decltype(aFont.CharSet)>::get() ,PropertyAttribute::BOUND,0},
267 0 : {OUString(PROPERTY_FONTPITCH), PROPERTY_ID_FONTPITCH, cppu::UnoType<decltype(aFont.Pitch)>::get() ,PropertyAttribute::BOUND,0},
268 0 : {OUString(PROPERTY_FONTCHARWIDTH), PROPERTY_ID_FONTCHARWIDTH, cppu::UnoType<decltype(aFont.CharacterWidth)>::get(),PropertyAttribute::BOUND,0},
269 0 : {OUString(PROPERTY_FONTWEIGHT), PROPERTY_ID_FONTWEIGHT, cppu::UnoType<decltype(aFont.Weight)>::get() ,PropertyAttribute::BOUND,0},
270 0 : {OUString(PROPERTY_CHARPOSTURE), PROPERTY_ID_FONTSLANT, cppu::UnoType<decltype(aFont.Slant)>::get() ,PropertyAttribute::BOUND,0},
271 0 : {OUString(PROPERTY_FONTUNDERLINE), PROPERTY_ID_FONTUNDERLINE, cppu::UnoType<decltype(aFont.Underline)>::get() ,PropertyAttribute::BOUND,0},
272 0 : {OUString(PROPERTY_CHARSTRIKEOUT), PROPERTY_ID_FONTSTRIKEOUT, cppu::UnoType<decltype(aFont.Strikeout)>::get() ,PropertyAttribute::BOUND,0},
273 0 : {OUString(PROPERTY_FONTORIENTATION), PROPERTY_ID_FONTORIENTATION, cppu::UnoType<decltype(aFont.Orientation)>::get() ,PropertyAttribute::BOUND,0},
274 0 : {OUString(PROPERTY_FONTKERNING), PROPERTY_ID_FONTKERNING, cppu::UnoType<decltype(aFont.Kerning)>::get() ,PropertyAttribute::BOUND,0},
275 0 : {OUString(PROPERTY_CHARWORDMODE), PROPERTY_ID_FONTWORDLINEMODE, cppu::UnoType<decltype(aFont.WordLineMode)>::get() ,PropertyAttribute::BOUND,0},
276 0 : {OUString(PROPERTY_FONTTYPE), PROPERTY_ID_FONTTYPE, cppu::UnoType<decltype(aFont.Type)>::get() ,PropertyAttribute::BOUND,0},
277 : { OUString(), 0, css::uno::Type(), 0, 0 }
278 0 : };
279 : try
280 : {
281 0 : pAutoStyle->FillPropertySet(_xProp);
282 0 : if ( _bOld && _xProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_CHARHIDDEN) )
283 0 : _xProp->setPropertyValue(PROPERTY_CHARHIDDEN,uno::makeAny(sal_False));
284 :
285 0 : uno::Reference<beans::XPropertySet> xProp = comphelper::GenericPropertySet_CreateInstance(new comphelper::PropertySetInfo(pMap));
286 0 : pAutoStyle->FillPropertySet(xProp);
287 0 : xProp->getPropertyValue(PROPERTY_FONTNAME) >>= aFont.Name;
288 0 : xProp->getPropertyValue(PROPERTY_CHARFONTHEIGHT) >>= aFont.Height;
289 0 : xProp->getPropertyValue(PROPERTY_FONTWIDTH) >>= aFont.Width;
290 0 : xProp->getPropertyValue(PROPERTY_FONTSTYLENAME) >>= aFont.StyleName;
291 0 : xProp->getPropertyValue(PROPERTY_FONTFAMILY) >>= aFont.Family;
292 0 : xProp->getPropertyValue(PROPERTY_FONTCHARSET) >>= aFont.CharSet;
293 0 : xProp->getPropertyValue(PROPERTY_FONTPITCH) >>= aFont.Pitch;
294 0 : xProp->getPropertyValue(PROPERTY_FONTCHARWIDTH) >>= aFont.CharacterWidth;
295 0 : xProp->getPropertyValue(PROPERTY_FONTWEIGHT) >>= aFont.Weight;
296 0 : xProp->getPropertyValue(PROPERTY_CHARPOSTURE) >>= aFont.Slant;
297 0 : xProp->getPropertyValue(PROPERTY_FONTUNDERLINE) >>= aFont.Underline;
298 0 : xProp->getPropertyValue(PROPERTY_CHARSTRIKEOUT) >>= aFont.Strikeout;
299 0 : xProp->getPropertyValue(PROPERTY_FONTORIENTATION) >>= aFont.Orientation;
300 0 : xProp->getPropertyValue(PROPERTY_FONTKERNING) >>= aFont.Kerning;
301 0 : xProp->getPropertyValue(PROPERTY_CHARWORDMODE) >>= aFont.WordLineMode;
302 0 : xProp->getPropertyValue(PROPERTY_FONTTYPE) >>= aFont.Type;
303 0 : uno::Reference<report::XReportControlFormat> xReportControlModel(_xProp,uno::UNO_QUERY);
304 0 : if ( xReportControlModel.is() && !aFont.Name.isEmpty() )
305 : {
306 : try
307 : {
308 0 : xReportControlModel->setFontDescriptor(aFont);
309 : }
310 0 : catch(const beans::UnknownPropertyException &){}
311 0 : }
312 : }
313 0 : catch(uno::Exception&)
314 : {
315 : OSL_FAIL("OXMLHelper::copyStyleElements -> exception catched");
316 0 : }
317 : }
318 : }
319 :
320 0 : uno::Reference<beans::XPropertySet> OXMLHelper::createBorderPropertySet()
321 : {
322 : static comphelper::PropertyMapEntry const pMap[] =
323 : {
324 0 : {OUString(PROPERTY_BORDERLEFT), 0, cppu::UnoType<table::BorderLine2>::get(),PropertyAttribute::BOUND,0},
325 0 : {OUString(PROPERTY_BORDERRIGHT), 1, cppu::UnoType<table::BorderLine2>::get(),PropertyAttribute::BOUND,0},
326 0 : {OUString(PROPERTY_BORDERTOP), 2, cppu::UnoType<table::BorderLine2>::get(),PropertyAttribute::BOUND,0},
327 0 : {OUString(PROPERTY_BORDERBOTTOM), 3, cppu::UnoType<table::BorderLine2>::get(),PropertyAttribute::BOUND,0},
328 : { OUString(), 0, css::uno::Type(), 0, 0 }
329 0 : };
330 0 : return comphelper::GenericPropertySet_CreateInstance(new comphelper::PropertySetInfo(pMap));
331 : }
332 :
333 0 : SvXMLTokenMap* OXMLHelper::GetReportElemTokenMap()
334 : {
335 : static const SvXMLTokenMapEntry aElemTokenMap[]=
336 : {
337 : { XML_NAMESPACE_REPORT, XML_REPORT_HEADER, XML_TOK_REPORT_HEADER },
338 : { XML_NAMESPACE_REPORT, XML_PAGE_HEADER , XML_TOK_PAGE_HEADER },
339 : { XML_NAMESPACE_REPORT, XML_GROUP, XML_TOK_GROUP },
340 : { XML_NAMESPACE_REPORT, XML_DETAIL , XML_TOK_DETAIL },
341 : { XML_NAMESPACE_REPORT, XML_PAGE_FOOTER , XML_TOK_PAGE_FOOTER },
342 : { XML_NAMESPACE_REPORT, XML_REPORT_FOOTER, XML_TOK_REPORT_FOOTER },
343 : { XML_NAMESPACE_REPORT, XML_HEADER_ON_NEW_PAGE, XML_TOK_HEADER_ON_NEW_PAGE },
344 : { XML_NAMESPACE_REPORT, XML_FOOTER_ON_NEW_PAGE, XML_TOK_FOOTER_ON_NEW_PAGE },
345 : { XML_NAMESPACE_REPORT, XML_COMMAND_TYPE, XML_TOK_COMMAND_TYPE },
346 : { XML_NAMESPACE_REPORT, XML_COMMAND, XML_TOK_COMMAND },
347 : { XML_NAMESPACE_REPORT, XML_FILTER, XML_TOK_FILTER },
348 : { XML_NAMESPACE_REPORT, XML_CAPTION, XML_TOK_CAPTION },
349 : { XML_NAMESPACE_REPORT, XML_ESCAPE_PROCESSING, XML_TOK_ESCAPE_PROCESSING },
350 : { XML_NAMESPACE_REPORT, XML_FUNCTION, XML_TOK_REPORT_FUNCTION },
351 : { XML_NAMESPACE_OFFICE, XML_MIMETYPE, XML_TOK_REPORT_MIMETYPE },
352 : { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_REPORT_NAME },
353 : { XML_NAMESPACE_REPORT, XML_MASTER_DETAIL_FIELDS, XML_TOK_MASTER_DETAIL_FIELDS },
354 : { XML_NAMESPACE_DRAW, XML_FRAME, XML_TOK_SUB_FRAME },
355 : XML_TOKEN_MAP_END
356 : };
357 0 : return new SvXMLTokenMap( aElemTokenMap );
358 : }
359 :
360 0 : SvXMLTokenMap* OXMLHelper::GetSubDocumentElemTokenMap()
361 : {
362 : static const SvXMLTokenMapEntry aElemTokenMap[]=
363 : {
364 : { XML_NAMESPACE_REPORT, XML_MASTER_DETAIL_FIELD, XML_TOK_MASTER_DETAIL_FIELD},
365 : { XML_NAMESPACE_REPORT, XML_MASTER, XML_TOK_MASTER},
366 : { XML_NAMESPACE_REPORT, XML_DETAIL, XML_TOK_SUB_DETAIL},
367 : XML_TOKEN_MAP_END
368 : };
369 0 : return new SvXMLTokenMap( aElemTokenMap );
370 : }
371 :
372 0 : const SvXMLEnumMapEntry* OXMLHelper::GetImageScaleOptions()
373 : {
374 : static const SvXMLEnumMapEntry s_aXML_EnumMap[] =
375 : {
376 : { XML_ISOTROPIC, awt::ImageScaleMode::ISOTROPIC },
377 : { XML_ANISOTROPIC, awt::ImageScaleMode::ANISOTROPIC },
378 : { XML_TOKEN_INVALID, 0 }
379 : };
380 0 : return s_aXML_EnumMap;
381 : }
382 :
383 :
384 : } // rptxml
385 :
386 :
387 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|