1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <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/drawing/FillStyle.hpp>
27 #include <com/sun/star/presentation/AnimationSpeed.hpp>
28 #include <com/sun/star/presentation/FadeEffect.hpp>
29 #include <com/sun/star/drawing/ConnectorType.hpp>
30 #include <com/sun/star/drawing/RectanglePoint.hpp>
31 #include <com/sun/star/drawing/CircleKind.hpp>
33 #include <com/sun/star/drawing/BitmapMode.hpp>
34 #include <com/sun/star/text/WritingMode.hpp>
35 #include <xmloff/EnumPropertyHdl.hxx>
36 #include <xmloff/NamedBoolPropertyHdl.hxx>
37 #include <xmloff/WordWrapPropertyHdl.hxx>
38 #include "numithdl.hxx"
39 #include "XMLBitmapRepeatOffsetPropertyHandler.hxx"
40 #include "XMLFillBitmapSizePropertyHandler.hxx"
41 #include "XMLBitmapLogicalSizePropertyHandler.hxx"
42 #include <com/sun/star/drawing/TextAnimationKind.hpp>
43 #include <com/sun/star/drawing/TextAnimationDirection.hpp>
44 #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
45 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
46 #include <com/sun/star/drawing/TextFitToSizeType.hpp>
47 #include <com/sun/star/drawing/MeasureTextHorzPos.hpp>
48 #include <com/sun/star/drawing/MeasureTextVertPos.hpp>
49 #include <xmloff/controlpropertyhdl.hxx>
50 #include <xmloff/xmltoken.hxx>
51 #include "sdpropls.hxx"
52 #include "propimp0.hxx"
53 #include <xmloff/xmlexp.hxx>
54 #include <xmloff/xmlnmspe.hxx>
55 #include <com/sun/star/drawing/NormalsKind.hpp>
56 #include <com/sun/star/drawing/TextureProjectionMode.hpp>
57 #include <com/sun/star/drawing/TextureKind.hpp>
58 #include <com/sun/star/drawing/TextureMode.hpp>
59 #include <xmloff/txtprmap.hxx>
60 #include "XMLClipPropertyHandler.hxx"
61 #include "XMLIsPercentagePropertyHandler.hxx"
62 #include "XMLPercentOrMeasurePropertyHandler.hxx"
63 #include "animations.hxx"
64 #include <sax/tools/converter.hxx>
66 #include "sdxmlexp_impl.hxx"
68 using ::com::sun::star::uno::Any
;
69 using ::com::sun::star::uno::Reference
;
72 using namespace ::com::sun::star
;
73 using namespace ::xmloff::token
;
75 #define _MAP(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010, false }
76 #define _MAPV(name,prefix,token,type,context,version) { name, sizeof(name)-1, prefix, token, type, context, version, false }
77 #define GMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context)
78 #define GMAPV(name,prefix,token,type,context,version) _MAPV(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context,version)
79 #define DPMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
80 #define TMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
81 #define PMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
82 #define MAP_END() { 0L, 0, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFVER_010, false }
84 //////////////////////////////////////////////////////////////////////////////
85 // entry list for graphic properties
87 const XMLPropertyMapEntry aXMLSDProperties
[] =
89 // this entry must be first! this is needed for XMLShapeImportHelper::CreateExternalShapePropMapper
91 // ^^^though CreateExternalShapePropMapper is gone now, hmm^^^
92 GMAP( "UserDefinedAttributes", XML_NAMESPACE_TEXT
, XML_XMLNS
, XML_TYPE_ATTRIBUTE_CONTAINER
| MID_FLAG_SPECIAL_ITEM
, 0 ),
95 GMAP( "LineStyle", XML_NAMESPACE_DRAW
, XML_STROKE
, XML_SD_TYPE_STROKE
, 0 ),
96 GMAP( "LineDashName", XML_NAMESPACE_DRAW
, XML_STROKE_DASH
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_DASHNAME
),
97 GMAP( "LineWidth", XML_NAMESPACE_SVG
, XML_STROKE_WIDTH
, XML_TYPE_MEASURE
, 0 ),
98 GMAP( "LineColor", XML_NAMESPACE_SVG
, XML_STROKE_COLOR
, XML_TYPE_COLOR
, 0 ),
99 GMAP( "LineStartName", XML_NAMESPACE_DRAW
, XML_MARKER_START
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_LINESTARTNAME
),
100 GMAP( "LineStartWidth", XML_NAMESPACE_DRAW
, XML_MARKER_START_WIDTH
, XML_TYPE_MEASURE
, 0 ),
101 GMAP( "LineStartCenter", XML_NAMESPACE_DRAW
, XML_MARKER_START_CENTER
, XML_TYPE_BOOL
, 0 ),
102 GMAP( "LineEndName", XML_NAMESPACE_DRAW
, XML_MARKER_END
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_LINEENDNAME
),
103 GMAP( "LineEndWidth", XML_NAMESPACE_DRAW
, XML_MARKER_END_WIDTH
, XML_TYPE_MEASURE
, 0 ),
104 GMAP( "LineEndCenter", XML_NAMESPACE_DRAW
, XML_MARKER_END_CENTER
, XML_TYPE_BOOL
, 0 ),
105 GMAP( "LineTransparence", XML_NAMESPACE_SVG
, XML_STROKE_OPACITY
, XML_SD_TYPE_OPACITY
, 0 ),
106 GMAP( "LineJoint", XML_NAMESPACE_DRAW
, XML_STROKE_LINEJOIN
, XML_SD_TYPE_LINEJOIN
, 0 ),
107 GMAP( "LineCap", XML_NAMESPACE_SVG
, XML_STROKE_LINECAP
, XML_SD_TYPE_LINECAP
, 0 ),
110 GMAP( "FillStyle", XML_NAMESPACE_DRAW
, XML_FILL
, XML_SD_TYPE_FILLSTYLE
, 0 ),
111 GMAP( "FillColor", XML_NAMESPACE_DRAW
, XML_FILL_COLOR
, XML_TYPE_COLOR
, 0 ),
112 GMAP( "FillColor2", XML_NAMESPACE_DRAW
, XML_SECONDARY_FILL_COLOR
, XML_TYPE_COLOR
, 0 ),
113 GMAP( "FillGradientName", XML_NAMESPACE_DRAW
, XML_FILL_GRADIENT_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLGRADIENTNAME
),
114 GMAP( "FillGradientStepCount", XML_NAMESPACE_DRAW
, XML_GRADIENT_STEP_COUNT
, XML_TYPE_NUMBER16
, 0 ),
115 GMAP( "FillHatchName", XML_NAMESPACE_DRAW
, XML_FILL_HATCH_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLHATCHNAME
),
116 GMAP( "FillBackground", XML_NAMESPACE_DRAW
, XML_FILL_HATCH_SOLID
, XML_TYPE_BOOL
, 0 ),
117 GMAP( "FillBitmapName", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLBITMAPNAME
),
118 GMAP( "FillTransparence", XML_NAMESPACE_DRAW
, XML_OPACITY
, XML_TYPE_NEG_PERCENT16
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too
119 GMAP( "FillTransparenceGradientName", XML_NAMESPACE_DRAW
, XML_OPACITY_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLTRANSNAME
),
121 GMAP( "FillBitmapSizeX", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_WIDTH
, XML_SD_TYPE_FILLBITMAPSIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
122 GMAP( "FillBitmapLogicalSize", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_WIDTH
, XML_SD_TYPE_LOGICAL_SIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
123 GMAP( "FillBitmapSizeY", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_HEIGHT
, XML_SD_TYPE_FILLBITMAPSIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
124 GMAP( "FillBitmapLogicalSize", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_HEIGHT
, XML_SD_TYPE_LOGICAL_SIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
125 GMAP( "FillBitmapMode", XML_NAMESPACE_STYLE
,XML_REPEAT
, XML_SD_TYPE_BITMAP_MODE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
126 GMAP( "FillBitmapPositionOffsetX", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_REF_POINT_X
, XML_TYPE_PERCENT
, 0 ),
127 GMAP( "FillBitmapPositionOffsetY", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_REF_POINT_Y
, XML_TYPE_PERCENT
, 0 ),
128 GMAP( "FillBitmapRectanglePoint", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_REF_POINT
, XML_SD_TYPE_BITMAP_REFPOINT
, 0 ),
129 GMAP( "FillBitmapOffsetX", XML_NAMESPACE_DRAW
, XML_TILE_REPEAT_OFFSET
, XML_SD_TYPE_BITMAPREPOFFSETX
|MID_FLAG_MULTI_PROPERTY
, CTF_REPEAT_OFFSET_X
),
130 GMAP( "FillBitmapOffsetY", XML_NAMESPACE_DRAW
, XML_TILE_REPEAT_OFFSET
, XML_SD_TYPE_BITMAPREPOFFSETY
|MID_FLAG_MULTI_PROPERTY
, CTF_REPEAT_OFFSET_Y
),
132 // text frame attributes
133 GMAP( "TextHorizontalAdjust", XML_NAMESPACE_DRAW
, XML_TEXTAREA_HORIZONTAL_ALIGN
, XML_SD_TYPE_TEXT_ALIGN
, 0 ),
134 GMAP( "TextVerticalAdjust", XML_NAMESPACE_DRAW
, XML_TEXTAREA_VERTICAL_ALIGN
, XML_SD_TYPE_VERTICAL_ALIGN
, 0 ),
135 GMAP( "TextAutoGrowHeight", XML_NAMESPACE_DRAW
, XML_AUTO_GROW_HEIGHT
, XML_TYPE_BOOL
, 0 ),
136 GMAP( "TextAutoGrowWidth", XML_NAMESPACE_DRAW
, XML_AUTO_GROW_WIDTH
, XML_TYPE_BOOL
, 0 ),
137 GMAP( "TextFitToSize", XML_NAMESPACE_DRAW
, XML_FIT_TO_SIZE
, XML_SD_TYPE_FITTOSIZE
, 0 ),
138 GMAP( "TextContourFrame", XML_NAMESPACE_DRAW
, XML_FIT_TO_CONTOUR
, XML_TYPE_BOOL
, 0 ),
139 GMAP( "TextMaximumFrameHeight", XML_NAMESPACE_FO
, XML_MAX_HEIGHT
, XML_TYPE_MEASURE
, 0 ),
140 GMAP( "TextMaximumFrameWidth", XML_NAMESPACE_FO
, XML_MAX_WIDTH
, XML_TYPE_MEASURE
, 0 ),
141 GMAP( "TextMinimumFrameHeight", XML_NAMESPACE_FO
, XML_MIN_HEIGHT
, XML_TYPE_MEASURE
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too
142 GMAP( "TextMinimumFrameWidth", XML_NAMESPACE_FO
, XML_MIN_WIDTH
, XML_TYPE_MEASURE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
143 GMAP( "TextUpperDistance", XML_NAMESPACE_FO
, XML_PADDING_TOP
, XML_TYPE_MEASURE
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too
144 GMAP( "TextLowerDistance", XML_NAMESPACE_FO
, XML_PADDING_BOTTOM
, XML_TYPE_MEASURE
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too
145 GMAP( "TextLeftDistance", XML_NAMESPACE_FO
, XML_PADDING_LEFT
, XML_TYPE_MEASURE
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too
146 GMAP( "TextRightDistance", XML_NAMESPACE_FO
, XML_PADDING_RIGHT
, XML_TYPE_MEASURE
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too
147 PMAP( "TextWritingMode", XML_NAMESPACE_STYLE
,XML_WRITING_MODE
, XML_SD_TYPE_WRITINGMODE
|MID_FLAG_MULTI_PROPERTY
, CTF_WRITINGMODE
),
148 GMAP( "NumberingRules", XML_NAMESPACE_TEXT
, XML_LIST_STYLE
, XML_SD_TYPE_NUMBULLET
|MID_FLAG_ELEMENT_ITEM
, CTF_NUMBERINGRULES
),
149 GMAP( "NumberingRules", XML_NAMESPACE_TEXT
, XML_LIST_STYLE_NAME
, XML_TYPE_STRING
, CTF_SD_NUMBERINGRULES_NAME
),
150 GMAP( "TextWordWrap", XML_NAMESPACE_FO
, XML_WRAP_OPTION
, XML_TYPE_WRAP_OPTION
, 0 ),
153 GMAP( "Shadow", XML_NAMESPACE_DRAW
, XML_SHADOW
, XML_SD_TYPE_SHADOW
, 0 ),
154 GMAP( "ShadowXDistance", XML_NAMESPACE_DRAW
, XML_SHADOW_OFFSET_X
, XML_TYPE_MEASURE
, 0 ),
155 GMAP( "ShadowYDistance", XML_NAMESPACE_DRAW
, XML_SHADOW_OFFSET_Y
, XML_TYPE_MEASURE
, 0 ),
156 GMAP( "ShadowColor", XML_NAMESPACE_DRAW
, XML_SHADOW_COLOR
, XML_TYPE_COLOR
, 0 ),
157 GMAP( "ShadowTransparence", XML_NAMESPACE_DRAW
, XML_SHADOW_OPACITY
, XML_TYPE_NEG_PERCENT
, 0 ),
159 // graphic attributes
160 GMAP( "GraphicColorMode", XML_NAMESPACE_DRAW
, XML_COLOR_MODE
, XML_TYPE_COLOR_MODE
, 0 ), // exists in SW, too, with same property name
161 GMAP( "AdjustLuminance", XML_NAMESPACE_DRAW
, XML_LUMINANCE
, XML_TYPE_PERCENT16
, 0 ), // signed? exists in SW, too, with same property name
162 GMAP( "AdjustContrast", XML_NAMESPACE_DRAW
, XML_CONTRAST
, XML_TYPE_PERCENT16
, 0 ), // signed? exists in SW, too, with same property name
163 GMAP( "Gamma", XML_NAMESPACE_DRAW
, XML_GAMMA
, XML_TYPE_DOUBLE_PERCENT
, 0 ), // signed? exists in SW, too, with same property name
164 GMAP( "AdjustRed", XML_NAMESPACE_DRAW
, XML_RED
, XML_TYPE_PERCENT16
, 0 ), // signed? exists in SW, too, with same property name
165 GMAP( "AdjustGreen", XML_NAMESPACE_DRAW
, XML_GREEN
, XML_TYPE_PERCENT16
, 0 ), // signed? exists in SW, too, with same property name
166 GMAP( "AdjustBlue", XML_NAMESPACE_DRAW
, XML_BLUE
, XML_TYPE_PERCENT16
, 0 ), // signed? exists in SW, too, with same property name
167 GMAPV( "GraphicCrop", XML_NAMESPACE_FO
, XML_CLIP
, XML_TYPE_TEXT_CLIP
, CTF_TEXT_CLIP
, SvtSaveOptions::ODFVER_012
), // exists in SW, too, with same property name
168 GMAP( "GraphicCrop", XML_NAMESPACE_FO
, XML_CLIP
, XML_TYPE_TEXT_CLIP11
, CTF_TEXT_CLIP11
), // exists in SW, too, with same property name
169 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#
170 GMAP( "IsMirrored", XML_NAMESPACE_STYLE
, XML_MIRROR
, XML_TYPE_SD_MIRROR
|MID_FLAG_MULTI_PROPERTY
, 0 ), // exists in SW, too // #i40214#
172 // animation text attributes
173 TMAP( "TextAnimationKind", XML_NAMESPACE_STYLE
,XML_TEXT_BLINKING
, XML_TYPE_TEXT_ANIMATION_BLINKING
, CTF_TEXTANIMATION_BLINKING
),
174 GMAP( "TextAnimationKind", XML_NAMESPACE_TEXT
, XML_ANIMATION
, XML_TYPE_TEXT_ANIMATION
, CTF_TEXTANIMATION_KIND
),
175 GMAP( "TextAnimationDirection", XML_NAMESPACE_TEXT
, XML_ANIMATION_DIRECTION
, XML_TYPE_TEXT_ANIMATION_DIRECTION
, 0 ),
176 GMAP( "TextAnimationStartInside", XML_NAMESPACE_TEXT
, XML_ANIMATION_START_INSIDE
, XML_TYPE_BOOL
, 0 ),
177 GMAP( "TextAnimationStopInside", XML_NAMESPACE_TEXT
, XML_ANIMATION_STOP_INSIDE
, XML_TYPE_BOOL
, 0 ),
178 GMAP( "TextAnimationCount", XML_NAMESPACE_TEXT
, XML_ANIMATION_REPEAT
, XML_TYPE_NUMBER16
, 0 ),
179 GMAP( "TextAnimationDelay", XML_NAMESPACE_TEXT
, XML_ANIMATION_DELAY
, XML_TYPE_DURATION16_MS
, 0 ),
180 GMAP( "TextAnimationAmount", XML_NAMESPACE_TEXT
, XML_ANIMATION_STEPS
, XML_TYPE_TEXT_ANIMATION_STEPS
, 0 ),
182 // connector attributes
183 GMAP( "EdgeNode1HorzDist", XML_NAMESPACE_DRAW
, XML_START_LINE_SPACING_HORIZONTAL
, XML_TYPE_MEASURE
, 0 ),
184 GMAP( "EdgeNode1VertDist", XML_NAMESPACE_DRAW
, XML_START_LINE_SPACING_VERTICAL
, XML_TYPE_MEASURE
, 0 ),
185 GMAP( "EdgeNode2HorzDist", XML_NAMESPACE_DRAW
, XML_END_LINE_SPACING_HORIZONTAL
, XML_TYPE_MEASURE
, 0 ),
186 GMAP( "EdgeNode2VertDist", XML_NAMESPACE_DRAW
, XML_END_LINE_SPACING_VERTICAL
, XML_TYPE_MEASURE
, 0 ),
188 // measure attributes
189 GMAP( "MeasureLineDistance", XML_NAMESPACE_DRAW
, XML_LINE_DISTANCE
, XML_TYPE_MEASURE
, 0 ),
190 GMAP( "MeasureHelpLineOverhang", XML_NAMESPACE_DRAW
, XML_GUIDE_OVERHANG
, XML_TYPE_MEASURE
, 0 ),
191 GMAP( "MeasureHelpLineDistance", XML_NAMESPACE_DRAW
, XML_GUIDE_DISTANCE
, XML_TYPE_MEASURE
, 0 ),
192 GMAP( "MeasureHelpLine1Length", XML_NAMESPACE_DRAW
, XML_START_GUIDE
, XML_TYPE_MEASURE
, 0 ),
193 GMAP( "MeasureHelpLine2Length", XML_NAMESPACE_DRAW
, XML_END_GUIDE
, XML_TYPE_MEASURE
, 0 ),
194 GMAP( "MeasureTextHorizontalPosition", XML_NAMESPACE_DRAW
, XML_MEASURE_ALIGN
, XML_SD_TYPE_MEASURE_HALIGN
, 0 ),
195 GMAP( "MeasureTextVerticalPosition", XML_NAMESPACE_DRAW
, XML_MEASURE_VERTICAL_ALIGN
, XML_SD_TYPE_MEASURE_VALIGN
, 0 ),
196 GMAP( "MeasureUnit", XML_NAMESPACE_DRAW
, XML_UNIT
, XML_SD_TYPE_MEASURE_UNIT
, 0 ),
197 GMAP( "MeasureShowUnit", XML_NAMESPACE_DRAW
, XML_SHOW_UNIT
, XML_TYPE_BOOL
, 0 ),
198 GMAP( "MeasureBelowReferenceEdge", XML_NAMESPACE_DRAW
, XML_PLACING
, XML_SD_TYPE_MEASURE_PLACING
, 0 ),
199 GMAP( "MeasureTextRotate90", XML_NAMESPACE_DRAW
, XML_PARALLEL
, XML_TYPE_BOOL
, 0 ),
200 GMAP( "MeasureDecimalPlaces", XML_NAMESPACE_DRAW
, XML_DECIMAL_PLACES
, XML_TYPE_NUMBER16
, 0 ),
202 // 3D geometry attributes
203 GMAP( "D3DHorizontalSegments", XML_NAMESPACE_DR3D
, XML_HORIZONTAL_SEGMENTS
, XML_TYPE_NUMBER
, 0 ),
204 GMAP( "D3DVerticalSegments", XML_NAMESPACE_DR3D
, XML_VERTICAL_SEGMENTS
, XML_TYPE_NUMBER
, 0 ),
205 GMAP( "D3DPercentDiagonal", XML_NAMESPACE_DR3D
, XML_EDGE_ROUNDING
, XML_TYPE_PERCENT
, 0 ),
206 GMAP( "D3DBackscale", XML_NAMESPACE_DR3D
, XML_BACK_SCALE
, XML_TYPE_PERCENT
, 0 ),
207 GMAP( "D3DEndAngle", XML_NAMESPACE_DR3D
, XML_END_ANGLE
, XML_TYPE_NUMBER
, 0 ),
208 GMAP( "D3DDepth", XML_NAMESPACE_DR3D
, XML_DEPTH
, XML_TYPE_MEASURE
, 0 ),
209 GMAP( "D3DDoubleSided", XML_NAMESPACE_DR3D
, XML_BACKFACE_CULLING
, XML_SD_TYPE_BACKFACE_CULLING
, 0 ),
211 // #107245# New 3D properties which are possible for lathe and extrude 3d objects
212 GMAP( "D3DCloseFront", XML_NAMESPACE_DR3D
, XML_CLOSE_FRONT
, XML_TYPE_BOOL
, 0 ),
213 GMAP( "D3DCloseBack", XML_NAMESPACE_DR3D
, XML_CLOSE_BACK
, XML_TYPE_BOOL
, 0 ),
215 // 3D lighting attributes
216 GMAP( "D3DNormalsKind", XML_NAMESPACE_DR3D
, XML_NORMALS_KIND
, XML_SD_TYPE_NORMALS_KIND
, 0 ),
217 GMAP( "D3DNormalsInvert", XML_NAMESPACE_DR3D
, XML_NORMALS_DIRECTION
, XML_SD_TYPE_NORMALS_DIRECTION
, 0 ),
219 // 3D texture attributes
220 GMAP( "D3DTextureProjectionX", XML_NAMESPACE_DR3D
, XML_TEX_GENERATION_MODE_X
, XML_SD_TYPE_TEX_GENERATION_MODE_X
, 0 ),
221 GMAP( "D3DTextureProjectionY", XML_NAMESPACE_DR3D
, XML_TEX_GENERATION_MODE_Y
, XML_SD_TYPE_TEX_GENERATION_MODE_Y
, 0 ),
222 GMAP( "D3DTextureKind", XML_NAMESPACE_DR3D
, XML_TEX_KIND
, XML_SD_TYPE_TEX_KIND
, 0 ),
223 GMAP( "D3DTextureMode", XML_NAMESPACE_DR3D
, XML_TEX_MODE
, XML_SD_TYPE_TEX_MODE
, 0 ),
224 GMAP( "D3DTextureFilter", XML_NAMESPACE_DR3D
, XML_TEX_FILTER
, XML_SD_TYPE_BACKFACE_CULLING
, 0 ),
226 // 3D material attributes
227 GMAP( "D3DMaterialColor", XML_NAMESPACE_DR3D
, XML_DIFFUSE_COLOR
, XML_TYPE_COLOR
, 0 ),
228 GMAP( "D3DMaterialEmission", XML_NAMESPACE_DR3D
, XML_EMISSIVE_COLOR
, XML_TYPE_COLOR
, 0 ),
229 GMAP( "D3DMaterialSpecular", XML_NAMESPACE_DR3D
, XML_SPECULAR_COLOR
, XML_TYPE_COLOR
, 0 ),
230 GMAP( "D3DMaterialSpecularIntensity", XML_NAMESPACE_DR3D
, XML_SHININESS
, XML_TYPE_PERCENT
, 0 ),
232 // 3D shadow attributes
233 GMAP( "D3DShadow3D", XML_NAMESPACE_DR3D
, XML_SHADOW
, XML_SD_TYPE_SHADOW
, 0 ),
235 // #FontWork# attributes
236 GMAP( "FontWorkStyle", XML_NAMESPACE_DRAW
, XML_FONTWORK_STYLE
, XML_SD_TYPE_FONTWORK_STYLE
, CTF_FONTWORK_STYLE
),
237 GMAP( "FontWorkAdjust", XML_NAMESPACE_DRAW
, XML_FONTWORK_ADJUST
, XML_SD_TYPE_FONTWORK_ADJUST
,CTF_FONTWORK_ADJUST
),
238 GMAP( "FontWorkDistance", XML_NAMESPACE_DRAW
, XML_FONTWORK_DISTANCE
, XML_TYPE_MEASURE
, CTF_FONTWORK_DISTANCE
),
239 GMAP( "FontWorkStart", XML_NAMESPACE_DRAW
, XML_FONTWORK_START
, XML_TYPE_MEASURE
, CTF_FONTWORK_START
),
240 GMAP( "FontWorkMirror", XML_NAMESPACE_DRAW
, XML_FONTWORK_MIRROR
, XML_TYPE_BOOL
, CTF_FONTWORK_MIRROR
),
241 GMAP( "FontWorkOutline", XML_NAMESPACE_DRAW
, XML_FONTWORK_OUTLINE
, XML_TYPE_BOOL
, CTF_FONTWORK_OUTLINE
),
242 GMAP( "FontWorkShadow", XML_NAMESPACE_DRAW
, XML_FONTWORK_SHADOW
, XML_SD_TYPE_FONTWORK_SHADOW
,CTF_FONTWORK_SHADOW
),
243 GMAP( "FontWorkShadowColor", XML_NAMESPACE_DRAW
, XML_FONTWORK_SHADOW_COLOR
, XML_TYPE_COLOR
, CTF_FONTWORK_SHADOWCOLOR
),
244 GMAP( "FontWorkShadowOffsetX", XML_NAMESPACE_DRAW
, XML_FONTWORK_SHADOW_OFFSET_X
, XML_TYPE_MEASURE
, CTF_FONTWORK_SHADOWOFFSETX
),
245 GMAP( "FontWorkShadowOffsetY", XML_NAMESPACE_DRAW
, XML_FONTWORK_SHADOW_OFFSET_Y
, XML_TYPE_MEASURE
, CTF_FONTWORK_SHADOWOFFSETY
),
246 GMAP( "FontWorkForm", XML_NAMESPACE_DRAW
, XML_FONTWORK_FORM
, XML_SD_TYPE_FONTWORK_FORM
, CTF_FONTWORK_FORM
),
247 GMAP( "FontWorkHideForm", XML_NAMESPACE_DRAW
, XML_FONTWORK_HIDE_FORM
, XML_TYPE_BOOL
, CTF_FONTWORK_HIDEFORM
),
248 GMAP( "FontWorkShadowTransparence", XML_NAMESPACE_DRAW
, XML_FONTWORK_SHADOW_TRANSPARENCE
, XML_TYPE_PERCENT
, CTF_FONTWORK_SHADOWTRANSPARENCE
),
250 // control attributes (border exists one mor time for the text additions of shapes)
251 GMAP( "ControlSymbolColor", XML_NAMESPACE_DRAW
, XML_SYMBOL_COLOR
, XML_TYPE_COLOR
, 0 ),
252 GMAP( "ControlBackground", XML_NAMESPACE_FO
, XML_BACKGROUND_COLOR
, XML_TYPE_COLOR
|MID_FLAG_MULTI_PROPERTY
, 0 ),
253 GMAP( "ControlBorder", XML_NAMESPACE_FO
, XML_BORDER
, XML_SD_TYPE_CONTROL_BORDER
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_MERGE_ATTRIBUTE
, 0 ),
254 GMAP( "ControlBorderColor", XML_NAMESPACE_FO
, XML_BORDER
, XML_SD_TYPE_CONTROL_BORDER_COLOR
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_MERGE_ATTRIBUTE
, 0 ),
255 GMAP( "ControlDataStyle", XML_NAMESPACE_STYLE
,XML_DATA_STYLE_NAME
, XML_TYPE_STRING
|MID_FLAG_NO_PROPERTY_EXPORT
|MID_FLAG_SPECIAL_ITEM
, CTF_SD_CONTROL_SHAPE_DATA_STYLE
),
256 GMAP( "ControlTextEmphasis", XML_NAMESPACE_STYLE
,XML_TEXT_EMPHASIZE
, XML_TYPE_CONTROL_TEXT_EMPHASIZE
, 0 ),
257 GMAP( "ImageScaleMode", XML_NAMESPACE_STYLE
,XML_REPEAT
, XML_SD_TYPE_IMAGE_SCALE_MODE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
258 GMAP( "ControlWritingMode", XML_NAMESPACE_STYLE
,XML_WRITING_MODE
, XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT
|MID_FLAG_MULTI_PROPERTY
, CTF_CONTROLWRITINGMODE
),
260 // special entries for floating frames
261 GMAP( "FrameIsAutoScroll", XML_NAMESPACE_DRAW
, XML_FRAME_DISPLAY_SCROLLBAR
, XML_TYPE_BOOL
|MID_FLAG_MULTI_PROPERTY
, CTF_FRAME_DISPLAY_SCROLLBAR
),
262 GMAP( "FrameIsBorder", XML_NAMESPACE_DRAW
, XML_FRAME_DISPLAY_BORDER
, XML_TYPE_BOOL
|MID_FLAG_MULTI_PROPERTY
, CTF_FRAME_DISPLAY_BORDER
),
263 GMAP( "FrameMarginWidth", XML_NAMESPACE_DRAW
, XML_FRAME_MARGIN_HORIZONTAL
, XML_TYPE_MEASURE_PX
|MID_FLAG_MULTI_PROPERTY
, CTF_FRAME_MARGIN_HORI
),
264 GMAP( "FrameMarginHeight", XML_NAMESPACE_DRAW
, XML_FRAME_MARGIN_VERTICAL
, XML_TYPE_MEASURE_PX
|MID_FLAG_MULTI_PROPERTY
, CTF_FRAME_MARGIN_VERT
),
265 GMAP( "VisibleArea", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_LEFT
, XML_TYPE_RECTANGLE_LEFT
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY
, CTF_SD_OLE_VIS_AREA_IMPORT_LEFT
),
266 GMAP( "VisibleArea", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_TOP
, XML_TYPE_RECTANGLE_TOP
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY
, CTF_SD_OLE_VIS_AREA_IMPORT_TOP
),
267 GMAP( "VisibleArea", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_WIDTH
, XML_TYPE_RECTANGLE_WIDTH
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY
, CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH
),
268 GMAP( "VisibleArea", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_HEIGHT
, XML_TYPE_RECTANGLE_HEIGHT
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY
, CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT
),
269 GMAP( "IsInternal", XML_NAMESPACE_DRAW
, XML__EMPTY
, XML_TYPE_BUILDIN_CMP_ONLY
, CTF_SD_OLE_ISINTERNAL
),
270 GMAP( "IsInternal", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_LEFT
, XML_TYPE_RECTANGLE_LEFT
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_SD_OLE_VIS_AREA_EXPORT_LEFT
),
271 GMAP( "IsInternal", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_TOP
, XML_TYPE_RECTANGLE_TOP
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_SD_OLE_VIS_AREA_EXPORT_TOP
),
272 GMAP( "IsInternal", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_WIDTH
, XML_TYPE_RECTANGLE_WIDTH
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH
),
273 GMAP( "IsInternal", XML_NAMESPACE_DRAW
, XML_VISIBLE_AREA_HEIGHT
, XML_TYPE_RECTANGLE_HEIGHT
|MID_FLAG_MERGE_PROPERTY
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT
),
275 GMAP( "Aspect", XML_NAMESPACE_DRAW
, XML_DRAW_ASPECT
, XML_TYPE_TEXT_DRAW_ASPECT
|MID_FLAG_MULTI_PROPERTY
, CTF_SD_OLE_ASPECT
),
277 // caption properties
278 GMAP( "CaptionType", XML_NAMESPACE_DRAW
, XML_CAPTION_TYPE
, XML_SD_TYPE_CAPTION_TYPE
, 0 ),
279 GMAP( "CaptionIsFixedAngle", XML_NAMESPACE_DRAW
, XML_CAPTION_ANGLE_TYPE
, XML_SD_TYPE_CAPTION_ANGLE_TYPE
, 0 ),
280 GMAP( "CaptionAngle", XML_NAMESPACE_DRAW
, XML_CAPTION_ANGLE
, XML_TYPE_NUMBER
, 0 ),
281 GMAP( "CaptionGap", XML_NAMESPACE_DRAW
, XML_CAPTION_GAP
, XML_TYPE_MEASURE
, 0 ),
282 GMAP( "CaptionEscapeDirection", XML_NAMESPACE_DRAW
, XML_CAPTION_ESCAPE_DIRECTION
, XML_SD_TYPE_CAPTION_ESC_DIR
, 0 ),
283 GMAP( "CaptionIsEscapeRelative", XML_NAMESPACE_DRAW
, XML_CAPTION_ESCAPE
, XML_SD_TYPE_CAPTION_IS_ESC_REL
|MID_FLAG_MULTI_PROPERTY
, CTF_CAPTION_ISESCREL
),
284 GMAP( "CaptionEscapeRelative", XML_NAMESPACE_DRAW
, XML_CAPTION_ESCAPE
, XML_SD_TYPE_CAPTION_ESC_REL
|MID_FLAG_MULTI_PROPERTY
, CTF_CAPTION_ESCREL
),
285 GMAP( "CaptionEscapeAbsolute", XML_NAMESPACE_DRAW
, XML_CAPTION_ESCAPE
, XML_SD_TYPE_CAPTION_ESC_ABS
|MID_FLAG_MULTI_PROPERTY
, CTF_CAPTION_ESCABS
),
286 GMAP( "CaptionLineLength", XML_NAMESPACE_DRAW
, XML_CAPTION_LINE_LENGTH
, XML_TYPE_MEASURE
, 0 ),
287 GMAP( "CaptionIsFitLineLength", XML_NAMESPACE_DRAW
, XML_CAPTION_FIT_LINE_LENGTH
, XML_TYPE_BOOL
, 0 ),
289 // misc object properties
290 GMAP( "MoveProtect", XML_NAMESPACE_STYLE
, XML_PROTECT
, XML_SD_TYPE_MOVE_PROTECT
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_MERGE_ATTRIBUTE
, CTF_SD_MOVE_PROTECT
),
291 GMAP( "SizeProtect", XML_NAMESPACE_STYLE
, XML_PROTECT
, XML_SD_TYPE_SIZE_PROTECT
|MID_FLAG_MULTI_PROPERTY
|MID_FLAG_MERGE_ATTRIBUTE
, CTF_SD_SIZE_PROTECT
),
295 //////////////////////////////////////////////////////////////////////////////
296 // entry list for presentation page properties
298 const XMLPropertyMapEntry aXMLSDPresPageProps
[] =
300 DPMAP( "UserDefinedAttributes", XML_NAMESPACE_TEXT
, XML_XMLNS
, XML_TYPE_ATTRIBUTE_CONTAINER
| MID_FLAG_SPECIAL_ITEM
, 0 ),
302 DPMAP( "Change", XML_NAMESPACE_PRESENTATION
, XML_TRANSITION_TYPE
, XML_SD_TYPE_PRESPAGE_TYPE
, CTF_PAGE_TRANS_TYPE
),
303 DPMAP( "Effect", XML_NAMESPACE_PRESENTATION
, XML_TRANSITION_STYLE
, XML_SD_TYPE_PRESPAGE_STYLE
, CTF_PAGE_TRANS_STYLE
),
304 DPMAP( "Speed", XML_NAMESPACE_PRESENTATION
, XML_TRANSITION_SPEED
, XML_SD_TYPE_PRESPAGE_SPEED
, CTF_PAGE_TRANS_SPEED
),
305 DPMAP( "HighResDuration", XML_NAMESPACE_PRESENTATION
, XML_DURATION
, XML_SD_TYPE_PRESPAGE_DURATION
, CTF_PAGE_TRANS_DURATION
),
306 DPMAP( "Visible", XML_NAMESPACE_PRESENTATION
, XML_VISIBILITY
, XML_SD_TYPE_PRESPAGE_VISIBILITY
, CTF_PAGE_VISIBLE
),
307 DPMAP( "Sound", XML_NAMESPACE_PRESENTATION
, XML_SOUND
, XML_TYPE_STRING
|MID_FLAG_ELEMENT_ITEM
, CTF_PAGE_SOUND_URL
),
308 DPMAP( "BackgroundFullSize", XML_NAMESPACE_DRAW
, XML_BACKGROUND_SIZE
, XML_SD_TYPE_PRESPAGE_BACKSIZE
, CTF_PAGE_BACKSIZE
),
310 DPMAP( "IsBackgroundVisible", XML_NAMESPACE_PRESENTATION
, XML_BACKGROUND_VISIBLE
, XML_TYPE_BOOL
, 0 ),
311 DPMAP( "IsBackgroundObjectsVisible", XML_NAMESPACE_PRESENTATION
, XML_BACKGROUND_OBJECTS_VISIBLE
, XML_TYPE_BOOL
, 0 ),
313 DPMAP( "FillStyle", XML_NAMESPACE_DRAW
, XML_FILL
, XML_SD_TYPE_FILLSTYLE
, 0 ),
314 DPMAP( "FillColor", XML_NAMESPACE_DRAW
, XML_FILL_COLOR
, XML_TYPE_COLOR
, 0 ),
315 DPMAP( "FillGradientName", XML_NAMESPACE_DRAW
, XML_FILL_GRADIENT_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLGRADIENTNAME
),
316 DPMAP( "FillGradientStepCount", XML_NAMESPACE_DRAW
, XML_GRADIENT_STEP_COUNT
, XML_TYPE_NUMBER
, 0 ),
317 DPMAP( "FillHatchName", XML_NAMESPACE_DRAW
, XML_FILL_HATCH_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLHATCHNAME
),
318 GMAP( "FillBackground", XML_NAMESPACE_DRAW
, XML_FILL_HATCH_SOLID
, XML_TYPE_BOOL
, 0 ),
319 DPMAP( "FillBitmapName", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLBITMAPNAME
),
320 DPMAP( "FillTransparenceGradientName", XML_NAMESPACE_DRAW
, XML_OPACITY_NAME
, XML_TYPE_STYLENAME
|MID_FLAG_NO_PROPERTY_IMPORT
, CTF_FILLTRANSNAME
),
321 DPMAP( "FillBitmapSizeX", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_WIDTH
, XML_SD_TYPE_FILLBITMAPSIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
322 DPMAP( "FillBitmapLogicalSize", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_WIDTH
, XML_SD_TYPE_LOGICAL_SIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
323 DPMAP( "FillBitmapSizeY", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_HEIGHT
, XML_SD_TYPE_FILLBITMAPSIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
324 DPMAP( "FillBitmapLogicalSize", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_HEIGHT
, XML_SD_TYPE_LOGICAL_SIZE
|MID_FLAG_MULTI_PROPERTY
, 0 ),
325 DPMAP( "FillBitmapMode", XML_NAMESPACE_STYLE
,XML_REPEAT
, XML_SD_TYPE_BITMAP_MODE
, 0 ),
326 DPMAP( "FillBitmapPositionOffsetX", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_REF_POINT_X
, XML_TYPE_PERCENT
, 0 ),
327 DPMAP( "FillBitmapPositionOffsetY", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_REF_POINT_Y
, XML_TYPE_PERCENT
, 0 ),
328 DPMAP( "FillBitmapRectanglePoint", XML_NAMESPACE_DRAW
, XML_FILL_IMAGE_REF_POINT
, XML_SD_TYPE_BITMAP_REFPOINT
, 0 ),
329 DPMAP( "FillBitmapOffsetX", XML_NAMESPACE_DRAW
, XML_TILE_REPEAT_OFFSET
, XML_SD_TYPE_BITMAPREPOFFSETX
|MID_FLAG_MULTI_PROPERTY
, CTF_REPEAT_OFFSET_X
),
330 DPMAP( "FillBitmapOffsetY", XML_NAMESPACE_DRAW
, XML_TILE_REPEAT_OFFSET
, XML_SD_TYPE_BITMAPREPOFFSETY
|MID_FLAG_MULTI_PROPERTY
, CTF_REPEAT_OFFSET_Y
),
332 DPMAP( "IsHeaderVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_HEADER
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_HEADER_VISIBLE
),
333 DPMAP( "IsFooterVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_FOOTER
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_FOOTER_VISIBLE
),
334 DPMAP( "IsPageNumberVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_PAGE_NUMBER
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_PAGE_NUMBER_VISIBLE
),
335 DPMAP( "IsDateTimeVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_DATE_TIME
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_DATE_TIME_VISIBLE
),
337 DPMAP( "TransitionType", XML_NAMESPACE_SMIL
, XML_TYPE
, XML_SD_TYPE_TRANSITION_TYPE
, CTF_PAGE_TRANSITION_TYPE
),
338 DPMAP( "TransitionSubtype", XML_NAMESPACE_SMIL
, XML_SUBTYPE
, XML_SD_TYPE_TRANSTIION_SUBTYPE
, CTF_PAGE_TRANSITION_SUBTYPE
),
339 DPMAP( "TransitionDirection", XML_NAMESPACE_SMIL
, XML_DIRECTION
, XML_SD_TYPE_TRANSTIION_DIRECTION
, CTF_PAGE_TRANSITION_DIRECTION
),
340 DPMAP( "TransitionFadeColor", XML_NAMESPACE_SMIL
, XML_FADECOLOR
, XML_TYPE_COLOR
, CTF_PAGE_TRANSITION_FADECOLOR
),
344 const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter
[] =
346 DPMAP( "IsHeaderVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_HEADER
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_HEADER_VISIBLE
),
347 DPMAP( "IsFooterVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_FOOTER
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_FOOTER_VISIBLE
),
348 DPMAP( "IsPageNumberVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_PAGE_NUMBER
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_PAGE_NUMBER_VISIBLE
),
349 DPMAP( "IsDateTimeVisible", XML_NAMESPACE_PRESENTATION
, XML_DISPLAY_DATE_TIME
, XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
, CTF_DATE_TIME_VISIBLE
),
354 /** contains the attribute to property mapping for a drawing layer table
355 WARNING: if attributes are added, SdXMLTableShapeContext::processAttribute needs to be updated!
357 const XMLPropertyMapEntry aXMLTableShapeAttributes
[] =
359 _MAP( "UseFirstRowStyle", XML_NAMESPACE_TABLE
, XML_USE_FIRST_ROW_STYLES
, XML_TYPE_BOOL
, 0 ),
360 _MAP( "UseLastRowStyle", XML_NAMESPACE_TABLE
, XML_USE_LAST_ROW_STYLES
, XML_TYPE_BOOL
, 0 ),
361 _MAP( "UseFirstColumnStyle", XML_NAMESPACE_TABLE
, XML_USE_FIRST_COLUMN_STYLES
, XML_TYPE_BOOL
, 0 ),
362 _MAP( "UseLastColumnStyle", XML_NAMESPACE_TABLE
, XML_USE_LAST_COLUMN_STYLES
, XML_TYPE_BOOL
, 0 ),
363 _MAP( "UseBandingRowStyle", XML_NAMESPACE_TABLE
, XML_USE_BANDING_ROWS_STYLES
, XML_TYPE_BOOL
, 0 ),
364 _MAP( "UseBandingColumnStyle", XML_NAMESPACE_TABLE
, XML_USE_BANDING_COLUMNS_STYLES
, XML_TYPE_BOOL
, 0 ),
368 //////////////////////////////////////////////////////////////////////////////
369 // implementation of factory for own graphic properties
371 SvXMLEnumMapEntry aXML_LineStyle_EnumMap
[] =
373 { XML_NONE
, drawing::LineStyle_NONE
},
374 { XML_SOLID
, drawing::LineStyle_SOLID
},
375 { XML_DASH
, drawing::LineStyle_DASH
},
376 { XML_TOKEN_INVALID
, 0 }
379 SvXMLEnumMapEntry aXML_LineJoint_EnumMap
[] =
381 { XML_NONE
, drawing::LineJoint_NONE
},
382 { XML_MITER
, drawing::LineJoint_MITER
},
383 { XML_ROUND
, drawing::LineJoint_ROUND
},
384 { XML_BEVEL
, drawing::LineJoint_BEVEL
},
385 { XML_MIDDLE
, drawing::LineJoint_MIDDLE
},
386 { XML_TOKEN_INVALID
, 0 }
389 SvXMLEnumMapEntry aXML_LineCap_EnumMap
[] =
391 { XML_BUTT
, drawing::LineCap_BUTT
},
392 { XML_ROUND
, drawing::LineCap_ROUND
},
393 // use XML_GRADIENTSTYLE_SQUARE as XML_SQUARE, is defined as "square" already
394 { XML_GRADIENTSTYLE_SQUARE
, drawing::LineCap_SQUARE
},
395 { XML_TOKEN_INVALID
, 0 }
398 SvXMLEnumMapEntry aXML_FillStyle_EnumMap
[] =
400 { XML_NONE
, drawing::FillStyle_NONE
},
401 { XML_SOLID
, drawing::FillStyle_SOLID
},
402 { XML_BITMAP
, drawing::FillStyle_BITMAP
},
403 { XML_GRADIENT
, drawing::FillStyle_GRADIENT
},
404 { XML_HATCH
, drawing::FillStyle_HATCH
},
405 { XML_TOKEN_INVALID
, 0 }
408 SvXMLEnumMapEntry aXML_PresChange_EnumMap
[] =
411 { XML_AUTOMATIC
, 1 },
412 { XML_SEMI_AUTOMATIC
, 2 },
413 { XML_TOKEN_INVALID
, 0 }
416 SvXMLEnumMapEntry aXML_TransSpeed_EnumMap
[] =
418 { XML_FAST
, presentation::AnimationSpeed_FAST
},
419 { XML_MEDIUM
, presentation::AnimationSpeed_MEDIUM
},
420 { XML_SLOW
, presentation::AnimationSpeed_SLOW
},
421 { XML_TOKEN_INVALID
, 0 }
424 SvXMLEnumMapEntry aXML_FadeEffect_EnumMap
[] =
426 { XML_NONE
, presentation::FadeEffect_NONE
},
427 { XML_FADE_FROM_LEFT
, presentation::FadeEffect_FADE_FROM_LEFT
},
428 { XML_FADE_FROM_TOP
, presentation::FadeEffect_FADE_FROM_TOP
},
429 { XML_FADE_FROM_RIGHT
, presentation::FadeEffect_FADE_FROM_RIGHT
},
430 { XML_FADE_FROM_BOTTOM
, presentation::FadeEffect_FADE_FROM_BOTTOM
},
431 { XML_FADE_TO_CENTER
, presentation::FadeEffect_FADE_TO_CENTER
},
432 { XML_FADE_FROM_CENTER
, presentation::FadeEffect_FADE_FROM_CENTER
},
433 { XML_MOVE_FROM_LEFT
, presentation::FadeEffect_MOVE_FROM_LEFT
},
434 { XML_MOVE_FROM_TOP
, presentation::FadeEffect_MOVE_FROM_TOP
},
435 { XML_MOVE_FROM_RIGHT
, presentation::FadeEffect_MOVE_FROM_RIGHT
},
436 { XML_MOVE_FROM_BOTTOM
, presentation::FadeEffect_MOVE_FROM_BOTTOM
},
437 { XML_ROLL_FROM_TOP
, presentation::FadeEffect_ROLL_FROM_TOP
},
438 { XML_ROLL_FROM_LEFT
, presentation::FadeEffect_ROLL_FROM_LEFT
},
439 { XML_ROLL_FROM_RIGHT
, presentation::FadeEffect_ROLL_FROM_RIGHT
},
440 { XML_ROLL_FROM_BOTTOM
, presentation::FadeEffect_ROLL_FROM_BOTTOM
},
441 { XML_VERTICAL_STRIPES
, presentation::FadeEffect_VERTICAL_STRIPES
},
442 { XML_HORIZONTAL_STRIPES
, presentation::FadeEffect_HORIZONTAL_STRIPES
},
443 { XML_CLOCKWISE
, presentation::FadeEffect_CLOCKWISE
},
444 { XML_COUNTERCLOCKWISE
, presentation::FadeEffect_COUNTERCLOCKWISE
},
445 { XML_FADE_FROM_UPPERLEFT
, presentation::FadeEffect_FADE_FROM_UPPERLEFT
},
446 { XML_FADE_FROM_UPPERRIGHT
, presentation::FadeEffect_FADE_FROM_UPPERRIGHT
},
447 { XML_FADE_FROM_LOWERLEFT
, presentation::FadeEffect_FADE_FROM_LOWERLEFT
},
448 { XML_FADE_FROM_LOWERRIGHT
, presentation::FadeEffect_FADE_FROM_LOWERRIGHT
},
449 { XML_CLOSE_VERTICAL
, presentation::FadeEffect_CLOSE_VERTICAL
},
450 { XML_CLOSE_HORIZONTAL
, presentation::FadeEffect_CLOSE_HORIZONTAL
},
451 { XML_OPEN_VERTICAL
, presentation::FadeEffect_OPEN_VERTICAL
},
452 { XML_OPEN_HORIZONTAL
, presentation::FadeEffect_OPEN_HORIZONTAL
},
453 { XML_SPIRALIN_LEFT
, presentation::FadeEffect_SPIRALIN_LEFT
},
454 { XML_SPIRALIN_RIGHT
, presentation::FadeEffect_SPIRALIN_RIGHT
},
455 { XML_SPIRALOUT_LEFT
, presentation::FadeEffect_SPIRALOUT_LEFT
},
456 { XML_SPIRALOUT_RIGHT
, presentation::FadeEffect_SPIRALOUT_RIGHT
},
457 { XML_DISSOLVE
, presentation::FadeEffect_DISSOLVE
},
458 { XML_WAVYLINE_FROM_LEFT
, presentation::FadeEffect_WAVYLINE_FROM_LEFT
},
459 { XML_WAVYLINE_FROM_TOP
, presentation::FadeEffect_WAVYLINE_FROM_TOP
},
460 { XML_WAVYLINE_FROM_RIGHT
, presentation::FadeEffect_WAVYLINE_FROM_RIGHT
},
461 { XML_WAVYLINE_FROM_BOTTOM
, presentation::FadeEffect_WAVYLINE_FROM_BOTTOM
},
462 { XML_RANDOM
, presentation::FadeEffect_RANDOM
},
463 { XML_STRETCH_FROM_LEFT
, presentation::FadeEffect_STRETCH_FROM_LEFT
},
464 { XML_STRETCH_FROM_TOP
, presentation::FadeEffect_STRETCH_FROM_TOP
},
465 { XML_STRETCH_FROM_RIGHT
, presentation::FadeEffect_STRETCH_FROM_RIGHT
},
466 { XML_STRETCH_FROM_BOTTOM
, presentation::FadeEffect_STRETCH_FROM_BOTTOM
},
467 { XML_VERTICAL_LINES
, presentation::FadeEffect_VERTICAL_LINES
},
468 { XML_HORIZONTAL_LINES
, presentation::FadeEffect_HORIZONTAL_LINES
},
469 { XML_MOVE_FROM_UPPERLEFT
, presentation::FadeEffect_MOVE_FROM_UPPERLEFT
},
470 { XML_MOVE_FROM_UPPERRIGHT
, presentation::FadeEffect_MOVE_FROM_UPPERRIGHT
},
471 { XML_MOVE_FROM_LOWERRIGHT
, presentation::FadeEffect_MOVE_FROM_LOWERRIGHT
},
472 { XML_MOVE_FROM_LOWERLEFT
, presentation::FadeEffect_MOVE_FROM_LOWERLEFT
},
473 { XML_UNCOVER_TO_LEFT
, presentation::FadeEffect_UNCOVER_TO_LEFT
},
474 { XML_UNCOVER_TO_UPPERLEFT
, presentation::FadeEffect_UNCOVER_TO_UPPERLEFT
},
475 { XML_UNCOVER_TO_TOP
, presentation::FadeEffect_UNCOVER_TO_TOP
},
476 { XML_UNCOVER_TO_UPPERRIGHT
,presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT
},
477 { XML_UNCOVER_TO_RIGHT
, presentation::FadeEffect_UNCOVER_TO_RIGHT
},
478 { XML_UNCOVER_TO_LOWERRIGHT
,presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT
},
479 { XML_UNCOVER_TO_BOTTOM
, presentation::FadeEffect_UNCOVER_TO_BOTTOM
},
480 { XML_UNCOVER_TO_LOWERLEFT
, presentation::FadeEffect_UNCOVER_TO_LOWERLEFT
},
481 { XML_VERTICAL_CHECKERBOARD
,presentation::FadeEffect_VERTICAL_CHECKERBOARD
},
482 { XML_HORIZONTAL_CHECKERBOARD
,presentation::FadeEffect_HORIZONTAL_CHECKERBOARD
},
483 { XML_TOKEN_INVALID
, 0 }
486 SvXMLEnumMapEntry aXML_ConnectionKind_EnumMap
[] =
488 { XML_STANDARD
, drawing::ConnectorType_STANDARD
},
489 { XML_CURVE
, drawing::ConnectorType_CURVE
},
490 { XML_LINE
, drawing::ConnectorType_LINE
},
491 { XML_LINES
, drawing::ConnectorType_LINES
},
492 { XML_TOKEN_INVALID
, 0 }
495 SvXMLEnumMapEntry aXML_BitmapMode_EnumMap
[] =
497 { XML_REPEAT
, drawing::BitmapMode_REPEAT
},
498 { XML_STRETCH
, drawing::BitmapMode_STRETCH
},
499 { XML_BACKGROUND_NO_REPEAT
, drawing::BitmapMode_NO_REPEAT
},
500 { XML_TOKEN_INVALID
, 0 }
503 //////////////////////////////////////////////////////////////////////////////
506 SvXMLEnumMapEntry aXML_NormalsKind_EnumMap
[] =
508 { XML_OBJECT
, drawing::NormalsKind_SPECIFIC
},
509 { XML_FLAT
, drawing::NormalsKind_FLAT
},
510 { XML_SPHERE
, drawing::NormalsKind_SPHERE
},
511 { XML_TOKEN_INVALID
, 0 }
514 SvXMLEnumMapEntry aXML_TexGenerationX_EnumMap
[] =
516 { XML_OBJECT
, drawing::TextureProjectionMode_OBJECTSPECIFIC
},
517 { XML_PARALLEL
, drawing::TextureProjectionMode_PARALLEL
},
518 { XML_SPHERE
, drawing::TextureProjectionMode_SPHERE
},
519 { XML_TOKEN_INVALID
, 0 }
522 SvXMLEnumMapEntry aXML_TexGenerationY_EnumMap
[] =
524 { XML_OBJECT
, drawing::TextureProjectionMode_OBJECTSPECIFIC
},
525 { XML_PARALLEL
, drawing::TextureProjectionMode_PARALLEL
},
526 { XML_SPHERE
, drawing::TextureProjectionMode_SPHERE
},
527 { XML_TOKEN_INVALID
, 0 }
530 SvXMLEnumMapEntry aXML_TexKind_EnumMap
[] =
532 { XML_LUMINANCE
, drawing::TextureKind_LUMINANCE
},
533 { XML_COLOR
, drawing::TextureKind_COLOR
},
534 { XML_TOKEN_INVALID
, 0 }
537 SvXMLEnumMapEntry aXML_TexMode_EnumMap
[] =
539 { XML_REPLACE
, drawing::TextureMode_REPLACE
},
540 { XML_MODULATE
, drawing::TextureMode_MODULATE
},
541 { XML_BLEND
, drawing::TextureMode_BLEND
},
542 { XML_TOKEN_INVALID
, 0 }
545 SvXMLEnumMapEntry aXML_RefPoint_EnumMap
[] =
547 { XML_TOP_LEFT
, drawing::RectanglePoint_LEFT_TOP
},
548 { XML_TOP
, drawing::RectanglePoint_MIDDLE_TOP
},
549 { XML_TOP_RIGHT
, drawing::RectanglePoint_RIGHT_TOP
},
550 { XML_LEFT
, drawing::RectanglePoint_LEFT_MIDDLE
},
551 { XML_CENTER
, drawing::RectanglePoint_MIDDLE_MIDDLE
},
552 { XML_RIGHT
, drawing::RectanglePoint_RIGHT_MIDDLE
},
553 { XML_BOTTOM_LEFT
, drawing::RectanglePoint_LEFT_BOTTOM
},
554 { XML_BOTTOM
, drawing::RectanglePoint_MIDDLE_BOTTOM
},
555 { XML_BOTTOM_RIGHT
, drawing::RectanglePoint_RIGHT_BOTTOM
},
556 { XML_TOKEN_INVALID
, 0 }
559 SvXMLEnumMapEntry aXML_CircleKind_EnumMap
[] =
561 { XML_FULL
, drawing::CircleKind_FULL
},
562 { XML_SECTION
, drawing::CircleKind_SECTION
},
563 { XML_CUT
, drawing::CircleKind_CUT
},
564 { XML_ARC
, drawing::CircleKind_ARC
},
565 { XML_TOKEN_INVALID
, 0 }
568 SvXMLEnumMapEntry aXML_WritingMode_EnumMap
[] =
570 { XML_TB_RL
, text::WritingMode_TB_RL
},
571 { XML_LR_TB
, text::WritingMode_LR_TB
},
572 { XML_TOKEN_INVALID
, 0 }
575 SvXMLEnumMapEntry
const pXML_TextAnimation_Enum
[] =
577 { XML_NONE
, drawing::TextAnimationKind_NONE
},
578 { XML_BLINKING
, drawing::TextAnimationKind_BLINK
}, // will be filtered
579 { XML_SCROLL
, drawing::TextAnimationKind_SCROLL
},
580 { XML_ALTERNATE
, drawing::TextAnimationKind_ALTERNATE
},
581 { XML_SLIDE
, drawing::TextAnimationKind_SLIDE
},
582 { XML_TOKEN_INVALID
, 0 }
585 SvXMLEnumMapEntry
const pXML_TextAnimation_Blinking_Enum
[] =
587 { XML_FALSE
, drawing::TextAnimationKind_NONE
},
588 { XML_TRUE
, drawing::TextAnimationKind_BLINK
},
589 { XML_FALSE
, drawing::TextAnimationKind_SCROLL
},
590 { XML_FALSE
, drawing::TextAnimationKind_ALTERNATE
},
591 { XML_FALSE
, drawing::TextAnimationKind_SLIDE
},
592 { XML_TOKEN_INVALID
, 0 }
595 SvXMLEnumMapEntry
const pXML_TextAnimationDirection_Enum
[] =
597 { XML_LEFT
, drawing::TextAnimationDirection_LEFT
},
598 { XML_RIGHT
, drawing::TextAnimationDirection_RIGHT
}, // will be filtered
599 { XML_UP
, drawing::TextAnimationDirection_UP
},
600 { XML_DOWN
, drawing::TextAnimationDirection_DOWN
},
601 { XML_TOKEN_INVALID
, 0 }
604 SvXMLEnumMapEntry
const pXML_TextAlign_Enum
[] =
606 { XML_LEFT
, drawing::TextHorizontalAdjust_LEFT
},
607 { XML_CENTER
, drawing::TextHorizontalAdjust_CENTER
},
608 { XML_RIGHT
, drawing::TextHorizontalAdjust_RIGHT
},
609 { XML_JUSTIFY
, drawing::TextHorizontalAdjust_BLOCK
},
610 { XML_TOKEN_INVALID
, 0 }
613 SvXMLEnumMapEntry
const pXML_VerticalAlign_Enum
[] =
615 { XML_TOP
, drawing::TextVerticalAdjust_TOP
},
616 { XML_MIDDLE
, drawing::TextVerticalAdjust_CENTER
},
617 { XML_BOTTOM
, drawing::TextVerticalAdjust_BOTTOM
},
618 { XML_JUSTIFY
, drawing::TextVerticalAdjust_BLOCK
},
619 { XML_TOKEN_INVALID
, 0 }
622 SvXMLEnumMapEntry
const pXML_FitToSize_Enum_Odf12
[] =
624 { XML_FALSE
, drawing::TextFitToSizeType_NONE
},
625 { XML_TRUE
, drawing::TextFitToSizeType_PROPORTIONAL
},
626 { XML_TRUE
, drawing::TextFitToSizeType_ALLLINES
},
627 { XML_TRUE
, drawing::TextFitToSizeType_AUTOFIT
},
628 { XML_TOKEN_INVALID
, 0 }
631 SvXMLEnumMapEntry
const pXML_FitToSize_Enum
[] =
633 { XML_FALSE
, drawing::TextFitToSizeType_NONE
},
634 { XML_TRUE
, drawing::TextFitToSizeType_PROPORTIONAL
},
635 { XML_ALL
, drawing::TextFitToSizeType_ALLLINES
},
636 { XML_SHRINK_TO_FIT
,drawing::TextFitToSizeType_AUTOFIT
},
637 { XML_TOKEN_INVALID
, 0 }
640 SvXMLEnumMapEntry
const pXML_MeasureUnit_Enum
[] =
642 { XML_AUTOMATIC
, 0 },
649 { XML_UNIT_INCH
, 8 },
650 { XML_UNIT_FOOT
, 9 },
651 { XML_UNIT_MILES
, 10 },
652 { XML_TOKEN_INVALID
,0 }
655 SvXMLEnumMapEntry
const pXML_Measure_HAlign_Enum
[] =
657 { XML_AUTOMATIC
, drawing::MeasureTextHorzPos_AUTO
},
658 { XML_LEFT_OUTSIDE
, drawing::MeasureTextHorzPos_LEFTOUTSIDE
},
659 { XML_INSIDE
, drawing::MeasureTextHorzPos_INSIDE
},
660 { XML_RIGHT_OUTSIDE
, drawing::MeasureTextHorzPos_RIGHTOUTSIDE
},
661 { XML_TOKEN_INVALID
,0 }
664 SvXMLEnumMapEntry
const pXML_Measure_VAlign_Enum
[] =
666 { XML_AUTOMATIC
, drawing::MeasureTextVertPos_AUTO
},
667 { XML_ABOVE
, drawing::MeasureTextVertPos_EAST
},
668 { XML_BELOW
, drawing::MeasureTextVertPos_WEST
},
669 { XML_CENTER
, drawing::MeasureTextVertPos_CENTERED
},
670 { XML_TOKEN_INVALID
,0 }
674 SvXMLEnumMapEntry
const pXML_Fontwork_Style_Enum
[] =
676 { XML_ROTATE
, 0 }, //XFT_ROTATE,
677 { XML_UPRIGHT
, 1 }, //XFT_UPRIGHT,
678 { XML_SLANT_X
, 2 }, //XFT_SLANTX,
679 { XML_SLANT_Y
, 3 }, //XFT_SLANTY,
680 { XML_NONE
, 4 }, //XFT_NONE
681 { XML_TOKEN_INVALID
,0 }
684 SvXMLEnumMapEntry
const pXML_Fontwork_Adjust_Enum
[] =
686 { XML_LEFT
, 0 }, //XFT_LEFT,
687 { XML_RIGHT
, 1 }, //XFT_RIGHT,
688 { XML_AUTOSIZE
, 2 }, //XFT_AUTOSIZE,
689 { XML_CENTER
, 3 }, //XFT_CENTER
690 { XML_TOKEN_INVALID
,0 }
693 SvXMLEnumMapEntry
const pXML_Fontwork_Shadow_Enum
[] =
695 { XML_NORMAL
, 0 }, //XFTSHADOW_NORMAL,
696 { XML_SLANT
, 1 }, //XFTSHADOW_SLANT,
697 { XML_NONE
, 2 }, //XFTSHADOW_NONE
698 { XML_TOKEN_INVALID
,0 }
701 SvXMLEnumMapEntry
const pXML_Fontwork_Form_Enum
[] =
703 { XML_NONE
, 0 }, //XFTFORM_NONE,
704 { XML_TOPCIRCLE
, 1 }, //XFTFORM_TOPCIRC,
705 { XML_BOTTOMCIRCLE
, 2 }, //XFTFORM_BOTCIRC,
706 { XML_LEFTCIRCLE
, 3 }, //XFTFORM_LFTCIRC,
707 { XML_RIGHTCIRCLE
, 4 }, //XFTFORM_RGTCIRC,
708 { XML_TOPARC
, 5 }, //XFTFORM_TOPARC,
709 { XML_BOTTOMARC
, 6 }, //XFTFORM_BOTARC,
710 { XML_LEFTARC
, 7 }, //XFTFORM_LFTARC,
711 { XML_RIGHTARC
, 8 }, //XFTFORM_RGTARC,
712 { XML_BUTTON1
, 9 }, //XFTFORM_BUTTON1,
713 { XML_BUTTON2
, 10 }, //XFTFORM_BUTTON2,
714 { XML_BUTTON3
, 11 }, //XFTFORM_BUTTON3,
715 { XML_BUTTON4
, 12 }, //XFTFORM_BUTTON4
716 { XML_TOKEN_INVALID
,0 }
719 SvXMLEnumMapEntry
const pXML_Caption_Esc_Dir_Enum
[] =
721 { XML_HORIZONTAL
, 0 }, //SDRCAPT_ESCHORIZONTAL,
722 { XML_VERTICAL
, 1 }, //SDRCAPT_ESCVERTICAL,
723 { XML_AUTO
, 2 }, //SDRCAPT_ESCBESTFIT,
724 { XML_TOKEN_INVALID
,0 }
727 SvXMLEnumMapEntry
const pXML_Caption_Type_Enum
[] =
729 { XML_STRAIGHT_LINE
, 0 }, //SDRCAPT_TYPE1,
730 { XML_ANGLED_LINE
, 1 }, //SDRCAPT_TYPE2,
731 { XML_ANGLED_CONNECTOR_LINE
, 2 }, //SDRCAPT_TYPE3,
732 { XML_TOKEN_INVALID
,0 }
735 //////////////////////////////////////////////////////////////////////////////
737 class XMLCaptionEscapeRelative
: public XMLPropertyHandler
740 virtual sal_Bool
importXML(
741 const OUString
& rStrImpValue
,
742 ::com::sun::star::uno::Any
& rValue
,
743 const SvXMLUnitConverter
& rUnitConverter
) const;
744 virtual sal_Bool
exportXML(
745 OUString
& rStrExpValue
,
746 const ::com::sun::star::uno::Any
& rValue
,
747 const SvXMLUnitConverter
& rUnitConverter
) const;
750 sal_Bool
XMLCaptionEscapeRelative::importXML( const OUString
& rStrImpValue
, Any
& rValue
, const SvXMLUnitConverter
& ) const
754 if (!::sax::Converter::convertPercent( nValue
, rStrImpValue
))
762 sal_Bool
XMLCaptionEscapeRelative::exportXML( OUString
& rStrExpValue
, const Any
& rValue
, const SvXMLUnitConverter
& ) const
764 sal_Int32 nValue
= 0;
765 if( !(rValue
>>= nValue
) )
770 ::sax::Converter::convertPercent( aOut
, nValue
);
771 rStrExpValue
= aOut
.makeStringAndClear();
775 //////////////////////////////////////////////////////////////////////////////
777 class XMLMoveSizeProtectHdl
: public XMLPropertyHandler
780 XMLMoveSizeProtectHdl( sal_Int32 nType
) : mnType( nType
) {}
782 virtual sal_Bool
importXML(
783 const OUString
& rStrImpValue
,
784 ::com::sun::star::uno::Any
& rValue
,
785 const SvXMLUnitConverter
& rUnitConverter
) const;
786 virtual sal_Bool
exportXML(
787 OUString
& rStrExpValue
,
788 const ::com::sun::star::uno::Any
& rValue
,
789 const SvXMLUnitConverter
& rUnitConverter
) const;
791 const sal_Int32 mnType
;
794 sal_Bool
XMLMoveSizeProtectHdl::importXML( const OUString
& rStrImpValue
, Any
& rValue
, const SvXMLUnitConverter
& ) const
796 const sal_Bool bValue
= rStrImpValue
.indexOf( GetXMLToken( mnType
== XML_SD_TYPE_MOVE_PROTECT
? XML_POSITION
: XML_SIZE
) ) != -1;
801 sal_Bool
XMLMoveSizeProtectHdl::exportXML( OUString
& rStrExpValue
, const Any
& rValue
, const SvXMLUnitConverter
& ) const
803 sal_Bool bValue
= sal_Bool();
804 if( !(rValue
>>= bValue
) )
809 if( !rStrExpValue
.isEmpty() )
812 rStrExpValue
+= GetXMLToken( mnType
== XML_SD_TYPE_MOVE_PROTECT
? XML_POSITION
: XML_SIZE
);
819 //////////////////////////////////////////////////////////////////////////////
821 class XMLSdHeaderFooterVisibilityTypeHdl
: public XMLPropertyHandler
824 virtual ~XMLSdHeaderFooterVisibilityTypeHdl();
826 virtual sal_Bool
importXML( const OUString
& rStrImpValue
, ::com::sun::star::uno::Any
& rValue
, const SvXMLUnitConverter
& rUnitConverter
) const;
827 virtual sal_Bool
exportXML( OUString
& rStrExpValue
, const ::com::sun::star::uno::Any
& rValue
, const SvXMLUnitConverter
& rUnitConverter
) const;
830 XMLSdHeaderFooterVisibilityTypeHdl::~XMLSdHeaderFooterVisibilityTypeHdl()
834 sal_Bool
XMLSdHeaderFooterVisibilityTypeHdl::importXML(
835 const OUString
& rStrImpValue
,
836 ::com::sun::star::uno::Any
& rValue
,
837 const SvXMLUnitConverter
& ) const
840 // attributes with this type where saved with VISIBLE|HIDDEN prior
841 // to src680m67. So we have to import that correctly
842 const sal_Bool bBool
= IsXMLToken(rStrImpValue
, XML_TRUE
) || IsXMLToken(rStrImpValue
, XML_VISIBLE
);
844 return bBool
|| IsXMLToken(rStrImpValue
, XML_FALSE
) || IsXMLToken(rStrImpValue
, XML_HIDDEN
);
847 sal_Bool
XMLSdHeaderFooterVisibilityTypeHdl::exportXML(
848 OUString
& rStrExpValue
,
850 const SvXMLUnitConverter
& ) const
852 sal_Bool bRet
= sal_False
;
854 sal_Bool bValue
= sal_Bool();
856 if (rValue
>>= bValue
)
858 ::sax::Converter::convertBool( aOut
, bValue
);
859 rStrExpValue
= aOut
.makeStringAndClear();
868 //////////////////////////////////////////////////////////////////////////////
870 XMLSdPropHdlFactory::XMLSdPropHdlFactory( uno::Reference
< frame::XModel
> xModel
, SvXMLImport
& rImport
)
871 : mxModel( xModel
), mpExport(0), mpImport( &rImport
)
875 XMLSdPropHdlFactory::XMLSdPropHdlFactory( uno::Reference
< frame::XModel
> xModel
, SvXMLExport
& rExport
)
876 : mxModel( xModel
), mpExport( &rExport
), mpImport(0)
880 XMLSdPropHdlFactory::~XMLSdPropHdlFactory()
884 const XMLPropertyHandler
* XMLSdPropHdlFactory::GetPropertyHandler( sal_Int32 nType
) const
886 const XMLPropertyHandler
* pHdl
= XMLPropertyHandlerFactory::GetPropertyHandler( nType
);
891 case XML_SD_TYPE_STROKE
:
893 pHdl
= new XMLEnumPropertyHdl( aXML_LineStyle_EnumMap
, ::getCppuType((const drawing::LineStyle
*)0) );
896 case XML_SD_TYPE_LINEJOIN
:
898 pHdl
= new XMLEnumPropertyHdl( aXML_LineJoint_EnumMap
, ::getCppuType((const drawing::LineJoint
*)0) );
901 case XML_SD_TYPE_LINECAP
:
903 pHdl
= new XMLEnumPropertyHdl( aXML_LineCap_EnumMap
, ::getCppuType((const drawing::LineCap
*)0) );
906 case XML_SD_TYPE_FILLSTYLE
:
908 pHdl
= new XMLEnumPropertyHdl( aXML_FillStyle_EnumMap
, ::getCppuType((const drawing::FillStyle
*)0) );
911 case XML_SD_TYPE_PRESPAGE_TYPE
:
913 pHdl
= new XMLEnumPropertyHdl( aXML_PresChange_EnumMap
, ::getCppuType((const sal_Int32
*)0) );
916 case XML_SD_TYPE_SHADOW
:
918 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_VISIBLE
), GetXMLToken(XML_HIDDEN
) );
921 case XML_TYPE_SD_MIRROR
:
923 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_HORIZONTAL
), GetXMLToken(XML_NONE
) );
926 case XML_SD_TYPE_PRESPAGE_STYLE
:
928 pHdl
= new XMLEnumPropertyHdl( aXML_FadeEffect_EnumMap
, ::getCppuType((const presentation::FadeEffect
*)0) );
931 case XML_SD_TYPE_PRESPAGE_SPEED
:
933 pHdl
= new XMLEnumPropertyHdl( aXML_TransSpeed_EnumMap
, ::getCppuType((const presentation::AnimationSpeed
*)0) );
936 case XML_SD_TYPE_PRESPAGE_DURATION
:
938 pHdl
= new XMLDurationPropertyHdl();
941 case XML_SD_TYPE_TEXT_CROSSEDOUT
:
943 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_SOLID
), GetXMLToken(XML_NONE
) );
946 case XML_SD_TYPE_OPACITY
:
948 pHdl
= new XMLOpacityPropertyHdl(mpImport
);
951 case XML_SD_TYPE_WRITINGMODE
:
953 pHdl
= new XMLEnumPropertyHdl( aXML_WritingMode_EnumMap
, ::getCppuType((const text::WritingMode
*)0) );
956 case XML_SD_TYPE_PRESPAGE_VISIBILITY
:
958 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_VISIBLE
), GetXMLToken(XML_HIDDEN
) );
961 case XML_SD_TYPE_PRESPAGE_BACKSIZE
:
963 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FULL
), GetXMLToken(XML_BORDER
) );
967 //////////////////////////////////////////////////////////////////
970 case XML_SD_TYPE_BACKFACE_CULLING
:
972 // #87922# DoubleSided -> BackfaceCulling
973 // This sal_Bool needs to be flipped, DoubleSided sal_True -> NO Backface culling
975 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_DISABLED
), GetXMLToken(XML_ENABLED
) );
979 case XML_SD_TYPE_NORMALS_KIND
:
981 pHdl
= new XMLEnumPropertyHdl( aXML_NormalsKind_EnumMap
, ::getCppuType((const drawing::NormalsKind
*)0) );
984 case XML_SD_TYPE_NORMALS_DIRECTION
:
986 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_NORMAL
), GetXMLToken(XML_INVERSE
) );
989 case XML_SD_TYPE_TEX_GENERATION_MODE_X
:
991 pHdl
= new XMLEnumPropertyHdl( aXML_TexGenerationX_EnumMap
, ::getCppuType((const drawing::TextureProjectionMode
*)0) );
994 case XML_SD_TYPE_TEX_GENERATION_MODE_Y
:
996 pHdl
= new XMLEnumPropertyHdl( aXML_TexGenerationY_EnumMap
, ::getCppuType((const drawing::TextureProjectionMode
*)0) );
999 case XML_SD_TYPE_TEX_KIND
:
1001 pHdl
= new XMLEnumPropertyHdl( aXML_TexKind_EnumMap
, ::getCppuType((const drawing::TextureKind
*)0) );
1004 case XML_SD_TYPE_TEX_MODE
:
1006 pHdl
= new XMLEnumPropertyHdl( aXML_TexMode_EnumMap
, ::getCppuType((const drawing::TextureMode
*)0) );
1009 case XML_SD_TYPE_NUMBULLET
:
1011 uno::Reference
<ucb::XAnyCompareFactory
> xCompareFac( mxModel
, uno::UNO_QUERY
);
1012 uno::Reference
<ucb::XAnyCompare
> xCompare
;
1013 if( xCompareFac
.is() )
1014 xCompare
= xCompareFac
->createAnyCompareByName( OUString( "NumberingRules" ) );
1016 pHdl
= new XMLNumRulePropHdl( xCompare
);
1019 case XML_SD_TYPE_BITMAP_MODE
:
1021 pHdl
= new XMLEnumPropertyHdl( aXML_BitmapMode_EnumMap
, getCppuType((const drawing::BitmapMode
*)0) );
1024 case XML_SD_TYPE_BITMAPREPOFFSETX
:
1025 case XML_SD_TYPE_BITMAPREPOFFSETY
:
1027 pHdl
= new XMLBitmapRepeatOffsetPropertyHandler( nType
== XML_SD_TYPE_BITMAPREPOFFSETX
);
1030 case XML_SD_TYPE_FILLBITMAPSIZE
:
1032 pHdl
= new XMLFillBitmapSizePropertyHandler();
1035 case XML_SD_TYPE_LOGICAL_SIZE
:
1037 pHdl
= new XMLBitmapLogicalSizePropertyHandler();
1040 case XML_SD_TYPE_BITMAP_REFPOINT
:
1042 pHdl
= new XMLEnumPropertyHdl( aXML_RefPoint_EnumMap
, getCppuType((const ::com::sun::star::drawing::RectanglePoint
*)0) );
1045 case XML_TYPE_TEXT_ANIMATION
:
1046 pHdl
= new XMLEnumPropertyHdl( pXML_TextAnimation_Enum
, ::getCppuType((const com::sun::star::drawing::TextAnimationKind
*)0) );
1048 case XML_TYPE_TEXT_ANIMATION_BLINKING
:
1049 pHdl
= new XMLEnumPropertyHdl( pXML_TextAnimation_Blinking_Enum
, ::getCppuType((const com::sun::star::drawing::TextAnimationKind
*)0) );
1051 case XML_TYPE_TEXT_ANIMATION_DIRECTION
:
1052 pHdl
= new XMLEnumPropertyHdl( pXML_TextAnimationDirection_Enum
, ::getCppuType((const com::sun::star::drawing::TextAnimationDirection
*)0) );
1054 case XML_TYPE_TEXT_ANIMATION_STEPS
:
1055 pHdl
= new XMLTextAnimationStepPropertyHdl
;
1057 case XML_SD_TYPE_TEXT_ALIGN
:
1058 pHdl
= new XMLEnumPropertyHdl( pXML_TextAlign_Enum
, ::getCppuType((const com::sun::star::drawing::TextHorizontalAdjust
*)0) );
1060 case XML_SD_TYPE_VERTICAL_ALIGN
:
1061 pHdl
= new XMLEnumPropertyHdl( pXML_VerticalAlign_Enum
, ::getCppuType((const com::sun::star::drawing::TextVerticalAdjust
*)0) );
1063 case XML_SD_TYPE_FITTOSIZE
:
1065 if (mpExport
&& (mpExport
->getDefaultVersion()
1066 <= SvtSaveOptions::ODFVER_012
))
1068 pHdl
= new XMLEnumPropertyHdl(pXML_FitToSize_Enum_Odf12
,
1069 ::getCppuType(static_cast<const com::sun::star::drawing::TextFitToSizeType
*>(0)));
1073 pHdl
= new XMLEnumPropertyHdl(pXML_FitToSize_Enum
,
1074 ::getCppuType(static_cast<const com::sun::star::drawing::TextFitToSizeType
*>(0)));
1078 case XML_SD_TYPE_MEASURE_UNIT
:
1079 pHdl
= new XMLEnumPropertyHdl( pXML_MeasureUnit_Enum
, ::getCppuType((const sal_Int32
*)0) );
1081 case XML_SD_TYPE_MEASURE_HALIGN
:
1082 pHdl
= new XMLEnumPropertyHdl( pXML_Measure_HAlign_Enum
, ::getCppuType((const com::sun::star::drawing::MeasureTextHorzPos
*)0) );
1084 case XML_SD_TYPE_MEASURE_VALIGN
:
1085 pHdl
= new XMLEnumPropertyHdl( pXML_Measure_VAlign_Enum
, ::getCppuType((const com::sun::star::drawing::MeasureTextVertPos
*)0) );
1087 case XML_SD_TYPE_MEASURE_PLACING
:
1089 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_BELOW
), GetXMLToken(XML_ABOVE
) );
1092 case XML_TYPE_TEXT_CLIP11
:
1093 pHdl
= new XMLClipPropertyHandler( sal_True
);
1095 case XML_TYPE_TEXT_CLIP
:
1096 pHdl
= new XMLClipPropertyHandler( sal_False
);
1100 case XML_SD_TYPE_FONTWORK_STYLE
:
1101 pHdl
= new XMLEnumPropertyHdl( pXML_Fontwork_Style_Enum
, ::getCppuType((const sal_Int32
*)0));
1103 case XML_SD_TYPE_FONTWORK_ADJUST
:
1104 pHdl
= new XMLEnumPropertyHdl( pXML_Fontwork_Adjust_Enum
, ::getCppuType((const sal_Int32
*)0));
1106 case XML_SD_TYPE_FONTWORK_SHADOW
:
1107 pHdl
= new XMLEnumPropertyHdl( pXML_Fontwork_Shadow_Enum
, ::getCppuType((const sal_Int32
*)0));
1109 case XML_SD_TYPE_FONTWORK_FORM
:
1110 pHdl
= new XMLEnumPropertyHdl( pXML_Fontwork_Form_Enum
, ::getCppuType((const sal_Int32
*)0));
1113 case XML_SD_TYPE_CONTROL_BORDER
:
1114 pHdl
= new ::xmloff::OControlBorderHandler( ::xmloff::OControlBorderHandler::STYLE
);
1116 case XML_SD_TYPE_CONTROL_BORDER_COLOR
:
1117 pHdl
= new ::xmloff::OControlBorderHandler( ::xmloff::OControlBorderHandler::COLOR
);
1119 case XML_SD_TYPE_IMAGE_SCALE_MODE
:
1120 pHdl
= new ::xmloff::ImageScaleModeHandler
;
1122 case XML_TYPE_CONTROL_TEXT_EMPHASIZE
:
1123 pHdl
= new ::xmloff::OControlTextEmphasisHandler
;
1126 case XML_SD_TYPE_CAPTION_ANGLE_TYPE
:
1128 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FIXED
), GetXMLToken(XML_FREE
) );
1131 case XML_SD_TYPE_CAPTION_IS_ESC_REL
:
1132 pHdl
= new XMLIsPercentagePropertyHandler();
1134 case XML_SD_TYPE_CAPTION_ESC_REL
:
1135 pHdl
= new XMLCaptionEscapeRelative();
1137 case XML_SD_TYPE_CAPTION_ESC_ABS
:
1138 pHdl
= new XMLPercentOrMeasurePropertyHandler( sal_False
);
1140 case XML_SD_TYPE_CAPTION_ESC_DIR
:
1141 pHdl
= new XMLEnumPropertyHdl( pXML_Caption_Esc_Dir_Enum
, ::getCppuType((const sal_Int32
*)0));
1143 case XML_SD_TYPE_CAPTION_TYPE
:
1144 pHdl
= new XMLEnumPropertyHdl( pXML_Caption_Type_Enum
, ::getCppuType((const sal_Int32
*)0));
1146 case XML_SD_TYPE_DATETIMEUPDATE
:
1147 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FIXED
), GetXMLToken(XML_VARIABLE
) );
1149 case XML_SD_TYPE_DATETIME_FORMAT
:
1150 pHdl
= new XMLDateTimeFormatHdl( mpExport
);
1152 case XML_SD_TYPE_TRANSITION_TYPE
:
1153 pHdl
= new XMLEnumPropertyHdl( xmloff::getAnimationsEnumMap(xmloff::Animations_EnumMap_TransitionType
) , ::getCppuType((const sal_Int16
*)0));
1155 case XML_SD_TYPE_TRANSTIION_SUBTYPE
:
1156 pHdl
= new XMLEnumPropertyHdl( xmloff::getAnimationsEnumMap(xmloff::Animations_EnumMap_TransitionSubType
) , ::getCppuType((const sal_Int16
*)0));
1158 case XML_SD_TYPE_TRANSTIION_DIRECTION
:
1159 pHdl
= new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FORWARD
), GetXMLToken(XML_REVERSE
) );
1161 case XML_TYPE_WRAP_OPTION
:
1162 pHdl
= new XMLWordWrapPropertyHdl( mpImport
);
1165 case XML_SD_TYPE_MOVE_PROTECT
:
1166 case XML_SD_TYPE_SIZE_PROTECT
:
1167 pHdl
= new XMLMoveSizeProtectHdl( nType
);
1169 case XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
:
1170 pHdl
= new XMLSdHeaderFooterVisibilityTypeHdl();
1175 PutHdlCache(nType
, pHdl
);
1181 //////////////////////////////////////////////////////////////////////////////
1183 XMLShapePropertySetMapper::XMLShapePropertySetMapper(const UniReference
< XMLPropertyHandlerFactory
>& rFactoryRef
,
1185 : XMLPropertySetMapper( aXMLSDProperties
, rFactoryRef
, bForExport
)
1189 XMLShapePropertySetMapper::~XMLShapePropertySetMapper()
1193 // ----------------------------------------
1195 XMLShapeExportPropertyMapper::XMLShapeExportPropertyMapper( const UniReference
< XMLPropertySetMapper
>& rMapper
, SvXMLExport
& rExport
)
1196 : SvXMLExportPropertyMapper( rMapper
)
1197 , maNumRuleExp( rExport
)
1198 , mbIsInAutoStyles( sal_True
)
1199 , msCDATA( GetXMLToken(XML_CDATA
))
1200 , msTrue( GetXMLToken(XML_TRUE
))
1201 , msFalse( GetXMLToken(XML_FALSE
))
1205 XMLShapeExportPropertyMapper::~XMLShapeExportPropertyMapper()
1209 void XMLShapeExportPropertyMapper::ContextFilter(
1210 bool bEnableFoFontFamily
,
1211 std::vector
< XMLPropertyState
>& rProperties
,
1212 uno::Reference
< beans::XPropertySet
> rPropSet
) const
1214 XMLPropertyState
* pRepeatOffsetX
= NULL
;
1215 XMLPropertyState
* pRepeatOffsetY
= NULL
;
1216 XMLPropertyState
* pTextAnimationBlinking
= NULL
;
1217 XMLPropertyState
* pTextAnimationKind
= NULL
;
1220 XMLPropertyState
* pFontWorkStyle
= NULL
;
1221 XMLPropertyState
* pFontWorkAdjust
= NULL
;
1222 XMLPropertyState
* pFontWorkDistance
= NULL
;
1223 XMLPropertyState
* pFontWorkStart
= NULL
;
1224 XMLPropertyState
* pFontWorkMirror
= NULL
;
1225 XMLPropertyState
* pFontWorkOutline
= NULL
;
1226 XMLPropertyState
* pFontWorkShadow
= NULL
;
1227 XMLPropertyState
* pFontWorkShadowColor
= NULL
;
1228 XMLPropertyState
* pFontWorkShadowOffsetx
= NULL
;
1229 XMLPropertyState
* pFontWorkShadowOffsety
= NULL
;
1230 XMLPropertyState
* pFontWorkForm
= NULL
;
1231 XMLPropertyState
* pFontWorkHideform
= NULL
;
1232 XMLPropertyState
* pFontWorkShadowTransparence
= NULL
;
1235 XMLPropertyState
* pOLEVisAreaLeft
= NULL
;
1236 XMLPropertyState
* pOLEVisAreaTop
= NULL
;
1237 XMLPropertyState
* pOLEVisAreaWidth
= NULL
;
1238 XMLPropertyState
* pOLEVisAreaHeight
= NULL
;
1239 XMLPropertyState
* pOLEIsInternal
= NULL
;
1242 XMLPropertyState
* pCaptionIsEscRel
= NULL
;
1243 XMLPropertyState
* pCaptionEscRel
= NULL
;
1244 XMLPropertyState
* pCaptionEscAbs
= NULL
;
1247 XMLPropertyState
* pClip11State
= NULL
;
1248 XMLPropertyState
* pClipState
= NULL
;
1250 XMLPropertyState
* pShapeWritingMode
= NULL
;
1251 XMLPropertyState
* pTextWritingMode
= NULL
;
1252 XMLPropertyState
* pControlWritingMode
= NULL
;
1254 // filter properties
1255 for( std::vector
< XMLPropertyState
>::iterator aIter
= rProperties
.begin();
1256 aIter
!= rProperties
.end();
1259 XMLPropertyState
*property
= &(*aIter
);
1260 if( property
->mnIndex
== -1 )
1263 // find properties with context
1264 // to prevent writing this property set mnIndex member to -1
1265 switch( getPropertySetMapper()->GetEntryContextId( property
->mnIndex
))
1267 case CTF_NUMBERINGRULES
:
1269 if( mbIsInAutoStyles
)
1270 property
->mnIndex
= -1;
1273 case CTF_SD_NUMBERINGRULES_NAME
:
1275 // this property is not exported in the style:properties element
1276 // because its an XIndexAccess and not a string.
1277 // This will be handled in SvXMLAutoStylePoolP::exportStyleAttributes
1278 // This is suboptimal
1279 if( !mbIsInAutoStyles
)
1280 property
->mnIndex
= -1;
1283 case CTF_WRITINGMODE
:
1285 pShapeWritingMode
= property
;
1286 text::WritingMode eWritingMode
;
1287 if( property
->maValue
>>= eWritingMode
)
1289 if( text::WritingMode_LR_TB
== eWritingMode
)
1291 property
->mnIndex
= -1;
1292 pShapeWritingMode
= 0;
1297 case CTF_CONTROLWRITINGMODE
:
1298 pControlWritingMode
= property
;
1300 case CTF_TEXTWRITINGMODE
:
1301 pTextWritingMode
= property
;
1303 case CTF_REPEAT_OFFSET_X
:
1304 pRepeatOffsetX
= property
;
1307 case CTF_REPEAT_OFFSET_Y
:
1308 pRepeatOffsetY
= property
;
1312 case CTF_FILLGRADIENTNAME
:
1313 case CTF_FILLHATCHNAME
:
1314 case CTF_FILLBITMAPNAME
:
1317 if( (property
->maValue
>>= aStr
) && aStr
.isEmpty() )
1318 property
->mnIndex
= -1;
1321 case CTF_TEXTANIMATION_BLINKING
:
1322 pTextAnimationBlinking
= property
;
1324 case CTF_TEXTANIMATION_KIND
:
1325 pTextAnimationKind
= property
;
1329 case CTF_FONTWORK_STYLE
: pFontWorkStyle
= property
; break;
1330 case CTF_FONTWORK_ADJUST
: pFontWorkAdjust
= property
; break;
1331 case CTF_FONTWORK_DISTANCE
: pFontWorkDistance
= property
; break;
1332 case CTF_FONTWORK_START
: pFontWorkStart
= property
; break;
1333 case CTF_FONTWORK_MIRROR
: pFontWorkMirror
= property
; break;
1334 case CTF_FONTWORK_OUTLINE
: pFontWorkOutline
= property
; break;
1335 case CTF_FONTWORK_SHADOW
: pFontWorkShadow
= property
; break;
1336 case CTF_FONTWORK_SHADOWCOLOR
: pFontWorkShadowColor
= property
; break;
1337 case CTF_FONTWORK_SHADOWOFFSETX
: pFontWorkShadowOffsetx
= property
; break;
1338 case CTF_FONTWORK_SHADOWOFFSETY
: pFontWorkShadowOffsety
= property
; break;
1339 case CTF_FONTWORK_FORM
: pFontWorkForm
= property
; break;
1340 case CTF_FONTWORK_HIDEFORM
: pFontWorkHideform
= property
; break;
1341 case CTF_FONTWORK_SHADOWTRANSPARENCE
: pFontWorkShadowTransparence
= property
; break;
1344 case CTF_SD_OLE_VIS_AREA_EXPORT_LEFT
: pOLEVisAreaLeft
= property
; break;
1345 case CTF_SD_OLE_VIS_AREA_EXPORT_TOP
: pOLEVisAreaTop
= property
; break;
1346 case CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH
: pOLEVisAreaWidth
= property
; break;
1347 case CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT
: pOLEVisAreaHeight
= property
; break;
1348 case CTF_SD_OLE_ISINTERNAL
: pOLEIsInternal
= property
; break;
1350 case CTF_FRAME_DISPLAY_SCROLLBAR
:
1352 if( !property
->maValue
.hasValue() )
1353 property
->mnIndex
= -1;
1356 case CTF_FRAME_MARGIN_HORI
:
1357 case CTF_FRAME_MARGIN_VERT
:
1359 sal_Int32 nValue
= 0;
1360 if( (property
->maValue
>>= nValue
) && (nValue
< 0) )
1361 property
->mnIndex
= -1;
1365 case CTF_SD_MOVE_PROTECT
:
1367 sal_Bool bProtected
= sal_Bool();
1368 if( (property
->maValue
>>= bProtected
) && !bProtected
)
1369 property
->mnIndex
= -1;
1372 case CTF_SD_SIZE_PROTECT
:
1374 sal_Bool bProtected
= sal_Bool();
1375 if( (property
->maValue
>>= bProtected
) && !bProtected
)
1376 property
->mnIndex
= -1;
1379 case CTF_CAPTION_ISESCREL
: pCaptionIsEscRel
= property
; break;
1380 case CTF_CAPTION_ESCREL
: pCaptionEscRel
= property
; break;
1381 case CTF_CAPTION_ESCABS
: pCaptionEscAbs
= property
; break;
1382 case CTF_TEXT_CLIP11
: pClip11State
= property
; break;
1383 case CTF_TEXT_CLIP
: pClipState
= property
; break;
1387 // check for duplicate writing mode
1388 if( pShapeWritingMode
&& (pTextWritingMode
|| pControlWritingMode
) )
1390 if( pTextWritingMode
)
1391 pTextWritingMode
->mnIndex
= -1;
1392 if( pControlWritingMode
)
1393 pControlWritingMode
->mnIndex
= -1;
1395 else if( pTextWritingMode
&& pControlWritingMode
)
1397 pControlWritingMode
->mnIndex
= -1;
1400 // do not export visual area for internal ole objects
1401 if( pOLEIsInternal
)
1403 sal_Bool bInternal
= sal_Bool();
1404 if( (pOLEIsInternal
->maValue
>>= bInternal
) && !bInternal
)
1408 const OUString
sVisibleArea( "VisibleArea" );
1409 awt::Rectangle aRect
;
1410 if( rPropSet
->getPropertyValue( sVisibleArea
) >>= aRect
)
1412 if( pOLEVisAreaLeft
)
1414 pOLEVisAreaLeft
->mnIndex
= getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_LEFT
);
1415 pOLEVisAreaLeft
->maValue
<<= aRect
;
1417 if( pOLEVisAreaTop
)
1419 pOLEVisAreaTop
->mnIndex
= getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_TOP
);
1420 pOLEVisAreaTop
->maValue
<<= aRect
;
1422 if( pOLEVisAreaWidth
)
1424 pOLEVisAreaWidth
->mnIndex
= getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH
);
1425 pOLEVisAreaWidth
->maValue
<<= aRect
;
1427 if( pOLEVisAreaHeight
)
1429 pOLEVisAreaHeight
->mnIndex
= getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT
);
1430 pOLEVisAreaHeight
->maValue
<<= aRect
;
1434 catch( uno::Exception
& )
1440 if( pOLEVisAreaLeft
) pOLEVisAreaLeft
->mnIndex
= -1;
1441 if( pOLEVisAreaTop
) pOLEVisAreaTop
->mnIndex
= -1;
1442 if( pOLEVisAreaWidth
) pOLEVisAreaWidth
->mnIndex
= -1;
1443 if( pOLEVisAreaHeight
) pOLEVisAreaHeight
->mnIndex
= -1;
1446 pOLEIsInternal
->mnIndex
= -1;
1449 if( pTextAnimationBlinking
&& pTextAnimationKind
)
1451 drawing::TextAnimationKind eKind
;
1452 if( (pTextAnimationKind
->maValue
>>= eKind
) && eKind
!= drawing::TextAnimationKind_BLINK
)
1454 pTextAnimationBlinking
->mnIndex
= -1;
1458 pTextAnimationKind
->mnIndex
= -1;
1462 if( pRepeatOffsetX
&& pRepeatOffsetY
)
1464 sal_Int32 nOffset
= 0;
1465 if( ( pRepeatOffsetX
->maValue
>>= nOffset
) && ( nOffset
== 0 ) )
1466 pRepeatOffsetX
->mnIndex
= -1;
1468 pRepeatOffsetY
->mnIndex
= -1;
1474 sal_Int32 nStyle
= 0;
1476 if(pFontWorkStyle
->maValue
>>= nStyle
)
1478 if(/*XFT_NONE*/4 == nStyle
)
1480 pFontWorkStyle
->mnIndex
= -1;
1482 pFontWorkAdjust
->mnIndex
= -1;
1483 if(pFontWorkDistance
)
1484 pFontWorkDistance
->mnIndex
= -1;
1486 pFontWorkStart
->mnIndex
= -1;
1488 pFontWorkMirror
->mnIndex
= -1;
1489 if(pFontWorkOutline
)
1490 pFontWorkOutline
->mnIndex
= -1;
1492 pFontWorkShadow
->mnIndex
= -1;
1493 if(pFontWorkShadowColor
)
1494 pFontWorkShadowColor
->mnIndex
= -1;
1495 if(pFontWorkShadowOffsetx
)
1496 pFontWorkShadowOffsetx
->mnIndex
= -1;
1497 if(pFontWorkShadowOffsety
)
1498 pFontWorkShadowOffsety
->mnIndex
= -1;
1500 pFontWorkForm
->mnIndex
= -1;
1501 if(pFontWorkHideform
)
1502 pFontWorkHideform
->mnIndex
= -1;
1503 if(pFontWorkShadowTransparence
)
1504 pFontWorkShadowTransparence
->mnIndex
= -1;
1509 if( pCaptionIsEscRel
)
1511 sal_Bool bIsRel
= false;
1512 pCaptionIsEscRel
->maValue
>>= bIsRel
;
1516 if( pCaptionEscAbs
)
1517 pCaptionEscAbs
->mnIndex
= -1;
1521 if( pCaptionEscRel
)
1522 pCaptionEscRel
->mnIndex
= -1;
1525 pCaptionIsEscRel
->mnIndex
= -1;
1528 if( pClipState
!= NULL
&& pClip11State
!= NULL
)
1529 pClip11State
->mnIndex
= -1;
1531 SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily
, rProperties
, rPropSet
);
1534 void XMLShapeExportPropertyMapper::handleSpecialItem(
1535 SvXMLAttributeList
& rAttrList
,
1536 const XMLPropertyState
& rProperty
,
1537 const SvXMLUnitConverter
& rUnitConverter
,
1538 const SvXMLNamespaceMap
& rNamespaceMap
,
1539 const ::std::vector
< XMLPropertyState
> *pProperties
,
1540 sal_uInt32 nIdx
) const
1542 switch( getPropertySetMapper()->GetEntryContextId( rProperty
.mnIndex
) )
1544 case CTF_SD_CONTROL_SHAPE_DATA_STYLE
:
1545 // not to be handled by the base class
1549 SvXMLExportPropertyMapper::handleSpecialItem( rAttrList
, rProperty
, rUnitConverter
, rNamespaceMap
, pProperties
, nIdx
);
1554 void XMLShapeExportPropertyMapper::handleElementItem(
1555 SvXMLExport
& rExport
,
1556 const XMLPropertyState
& rProperty
,
1558 const ::std::vector
< XMLPropertyState
> *pProperties
,
1559 sal_uInt32 nIdx
) const
1561 switch( getPropertySetMapper()->GetEntryContextId( rProperty
.mnIndex
) )
1563 case CTF_NUMBERINGRULES
:
1565 // only export list-styles as elements in styles section
1566 if( !mbIsInAutoStyles
)
1568 uno::Reference
< container::XIndexReplace
> xNumRule( rProperty
.maValue
, uno::UNO_QUERY
);
1570 const_cast<XMLShapeExportPropertyMapper
*>(this)->maNumRuleExp
.exportNumberingRule( maStyleName
, sal_False
, xNumRule
);
1575 SvXMLExportPropertyMapper::handleElementItem( rExport
, rProperty
, nFlags
, pProperties
, nIdx
);
1580 // ----------------------------------------
1582 XMLPageExportPropertyMapper::XMLPageExportPropertyMapper( const UniReference
< XMLPropertySetMapper
>& rMapper
, SvXMLExport
& rExport
) :
1583 SvXMLExportPropertyMapper( rMapper
),
1584 mrExport( rExport
),
1585 msCDATA( GetXMLToken(XML_CDATA
))
1589 XMLPageExportPropertyMapper::~XMLPageExportPropertyMapper()
1593 void XMLPageExportPropertyMapper::ContextFilter(
1594 bool bEnableFoFontFamily
,
1595 std::vector
< XMLPropertyState
>& rProperties
,
1596 uno::Reference
< beans::XPropertySet
> rPropSet
) const
1598 XMLPropertyState
* pRepeatOffsetX
= NULL
;
1599 XMLPropertyState
* pRepeatOffsetY
= NULL
;
1600 XMLPropertyState
* pTransType
= NULL
;
1601 XMLPropertyState
* pTransDuration
= NULL
;
1602 XMLPropertyState
* pDateTimeUpdate
= NULL
;
1603 XMLPropertyState
* pDateTimeFormat
= NULL
;
1604 XMLPropertyState
* pTransitionFadeColor
= NULL
;
1606 sal_Int16 nTransitionType
= 0;
1608 // filter properties
1609 for( std::vector
< XMLPropertyState
>::iterator aIter
= rProperties
.begin();
1610 aIter
!= rProperties
.end();
1613 XMLPropertyState
*property
= &(*aIter
);
1614 if( property
->mnIndex
== -1 )
1617 // find properties with context
1618 // to prevent writing this property set mnIndex member to -1
1619 switch( getPropertySetMapper()->GetEntryContextId( property
->mnIndex
))
1622 case CTF_REPEAT_OFFSET_X
:
1623 pRepeatOffsetX
= property
;
1626 case CTF_REPEAT_OFFSET_Y
:
1627 pRepeatOffsetY
= property
;
1629 case CTF_PAGE_TRANS_TYPE
:
1630 pTransType
= property
;
1632 case CTF_PAGE_TRANS_STYLE
:
1633 if( mrExport
.getExportFlags() & EXPORT_OASIS
)
1634 (*property
).mnIndex
= -1;
1636 case CTF_PAGE_TRANSITION_TYPE
:
1638 if( ((mrExport
.getExportFlags() & EXPORT_OASIS
) == 0) ||
1639 (((*property
).maValue
>>= nTransitionType
) && (nTransitionType
== 0)) )
1640 (*property
).mnIndex
= -1;
1643 case CTF_PAGE_TRANSITION_SUBTYPE
:
1645 sal_Int16 nTransitionSubtype
= sal_Int16();
1646 if( ((mrExport
.getExportFlags() & EXPORT_OASIS
) == 0) ||
1647 (((*property
).maValue
>>= nTransitionSubtype
) && (nTransitionSubtype
== 0)) )
1648 (*property
).mnIndex
= -1;
1652 case CTF_PAGE_TRANSITION_DIRECTION
:
1654 sal_Bool bDirection
= sal_Bool();
1655 if( ((mrExport
.getExportFlags() & EXPORT_OASIS
) == 0) ||
1656 (((*property
).maValue
>>= bDirection
) && bDirection
) )
1657 (*property
).mnIndex
= -1;
1660 case CTF_PAGE_TRANSITION_FADECOLOR
:
1661 if( ((mrExport
.getExportFlags() & EXPORT_OASIS
) == 0) )
1662 (*property
).mnIndex
= -1;
1664 pTransitionFadeColor
= property
;
1666 case CTF_PAGE_TRANS_SPEED
:
1668 presentation::AnimationSpeed aEnum
;
1669 if( ((*property
).maValue
>>= aEnum
) && aEnum
== presentation::AnimationSpeed_MEDIUM
)
1670 (*property
).mnIndex
= -1;
1673 case CTF_PAGE_VISIBLE
:
1675 sal_Bool bVisible
= false;
1676 (*property
).maValue
>>= bVisible
;
1678 (*property
).mnIndex
= -1;
1681 case CTF_PAGE_TRANS_DURATION
:
1682 pTransDuration
= property
;
1684 case CTF_HEADER_TEXT
:
1685 case CTF_FOOTER_TEXT
:
1686 case CTF_DATE_TIME_TEXT
:
1689 (*property
).maValue
>>= aValue
;
1690 if( aValue
.isEmpty() )
1691 (*property
).mnIndex
= -1;
1695 case CTF_DATE_TIME_UPDATE
:
1696 pDateTimeUpdate
= property
;
1699 case CTF_DATE_TIME_FORMAT
:
1700 pDateTimeFormat
= property
;
1705 if( pTransitionFadeColor
&& nTransitionType
!= ::com::sun::star::animations::TransitionType::FADE
)
1706 pTransitionFadeColor
->mnIndex
= -1;
1708 if( pDateTimeFormat
&& pDateTimeUpdate
)
1710 sal_Bool bIsFixed
= false;
1711 pDateTimeUpdate
->maValue
>>= bIsFixed
;
1713 pDateTimeFormat
->mnIndex
= -1;
1716 if( pRepeatOffsetX
&& pRepeatOffsetY
)
1718 sal_Int32 nOffset
= 0;
1719 if( ( pRepeatOffsetX
->maValue
>>= nOffset
) && ( nOffset
== 0 ) )
1720 pRepeatOffsetX
->mnIndex
= -1;
1722 pRepeatOffsetY
->mnIndex
= -1;
1725 if( pTransType
&& pTransDuration
)
1727 sal_Int32 nChange
= 0;
1728 pTransType
->maValue
>>= nChange
;
1730 // only export duration for automatic
1732 pTransDuration
->mnIndex
= -1;
1734 // do not export default transition change
1736 pTransType
->mnIndex
= -1;
1739 SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily
, rProperties
, rPropSet
);
1742 void XMLPageExportPropertyMapper::handleElementItem(
1743 SvXMLExport
& rExport
,
1744 const XMLPropertyState
& rProperty
,
1746 const ::std::vector
< XMLPropertyState
> *pProperties
,
1747 sal_uInt32 nIdx
) const
1749 switch( getPropertySetMapper()->GetEntryContextId( rProperty
.mnIndex
) )
1751 case CTF_PAGE_SOUND_URL
:
1754 if( (rProperty
.maValue
>>= aSoundURL
) && !aSoundURL
.isEmpty() )
1756 mrExport
.AddAttribute(XML_NAMESPACE_XLINK
, XML_HREF
, mrExport
.GetRelativeReference(aSoundURL
) );
1757 mrExport
.AddAttribute( XML_NAMESPACE_XLINK
, XML_TYPE
, XML_SIMPLE
);
1758 mrExport
.AddAttribute( XML_NAMESPACE_XLINK
, XML_SHOW
, XML_NEW
);
1759 mrExport
.AddAttribute( XML_NAMESPACE_XLINK
, XML_ACTUATE
, XML_ONREQUEST
);
1760 SvXMLElementExport
aElem( mrExport
, XML_NAMESPACE_PRESENTATION
, XML_SOUND
, sal_True
, sal_True
);
1765 SvXMLExportPropertyMapper::handleElementItem( rExport
, rProperty
, nFlags
, pProperties
, nIdx
);
1770 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */