LibreOffice Module xmloff (master)  1
sdpropls.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/animations/TransitionType.hpp>
21 #include <com/sun/star/ucb/XAnyCompareFactory.hpp>
22 #include <com/sun/star/container/XIndexReplace.hpp>
23 #include <com/sun/star/drawing/LineStyle.hpp>
24 #include <com/sun/star/drawing/LineJoint.hpp>
25 #include <com/sun/star/drawing/LineCap.hpp>
26 #include <com/sun/star/presentation/AnimationSpeed.hpp>
27 #include <com/sun/star/presentation/FadeEffect.hpp>
28 
29 #include <com/sun/star/text/WritingMode.hpp>
30 #include <com/sun/star/text/WritingMode2.hpp>
33 #include <WordWrapPropertyHdl.hxx>
34 #include <enummaps.hxx>
35 #include "numithdl.hxx"
39 #include <com/sun/star/drawing/TextAnimationKind.hpp>
40 #include <com/sun/star/drawing/TextAnimationDirection.hpp>
41 #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
42 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
43 #include <com/sun/star/drawing/TextFitToSizeType.hpp>
44 #include <com/sun/star/drawing/MeasureTextHorzPos.hpp>
45 #include <com/sun/star/drawing/MeasureTextVertPos.hpp>
47 #include <xmloff/xmltoken.hxx>
48 #include "sdpropls.hxx"
49 #include <propimp0.hxx>
50 #include <xmloff/xmlexp.hxx>
51 #include <xmloff/xmlnamespace.hxx>
52 #include <com/sun/star/drawing/NormalsKind.hpp>
53 #include <com/sun/star/drawing/TextureProjectionMode.hpp>
54 #include <com/sun/star/drawing/TextureKind.hpp>
55 #include <com/sun/star/drawing/TextureMode.hpp>
56 #include <com/sun/star/beans/XPropertySet.hpp>
57 #include <xmloff/txtprmap.hxx>
61 #include <animations.hxx>
62 #include <sax/tools/converter.hxx>
63 #include <xmlsdtypes.hxx>
64 
65 using ::com::sun::star::uno::Any;
66 
67 using namespace ::com::sun::star;
68 using namespace ::xmloff::token;
69 
70 #define MAP_(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFSVER_010, false }
71 #define MAPV_(name,prefix,token,type,context,version) { name, sizeof(name)-1, prefix, token, type, context, version, false }
72 #define GMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context)
73 #define GMAP_D(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC|MID_FLAG_DEFAULT_ITEM_EXPORT,context)
74 #define GMAPV(name,prefix,token,type,context,version) MAPV_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context,version)
75 #define DPMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
76 #define TMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
77 #define PMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
78 #define MAP_END() { nullptr, 0, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFSVER_010, false }
79 
80 // entry list for graphic properties
81 
83 {
84  // this entry must be first! this is needed for XMLShapeImportHelper::CreateExternalShapePropMapper
85 
86  // ^^^though CreateExternalShapePropMapper is gone now, hmm^^^
87  GMAP( "UserDefinedAttributes", XML_NAMESPACE_TEXT, XML_XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
88 
89  // stroke attributes
100  GMAP( "LineTransparence", XML_NAMESPACE_SVG, XML_STROKE_OPACITY, XML_SD_TYPE_OPACITY, 0 ),
103 
104  // fill attributes
109  GMAP( "FillGradientStepCount", XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT, XML_TYPE_NUMBER16, 0 ),
111  GMAP( "FillBackground", XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID, XML_TYPE_BOOL, 0 ),
113  GMAP( "FillTransparence", XML_NAMESPACE_DRAW, XML_OPACITY, XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too
120  GMAP( "FillBitmapPositionOffsetX", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
121  GMAP( "FillBitmapPositionOffsetY", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
125 
126  // text frame attributes
129  GMAP( "TextAutoGrowHeight", XML_NAMESPACE_DRAW, XML_AUTO_GROW_HEIGHT, XML_TYPE_BOOL, 0 ),
130  GMAP( "TextAutoGrowWidth", XML_NAMESPACE_DRAW, XML_AUTO_GROW_WIDTH, XML_TYPE_BOOL, 0 ),
133  GMAP( "TextContourFrame", XML_NAMESPACE_DRAW, XML_FIT_TO_CONTOUR, XML_TYPE_BOOL, 0 ),
134  GMAP( "TextMaximumFrameHeight", XML_NAMESPACE_FO, XML_MAX_HEIGHT, XML_TYPE_MEASURE, 0 ),
135  GMAP( "TextMaximumFrameWidth", XML_NAMESPACE_FO, XML_MAX_WIDTH, XML_TYPE_MEASURE, 0 ),
136  GMAP( "TextMinimumFrameHeight", XML_NAMESPACE_FO, XML_MIN_HEIGHT, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too
138  GMAP( "TextUpperDistance", XML_NAMESPACE_FO, XML_PADDING_TOP, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too
139  GMAP( "TextLowerDistance", XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too
140  GMAP( "TextLeftDistance", XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too
141  GMAP( "TextRightDistance", XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too
146  GMAP( "TextChainNextName", XML_NAMESPACE_DRAW, XML_CHAIN_NEXT_NAME, XML_TYPE_STRING, 0 ),
147 
148  // shadow attributes
150  GMAP( "ShadowXDistance", XML_NAMESPACE_DRAW, XML_SHADOW_OFFSET_X, XML_TYPE_MEASURE, 0 ),
151  GMAP( "ShadowYDistance", XML_NAMESPACE_DRAW, XML_SHADOW_OFFSET_Y, XML_TYPE_MEASURE, 0 ),
153  GMAP( "ShadowTransparence", XML_NAMESPACE_DRAW, XML_SHADOW_OPACITY, XML_TYPE_NEG_PERCENT, 0 ),
155 
156  // glow attributes
160 
161  // soft edge attributes
163 
164  // graphic attributes
165  GMAP( "GraphicColorMode", XML_NAMESPACE_DRAW, XML_COLOR_MODE, XML_TYPE_COLOR_MODE, 0 ), // exists in SW, too, with same property name
166  GMAP( "AdjustLuminance", XML_NAMESPACE_DRAW, XML_LUMINANCE, XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
167  GMAP( "AdjustContrast", XML_NAMESPACE_DRAW, XML_CONTRAST, XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
168  GMAP( "Gamma", XML_NAMESPACE_DRAW, XML_GAMMA, XML_TYPE_DOUBLE_PERCENT, 0 ), // signed? exists in SW, too, with same property name
169  GMAP( "AdjustRed", XML_NAMESPACE_DRAW, XML_RED, XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
170  GMAP( "AdjustGreen", XML_NAMESPACE_DRAW, XML_GREEN, XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
171  GMAP( "AdjustBlue", XML_NAMESPACE_DRAW, XML_BLUE, XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
172  GMAPV( "GraphicCrop", XML_NAMESPACE_FO, XML_CLIP, XML_TYPE_TEXT_CLIP, CTF_TEXT_CLIP, SvtSaveOptions::ODFSVER_012), // exists in SW, too, with same property name
173  GMAP( "GraphicCrop", XML_NAMESPACE_FO, XML_CLIP, XML_TYPE_TEXT_CLIP11, CTF_TEXT_CLIP11 ), // exists in SW, too, with same property name
174  GMAP( "Transparency", XML_NAMESPACE_DRAW, XML_IMAGE_OPACITY, XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too, with same property name // #i25616#
175  GMAP( "IsMirrored", XML_NAMESPACE_STYLE, XML_MIRROR, XML_TYPE_SD_MIRROR|MID_FLAG_MULTI_PROPERTY, 0 ), // exists in SW, too // #i40214#
176 
177  // animation text attributes
181  GMAP( "TextAnimationStartInside", XML_NAMESPACE_TEXT, XML_ANIMATION_START_INSIDE, XML_TYPE_BOOL, 0 ),
182  GMAP( "TextAnimationStopInside", XML_NAMESPACE_TEXT, XML_ANIMATION_STOP_INSIDE, XML_TYPE_BOOL, 0 ),
183  GMAP( "TextAnimationCount", XML_NAMESPACE_TEXT, XML_ANIMATION_REPEAT, XML_TYPE_NUMBER16, 0 ),
186 
187  // connector attributes
192 
193  // measure attributes
194  GMAP( "MeasureLineDistance", XML_NAMESPACE_DRAW, XML_LINE_DISTANCE, XML_TYPE_MEASURE, 0 ),
195  GMAP( "MeasureHelpLineOverhang", XML_NAMESPACE_DRAW, XML_GUIDE_OVERHANG, XML_TYPE_MEASURE, 0 ),
196  GMAP( "MeasureHelpLineDistance", XML_NAMESPACE_DRAW, XML_GUIDE_DISTANCE, XML_TYPE_MEASURE, 0 ),
197  GMAP( "MeasureHelpLine1Length", XML_NAMESPACE_DRAW, XML_START_GUIDE, XML_TYPE_MEASURE, 0 ),
198  GMAP( "MeasureHelpLine2Length", XML_NAMESPACE_DRAW, XML_END_GUIDE, XML_TYPE_MEASURE, 0 ),
199  GMAP( "MeasureTextHorizontalPosition", XML_NAMESPACE_DRAW, XML_MEASURE_ALIGN, XML_SD_TYPE_MEASURE_HALIGN, 0 ),
200  GMAP( "MeasureTextVerticalPosition", XML_NAMESPACE_DRAW, XML_MEASURE_VERTICAL_ALIGN, XML_SD_TYPE_MEASURE_VALIGN, 0 ),
202  GMAP( "MeasureShowUnit", XML_NAMESPACE_DRAW, XML_SHOW_UNIT, XML_TYPE_BOOL, 0 ),
203  GMAP( "MeasureBelowReferenceEdge", XML_NAMESPACE_DRAW, XML_PLACING, XML_SD_TYPE_MEASURE_PLACING, 0 ),
204  GMAP( "MeasureTextRotate90", XML_NAMESPACE_DRAW, XML_PARALLEL, XML_TYPE_BOOL, 0 ),
205  GMAP( "MeasureDecimalPlaces", XML_NAMESPACE_DRAW, XML_DECIMAL_PLACES, XML_TYPE_NUMBER16, 0 ),
206 
207  // 3D geometry attributes
208  GMAP( "D3DHorizontalSegments", XML_NAMESPACE_DR3D, XML_HORIZONTAL_SEGMENTS, XML_TYPE_NUMBER, 0 ),
209  GMAP( "D3DVerticalSegments", XML_NAMESPACE_DR3D, XML_VERTICAL_SEGMENTS, XML_TYPE_NUMBER, 0 ),
210  GMAP( "D3DPercentDiagonal", XML_NAMESPACE_DR3D, XML_EDGE_ROUNDING, XML_TYPE_PERCENT, 0 ),
211  GMAP( "D3DBackscale", XML_NAMESPACE_DR3D, XML_BACK_SCALE, XML_TYPE_PERCENT, 0 ),
212  GMAP( "D3DEndAngle", XML_NAMESPACE_DR3D, XML_END_ANGLE, XML_TYPE_NUMBER, 0 ),
215 
216  // #107245# New 3D properties which are possible for lathe and extrude 3d objects
217  GMAP( "D3DCloseFront", XML_NAMESPACE_DR3D, XML_CLOSE_FRONT, XML_TYPE_BOOL, 0 ),
218  GMAP( "D3DCloseBack", XML_NAMESPACE_DR3D, XML_CLOSE_BACK, XML_TYPE_BOOL, 0 ),
219 
220  // 3D lighting attributes
223 
224  // 3D texture attributes
227  GMAP( "D3DTextureKind", XML_NAMESPACE_DR3D, XML_TEX_KIND, XML_SD_TYPE_TEX_KIND, 0 ),
228  GMAP( "D3DTextureMode", XML_NAMESPACE_DR3D, XML_TEX_MODE, XML_SD_TYPE_TEX_MODE, 0 ),
230 
231  // 3D material attributes
232  GMAP( "D3DMaterialColor", XML_NAMESPACE_DR3D, XML_DIFFUSE_COLOR, XML_TYPE_COLOR, 0 ),
233  GMAP( "D3DMaterialEmission", XML_NAMESPACE_DR3D, XML_EMISSIVE_COLOR, XML_TYPE_COLOR, 0 ),
234  GMAP( "D3DMaterialSpecular", XML_NAMESPACE_DR3D, XML_SPECULAR_COLOR, XML_TYPE_COLOR, 0 ),
235  GMAP( "D3DMaterialSpecularIntensity", XML_NAMESPACE_DR3D, XML_SHININESS, XML_TYPE_PERCENT, 0 ),
236 
237  // 3D shadow attributes
239 
240  // #FontWork# attributes
254 
255  // #FontWork# attributes
269 
270  // control attributes (border exists one more time for the text additions of shapes)
271  GMAP( "ControlSymbolColor", XML_NAMESPACE_DRAW, XML_SYMBOL_COLOR, XML_TYPE_COLOR, 0 ),
279 
280  // special entries for floating frames
294 
296 
297  // caption properties
307  GMAP( "CaptionIsFitLineLength", XML_NAMESPACE_DRAW, XML_CAPTION_FIT_LINE_LENGTH, XML_TYPE_BOOL, 0 ),
308 
309  // misc object properties
312 
313  MAP_END()
314 };
315 
316 // entry list for presentation page properties
317 
319 {
320  DPMAP( "UserDefinedAttributes", XML_NAMESPACE_TEXT, XML_XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
321 
329 
332 
336  DPMAP( "FillGradientStepCount", XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT, XML_TYPE_NUMBER, 0 ),
338  GMAP( "FillBackground", XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID, XML_TYPE_BOOL, 0 ),
347  DPMAP( "FillBitmapPositionOffsetX", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
348  DPMAP( "FillBitmapPositionOffsetY", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
352 
357 
362  MAP_END()
363 };
364 
366 {
371 
372  MAP_END()
373 };
374 
379 {
382  MAP_( "UseFirstColumnStyle", XML_NAMESPACE_TABLE, XML_USE_FIRST_COLUMN_STYLES, XML_TYPE_BOOL, 0 ),
385  MAP_( "UseBandingColumnStyle", XML_NAMESPACE_TABLE, XML_USE_BANDING_COLUMNS_STYLES, XML_TYPE_BOOL, 0 ),
386  MAP_END()
387 };
388 
389 // implementation of factory for own graphic properties
390 
392 {
393  { XML_NONE, drawing::LineStyle_NONE },
394  { XML_SOLID, drawing::LineStyle_SOLID },
395  { XML_DASH, drawing::LineStyle_DASH },
396  { XML_TOKEN_INVALID, drawing::LineStyle(0) }
397 };
398 
400 {
401  { XML_NONE, drawing::LineJoint_NONE },
402  { XML_MITER, drawing::LineJoint_MITER },
403  { XML_ROUND, drawing::LineJoint_ROUND },
404  { XML_BEVEL, drawing::LineJoint_BEVEL },
405  { XML_MIDDLE, drawing::LineJoint_MIDDLE },
406  { XML_TOKEN_INVALID, drawing::LineJoint(0) }
407 };
408 
410 {
411  { XML_BUTT, drawing::LineCap_BUTT },
412  { XML_ROUND, drawing::LineCap_ROUND },
413  // use XML_GRADIENTSTYLE_SQUARE as XML_SQUARE, is defined as "square" already
414  { XML_GRADIENTSTYLE_SQUARE, drawing::LineCap_SQUARE },
415  { XML_TOKEN_INVALID, drawing::LineCap(0) }
416 };
417 
419 {
420  { XML_NONE, drawing::FillStyle_NONE },
421  { XML_SOLID, drawing::FillStyle_SOLID },
422  { XML_BITMAP, drawing::FillStyle_BITMAP },
423  { XML_GRADIENT, drawing::FillStyle_GRADIENT },
424  { XML_HATCH, drawing::FillStyle_HATCH },
425  { XML_TOKEN_INVALID, drawing::FillStyle(0) }
426 };
427 
429 {
430  { XML_MANUAL, 0 },
431  { XML_AUTOMATIC, 1 },
432  { XML_SEMI_AUTOMATIC, 2 },
433  { XML_TOKEN_INVALID, 0 }
434 };
435 
437 {
438  { XML_FAST, presentation::AnimationSpeed_FAST },
439  { XML_MEDIUM, presentation::AnimationSpeed_MEDIUM },
440  { XML_SLOW, presentation::AnimationSpeed_SLOW },
441  { XML_TOKEN_INVALID, presentation::AnimationSpeed(0) }
442 };
443 
445 {
446  { XML_NONE, presentation::FadeEffect_NONE },
447  { XML_FADE_FROM_LEFT, presentation::FadeEffect_FADE_FROM_LEFT },
448  { XML_FADE_FROM_TOP, presentation::FadeEffect_FADE_FROM_TOP },
449  { XML_FADE_FROM_RIGHT, presentation::FadeEffect_FADE_FROM_RIGHT },
450  { XML_FADE_FROM_BOTTOM, presentation::FadeEffect_FADE_FROM_BOTTOM },
451  { XML_FADE_TO_CENTER, presentation::FadeEffect_FADE_TO_CENTER },
452  { XML_FADE_FROM_CENTER, presentation::FadeEffect_FADE_FROM_CENTER },
453  { XML_MOVE_FROM_LEFT, presentation::FadeEffect_MOVE_FROM_LEFT },
454  { XML_MOVE_FROM_TOP, presentation::FadeEffect_MOVE_FROM_TOP },
455  { XML_MOVE_FROM_RIGHT, presentation::FadeEffect_MOVE_FROM_RIGHT },
456  { XML_MOVE_FROM_BOTTOM, presentation::FadeEffect_MOVE_FROM_BOTTOM },
457  { XML_ROLL_FROM_TOP, presentation::FadeEffect_ROLL_FROM_TOP },
458  { XML_ROLL_FROM_LEFT, presentation::FadeEffect_ROLL_FROM_LEFT },
459  { XML_ROLL_FROM_RIGHT, presentation::FadeEffect_ROLL_FROM_RIGHT },
460  { XML_ROLL_FROM_BOTTOM, presentation::FadeEffect_ROLL_FROM_BOTTOM },
461  { XML_VERTICAL_STRIPES, presentation::FadeEffect_VERTICAL_STRIPES },
462  { XML_HORIZONTAL_STRIPES, presentation::FadeEffect_HORIZONTAL_STRIPES },
463  { XML_CLOCKWISE, presentation::FadeEffect_CLOCKWISE },
464  { XML_COUNTERCLOCKWISE, presentation::FadeEffect_COUNTERCLOCKWISE },
465  { XML_FADE_FROM_UPPERLEFT, presentation::FadeEffect_FADE_FROM_UPPERLEFT },
466  { XML_FADE_FROM_UPPERRIGHT, presentation::FadeEffect_FADE_FROM_UPPERRIGHT },
467  { XML_FADE_FROM_LOWERLEFT, presentation::FadeEffect_FADE_FROM_LOWERLEFT },
468  { XML_FADE_FROM_LOWERRIGHT, presentation::FadeEffect_FADE_FROM_LOWERRIGHT },
469  { XML_CLOSE_VERTICAL, presentation::FadeEffect_CLOSE_VERTICAL },
470  { XML_CLOSE_HORIZONTAL, presentation::FadeEffect_CLOSE_HORIZONTAL },
471  { XML_OPEN_VERTICAL, presentation::FadeEffect_OPEN_VERTICAL },
472  { XML_OPEN_HORIZONTAL, presentation::FadeEffect_OPEN_HORIZONTAL },
473  { XML_SPIRALIN_LEFT, presentation::FadeEffect_SPIRALIN_LEFT },
474  { XML_SPIRALIN_RIGHT, presentation::FadeEffect_SPIRALIN_RIGHT },
475  { XML_SPIRALOUT_LEFT, presentation::FadeEffect_SPIRALOUT_LEFT },
476  { XML_SPIRALOUT_RIGHT, presentation::FadeEffect_SPIRALOUT_RIGHT },
477  { XML_DISSOLVE, presentation::FadeEffect_DISSOLVE },
478  { XML_WAVYLINE_FROM_LEFT, presentation::FadeEffect_WAVYLINE_FROM_LEFT },
479  { XML_WAVYLINE_FROM_TOP, presentation::FadeEffect_WAVYLINE_FROM_TOP },
480  { XML_WAVYLINE_FROM_RIGHT, presentation::FadeEffect_WAVYLINE_FROM_RIGHT },
481  { XML_WAVYLINE_FROM_BOTTOM, presentation::FadeEffect_WAVYLINE_FROM_BOTTOM },
482  { XML_RANDOM, presentation::FadeEffect_RANDOM },
483  { XML_STRETCH_FROM_LEFT, presentation::FadeEffect_STRETCH_FROM_LEFT },
484  { XML_STRETCH_FROM_TOP, presentation::FadeEffect_STRETCH_FROM_TOP },
485  { XML_STRETCH_FROM_RIGHT, presentation::FadeEffect_STRETCH_FROM_RIGHT },
486  { XML_STRETCH_FROM_BOTTOM, presentation::FadeEffect_STRETCH_FROM_BOTTOM },
487  { XML_VERTICAL_LINES, presentation::FadeEffect_VERTICAL_LINES },
488  { XML_HORIZONTAL_LINES, presentation::FadeEffect_HORIZONTAL_LINES },
489  { XML_MOVE_FROM_UPPERLEFT, presentation::FadeEffect_MOVE_FROM_UPPERLEFT },
490  { XML_MOVE_FROM_UPPERRIGHT, presentation::FadeEffect_MOVE_FROM_UPPERRIGHT },
491  { XML_MOVE_FROM_LOWERRIGHT, presentation::FadeEffect_MOVE_FROM_LOWERRIGHT },
492  { XML_MOVE_FROM_LOWERLEFT, presentation::FadeEffect_MOVE_FROM_LOWERLEFT },
493  { XML_UNCOVER_TO_LEFT, presentation::FadeEffect_UNCOVER_TO_LEFT },
494  { XML_UNCOVER_TO_UPPERLEFT, presentation::FadeEffect_UNCOVER_TO_UPPERLEFT },
495  { XML_UNCOVER_TO_TOP, presentation::FadeEffect_UNCOVER_TO_TOP },
496  { XML_UNCOVER_TO_UPPERRIGHT,presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT },
497  { XML_UNCOVER_TO_RIGHT, presentation::FadeEffect_UNCOVER_TO_RIGHT },
498  { XML_UNCOVER_TO_LOWERRIGHT,presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT },
499  { XML_UNCOVER_TO_BOTTOM, presentation::FadeEffect_UNCOVER_TO_BOTTOM },
500  { XML_UNCOVER_TO_LOWERLEFT, presentation::FadeEffect_UNCOVER_TO_LOWERLEFT },
501  { XML_VERTICAL_CHECKERBOARD,presentation::FadeEffect_VERTICAL_CHECKERBOARD },
502  { XML_HORIZONTAL_CHECKERBOARD,presentation::FadeEffect_HORIZONTAL_CHECKERBOARD },
503  { XML_TOKEN_INVALID, presentation::FadeEffect(0) }
504 };
505 
507 {
508  { XML_STANDARD, drawing::ConnectorType_STANDARD },
509  { XML_CURVE, drawing::ConnectorType_CURVE },
510  { XML_LINE, drawing::ConnectorType_LINE },
511  { XML_LINES, drawing::ConnectorType_LINES },
512  { XML_TOKEN_INVALID, drawing::ConnectorType(0) }
513 };
514 
516 {
517  { XML_REPEAT, drawing::BitmapMode_REPEAT },
518  { XML_STRETCH, drawing::BitmapMode_STRETCH },
519  { XML_BACKGROUND_NO_REPEAT, drawing::BitmapMode_NO_REPEAT },
520  { XML_TOKEN_INVALID, drawing::BitmapMode(0) }
521 };
522 
523 // 3D EnumMaps
524 
526 {
527  { XML_OBJECT, drawing::NormalsKind_SPECIFIC },
528  { XML_FLAT, drawing::NormalsKind_FLAT },
529  { XML_SPHERE, drawing::NormalsKind_SPHERE },
530  { XML_TOKEN_INVALID, drawing::NormalsKind(0) }
531 };
532 
534 {
535  { XML_OBJECT, drawing::TextureProjectionMode_OBJECTSPECIFIC },
536  { XML_PARALLEL, drawing::TextureProjectionMode_PARALLEL },
537  { XML_SPHERE, drawing::TextureProjectionMode_SPHERE },
538  { XML_TOKEN_INVALID, drawing::TextureProjectionMode(0) }
539 };
540 
542 {
543  { XML_OBJECT, drawing::TextureProjectionMode_OBJECTSPECIFIC },
544  { XML_PARALLEL, drawing::TextureProjectionMode_PARALLEL },
545  { XML_SPHERE, drawing::TextureProjectionMode_SPHERE },
546  { XML_TOKEN_INVALID, drawing::TextureProjectionMode(0) }
547 };
548 
550 {
551  { XML_LUMINANCE, drawing::TextureKind_LUMINANCE },
552  { XML_COLOR, drawing::TextureKind_COLOR },
553  { XML_TOKEN_INVALID, drawing::TextureKind(0) }
554 };
555 
557 {
558  { XML_REPLACE, drawing::TextureMode_REPLACE },
559  { XML_MODULATE, drawing::TextureMode_MODULATE },
560  { XML_BLEND, drawing::TextureMode_BLEND },
561  { XML_TOKEN_INVALID, drawing::TextureMode(0) }
562 };
563 
565 {
566  { XML_TOP_LEFT, drawing::RectanglePoint_LEFT_TOP },
567  { XML_TOP, drawing::RectanglePoint_MIDDLE_TOP },
568  { XML_TOP_RIGHT, drawing::RectanglePoint_RIGHT_TOP },
569  { XML_LEFT, drawing::RectanglePoint_LEFT_MIDDLE },
570  { XML_CENTER, drawing::RectanglePoint_MIDDLE_MIDDLE },
571  { XML_RIGHT, drawing::RectanglePoint_RIGHT_MIDDLE },
572  { XML_BOTTOM_LEFT, drawing::RectanglePoint_LEFT_BOTTOM },
573  { XML_BOTTOM, drawing::RectanglePoint_MIDDLE_BOTTOM },
574  { XML_BOTTOM_RIGHT, drawing::RectanglePoint_RIGHT_BOTTOM },
575  { XML_TOKEN_INVALID, drawing::RectanglePoint(0) }
576 };
577 
579 {
580  { XML_FULL, drawing::CircleKind_FULL },
581  { XML_SECTION, drawing::CircleKind_SECTION },
582  { XML_CUT, drawing::CircleKind_CUT },
583  { XML_ARC, drawing::CircleKind_ARC },
584  { XML_TOKEN_INVALID, drawing::CircleKind(0) }
585 };
586 
588 {
589  { XML_TB_RL, text::WritingMode_TB_RL },
590  { XML_LR_TB, text::WritingMode_LR_TB },
591  { XML_TOKEN_INVALID, text::WritingMode(0) }
592 };
593 
595 {
596  { XML_NONE, drawing::TextAnimationKind_NONE },
597  { XML_BLINKING, drawing::TextAnimationKind_BLINK }, // will be filtered
598  { XML_SCROLL, drawing::TextAnimationKind_SCROLL },
599  { XML_ALTERNATE, drawing::TextAnimationKind_ALTERNATE },
600  { XML_SLIDE, drawing::TextAnimationKind_SLIDE },
601  { XML_TOKEN_INVALID, drawing::TextAnimationKind(0) }
602 };
603 
605 {
606  { XML_FALSE, drawing::TextAnimationKind_NONE },
607  { XML_TRUE, drawing::TextAnimationKind_BLINK },
608  { XML_FALSE, drawing::TextAnimationKind_SCROLL },
609  { XML_FALSE, drawing::TextAnimationKind_ALTERNATE },
610  { XML_FALSE, drawing::TextAnimationKind_SLIDE },
611  { XML_TOKEN_INVALID, drawing::TextAnimationKind(0) }
612 };
613 
615 {
616  { XML_LEFT, drawing::TextAnimationDirection_LEFT },
617  { XML_RIGHT, drawing::TextAnimationDirection_RIGHT }, // will be filtered
618  { XML_UP, drawing::TextAnimationDirection_UP },
619  { XML_DOWN, drawing::TextAnimationDirection_DOWN },
620  { XML_TOKEN_INVALID, drawing::TextAnimationDirection(0) }
621 };
622 
624 {
625  { XML_LEFT, drawing::TextHorizontalAdjust_LEFT },
626  { XML_CENTER, drawing::TextHorizontalAdjust_CENTER },
627  { XML_RIGHT, drawing::TextHorizontalAdjust_RIGHT },
628  { XML_JUSTIFY, drawing::TextHorizontalAdjust_BLOCK },
629  { XML_TOKEN_INVALID, drawing::TextHorizontalAdjust(0) }
630 };
631 
633 {
634  { XML_TOP, drawing::TextVerticalAdjust_TOP },
635  { XML_MIDDLE, drawing::TextVerticalAdjust_CENTER },
636  { XML_BOTTOM, drawing::TextVerticalAdjust_BOTTOM },
637  { XML_JUSTIFY, drawing::TextVerticalAdjust_BLOCK },
638  { XML_TOKEN_INVALID, drawing::TextVerticalAdjust(0) }
639 };
640 
641 // note: PROPORTIONAL and ALLLINES are the same thing now!
643 {
644  { XML_FALSE, drawing::TextFitToSizeType_NONE },
645  { XML_TRUE, drawing::TextFitToSizeType_PROPORTIONAL },
646  { XML_TRUE, drawing::TextFitToSizeType_ALLLINES },
647  { XML_FALSE, drawing::TextFitToSizeType_AUTOFIT },
648  { XML_TOKEN_INVALID, drawing::TextFitToSizeType(0) }
649 };
650 
652 {
653  { XML_FALSE, drawing::TextFitToSizeType_NONE },
654  { XML_TRUE, drawing::TextFitToSizeType_PROPORTIONAL },
655  { XML_ALL, drawing::TextFitToSizeType_ALLLINES },
656  { XML_SHRINK_TO_FIT,drawing::TextFitToSizeType_AUTOFIT },
657  { XML_TOKEN_INVALID, drawing::TextFitToSizeType(0) }
658 };
659 
661 {
662  { XML_FALSE, drawing::TextFitToSizeType_NONE },
663  { XML_FALSE, drawing::TextFitToSizeType_PROPORTIONAL },
664  { XML_FALSE, drawing::TextFitToSizeType_ALLLINES },
665  { XML_TRUE, drawing::TextFitToSizeType_AUTOFIT },
666  { XML_TOKEN_INVALID, drawing::TextFitToSizeType(0) }
667 };
668 
670 {
671  { XML_AUTOMATIC, 0 },
672  { XML_MM, 1 },
673  { XML_UNIT_CM, 2 },
674  { XML_UNIT_M, 3 },
675  { XML_KM, 4 },
676  { XML_UNIT_PT, 6 },
677  { XML_UNIT_PC, 7 },
678  { XML_IN, 8 },
679  { XML_UNIT_FOOT, 9 },
680  { XML_MI, 10 },
681  { XML_TOKEN_INVALID,0 }
682 };
683 
685 {
686  { XML_AUTOMATIC, drawing::MeasureTextHorzPos_AUTO },
687  { XML_LEFT_OUTSIDE, drawing::MeasureTextHorzPos_LEFTOUTSIDE },
688  { XML_INSIDE, drawing::MeasureTextHorzPos_INSIDE },
689  { XML_RIGHT_OUTSIDE, drawing::MeasureTextHorzPos_RIGHTOUTSIDE},
690  { XML_TOKEN_INVALID, drawing::MeasureTextHorzPos(0) }
691 };
692 
694 {
695  { XML_AUTOMATIC, drawing::MeasureTextVertPos_AUTO },
696  { XML_ABOVE, drawing::MeasureTextVertPos_EAST },
697  { XML_BELOW, drawing::MeasureTextVertPos_WEST },
698  { XML_CENTER, drawing::MeasureTextVertPos_CENTERED },
699  { XML_TOKEN_INVALID, drawing::MeasureTextVertPos(0) }
700 };
701 
702 // #FontWork#
704 {
705  { XML_ROTATE, 0 }, //XFormTextStyle::Rotate,
706  { XML_UPRIGHT, 1 }, //XFormTextStyle::Upright,
707  { XML_SLANT_X, 2 }, //XFormTextStyle::SlantX,
708  { XML_SLANT_Y, 3 }, //XFormTextStyle::SlantY,
709  { XML_NONE, 4 }, //XFormTextStyle::NONE
710  { XML_TOKEN_INVALID,0 }
711 };
712 
714 {
715  { XML_LEFT, 0 }, //XFormTextAdjust::Left,
716  { XML_RIGHT, 1 }, //XFormTextAdjust::Right,
717  { XML_AUTOSIZE, 2 }, //XFormTextAdjust::AutoSize,
718  { XML_CENTER, 3 }, //XFormTextAdjust::Center
719  { XML_TOKEN_INVALID,0 }
720 };
721 
723 {
724  { XML_NORMAL, 0 }, //XFormTextShadow::Normal,
725  { XML_SLANT, 1 }, //XFormTextShadow::Slant,
726  { XML_NONE, 2 }, //XFormTextShadow::NONE
727  { XML_TOKEN_INVALID,0 }
728 };
729 
731 {
732  { XML_NONE, 0 }, //XFTFORM_NONE,
733  { XML_TOPCIRCLE, 1 }, //XFTFORM_TOPCIRC,
734  { XML_BOTTOMCIRCLE, 2 }, //XFTFORM_BOTCIRC,
735  { XML_LEFTCIRCLE, 3 }, //XFTFORM_LFTCIRC,
736  { XML_RIGHTCIRCLE, 4 }, //XFTFORM_RGTCIRC,
737  { XML_TOPARC, 5 }, //XFTFORM_TOPARC,
738  { XML_BOTTOMARC, 6 }, //XFTFORM_BOTARC,
739  { XML_LEFTARC, 7 }, //XFTFORM_LFTARC,
740  { XML_RIGHTARC, 8 }, //XFTFORM_RGTARC,
741  { XML_BUTTON1, 9 }, //XFTFORM_BUTTON1,
742  { XML_BUTTON2, 10 }, //XFTFORM_BUTTON2,
743  { XML_BUTTON3, 11 }, //XFTFORM_BUTTON3,
744  { XML_BUTTON4, 12 }, //XFTFORM_BUTTON4
745  { XML_TOKEN_INVALID,0 }
746 };
747 
749 {
750  { XML_HORIZONTAL, 0 }, //SdrCaptionEscDir::Horizontal,
751  { XML_VERTICAL, 1 }, //SdrCaptionEscDir::Vertical,
752  { XML_AUTO, 2 }, //SdrCaptionEscDir::BestFit,
753  { XML_TOKEN_INVALID,0 }
754 };
755 
757 {
758  { XML_STRAIGHT_LINE, 0 }, //SdrCaptionType::Type1,
759  { XML_ANGLED_LINE, 1 }, //SdrCaptionType::Type2,
760  { XML_ANGLED_CONNECTOR_LINE, 2 }, //SdrCaptionType::Type3,
761  { XML_TOKEN_INVALID,0 }
762 };
763 
764 namespace {
765 
766 class XMLCaptionEscapeRelative : public XMLPropertyHandler
767 {
768 public:
769  virtual bool importXML(
770  const OUString& rStrImpValue,
771  css::uno::Any& rValue,
772  const SvXMLUnitConverter& rUnitConverter ) const override;
773  virtual bool exportXML(
774  OUString& rStrExpValue,
775  const css::uno::Any& rValue,
776  const SvXMLUnitConverter& rUnitConverter ) const override;
777 };
778 
779 }
780 
781 bool XMLCaptionEscapeRelative::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
782 {
783  sal_Int32 nValue;
784 
785  if (!::sax::Converter::convertPercent( nValue, rStrImpValue ))
786  return false;
787 
788  nValue *= 100;
789  rValue <<= nValue;
790  return true;
791 }
792 
793 bool XMLCaptionEscapeRelative::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
794 {
795  sal_Int32 nValue = 0;
796  if( !(rValue >>= nValue ) )
797  return false;
798 
799  nValue /= 100;
800  OUStringBuffer aOut;
801  ::sax::Converter::convertPercent( aOut, nValue );
802  rStrExpValue = aOut.makeStringAndClear();
803  return true;
804 }
805 
806 namespace {
807 
808 class XMLMoveSizeProtectHdl : public XMLPropertyHandler
809 {
810 public:
811  explicit XMLMoveSizeProtectHdl( sal_Int32 nType ) : mnType( nType ) {}
812 
813  virtual bool importXML(
814  const OUString& rStrImpValue,
815  css::uno::Any& rValue,
816  const SvXMLUnitConverter& rUnitConverter ) const override;
817  virtual bool exportXML(
818  OUString& rStrExpValue,
819  const css::uno::Any& rValue,
820  const SvXMLUnitConverter& rUnitConverter ) const override;
821 private:
822  const sal_Int32 mnType;
823 };
824 
825 }
826 
827 bool XMLMoveSizeProtectHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
828 {
829  const bool bValue = rStrImpValue.indexOf( GetXMLToken( mnType == XML_SD_TYPE_MOVE_PROTECT ? XML_POSITION : XML_SIZE ) ) != -1;
830  rValue <<= bValue;
831  return true;
832 }
833 
834 bool XMLMoveSizeProtectHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
835 {
836  bool bValue;
837  if( !(rValue >>= bValue ) )
838  return false;
839 
840  if( bValue )
841  {
842  if( !rStrExpValue.isEmpty() )
843  rStrExpValue += " ";
844 
845  rStrExpValue += GetXMLToken( mnType == XML_SD_TYPE_MOVE_PROTECT ? XML_POSITION : XML_SIZE );
846  }
847 
848  return true;
849 }
850 
851 namespace {
852 
853 class XMLSdHeaderFooterVisibilityTypeHdl : public XMLPropertyHandler
854 {
855 public:
856  virtual bool importXML( const OUString& rStrImpValue, css::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const override;
857  virtual bool exportXML( OUString& rStrExpValue, const css::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const override;
858 };
859 
860 }
861 
862 bool XMLSdHeaderFooterVisibilityTypeHdl::importXML(
863  const OUString& rStrImpValue,
864  css::uno::Any& rValue,
865  const SvXMLUnitConverter& ) const
866 {
867  // #i38644#
868  // attributes with this type where saved with VISIBLE|HIDDEN prior
869  // to src680m67. So we have to import that correctly
870  const bool bBool = IsXMLToken(rStrImpValue, XML_TRUE) || IsXMLToken(rStrImpValue, XML_VISIBLE);
871  rValue <<= bBool;
872  return bBool || IsXMLToken(rStrImpValue, XML_FALSE) || IsXMLToken(rStrImpValue, XML_HIDDEN);
873 }
874 
875 bool XMLSdHeaderFooterVisibilityTypeHdl::exportXML(
876  OUString& rStrExpValue,
877  const Any& rValue,
878  const SvXMLUnitConverter& ) const
879 {
880  bool bRet = false;
881  bool bValue;
882 
883  if (rValue >>= bValue)
884  {
885  OUStringBuffer aOut;
886  ::sax::Converter::convertBool( aOut, bValue );
887  rStrExpValue = aOut.makeStringAndClear();
888 
889  bRet = true;
890  }
891 
892  return bRet;
893 }
894 
895 namespace {
896 
897 class XMLSdRotationAngleTypeHdl : public XMLPropertyHandler
898 {
899 public:
900  virtual bool importXML(const OUString& rStrImpValue, css::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter) const override;
901  virtual bool exportXML(OUString& rStrExpValue, const css::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter) const override;
902 };
903 
904 }
905 
906 bool XMLSdRotationAngleTypeHdl::importXML(
907  const OUString& rStrImpValue,
908  css::uno::Any& rValue,
909  const SvXMLUnitConverter&) const
910 {
911  sal_Int32 nValue;
912  bool const bRet = ::sax::Converter::convertNumber(nValue, rStrImpValue);
913  if (bRet)
914  {
915  nValue = (nValue % 360);
916  if (nValue < 0)
917  nValue = 360 + nValue;
918  sal_Int32 nAngle;
919  if (nValue < 45 || nValue > 315)
920  nAngle = 0;
921  else if (nValue < 180)
922  nAngle = 9000;
923  else /* if nValue <= 315 ) */
924  nAngle = 27000;
925 
926  rValue <<= nAngle;
927  }
928  return bRet;
929 }
930 
931 bool XMLSdRotationAngleTypeHdl::exportXML(
932  OUString& rStrExpValue,
933  const Any& rValue,
934  const SvXMLUnitConverter&) const
935 {
936  sal_Int32 nAngle;
937  bool bRet = (rValue >>= nAngle) && nAngle != 0;
938  if (bRet)
939  {
940  rStrExpValue = OUString::number(nAngle / 100);
941  }
942  return bRet;
943 }
944 
945 namespace {
946 
947 class XMLFitToSizeEnumPropertyHdl : public XMLEnumPropertyHdl
948 {
949 public:
950  XMLFitToSizeEnumPropertyHdl(
952  : XMLEnumPropertyHdl(pMap) {}
953 
954  virtual bool importXML(const OUString& rStrImpValue, uno::Any& rValue,
955  const SvXMLUnitConverter& rUC) const override
956  {
957  // we don't know here what the actual attribute name is -
958  // but we can combine the 2 attributes by just taking the
959  // "largest" result value; this can never result in ALLLINES
960  // so the implementation has to interpret PROPORTIONAL as ALLLINES;
961  // both "true" is invalid anyway.
962  Any any;
963  auto const bRet = XMLEnumPropertyHdl::importXML(rStrImpValue, any, rUC);
964  if (!bRet)
965  {
966  return false;
967  }
968  assert(any.hasValue());
969  if (!rValue.hasValue() ||
970  rValue.get<drawing::TextFitToSizeType>() < any.get<drawing::TextFitToSizeType>())
971  {
972  rValue = any;
973  }
974  return true;
975  }
976 };
977 
978 }
979 
980 XMLSdPropHdlFactory::XMLSdPropHdlFactory( uno::Reference< frame::XModel > const & xModel, SvXMLImport& rImport )
981 : mxModel( xModel ), mpExport(nullptr), mpImport( &rImport )
982 {
983 }
984 
985 XMLSdPropHdlFactory::XMLSdPropHdlFactory( uno::Reference< frame::XModel > const & xModel, SvXMLExport& rExport )
986 : mxModel( xModel ), mpExport( &rExport ), mpImport(nullptr)
987 {
988 }
989 
991 {
992 }
993 
995 {
997  if(!pHdl)
998  {
999  switch(nType)
1000  {
1001  case XML_SD_TYPE_STROKE :
1002  {
1003  pHdl = new XMLEnumPropertyHdl( aXML_LineStyle_EnumMap);
1004  break;
1005  }
1006  case XML_SD_TYPE_LINEJOIN :
1007  {
1008  pHdl = new XMLEnumPropertyHdl( aXML_LineJoint_EnumMap);
1009  break;
1010  }
1011  case XML_SD_TYPE_LINECAP :
1012  {
1013  pHdl = new XMLEnumPropertyHdl( aXML_LineCap_EnumMap );
1014  break;
1015  }
1016  case XML_SD_TYPE_FILLSTYLE :
1017  {
1018  pHdl = new XMLEnumPropertyHdl( aXML_FillStyle_EnumMap );
1019  break;
1020  }
1022  {
1023  pHdl = new XMLEnumPropertyHdl( aXML_PresChange_EnumMap );
1024  break;
1025  }
1027  {
1029  break;
1030  }
1031  case XML_TYPE_SD_MIRROR:
1032  {
1034  break;
1035  }
1037  {
1038  pHdl = new XMLEnumPropertyHdl( aXML_FadeEffect_EnumMap );
1039  break;
1040  }
1042  {
1043  pHdl = new XMLEnumPropertyHdl( aXML_TransSpeed_EnumMap );
1044  break;
1045  }
1047  {
1048  pHdl = new XMLDurationPropertyHdl;
1049  break;
1050  }
1052  {
1054  break;
1055  }
1056  case XML_SD_TYPE_OPACITY :
1057  {
1058  pHdl = new XMLOpacityPropertyHdl(mpImport);
1059  break;
1060  }
1062  {
1063  pHdl = new XMLEnumPropertyHdl( aXML_WritingMode_EnumMap );
1064  break;
1065  }
1067  {
1069  break;
1070  }
1072  {
1074  break;
1075  }
1076 
1077  // 3D Properties
1078 
1080  {
1081  // #87922# DoubleSided -> BackfaceCulling
1082  // This sal_Bool needs to be flipped, DoubleSided sal_True -> NO Backface culling
1083  // and vice versa.
1085  break;
1086  }
1087 
1089  {
1090  pHdl = new XMLEnumPropertyHdl( aXML_NormalsKind_EnumMap );
1091  break;
1092  }
1094  {
1096  break;
1097  }
1099  {
1100  pHdl = new XMLEnumPropertyHdl( aXML_TexGenerationX_EnumMap );
1101  break;
1102  }
1104  {
1105  pHdl = new XMLEnumPropertyHdl( aXML_TexGenerationY_EnumMap );
1106  break;
1107  }
1108  case XML_SD_TYPE_TEX_KIND:
1109  {
1110  pHdl = new XMLEnumPropertyHdl( aXML_TexKind_EnumMap );
1111  break;
1112  }
1113  case XML_SD_TYPE_TEX_MODE:
1114  {
1115  pHdl = new XMLEnumPropertyHdl( aXML_TexMode_EnumMap );
1116  break;
1117  }
1118  case XML_SD_TYPE_NUMBULLET:
1119  {
1120  uno::Reference<ucb::XAnyCompareFactory> xCompareFac( mxModel, uno::UNO_QUERY );
1121  uno::Reference<ucb::XAnyCompare> xCompare;
1122  if( xCompareFac.is() )
1123  xCompare = xCompareFac->createAnyCompareByName( "NumberingRules" );
1124 
1125  pHdl = new XMLNumRulePropHdl( xCompare );
1126  break;
1127  }
1129  {
1130  pHdl = new XMLEnumPropertyHdl( aXML_BitmapMode_EnumMap );
1131  break;
1132  }
1135  {
1137  break;
1138  }
1140  {
1141  pHdl = new XMLFillBitmapSizePropertyHandler();
1142  break;
1143  }
1145  {
1147  break;
1148  }
1150  {
1151  pHdl = new XMLEnumPropertyHdl( aXML_RefPoint_EnumMap);
1152  break;
1153  }
1155  pHdl = new XMLEnumPropertyHdl( pXML_TextAnimation_Enum);
1156  break;
1158  pHdl = new XMLEnumPropertyHdl( pXML_TextAnimation_Blinking_Enum);
1159  break;
1161  pHdl = new XMLEnumPropertyHdl( pXML_TextAnimationDirection_Enum);
1162  break;
1165  break;
1167  pHdl = new XMLEnumPropertyHdl( pXML_TextAlign_Enum);
1168  break;
1170  pHdl = new XMLEnumPropertyHdl( pXML_VerticalAlign_Enum);
1171  break;
1172  case XML_SD_TYPE_FITTOSIZE:
1173  {
1174  if (mpExport
1175  && (mpExport->getSaneDefaultVersion() // tdf#97630
1177  {
1178  pHdl = new XMLFitToSizeEnumPropertyHdl(pXML_FitToSize_Enum_Odf12);
1179  }
1180  else
1181  { // import all values written by old LO
1182  pHdl = new XMLFitToSizeEnumPropertyHdl(pXML_FitToSize_Enum);
1183  }
1184  }
1185  break;
1187  {
1188  pHdl = new XMLFitToSizeEnumPropertyHdl(pXML_ShrinkToFit_Enum);
1189  }
1190  break;
1192  pHdl = new XMLEnumPropertyHdl( pXML_MeasureUnit_Enum );
1193  break;
1195  pHdl = new XMLEnumPropertyHdl( pXML_Measure_HAlign_Enum);
1196  break;
1198  pHdl = new XMLEnumPropertyHdl( pXML_Measure_VAlign_Enum);
1199  break;
1201  {
1203  }
1204  break;
1205  case XML_TYPE_TEXT_CLIP11:
1206  pHdl = new XMLClipPropertyHandler( true );
1207  break;
1208  case XML_TYPE_TEXT_CLIP:
1209  pHdl = new XMLClipPropertyHandler( false );
1210  break;
1211 
1212  // #FontWork#
1214  pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Style_Enum );
1215  break;
1217  pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Adjust_Enum );
1218  break;
1220  pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Shadow_Enum );
1221  break;
1223  pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Form_Enum );
1224  break;
1225 
1227  pHdl = new ::xmloff::OControlBorderHandler( ::xmloff::OControlBorderHandler::STYLE );
1228  break;
1230  pHdl = new ::xmloff::OControlBorderHandler( ::xmloff::OControlBorderHandler::COLOR );
1231  break;
1233  pHdl = new ::xmloff::ImageScaleModeHandler;
1234  break;
1236  pHdl = new ::xmloff::OControlTextEmphasisHandler;
1237  break;
1238 
1240  {
1242  break;
1243  }
1245  pHdl = new XMLIsPercentagePropertyHandler;
1246  break;
1248  pHdl = new XMLCaptionEscapeRelative;
1249  break;
1252  break;
1254  pHdl = new XMLEnumPropertyHdl( pXML_Caption_Esc_Dir_Enum );
1255  break;
1257  pHdl = new XMLEnumPropertyHdl( pXML_Caption_Type_Enum );
1258  break;
1261  break;
1263  pHdl = new XMLDateTimeFormatHdl( mpExport );
1264  break;
1267  break;
1270  break;
1273  break;
1274  case XML_TYPE_WRAP_OPTION:
1275  pHdl = new XMLWordWrapPropertyHdl( mpImport );
1276  break;
1277 
1280  pHdl = new XMLMoveSizeProtectHdl( nType );
1281  break;
1283  pHdl = new XMLSdHeaderFooterVisibilityTypeHdl;
1284  break;
1286  pHdl = new XMLSdRotationAngleTypeHdl;
1287  break;
1288  }
1289 
1290  if(pHdl)
1291  PutHdlCache(nType, pHdl);
1292  }
1293 
1294  return pHdl;
1295 }
1296 
1298  bool bForExport)
1299 : XMLPropertySetMapper( aXMLSDProperties, rFactoryRef, bForExport )
1300 {
1301 }
1302 
1304 {
1305 }
1306 
1308 : SvXMLExportPropertyMapper( rMapper )
1309 , maNumRuleExp( rExport )
1310 , mbIsInAutoStyles( true )
1311 {
1312 }
1313 
1315 {
1316 }
1317 
1319  bool bEnableFoFontFamily,
1320  std::vector< XMLPropertyState >& rProperties,
1321  const uno::Reference< beans::XPropertySet >& rPropSet ) const
1322 {
1323  XMLPropertyState* pRepeatOffsetX = nullptr;
1324  XMLPropertyState* pRepeatOffsetY = nullptr;
1325  XMLPropertyState* pTextAnimationBlinking = nullptr;
1326  XMLPropertyState* pTextAnimationKind = nullptr;
1327 
1328  // #FontWork#
1329  XMLPropertyState* pFontWorkStyle = nullptr;
1330  XMLPropertyState* pFontWorkAdjust = nullptr;
1331  XMLPropertyState* pFontWorkDistance = nullptr;
1332  XMLPropertyState* pFontWorkStart = nullptr;
1333  XMLPropertyState* pFontWorkMirror = nullptr;
1334  XMLPropertyState* pFontWorkOutline = nullptr;
1335  XMLPropertyState* pFontWorkShadow = nullptr;
1336  XMLPropertyState* pFontWorkShadowColor = nullptr;
1337  XMLPropertyState* pFontWorkShadowOffsetx = nullptr;
1338  XMLPropertyState* pFontWorkShadowOffsety = nullptr;
1339  XMLPropertyState* pFontWorkForm = nullptr;
1340  XMLPropertyState* pFontWorkHideform = nullptr;
1341  XMLPropertyState* pFontWorkShadowTransparence = nullptr;
1342 
1343  // OLE
1344  XMLPropertyState* pOLEVisAreaLeft = nullptr;
1345  XMLPropertyState* pOLEVisAreaTop = nullptr;
1346  XMLPropertyState* pOLEVisAreaWidth = nullptr;
1347  XMLPropertyState* pOLEVisAreaHeight = nullptr;
1348  XMLPropertyState* pOLEIsInternal = nullptr;
1349 
1350  // caption
1351  XMLPropertyState* pCaptionIsEscRel = nullptr;
1352  XMLPropertyState* pCaptionEscRel = nullptr;
1353  XMLPropertyState* pCaptionEscAbs = nullptr;
1354 
1355  // filter fo:clip
1356  XMLPropertyState* pClip11State = nullptr;
1357  XMLPropertyState* pClipState = nullptr;
1358 
1359  XMLPropertyState* pShapeWritingMode = nullptr;
1360  XMLPropertyState* pTextWritingMode = nullptr;
1361  XMLPropertyState* pControlWritingMode = nullptr;
1362 
1363  // filter properties
1364  for( auto& rProp : rProperties )
1365  {
1366  XMLPropertyState *property = &rProp;
1367  if( property->mnIndex == -1 )
1368  continue;
1369 
1370  // find properties with context
1371  // to prevent writing this property set mnIndex member to -1
1372  switch( getPropertySetMapper()->GetEntryContextId( property->mnIndex ))
1373  {
1374  case CTF_NUMBERINGRULES:
1375  {
1376  if( mbIsInAutoStyles )
1377  property->mnIndex = -1;
1378  }
1379  break;
1381  {
1382  // this property is not exported in the style:properties element
1383  // because it's an XIndexAccess and not a string.
1384  // This will be handled in SvXMLAutoStylePoolP::exportStyleAttributes
1385  // This is suboptimal
1386  if( !mbIsInAutoStyles )
1387  property->mnIndex = -1;
1388  }
1389  break;
1390  case CTF_WRITINGMODE:
1391  pShapeWritingMode = property;
1392  break;
1394  pControlWritingMode = property;
1395  break;
1396  case CTF_TEXTWRITINGMODE:
1397  pTextWritingMode = property;
1398  break;
1399  case CTF_REPEAT_OFFSET_X:
1400  pRepeatOffsetX = property;
1401  break;
1402 
1403  case CTF_REPEAT_OFFSET_Y:
1404  pRepeatOffsetY = property;
1405  break;
1406 
1407  case CTF_DASHNAME:
1408  case CTF_FILLGRADIENTNAME:
1409  case CTF_FILLHATCHNAME:
1410  case CTF_FILLBITMAPNAME:
1411  {
1412  OUString aStr;
1413  if( (property->maValue >>= aStr) && aStr.isEmpty() )
1414  property->mnIndex = -1;
1415  }
1416  break;
1418  pTextAnimationBlinking = property;
1419  break;
1421  pTextAnimationKind = property;
1422  break;
1423 
1424  // #FontWork#
1425  case CTF_FONTWORK_STYLE: pFontWorkStyle = property; break;
1426  case CTF_FONTWORK_ADJUST: pFontWorkAdjust = property; break;
1427  case CTF_FONTWORK_DISTANCE: pFontWorkDistance = property; break;
1428  case CTF_FONTWORK_START: pFontWorkStart = property; break;
1429  case CTF_FONTWORK_MIRROR: pFontWorkMirror = property; break;
1430  case CTF_FONTWORK_OUTLINE: pFontWorkOutline = property; break;
1431  case CTF_FONTWORK_SHADOW: pFontWorkShadow = property; break;
1432  case CTF_FONTWORK_SHADOWCOLOR: pFontWorkShadowColor = property; break;
1433  case CTF_FONTWORK_SHADOWOFFSETX: pFontWorkShadowOffsetx = property; break;
1434  case CTF_FONTWORK_SHADOWOFFSETY: pFontWorkShadowOffsety = property; break;
1435  case CTF_FONTWORK_FORM: pFontWorkForm = property; break;
1436  case CTF_FONTWORK_HIDEFORM: pFontWorkHideform = property; break;
1437  case CTF_FONTWORK_SHADOWTRANSPARENCE: pFontWorkShadowTransparence = property; break;
1438 
1439  // OLE
1440  case CTF_SD_OLE_VIS_AREA_EXPORT_LEFT: pOLEVisAreaLeft = property; break;
1441  case CTF_SD_OLE_VIS_AREA_EXPORT_TOP: pOLEVisAreaTop = property; break;
1442  case CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH: pOLEVisAreaWidth = property; break;
1443  case CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT: pOLEVisAreaHeight = property; break;
1444  case CTF_SD_OLE_ISINTERNAL: pOLEIsInternal = property; break;
1445 
1447  {
1448  if( !property->maValue.hasValue() )
1449  property->mnIndex = -1;
1450  }
1451  break;
1452  case CTF_FRAME_MARGIN_HORI:
1453  case CTF_FRAME_MARGIN_VERT:
1454  {
1455  sal_Int32 nValue = 0;
1456  if( (property->maValue >>= nValue) && (nValue < 0) )
1457  property->mnIndex = -1;
1458  }
1459  break;
1460 
1461  case CTF_SD_MOVE_PROTECT:
1462  {
1463  bool bProtected;
1464  if( (property->maValue >>= bProtected) && !bProtected )
1465  property->mnIndex = -1;
1466  }
1467  break;
1468  case CTF_SD_SIZE_PROTECT:
1469  {
1470  bool bProtected;
1471  if( (property->maValue >>= bProtected) && !bProtected )
1472  property->mnIndex = -1;
1473  }
1474  break;
1475  case CTF_CAPTION_ISESCREL: pCaptionIsEscRel = property; break;
1476  case CTF_CAPTION_ESCREL: pCaptionEscRel = property; break;
1477  case CTF_CAPTION_ESCABS: pCaptionEscAbs = property; break;
1478  case CTF_TEXT_CLIP11: pClip11State = property; break;
1479  case CTF_TEXT_CLIP: pClipState = property; break;
1480  }
1481  }
1482 
1483  // check for duplicate writing mode
1484  if( pShapeWritingMode && (pTextWritingMode || pControlWritingMode) )
1485  {
1486  if( pTextWritingMode )
1487  pTextWritingMode->mnIndex = -1;
1488  if( pControlWritingMode )
1489  pControlWritingMode->mnIndex = -1;
1490 
1491  text::WritingMode eWritingMode;
1492  if( pShapeWritingMode->maValue >>= eWritingMode )
1493  {
1494  if( text::WritingMode_LR_TB == eWritingMode )
1495  {
1496  pShapeWritingMode->mnIndex = -1;
1497  pShapeWritingMode = nullptr;
1498  }
1499  }
1500  }
1501  else if( pTextWritingMode && pControlWritingMode )
1502  {
1503  pControlWritingMode->mnIndex = -1;
1504 
1505  sal_Int32 eWritingMode;
1506  if (pTextWritingMode->maValue >>= eWritingMode)
1507  {
1508  if (text::WritingMode2::LR_TB == eWritingMode)
1509  {
1510  pTextWritingMode->mnIndex = -1;
1511  pTextWritingMode = nullptr;
1512  }
1513  }
1514  }
1515 
1516  // do not export visual area for internal ole objects
1517  if( pOLEIsInternal )
1518  {
1519  bool bInternal;
1520  if( (pOLEIsInternal->maValue >>= bInternal) && !bInternal )
1521  {
1522  try
1523  {
1524  awt::Rectangle aRect;
1525  if( rPropSet->getPropertyValue( "VisibleArea" ) >>= aRect )
1526  {
1527  if( pOLEVisAreaLeft )
1528  {
1529  pOLEVisAreaLeft->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_LEFT );
1530  pOLEVisAreaLeft->maValue <<= aRect;
1531  }
1532  if( pOLEVisAreaTop )
1533  {
1534  pOLEVisAreaTop->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_TOP );
1535  pOLEVisAreaTop->maValue <<= aRect;
1536  }
1537  if( pOLEVisAreaWidth )
1538  {
1539  pOLEVisAreaWidth->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH );
1540  pOLEVisAreaWidth->maValue <<= aRect;
1541  }
1542  if( pOLEVisAreaHeight )
1543  {
1544  pOLEVisAreaHeight->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT );
1545  pOLEVisAreaHeight->maValue <<= aRect;
1546  }
1547  }
1548  }
1549  catch( uno::Exception& )
1550  {
1551  }
1552  }
1553  else
1554  {
1555  if( pOLEVisAreaLeft ) pOLEVisAreaLeft->mnIndex = -1;
1556  if( pOLEVisAreaTop ) pOLEVisAreaTop->mnIndex = -1;
1557  if( pOLEVisAreaWidth ) pOLEVisAreaWidth->mnIndex = -1;
1558  if( pOLEVisAreaHeight ) pOLEVisAreaHeight->mnIndex = -1;
1559  }
1560 
1561  pOLEIsInternal->mnIndex = -1;
1562  }
1563 
1564  if( pTextAnimationBlinking && pTextAnimationKind )
1565  {
1566  drawing::TextAnimationKind eKind;
1567  if( (pTextAnimationKind->maValue >>= eKind) && eKind != drawing::TextAnimationKind_BLINK )
1568  {
1569  pTextAnimationBlinking->mnIndex = -1;
1570  }
1571  else
1572  {
1573  pTextAnimationKind->mnIndex = -1;
1574  }
1575  }
1576 
1577  if( pRepeatOffsetX && pRepeatOffsetY )
1578  {
1579  sal_Int32 nOffset = 0;
1580  if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
1581  pRepeatOffsetX->mnIndex = -1;
1582  else
1583  pRepeatOffsetY->mnIndex = -1;
1584  }
1585 
1586  if(pFontWorkStyle)
1587  {
1588  // #FontWork#
1589  sal_Int32 nStyle = 0;
1590 
1591  if(pFontWorkStyle->maValue >>= nStyle)
1592  {
1593  if(/*XFormTextStyle::NONE*/4 == nStyle)
1594  {
1595  pFontWorkStyle->mnIndex = -1;
1596  if(pFontWorkAdjust)
1597  pFontWorkAdjust->mnIndex = -1;
1598  if(pFontWorkDistance)
1599  pFontWorkDistance->mnIndex = -1;
1600  if(pFontWorkStart)
1601  pFontWorkStart->mnIndex = -1;
1602  if(pFontWorkMirror)
1603  pFontWorkMirror->mnIndex = -1;
1604  if(pFontWorkOutline)
1605  pFontWorkOutline->mnIndex = -1;
1606  if(pFontWorkShadow)
1607  pFontWorkShadow->mnIndex = -1;
1608  if(pFontWorkShadowColor)
1609  pFontWorkShadowColor->mnIndex = -1;
1610  if(pFontWorkShadowOffsetx)
1611  pFontWorkShadowOffsetx->mnIndex = -1;
1612  if(pFontWorkShadowOffsety)
1613  pFontWorkShadowOffsety->mnIndex = -1;
1614  if(pFontWorkForm)
1615  pFontWorkForm->mnIndex = -1;
1616  if(pFontWorkHideform)
1617  pFontWorkHideform->mnIndex = -1;
1618  if(pFontWorkShadowTransparence)
1619  pFontWorkShadowTransparence->mnIndex = -1;
1620  }
1621  }
1622  }
1623 
1624  if( pCaptionIsEscRel )
1625  {
1626  bool bIsRel = false;
1627  pCaptionIsEscRel->maValue >>= bIsRel;
1628 
1629  if( bIsRel )
1630  {
1631  if( pCaptionEscAbs )
1632  pCaptionEscAbs->mnIndex = -1;
1633  }
1634  else
1635  {
1636  if( pCaptionEscRel )
1637  pCaptionEscRel->mnIndex = -1;
1638  }
1639 
1640  pCaptionIsEscRel->mnIndex = -1;
1641  }
1642 
1643  if( pClipState != nullptr && pClip11State != nullptr )
1644  pClip11State->mnIndex = -1;
1645 
1646  SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily, rProperties, rPropSet);
1647 }
1648 
1650  SvXMLAttributeList& rAttrList,
1651  const XMLPropertyState& rProperty,
1652  const SvXMLUnitConverter& rUnitConverter,
1653  const SvXMLNamespaceMap& rNamespaceMap,
1654  const ::std::vector< XMLPropertyState > *pProperties,
1655  sal_uInt32 nIdx ) const
1656 {
1657  switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
1658  {
1660  // not to be handled by the base class
1661  break;
1662 
1663  default:
1664  SvXMLExportPropertyMapper::handleSpecialItem( rAttrList, rProperty, rUnitConverter, rNamespaceMap, pProperties, nIdx );
1665  break;
1666  }
1667 }
1668 
1671  const XMLPropertyState& rProperty,
1672  SvXmlExportFlags nFlags,
1673  const ::std::vector< XMLPropertyState > *pProperties,
1674  sal_uInt32 nIdx) const
1675 {
1676  switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
1677  {
1678  case CTF_NUMBERINGRULES:
1679  {
1680  // only export list-styles as elements in styles section
1681  if( !mbIsInAutoStyles )
1682  {
1683  uno::Reference< container::XIndexReplace > xNumRule( rProperty.maValue, uno::UNO_QUERY );
1684  if( xNumRule.is() )
1685  const_cast<XMLShapeExportPropertyMapper*>(this)->maNumRuleExp.exportNumberingRule(GetStyleName(), false, xNumRule);
1686  }
1687  }
1688  break;
1689  default:
1690  SvXMLExportPropertyMapper::handleElementItem( rExport, rProperty, nFlags, pProperties, nIdx );
1691  break;
1692  }
1693 }
1694 
1696  SvXMLExportPropertyMapper( rMapper ),
1697  mrExport( rExport )
1698 {
1699 }
1700 
1702 {
1703 }
1704 
1706  bool bEnableFoFontFamily,
1707  std::vector< XMLPropertyState >& rProperties,
1708  const uno::Reference< beans::XPropertySet >& rPropSet ) const
1709 {
1710  XMLPropertyState* pRepeatOffsetX = nullptr;
1711  XMLPropertyState* pRepeatOffsetY = nullptr;
1712  XMLPropertyState* pTransType = nullptr;
1713  XMLPropertyState* pTransDuration = nullptr;
1714  XMLPropertyState* pDateTimeUpdate = nullptr;
1715  XMLPropertyState* pDateTimeFormat = nullptr;
1716  XMLPropertyState* pTransitionFadeColor = nullptr;
1717 
1718  sal_Int16 nTransitionType = 0;
1719 
1720  // filter properties
1721  for( auto& rProp : rProperties )
1722  {
1723  XMLPropertyState *property = &rProp;
1724  if( property->mnIndex == -1 )
1725  continue;
1726 
1727  // find properties with context
1728  // to prevent writing this property set mnIndex member to -1
1729  switch( getPropertySetMapper()->GetEntryContextId( property->mnIndex ))
1730  {
1731 
1732  case CTF_REPEAT_OFFSET_X:
1733  pRepeatOffsetX = property;
1734  break;
1735 
1736  case CTF_REPEAT_OFFSET_Y:
1737  pRepeatOffsetY = property;
1738  break;
1739  case CTF_PAGE_TRANS_TYPE:
1740  pTransType = property;
1741  break;
1742  case CTF_PAGE_TRANS_STYLE:
1744  (*property).mnIndex = -1;
1745  break;
1747  {
1749  (((*property).maValue >>= nTransitionType) && (nTransitionType == 0)) )
1750  (*property).mnIndex = -1;
1751  }
1752  break;
1754  {
1755  sal_Int16 nTransitionSubtype = sal_Int16();
1757  (((*property).maValue >>= nTransitionSubtype) && (nTransitionSubtype == 0)) )
1758  (*property).mnIndex = -1;
1759 
1760  }
1761  break;
1763  {
1764  bool bDirection;
1766  (((*property).maValue >>= bDirection) && bDirection) )
1767  (*property).mnIndex = -1;
1768  }
1769  break;
1772  (*property).mnIndex = -1;
1773  else
1774  pTransitionFadeColor = property;
1775  break;
1776  case CTF_PAGE_TRANS_SPEED:
1777  {
1778  presentation::AnimationSpeed aEnum;
1779  if( ((*property).maValue >>= aEnum) && aEnum == presentation::AnimationSpeed_MEDIUM )
1780  (*property).mnIndex = -1;
1781  }
1782  break;
1783  case CTF_PAGE_VISIBLE:
1784  {
1785  bool bVisible = false;
1786  (*property).maValue >>= bVisible;
1787  if( bVisible )
1788  (*property).mnIndex = -1;
1789  }
1790  break;
1792  pTransDuration = property;
1793  break;
1794  case CTF_HEADER_TEXT:
1795  case CTF_FOOTER_TEXT:
1796  case CTF_DATE_TIME_TEXT:
1797  {
1798  OUString aValue;
1799  (*property).maValue >>= aValue;
1800  if( aValue.isEmpty() )
1801  (*property).mnIndex = -1;
1802  }
1803  break;
1804 
1805  case CTF_DATE_TIME_UPDATE:
1806  pDateTimeUpdate = property;
1807  break;
1808 
1809  case CTF_DATE_TIME_FORMAT:
1810  pDateTimeFormat = property;
1811  break;
1812  }
1813  }
1814 
1815  if( pTransitionFadeColor && nTransitionType != css::animations::TransitionType::FADE )
1816  pTransitionFadeColor->mnIndex = -1;
1817 
1818  if( pDateTimeFormat && pDateTimeUpdate )
1819  {
1820  bool bIsFixed = false;
1821  pDateTimeUpdate->maValue >>= bIsFixed;
1822  if( bIsFixed )
1823  pDateTimeFormat->mnIndex = -1;
1824  }
1825 
1826  if( pRepeatOffsetX && pRepeatOffsetY )
1827  {
1828  sal_Int32 nOffset = 0;
1829  if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
1830  pRepeatOffsetX->mnIndex = -1;
1831  else
1832  pRepeatOffsetY->mnIndex = -1;
1833  }
1834 
1835  if( pTransType && pTransDuration )
1836  {
1837  sal_Int32 nChange = 0;
1838  pTransType->maValue >>= nChange;
1839 
1840  // only export duration for automatic
1841  if( nChange != 1 )
1842  pTransDuration->mnIndex = -1;
1843 
1844  // do not export default transition change
1845  if( nChange == 0 )
1846  pTransType->mnIndex = -1;
1847  }
1848 
1849  SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily, rProperties, rPropSet);
1850 }
1851 
1854  const XMLPropertyState& rProperty,
1855  SvXmlExportFlags nFlags,
1856  const ::std::vector< XMLPropertyState > *pProperties,
1857  sal_uInt32 nIdx) const
1858 {
1859  switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
1860  {
1861  case CTF_PAGE_SOUND_URL:
1862  {
1863  OUString aSoundURL;
1864  if( (rProperty.maValue >>= aSoundURL) && !aSoundURL.isEmpty() )
1865  {
1871  }
1872  }
1873  break;
1874  default:
1875  SvXMLExportPropertyMapper::handleElementItem( rExport, rProperty, nFlags, pProperties, nIdx );
1876  break;
1877  }
1878 }
1879 
1880 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SvXMLEnumMapEntry< drawing::TextAnimationKind > const pXML_TextAnimation_Blinking_Enum[]
Definition: sdpropls.cxx:604
#define XML_TYPE_TEXT_CLIP11
Definition: xmltypes.hxx:217
#define XML_SD_TYPE_FONTWORK_FORM
Definition: xmlsdtypes.hxx:87
#define CTF_DATE_TIME_UPDATE
Definition: xmlsdtypes.hxx:193
#define CTF_CAPTION_ESCREL
Definition: xmlsdtypes.hxx:180
#define XML_SD_TYPE_CELL_ROTATION_ANGLE
Definition: xmlsdtypes.hxx:121
bool IsXMLToken(const OUString &rString, enum XMLTokenEnum eToken)
compare eToken to the string
Definition: xmltoken.cxx:3461
#define XML_TYPE_PERCENT
Definition: xmltypes.hxx:129
#define XML_SD_TYPE_CAPTION_ESC_REL
Definition: xmlsdtypes.hxx:93
const SvXMLEnumMapEntry< sal_Int16 > aAnimations_EnumMap_TransitionSubType[]
#define XML_SD_TYPE_CAPTION_IS_ESC_REL
Definition: xmlsdtypes.hxx:92
SvXMLEnumMapEntry< presentation::FadeEffect > const aXML_FadeEffect_EnumMap[]
Definition: sdpropls.cxx:444
#define XML_SD_TYPE_BACKFACE_CULLING
Definition: xmlsdtypes.hxx:74
css::uno::Reference< css::frame::XModel > mxModel
Definition: sdpropls.hxx:57
#define XML_SD_TYPE_FITTOSIZE_AUTOFIT
Definition: xmlsdtypes.hxx:70
SvXMLEnumMapEntry< drawing::TextVerticalAdjust > const pXML_VerticalAlign_Enum[]
Definition: sdpropls.cxx:632
SvXMLEnumMapEntry< drawing::LineStyle > const aXML_LineStyle_EnumMap[]
Definition: sdpropls.cxx:391
bool hasValue()
#define XML_TYPE_SD_MIRROR
Definition: xmlsdtypes.hxx:110
#define XML_SD_TYPE_TEX_KIND
Definition: xmlsdtypes.hxx:79
SvXMLEnumMapEntry< sal_Int32 > const pXML_Caption_Esc_Dir_Enum[]
Definition: sdpropls.cxx:748
#define MID_FLAG_ELEMENT_ITEM_EXPORT
Definition: xmltypes.hxx:67
bool bVisible
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:870
#define CTF_HEADER_VISIBLE
Definition: xmlsdtypes.hxx:185
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const
This method retrieves a PropertyHandler for the given XML-type.
Definition: prhdlfac.cxx:138
#define CTF_CONTROLWRITINGMODE
Definition: xmlsdtypes.hxx:124
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Shadow_Enum[]
Definition: sdpropls.cxx:722
#define XML_TYPE_BUILDIN_CMP_ONLY
Definition: xmltypes.hxx:142
#define XML_TYPE_NEG_PERCENT16
Definition: xmltypes.hxx:153
This is a handler either only import/exports percent or measure.
static bool convertBool(bool &rBool, const OUString &rString)
#define CTF_TEXTANIMATION_KIND
Definition: xmlsdtypes.hxx:143
constexpr sal_uInt16 XML_NAMESPACE_DR3D
const OUString & GetStyleName() const
Definition: xmlexppr.cxx:1129
virtual ~XMLShapeExportPropertyMapper() override
Definition: sdpropls.cxx:1314
#define CTF_NUMBERINGRULES
Definition: xmlsdtypes.hxx:123
#define XML_TYPE_COLOR_MODE
Definition: xmltypes.hxx:145
constexpr sal_uInt16 XML_NAMESPACE_DRAW_EXT
#define CTF_DATE_TIME_TEXT
Definition: xmlsdtypes.hxx:191
#define CTF_SD_OLE_VIS_AREA_EXPORT_LEFT
Definition: xmlsdtypes.hxx:198
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const override
This method retrieves a PropertyHandler for the given XML-type.
Definition: sdpropls.cxx:994
the SvXMLTypeConverter converts values of various types from their internal representation to the tex...
Definition: xmluconv.hxx:77
#define CTF_FONTWORK_SHADOWCOLOR
Definition: xmlsdtypes.hxx:159
#define MID_FLAG_NO_PROPERTY_IMPORT
Definition: xmltypes.hxx:76
SvXMLEnumMapEntry< drawing::ConnectorType > const aXML_ConnectionKind_EnumMap[]
Definition: sdpropls.cxx:506
#define XML_TYPE_PERCENT16
Definition: xmltypes.hxx:131
const XMLPropertyMapEntry aXMLSDProperties[]
Definition: sdpropls.cxx:82
virtual ~XMLSdPropHdlFactory() override
Definition: sdpropls.cxx:990
#define CTF_LINEENDNAME
Definition: xmlsdtypes.hxx:137
SvXMLEnumMapEntry< drawing::RectanglePoint > const aXML_RefPoint_EnumMap[]
Definition: sdpropls.cxx:564
#define XML_SD_TYPE_TRANSTIION_DIRECTION
Definition: xmlsdtypes.hxx:116
#define CTF_PAGE_TRANS_TYPE
Definition: xmlsdtypes.hxx:130
const SvXMLEnumMapEntry< sal_Int16 > aAnimations_EnumMap_TransitionType[]
virtual ~XMLShapePropertySetMapper() override
Definition: sdpropls.cxx:1303
#define CTF_PAGE_TRANS_DURATION
Definition: xmlsdtypes.hxx:133
#define CTF_FRAME_MARGIN_HORI
Definition: txtprmap.hxx:132
#define XML_TYPE_WRAP_OPTION
Definition: xmltypes.hxx:264
#define XML_SD_TYPE_BITMAP_MODE
Definition: xmlsdtypes.hxx:50
SvXMLEnumMapEntry< drawing::TextAnimationKind > const pXML_TextAnimation_Enum[]
Definition: sdpropls.cxx:594
#define XML_SD_TYPE_CAPTION_TYPE
Definition: xmlsdtypes.hxx:96
#define CTF_PAGE_TRANSITION_DIRECTION
Definition: xmlsdtypes.hxx:147
constexpr sal_uInt16 XML_NAMESPACE_XLINK
sal_Int32 mnIndex
Definition: maptype.hxx:124
#define CTF_FONTWORK_FORM
Definition: xmlsdtypes.hxx:162
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: sdpropls.cxx:1669
#define CTF_FONTWORK_STYLE
Definition: xmlsdtypes.hxx:152
css::uno::Reference< css::frame::XModel2 > mxModel
#define XML_TYPE_TEXT_ANIMATION_BLINKING
Definition: xmlsdtypes.hxx:57
SvXMLEnumMapEntry< drawing::TextureProjectionMode > const aXML_TexGenerationY_EnumMap[]
Definition: sdpropls.cxx:541
SvXMLEnumMapEntry< drawing::TextFitToSizeType > const pXML_FitToSize_Enum_Odf12[]
Definition: sdpropls.cxx:642
#define CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH
Definition: xmlsdtypes.hxx:200
Abstract base-class for different XML-types.
constexpr sal_uInt16 XML_NAMESPACE_LO_EXT
#define CTF_FRAME_DISPLAY_SCROLLBAR
Definition: txtprmap.hxx:130
SvXMLEnumMapEntry< drawing::TextureKind > const aXML_TexKind_EnumMap[]
Definition: sdpropls.cxx:549
#define CTF_SD_MOVE_PROTECT
Definition: xmlsdtypes.hxx:174
#define CTF_FILLGRADIENTNAME
Definition: xmlsdtypes.hxx:138
virtual void handleSpecialItem(SvXMLAttributeList &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:854
PropertyHandler for a named xml bool type:
#define CTF_FILLTRANSNAME
Definition: xmlsdtypes.hxx:141
#define XML_SD_TYPE_NUMBULLET
Definition: xmlsdtypes.hxx:48
#define XML_SD_TYPE_BITMAPREPOFFSETY
Definition: xmlsdtypes.hxx:52
#define CTF_PAGE_TRANS_STYLE
Definition: xmlsdtypes.hxx:131
#define XML_SD_TYPE_MEASURE_UNIT
Definition: xmlsdtypes.hxx:64
#define CTF_DATE_TIME_VISIBLE
Definition: xmlsdtypes.hxx:188
#define CTF_REPEAT_OFFSET_X
Definition: xmlsdtypes.hxx:126
#define GMAP(name, prefix, token, type, context)
Definition: sdpropls.cxx:72
#define TMAP(name, prefix, token, type, context)
Definition: sdpropls.cxx:76
const XMLPropertyMapEntry aXMLSDPresPageProps[]
Definition: sdpropls.cxx:318
#define CTF_CAPTION_ISESCREL
Definition: xmlsdtypes.hxx:179
virtual void handleSpecialItem(SvXMLAttributeList &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: sdpropls.cxx:1649
#define XML_SD_TYPE_DATETIMEUPDATE
Definition: xmlsdtypes.hxx:100
#define CTF_HEADER_TEXT
Definition: xmlsdtypes.hxx:189
PropertyHandler for a generic xml enumeration type:
#define MID_FLAG_MERGE_ATTRIBUTE
Definition: xmltypes.hxx:57
#define XML_TYPE_DURATION16_MS
Definition: xmltypes.hxx:146
css::uno::Any const & rValue
Definition: ImageStyle.hxx:38
#define XML_TYPE_STYLENAME
Definition: xmltypes.hxx:150
SvXMLEnumMapEntry< drawing::FillStyle > const aXML_FillStyle_EnumMap[]
Definition: sdpropls.cxx:418
#define XML_TYPE_DOUBLE_PERCENT
Definition: xmltypes.hxx:154
#define XML_SD_TYPE_TEXT_CROSSEDOUT
Definition: xmlsdtypes.hxx:47
#define XML_SD_TYPE_STROKE
Definition: xmlsdtypes.hxx:34
#define XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT
Definition: xmltypes.hxx:250
#define CTF_FILLBITMAPNAME
Definition: xmlsdtypes.hxx:140
PropertyHandler for the XML-data-type:
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const
Application-specific filter.
Definition: xmlexppr.cxx:669
#define CTF_SD_CONTROL_SHAPE_DATA_STYLE
Definition: contextid.hxx:35
#define XML_SD_TYPE_BITMAP_REFPOINT
Definition: xmlsdtypes.hxx:55
#define XML_TYPE_TEXT_CLIP
Definition: xmltypes.hxx:272
void AddAttribute(sal_uInt16 nPrefix, const char *pName, const OUString &rValue)
Definition: xmlexp.cxx:909
#define XML_TYPE_RECTANGLE_HEIGHT
Definition: xmltypes.hxx:161
#define MID_FLAG_MULTI_PROPERTY
Definition: xmltypes.hxx:64
#define XML_SD_TYPE_LINECAP
Definition: xmlsdtypes.hxx:69
#define DPMAP(name, prefix, token, type, context)
Definition: sdpropls.cxx:75
#define XML_SD_TYPE_PRESPAGE_VISIBILITY
Definition: xmlsdtypes.hxx:39
#define CTF_SD_SIZE_PROTECT
Definition: xmlsdtypes.hxx:175
#define CTF_FOOTER_VISIBLE
Definition: xmlsdtypes.hxx:186
OUString GetRelativeReference(const OUString &rValue)
Definition: xmlexp.cxx:2089
#define XML_SD_TYPE_PRESPAGE_STYLE
Definition: xmlsdtypes.hxx:36
SvXMLImport * mpImport
Definition: sdpropls.hxx:59
SvXMLEnumMapEntry< sal_Int32 > const pXML_Caption_Type_Enum[]
Definition: sdpropls.cxx:756
SvXMLEnumMapEntry< drawing::NormalsKind > const aXML_NormalsKind_EnumMap[]
Definition: sdpropls.cxx:525
constexpr sal_uInt16 XML_NAMESPACE_DRAW
#define MID_FLAG_ELEMENT_ITEM
Definition: xmltypes.hxx:70
SvXMLEnumMapEntry< drawing::MeasureTextHorzPos > const pXML_Measure_HAlign_Enum[]
Definition: sdpropls.cxx:684
#define CTF_PAGE_TRANS_SPEED
Definition: xmlsdtypes.hxx:132
SvXMLEnumMapEntry< sal_Int32 > const pXML_MeasureUnit_Enum[]
Definition: sdpropls.cxx:669
SvXMLExport * mpExport
Definition: sdpropls.hxx:58
#define CTF_PAGE_TRANSITION_FADECOLOR
Definition: xmlsdtypes.hxx:148
#define CTF_SD_OLE_VIS_AREA_IMPORT_TOP
Definition: xmlsdtypes.hxx:169
SvXMLEnumMapEntry< presentation::AnimationSpeed > const aXML_TransSpeed_EnumMap[]
Definition: sdpropls.cxx:436
#define CTF_CAPTION_ESCABS
Definition: xmlsdtypes.hxx:181
#define CTF_PAGE_SOUND_URL
Definition: xmlsdtypes.hxx:128
const XMLPropertyMapEntry aXMLTableShapeAttributes[]
contains the attribute to property mapping for a drawing layer table WARNING: if attributes are added...
Definition: sdpropls.cxx:378
Abstract base-class for different XML-types.
SvtSaveOptions::ODFSaneDefaultVersion getSaneDefaultVersion() const
returns the deterministic version for odf export
Definition: xmlexp.cxx:2297
#define XML_SD_TYPE_PRESPAGE_TYPE
Definition: xmlsdtypes.hxx:35
#define CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT
Definition: xmlsdtypes.hxx:171
#define CTF_TEXT_CLIP
Definition: txtprmap.hxx:171
#define CTF_SD_OLE_ISINTERNAL
Definition: xmlsdtypes.hxx:172
constexpr sal_uInt16 XML_NAMESPACE_SVG
#define XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
Definition: xmlsdtypes.hxx:117
#define CTF_FONTWORK_SHADOWTRANSPARENCE
Definition: xmlsdtypes.hxx:164
#define XML_SD_TYPE_TRANSITION_TYPE
Definition: xmlsdtypes.hxx:114
constexpr sal_uInt16 XML_NAMESPACE_FO
#define CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT
Definition: xmlsdtypes.hxx:201
#define CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH
Definition: xmlsdtypes.hxx:170
constexpr sal_uInt16 XML_NAMESPACE_TEXT
sal_Int32 mnType
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Form_Enum[]
Definition: sdpropls.cxx:730
#define XML_SD_TYPE_MEASURE_HALIGN
Definition: xmlsdtypes.hxx:62
#define CTF_PAGE_NUMBER_VISIBLE
Definition: xmlsdtypes.hxx:187
#define GMAPV(name, prefix, token, type, context, version)
Definition: sdpropls.cxx:74
#define CTF_FOOTER_TEXT
Definition: xmlsdtypes.hxx:190
#define XML_SD_TYPE_DATETIME_FORMAT
Definition: xmlsdtypes.hxx:101
#define XML_TYPE_ATTRIBUTE_CONTAINER
Definition: xmltypes.hxx:218
#define XML_SD_TYPE_BITMAPREPOFFSETX
Definition: xmlsdtypes.hxx:51
#define XML_TYPE_CONTROL_TEXT_EMPHASIZE
Definition: xmltypes.hxx:246
#define XML_TYPE_TEXT_ANIMATION_DIRECTION
Definition: xmltypes.hxx:238
#define XML_SD_TYPE_SIZE_PROTECT
Definition: xmlsdtypes.hxx:106
const Any & any
#define XML_TYPE_TEXT_ANIMATION_STEPS
Definition: xmlsdtypes.hxx:58
#define XML_SD_TYPE_TEX_MODE
Definition: xmlsdtypes.hxx:80
#define MID_FLAG_NO_PROPERTY
Definition: xmltypes.hxx:78
#define XML_TYPE_TEXT_ANIMATION
Definition: xmltypes.hxx:237
#define CTF_TEXTWRITINGMODE
Definition: txtprmap.hxx:63
#define XML_TYPE_NEG_PERCENT
Definition: xmltypes.hxx:151
#define GMAP_D(name, prefix, token, type, context)
Definition: sdpropls.cxx:73
#define XML_SD_TYPE_PRESPAGE_SPEED
Definition: xmlsdtypes.hxx:37
#define MID_FLAG_NO_PROPERTY_EXPORT
Definition: xmltypes.hxx:73
Represents a property with its API-name, its XML-name and the type of its value.
Definition: maptype.hxx:31
#define XML_TYPE_MEASURE_PX
Definition: xmltypes.hxx:147
#define XML_TYPE_NUMBER
Definition: xmltypes.hxx:134
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const =0
Exports the given value according to the XML-data-type corresponding to the derived class...
#define XML_SD_TYPE_FILLSTYLE
Definition: xmlsdtypes.hxx:43
SvXMLEnumMapEntry< drawing::TextAnimationDirection > const pXML_TextAnimationDirection_Enum[]
Definition: sdpropls.cxx:614
XMLShapeExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLExport &rExport)
Definition: sdpropls.cxx:1307
SvXMLEnumMapEntry< drawing::LineCap > const aXML_LineCap_EnumMap[]
Definition: sdpropls.cxx:409
#define MID_FLAG_SPECIAL_ITEM
Definition: xmltypes.hxx:87
#define XML_SD_TYPE_CAPTION_ESC_ABS
Definition: xmlsdtypes.hxx:94
PropertyHandler for the list-style.
Definition: numithdl.hxx:29
#define CTF_FRAME_DISPLAY_BORDER
Definition: txtprmap.hxx:131
#define XML_SD_TYPE_NORMALS_KIND
Definition: xmlsdtypes.hxx:75
#define XML_TYPE_TEXT_DRAW_ASPECT
Definition: xmltypes.hxx:245
#define XML_TYPE_NUMBER16
Definition: xmltypes.hxx:136
#define CTF_FONTWORK_HIDEFORM
Definition: xmlsdtypes.hxx:163
#define CTF_FRAME_MARGIN_VERT
Definition: txtprmap.hxx:133
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
Definition: sdpropls.cxx:1318
#define XML_SD_TYPE_FILLBITMAPSIZE
Definition: xmlsdtypes.hxx:53
SvXMLEnumMapEntry< drawing::TextFitToSizeType > const pXML_ShrinkToFit_Enum[]
Definition: sdpropls.cxx:660
#define CTF_FILLHATCHNAME
Definition: xmlsdtypes.hxx:139
#define CTF_TEXTANIMATION_BLINKING
Definition: xmlsdtypes.hxx:142
#define XML_SD_TYPE_VISIBLE_HIDDEN
Definition: xmlsdtypes.hxx:46
#define MID_FLAG_MERGE_PROPERTY
Definition: xmltypes.hxx:61
#define CTF_SD_OLE_ASPECT
Definition: xmlsdtypes.hxx:197
#define CTF_LINESTARTNAME
Definition: xmlsdtypes.hxx:136
#define XML_TYPE_RECTANGLE_WIDTH
Definition: xmltypes.hxx:160
#define CTF_SD_OLE_VIS_AREA_EXPORT_TOP
Definition: xmlsdtypes.hxx:199
#define CTF_PAGE_BACKSIZE
Definition: xmlsdtypes.hxx:134
#define CTF_PAGE_TRANSITION_TYPE
Definition: xmlsdtypes.hxx:145
#define XML_SD_TYPE_LINEJOIN
Definition: xmlsdtypes.hxx:42
#define XML_SD_TYPE_NORMALS_DIRECTION
Definition: xmlsdtypes.hxx:76
#define MAP_END()
Definition: sdpropls.cxx:78
#define XML_SD_TYPE_FONTWORK_STYLE
Definition: xmlsdtypes.hxx:84
Map an XMLTokenEnum to an enum value.
Definition: ximpshap.hxx:40
constexpr sal_uInt16 XML_NAMESPACE_PRESENTATION
#define CTF_FONTWORK_SHADOW
Definition: xmlsdtypes.hxx:158
#define XML_SD_TYPE_MEASURE_VALIGN
Definition: xmlsdtypes.hxx:63
#define XML_TYPE_STRING
Definition: xmltypes.hxx:132
SvXMLEnumMapEntry< drawing::TextureProjectionMode > const aXML_TexGenerationX_EnumMap[]
Definition: sdpropls.cxx:533
#define CTF_FONTWORK_ADJUST
Definition: xmlsdtypes.hxx:153
#define CTF_FONTWORK_SHADOWOFFSETX
Definition: xmlsdtypes.hxx:160
#define XML_SD_TYPE_CONTROL_BORDER
Definition: xmlsdtypes.hxx:66
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Style_Enum[]
Definition: sdpropls.cxx:703
css::uno::Any maValue
Definition: maptype.hxx:125
constexpr sal_uInt16 XML_NAMESPACE_TABLE
#define MAP_(name, prefix, token, type, context)
Definition: sdpropls.cxx:70
const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[]
Definition: sdpropls.cxx:365
SvXMLEnumMapEntry< drawing::BitmapMode > const aXML_BitmapMode_EnumMap[]
Definition: sdpropls.cxx:515
#define XML_SD_TYPE_TRANSTIION_SUBTYPE
Definition: xmlsdtypes.hxx:115
#define XML_SD_TYPE_MEASURE_PLACING
Definition: xmlsdtypes.hxx:65
SvXmlExportFlags
Definition: xmlexppr.hxx:39
#define PMAP(name, prefix, token, type, context)
Definition: sdpropls.cxx:77
#define XML_SD_TYPE_VERTICAL_ALIGN
Definition: xmlsdtypes.hxx:60
#define XML_SD_TYPE_TEXT_ALIGN
Definition: xmlsdtypes.hxx:59
#define XML_SD_TYPE_CONTROL_BORDER_COLOR
Definition: xmlsdtypes.hxx:67
#define CTF_FONTWORK_DISTANCE
Definition: xmlsdtypes.hxx:154
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
return the OUString representation for eToken
Definition: xmltoken.cxx:3405
constexpr sal_uInt16 XML_NAMESPACE_SMIL
Handling of tokens in XML:
#define CTF_DASHNAME
Definition: xmlsdtypes.hxx:135
#define CTF_SD_OLE_VIS_AREA_IMPORT_LEFT
Definition: xmlsdtypes.hxx:168
#define XML_TYPE_MEASURE
Definition: xmltypes.hxx:126
#define CTF_FONTWORK_SHADOWOFFSETY
Definition: xmlsdtypes.hxx:161
XMLPageExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLExport &rExport)
Definition: sdpropls.cxx:1695
Smart struct to transport an Any with an index to the appropriate property-name.
Definition: maptype.hxx:122
#define CTF_FONTWORK_START
Definition: xmlsdtypes.hxx:155
#define XML_SD_TYPE_LOGICAL_SIZE
Definition: xmlsdtypes.hxx:54
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
Imports the given value according to the XML-data-type corresponding to the derived class...
SvXMLEnumMapEntry< drawing::TextFitToSizeType > const pXML_FitToSize_Enum[]
Definition: sdpropls.cxx:651
#define XML_SD_TYPE_CAPTION_ANGLE_TYPE
Definition: xmlsdtypes.hxx:91
Abstract base-class for different XML-types.
#define XML_SD_TYPE_FONTWORK_ADJUST
Definition: xmlsdtypes.hxx:85
#define CTF_DATE_TIME_FORMAT
Definition: xmlsdtypes.hxx:192
#define XML_SD_TYPE_TEX_GENERATION_MODE_X
Definition: xmlsdtypes.hxx:77
SvXMLEnumMapEntry< drawing::TextureMode > const aXML_TexMode_EnumMap[]
Definition: sdpropls.cxx:556
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Adjust_Enum[]
Definition: sdpropls.cxx:713
SvXMLEnumMapEntry< drawing::LineJoint > const aXML_LineJoint_EnumMap[]
Definition: sdpropls.cxx:399
#define CTF_FILLCOLOR
Definition: txtprmap.hxx:203
#define CTF_WRITINGMODE
Definition: xmlsdtypes.hxx:125
#define XML_SD_TYPE_PRESPAGE_DURATION
Definition: xmlsdtypes.hxx:38
#define CTF_TEXT_CLIP11
Definition: txtprmap.hxx:172
#define XML_SD_TYPE_PRESPAGE_BACKSIZE
Definition: xmlsdtypes.hxx:56
SvXMLEnumMapEntry< drawing::TextHorizontalAdjust > const pXML_TextAlign_Enum[]
Definition: sdpropls.cxx:623
#define XML_SD_TYPE_FONTWORK_SHADOW
Definition: xmlsdtypes.hxx:86
#define CTF_PAGE_VISIBLE
Definition: xmlsdtypes.hxx:129
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const =0
Imports the given value according to the XML-data-type corresponding to the derived class...
Abstract base-class for different XML-types.
Definition: xmlprhdl.hxx:35
#define XML_TYPE_BOOL
Definition: xmltypes.hxx:125
SvXMLEnumMapEntry< text::WritingMode > const aXML_WritingMode_EnumMap[]
Definition: sdpropls.cxx:587
#define XML_SD_TYPE_OPACITY
Definition: xmlsdtypes.hxx:41
#define XML_SD_TYPE_WRITINGMODE
Definition: xmlsdtypes.hxx:49
#define CTF_FONTWORK_MIRROR
Definition: xmlsdtypes.hxx:156
#define CTF_REPEAT_OFFSET_Y
Definition: xmlsdtypes.hxx:127
#define CTF_FILLSTYLE
Definition: txtprmap.hxx:202
#define XML_SD_TYPE_MOVE_PROTECT
Definition: xmlsdtypes.hxx:105
css::uno::Any const SvXMLExport & rExport
Definition: ImageStyle.hxx:38
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
Definition: sdpropls.cxx:1705
This is a handler that returns true for import if the attribute string contains a '' value...
SvXMLExportFlags getExportFlags() const
Definition: xmlexp.hxx:476
#define XML_SD_TYPE_IMAGE_SCALE_MODE
Definition: xmlsdtypes.hxx:68
#define XML_SD_TYPE_FITTOSIZE
Definition: xmlsdtypes.hxx:61
#define CTF_FONTWORK_OUTLINE
Definition: xmlsdtypes.hxx:157
aStr
SvXMLEnumMapEntry< drawing::CircleKind > const aXML_CircleKind_EnumMap[]
Definition: sdpropls.cxx:578
XMLShapePropertySetMapper(const rtl::Reference< XMLPropertyHandlerFactory > &rFactoryRef, bool bForExport)
Definition: sdpropls.cxx:1297
#define CTF_PAGE_TRANSITION_SUBTYPE
Definition: xmlsdtypes.hxx:146
constexpr sal_uInt16 XML_NAMESPACE_STYLE
#define XML_TYPE_RECTANGLE_TOP
Definition: xmltypes.hxx:159
#define XML_TYPE_RECTANGLE_LEFT
Definition: xmltypes.hxx:158
SvXMLEnumMapEntry< drawing::MeasureTextVertPos > const pXML_Measure_VAlign_Enum[]
Definition: sdpropls.cxx:693
#define XML_TYPE_COLOR
Definition: xmltypes.hxx:133
#define CTF_SD_NUMBERINGRULES_NAME
Definition: contextid.hxx:36
virtual ~XMLPageExportPropertyMapper() override
Definition: sdpropls.cxx:1701
sal_Int16 nValue
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
Definition: xmlexppr.cxx:1119
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: sdpropls.cxx:1852
static bool convertPercent(sal_Int32 &rValue, const OUString &rString)
void PutHdlCache(sal_Int32 nType, const XMLPropertyHandler *pHdl) const
Puts a PropertyHandler into the internal cache.
Definition: prhdlfac.cxx:156
XMLSdPropHdlFactory(css::uno::Reference< css::frame::XModel > const &xModel, SvXMLExport &rExport)
SvXMLEnumMapEntry< sal_Int32 > const aXML_PresChange_EnumMap[]
Definition: sdpropls.cxx:428
#define XML_SD_TYPE_CAPTION_ESC_DIR
Definition: xmlsdtypes.hxx:95
static bool convertNumber(sal_Int32 &rValue, std::u16string_view aString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32)
#define XML_SD_TYPE_TEX_GENERATION_MODE_Y
Definition: xmlsdtypes.hxx:78