Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : :
30 : : #include <com/sun/star/drawing/ColorMode.hpp>
31 : : #include <com/sun/star/text/HorizontalAdjust.hpp>
32 : : #include <com/sun/star/text/WritingMode2.hpp>
33 : :
34 : : #include <tools/debug.hxx>
35 : :
36 : : #include <xmloff/prhdlfac.hxx>
37 : : #include <xmloff/xmltypes.hxx>
38 : : #include <xmloff/xmltoken.hxx>
39 : : #include "xmlbahdl.hxx"
40 : : #include <xmloff/NamedBoolPropertyHdl.hxx>
41 : : #include <xmloff/XMLConstantsPropertyHandler.hxx>
42 : : #include "cdouthdl.hxx"
43 : : #include "csmaphdl.hxx"
44 : : #include "fonthdl.hxx"
45 : : #include "kernihdl.hxx"
46 : : #include <postuhdl.hxx>
47 : : #include "shadwhdl.hxx"
48 : : #include "shdwdhdl.hxx"
49 : : #include "undlihdl.hxx"
50 : : #include "weighhdl.hxx"
51 : : #include "breakhdl.hxx"
52 : : #include <adjushdl.hxx>
53 : : #include <escphdl.hxx>
54 : : #include <chrhghdl.hxx>
55 : : #include <chrlohdl.hxx>
56 : : #include <lspachdl.hxx>
57 : : #include <bordrhdl.hxx>
58 : : #include <tabsthdl.hxx>
59 : : #include <xmloff/EnumPropertyHdl.hxx>
60 : : #include "AttributeContainerHandler.hxx"
61 : : #include "durationhdl.hxx"
62 : : #include "XMLRectangleMembersHandler.hxx"
63 : : #include "DrawAspectHdl.hxx"
64 : :
65 : : using namespace ::com::sun::star;
66 : : using namespace ::xmloff::token;
67 : :
68 : : SvXMLEnumMapEntry aXML_ColorMode_EnumMap[] =
69 : : {
70 : : { XML_GREYSCALE, drawing::ColorMode_GREYS },
71 : : { XML_MONO, drawing::ColorMode_MONO },
72 : : { XML_WATERMARK, drawing::ColorMode_WATERMARK },
73 : : { XML_STANDARD, drawing::ColorMode_STANDARD },
74 : : { XML_TOKEN_INVALID, 0 }
75 : : };
76 : :
77 : : SvXMLEnumMapEntry const aXML_HorizontalAdjust_Enum[] =
78 : : {
79 : : { XML_LEFT, text::HorizontalAdjust_LEFT },
80 : : { XML_CENTER, text::HorizontalAdjust_CENTER },
81 : : { XML_RIGHT, text::HorizontalAdjust_RIGHT },
82 : : { XML_TOKEN_INVALID, 0 }
83 : : };
84 : :
85 : : // aXML_WritingDirection_Enum is used with and without 'page'
86 : : // attribute, so you'll find uses of aXML_WritingDirection_Enum
87 : : // directly, as well as &(aXML_WritingDirection_Enum[1])
88 : : SvXMLEnumMapEntry const aXML_WritingDirection_Enum[] =
89 : : {
90 : : // aXML_WritingDirection_Enum
91 : : { XML_PAGE, text::WritingMode2::PAGE },
92 : :
93 : : // &(aXML_WritingDirection_Enum[1])
94 : : { XML_LR_TB, text::WritingMode2::LR_TB },
95 : : { XML_RL_TB, text::WritingMode2::RL_TB },
96 : : { XML_TB_RL, text::WritingMode2::TB_RL },
97 : : { XML_TB_LR, text::WritingMode2::TB_LR },
98 : :
99 : : // alternative names of the above, as accepted by XSL
100 : : { XML_LR, text::WritingMode2::LR_TB },
101 : : { XML_RL, text::WritingMode2::RL_TB },
102 : : { XML_TB, text::WritingMode2::TB_RL },
103 : :
104 : : { XML_TOKEN_INVALID, 0 }
105 : : };
106 : :
107 : :
108 : : ///////////////////////////////////////////////////////////////////////////
109 : : //
110 : : // Dtor
111 : : //
112 : 9743 : XMLPropertyHandlerFactory::~XMLPropertyHandlerFactory()
113 : : {
114 [ + - ][ + - ]: 384807 : for( CacheMap::iterator pPos = maHandlerCache.begin(); pPos != maHandlerCache.end(); ++pPos )
[ + + ]
115 [ + - ][ + - ]: 375064 : delete pPos->second;
[ + - ]
116 [ - + ]: 9743 : }
117 : :
118 : : ///////////////////////////////////////////////////////////////////////////
119 : : //
120 : : // Interface
121 : : //
122 : 764236 : const XMLPropertyHandler* XMLPropertyHandlerFactory::GetPropertyHandler( sal_Int32 nType ) const
123 : : {
124 : : DBG_ASSERT( (nType & ~((sal_uInt32)MID_FLAG_MASK)) == 0,
125 : : "GetPropertyHandler called with flags in type" );
126 : 764236 : return GetBasicHandler( nType );
127 : : }
128 : :
129 : : ///////////////////////////////////////////////////////////////////////////
130 : : //
131 : : // Helper-methods to create and cache PropertyHandler
132 : : //
133 : 764236 : XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nType ) const
134 : : {
135 : 764236 : XMLPropertyHandler* pRet = NULL;
136 : :
137 [ + - ][ + - ]: 764236 : if( maHandlerCache.find( nType ) != maHandlerCache.end() )
[ + + ]
138 [ + - ]: 387562 : pRet = maHandlerCache.find( nType )->second;
139 : :
140 : 764236 : return pRet;
141 : : }
142 : :
143 : 376674 : void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const
144 : : {
145 : : // Don't be wondered about the following construct. The sense is to be able to provide a const-
146 : : // method as class-interface.
147 : 376674 : ((XMLPropertyHandlerFactory*)this)->maHandlerCache[ nType ] = (XMLPropertyHandler*)pHdl;
148 : 376674 : }
149 : :
150 : 764236 : const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const
151 : : {
152 : 764236 : const XMLPropertyHandler* pPropHdl = GetHdlCache( nType );
153 : :
154 [ + + ]: 764236 : if( !pPropHdl )
155 : : {
156 : 376674 : pPropHdl = CreatePropertyHandler( nType );
157 : :
158 [ + + ]: 376674 : if( pPropHdl )
159 : 242094 : PutHdlCache( nType, pPropHdl );
160 : : }
161 : :
162 : 764236 : return pPropHdl;
163 : : }
164 : :
165 : 376674 : const XMLPropertyHandler* XMLPropertyHandlerFactory::CreatePropertyHandler( sal_Int32 nType )
166 : : {
167 : 376674 : XMLPropertyHandler* pPropHdl = NULL;
168 : :
169 [ + - + - : 376674 : switch( nType )
+ + + + +
+ - + + +
+ + + + +
- - + + +
+ + + + +
+ + + + +
- + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + -
- + + + ]
170 : : {
171 : : case XML_TYPE_BOOL :
172 [ + - ]: 7446 : pPropHdl = new XMLBoolPropHdl;
173 : 7446 : break;
174 : : case XML_TYPE_BOOL_FALSE :
175 [ # # ]: 0 : pPropHdl = new XMLBoolFalsePropHdl;
176 : 0 : break;
177 : : case XML_TYPE_MEASURE :
178 [ + - ]: 7194 : pPropHdl = new XMLMeasurePropHdl( 4 );
179 : 7194 : break;
180 : : case XML_TYPE_MEASURE8 :
181 [ # # ]: 0 : pPropHdl = new XMLMeasurePropHdl( 1 );
182 : 0 : break;
183 : : case XML_TYPE_MEASURE16:
184 [ + - ]: 1175 : pPropHdl = new XMLMeasurePropHdl( 2 );
185 : 1175 : break;
186 : : case XML_TYPE_PERCENT :
187 [ + - ]: 3132 : pPropHdl = new XMLPercentPropHdl( 4 );
188 : 3132 : break;
189 : : case XML_TYPE_PERCENT8 :
190 [ + - ]: 1241 : pPropHdl = new XMLPercentPropHdl( 1 );
191 : 1241 : break;
192 : : case XML_TYPE_PERCENT16 :
193 [ + - ]: 5112 : pPropHdl = new XMLPercentPropHdl( 2 );
194 : 5112 : break;
195 : : case XML_TYPE_DOUBLE_PERCENT :
196 [ + - ]: 1876 : pPropHdl = new XMLDoublePercentPropHdl();
197 : 1876 : break;
198 : : case XML_TYPE_NEG_PERCENT :
199 [ + - ]: 890 : pPropHdl = new XMLNegPercentPropHdl( 4 );
200 : 890 : break;
201 : : case XML_TYPE_NEG_PERCENT8 :
202 [ # # ]: 0 : pPropHdl = new XMLNegPercentPropHdl( 1 );
203 : 0 : break;
204 : : case XML_TYPE_NEG_PERCENT16 :
205 [ + - ]: 1876 : pPropHdl = new XMLNegPercentPropHdl( 2 );
206 : 1876 : break;
207 : : case XML_TYPE_MEASURE_PX :
208 [ + - ]: 1876 : pPropHdl = new XMLMeasurePxPropHdl( 4 );
209 : 1876 : break;
210 : : case XML_TYPE_STRING :
211 [ + - ]: 6845 : pPropHdl = new XMLStringPropHdl;
212 : 6845 : break;
213 : : case XML_TYPE_COLOR :
214 [ + - ]: 4531 : pPropHdl = new XMLColorPropHdl;
215 : 4531 : break;
216 : : case XML_TYPE_HEX :
217 [ + - ]: 2981 : pPropHdl = new XMLHexPropHdl;
218 : 2981 : break;
219 : : case XML_TYPE_NUMBER :
220 [ + - ]: 4085 : pPropHdl = new XMLNumberPropHdl( 4 );
221 : 4085 : break;
222 : : case XML_TYPE_NUMBER8 :
223 [ + - ]: 2242 : pPropHdl = new XMLNumberPropHdl( 1 );
224 : 2242 : break;
225 : : case XML_TYPE_NUMBER16:
226 [ + - ]: 3750 : pPropHdl = new XMLNumberPropHdl( 2 );
227 : 3750 : break;
228 : : case XML_TYPE_NUMBER_NONE :
229 [ # # ]: 0 : pPropHdl = new XMLNumberNonePropHdl;
230 : 0 : break;
231 : : case XML_TYPE_NUMBER8_NONE :
232 [ # # ]: 0 : pPropHdl = new XMLNumberNonePropHdl( 1 );
233 : 0 : break;
234 : : case XML_TYPE_NUMBER16_NONE :
235 [ + - ]: 2242 : pPropHdl = new XMLNumberNonePropHdl( 2 );
236 : 2242 : break;
237 : : case XML_TYPE_DOUBLE :
238 [ + - ]: 33 : pPropHdl = new XMLDoublePropHdl;
239 : 33 : break;
240 : : case XML_TYPE_NBOOL :
241 [ + - ]: 45 : pPropHdl = new XMLNBoolPropHdl;
242 : 45 : break;
243 : : case XML_TYPE_COLORTRANSPARENT :
244 [ + - ]: 5517 : pPropHdl = new XMLColorTransparentPropHdl;
245 : 5517 : break;
246 : : case XML_TYPE_ISTRANSPARENT :
247 [ + - ]: 5517 : pPropHdl = new XMLIsTransparentPropHdl;
248 : 5517 : break;
249 : : case XML_TYPE_COLORAUTO :
250 [ + - ]: 3541 : pPropHdl = new XMLColorAutoPropHdl;
251 : 3541 : break;
252 : : case XML_TYPE_ISAUTOCOLOR :
253 [ + - ]: 2981 : pPropHdl = new XMLIsAutoColorPropHdl;
254 : 2981 : break;
255 : : case XML_TYPE_BUILDIN_CMP_ONLY :
256 [ + - ]: 5668 : pPropHdl = new XMLCompareOnlyPropHdl;
257 : 5668 : break;
258 : :
259 : : case XML_TYPE_RECTANGLE_LEFT :
260 : : case XML_TYPE_RECTANGLE_TOP :
261 : : case XML_TYPE_RECTANGLE_WIDTH :
262 : : case XML_TYPE_RECTANGLE_HEIGHT :
263 [ + - ]: 3560 : pPropHdl = new XMLRectangleMembersHdl( nType );
264 : 3560 : break;
265 : :
266 : : case XML_TYPE_TEXT_CROSSEDOUT_TYPE:
267 [ + - ]: 3386 : pPropHdl = new XMLCrossedOutTypePropHdl ;
268 : 3386 : break;
269 : : case XML_TYPE_TEXT_CROSSEDOUT_STYLE:
270 [ + - ]: 3386 : pPropHdl = new XMLCrossedOutStylePropHdl ;
271 : 3386 : break;
272 : : case XML_TYPE_TEXT_CROSSEDOUT_WIDTH:
273 [ + - ]: 3386 : pPropHdl = new XMLCrossedOutWidthPropHdl ;
274 : 3386 : break;
275 : : case XML_TYPE_TEXT_CROSSEDOUT_TEXT:
276 [ + - ]: 3386 : pPropHdl = new XMLCrossedOutTextPropHdl ;
277 : 3386 : break;
278 : : case XML_TYPE_TEXT_BOOLCROSSEDOUT:
279 : : pPropHdl = new XMLNamedBoolPropertyHdl(
280 : : GetXMLToken(XML_SOLID),
281 [ # # ]: 0 : GetXMLToken(XML_NONE) );
282 : 0 : break;
283 : : case XML_TYPE_TEXT_ESCAPEMENT:
284 [ + - ]: 2981 : pPropHdl = new XMLEscapementPropHdl;
285 : 2981 : break;
286 : : case XML_TYPE_TEXT_ESCAPEMENT_HEIGHT:
287 [ + - ]: 2981 : pPropHdl = new XMLEscapementHeightPropHdl;
288 : 2981 : break;
289 : : case XML_TYPE_TEXT_CASEMAP:
290 [ + - ]: 2981 : pPropHdl = new XMLCaseMapPropHdl;
291 : 2981 : break;
292 : : case XML_TYPE_TEXT_CASEMAP_VAR:
293 [ + - ]: 2981 : pPropHdl = new XMLCaseMapVariantHdl;
294 : 2981 : break;
295 : : case XML_TYPE_TEXT_FONTFAMILYNAME:
296 [ + - ]: 2981 : pPropHdl = new XMLFontFamilyNamePropHdl;
297 : 2981 : break;
298 : : case XML_TYPE_TEXT_FONTFAMILY:
299 [ + - ]: 3386 : pPropHdl = new XMLFontFamilyPropHdl;
300 : 3386 : break;
301 : : case XML_TYPE_TEXT_FONTENCODING:
302 [ + - ]: 3386 : pPropHdl = new XMLFontEncodingPropHdl;
303 : 3386 : break;
304 : : case XML_TYPE_TEXT_FONTPITCH:
305 [ + - ]: 3386 : pPropHdl = new XMLFontPitchPropHdl;
306 : 3386 : break;
307 : : case XML_TYPE_TEXT_KERNING:
308 [ + - ]: 2981 : pPropHdl = new XMLKerningPropHdl;
309 : 2981 : break;
310 : : case XML_TYPE_TEXT_POSTURE:
311 [ + - ]: 3386 : pPropHdl = new XMLPosturePropHdl;
312 : 3386 : break;
313 : : case XML_TYPE_TEXT_SHADOWED:
314 [ + - ]: 2981 : pPropHdl = new XMLShadowedPropHdl;
315 : 2981 : break;
316 : : case XML_TYPE_TEXT_UNDERLINE_TYPE:
317 [ + - ]: 3386 : pPropHdl = new XMLUnderlineTypePropHdl;
318 : 3386 : break;
319 : : case XML_TYPE_TEXT_UNDERLINE_STYLE:
320 [ + - ]: 3386 : pPropHdl = new XMLUnderlineStylePropHdl;
321 : 3386 : break;
322 : : case XML_TYPE_TEXT_UNDERLINE_WIDTH:
323 [ + - ]: 3386 : pPropHdl = new XMLUnderlineWidthPropHdl;
324 : 3386 : break;
325 : : case XML_TYPE_TEXT_UNDERLINE_COLOR:
326 [ + - ]: 3386 : pPropHdl = new XMLColorTransparentPropHdl( XML_FONT_COLOR );
327 : 3386 : break;
328 : : case XML_TYPE_TEXT_UNDERLINE_HASCOLOR:
329 : : pPropHdl = new XMLIsTransparentPropHdl( XML_FONT_COLOR,
330 [ + - ]: 3341 : sal_False );
331 : 3341 : break;
332 : : case XML_TYPE_TEXT_OVERLINE_TYPE:
333 [ + - ]: 2981 : pPropHdl = new XMLUnderlineTypePropHdl;
334 : 2981 : break;
335 : : case XML_TYPE_TEXT_OVERLINE_STYLE:
336 [ + - ]: 2981 : pPropHdl = new XMLUnderlineStylePropHdl;
337 : 2981 : break;
338 : : case XML_TYPE_TEXT_OVERLINE_WIDTH:
339 [ + - ]: 2981 : pPropHdl = new XMLUnderlineWidthPropHdl;
340 : 2981 : break;
341 : : case XML_TYPE_TEXT_OVERLINE_COLOR:
342 [ + - ]: 2981 : pPropHdl = new XMLColorTransparentPropHdl( XML_FONT_COLOR );
343 : 2981 : break;
344 : : case XML_TYPE_TEXT_OVERLINE_HASCOLOR:
345 : : pPropHdl = new XMLIsTransparentPropHdl( XML_FONT_COLOR,
346 [ + - ]: 2981 : sal_False );
347 : 2981 : break;
348 : : case XML_TYPE_TEXT_WEIGHT:
349 [ + - ]: 3386 : pPropHdl = new XMLFontWeightPropHdl;
350 : 3386 : break;
351 : : case XML_TYPE_TEXT_SPLIT:
352 : : pPropHdl = new XMLNamedBoolPropertyHdl(
353 : : GetXMLToken(XML_AUTO),
354 [ + - ]: 2242 : GetXMLToken(XML_ALWAYS) );
355 : 2242 : break;
356 : : case XML_TYPE_TEXT_BREAKBEFORE:
357 [ + - ]: 2242 : pPropHdl = new XMLFmtBreakBeforePropHdl;
358 : 2242 : break;
359 : : case XML_TYPE_TEXT_BREAKAFTER:
360 [ + - ]: 2242 : pPropHdl = new XMLFmtBreakAfterPropHdl;
361 : 2242 : break;
362 : : case XML_TYPE_TEXT_SHADOW:
363 [ + - ]: 4043 : pPropHdl = new XMLShadowPropHdl;
364 : 4043 : break;
365 : : case XML_TYPE_TEXT_ADJUST:
366 [ + - ]: 2242 : pPropHdl = new XMLParaAdjustPropHdl;
367 : 2242 : break;
368 : : case XML_TYPE_TEXT_ADJUSTLAST:
369 [ + - ]: 2242 : pPropHdl = new XMLLastLineAdjustPropHdl;
370 : 2242 : break;
371 : : case XML_TYPE_CHAR_HEIGHT:
372 [ + - ]: 3026 : pPropHdl = new XMLCharHeightHdl;
373 : 3026 : break;
374 : : case XML_TYPE_CHAR_HEIGHT_PROP:
375 [ + - ]: 2981 : pPropHdl = new XMLCharHeightPropHdl;
376 : 2981 : break;
377 : : case XML_TYPE_CHAR_HEIGHT_DIFF:
378 [ + - ]: 2981 : pPropHdl = new XMLCharHeightDiffHdl;
379 : 2981 : break;
380 : : case XML_TYPE_CHAR_LANGUAGE:
381 [ + - ]: 2981 : pPropHdl = new XMLCharLanguageHdl;
382 : 2981 : break;
383 : : case XML_TYPE_CHAR_COUNTRY:
384 [ + - ]: 2981 : pPropHdl = new XMLCharCountryHdl;
385 : 2981 : break;
386 : : case XML_TYPE_LINE_SPACE_FIXED:
387 [ + - ]: 2242 : pPropHdl = new XMLLineHeightHdl;
388 : 2242 : break;
389 : : case XML_TYPE_LINE_SPACE_MINIMUM:
390 [ + - ]: 2242 : pPropHdl = new XMLLineHeightAtLeastHdl;
391 : 2242 : break;
392 : : case XML_TYPE_LINE_SPACE_DISTANCE:
393 [ + - ]: 2242 : pPropHdl = new XMLLineSpacingHdl;
394 : 2242 : break;
395 : : case XML_TYPE_BORDER_WIDTH:
396 [ + - ]: 4043 : pPropHdl = new XMLBorderWidthHdl;
397 : 4043 : break;
398 : : case XML_TYPE_BORDER:
399 [ + - ]: 4043 : pPropHdl = new XMLBorderHdl;
400 : 4043 : break;
401 : : case XML_TYPE_TEXT_TABSTOP:
402 [ + - ]: 2242 : pPropHdl = new XMLTabStopPropHdl;
403 : 2242 : break;
404 : : case XML_TYPE_ATTRIBUTE_CONTAINER:
405 [ + - ]: 4933 : pPropHdl = new XMLAttributeContainerHandler;
406 : 4933 : break;
407 : : case XML_TYPE_COLOR_MODE:
408 : : pPropHdl = new XMLEnumPropertyHdl( aXML_ColorMode_EnumMap,
409 [ + - ]: 1876 : ::getCppuType((const drawing::ColorMode*)0) );
410 : 1876 : break;
411 : : case XML_TYPE_DURATION16_MS:
412 [ + - ]: 890 : pPropHdl = new XMLDurationMS16PropHdl_Impl;
413 : 890 : break;
414 : : case XML_TYPE_TEXT_HORIZONTAL_ADJUST:
415 : : pPropHdl = new XMLEnumPropertyHdl(
416 : : aXML_HorizontalAdjust_Enum,
417 [ + - ]: 255 : ::getCppuType((const text::HorizontalAdjust*)0) );
418 : 255 : break;
419 : : case XML_TYPE_TEXT_DRAW_ASPECT:
420 [ + - ]: 1876 : pPropHdl = new DrawAspectHdl;
421 : 1876 : break;
422 : : case XML_TYPE_TEXT_WRITING_MODE:
423 : : pPropHdl = new XMLConstantsPropertyHandler(
424 : : &(aXML_WritingDirection_Enum[1]),
425 [ + - ]: 815 : XML_LR_TB);
426 : 815 : break;
427 : : case XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT:
428 : : pPropHdl = new XMLConstantsPropertyHandler(
429 : : aXML_WritingDirection_Enum,
430 [ + - ]: 4853 : XML_PAGE);
431 : 4853 : break;
432 : : case XML_TYPE_TEXT_HIDDEN_AS_DISPLAY:
433 : : pPropHdl = new XMLNamedBoolPropertyHdl(
434 : : GetXMLToken(XML_NONE),
435 [ + - ]: 2981 : GetXMLToken(XML_TRUE) );
436 : 2981 : break;
437 : : case XML_TYPE_STYLENAME :
438 [ + - ]: 3387 : pPropHdl = new XMLStyleNamePropHdl;
439 : 3387 : break;
440 : : case XML_TYPE_NUMBER_NO_ZERO:
441 [ # # ]: 0 : pPropHdl = new XMLNumberWithoutZeroPropHdl( 4 );
442 : 0 : break;
443 : : case XML_TYPE_NUMBER8_NO_ZERO:
444 [ # # ]: 0 : pPropHdl = new XMLNumberWithoutZeroPropHdl( 1 );
445 : 0 : break;
446 : : case XML_TYPE_NUMBER16_NO_ZERO:
447 [ + - ]: 2242 : pPropHdl = new XMLNumberWithoutZeroPropHdl( 2 );
448 : 2242 : break;
449 : : case XML_TYPE_NUMBER16_AUTO:
450 [ + - ]: 2242 : pPropHdl = new XMLNumberWithAutoInsteadZeroPropHdl();
451 : 2242 : break;
452 : : }
453 : :
454 : 376674 : return pPropHdl;
455 : : }
456 : :
457 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|