xref: /trunk/main/xmloff/source/draw/sdpropls.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_xmloff.hxx"
30*cdf0e10cSrcweir #include <com/sun/star/animations/TransitionType.hpp>
31*cdf0e10cSrcweir #include <com/sun/star/ucb/XAnyCompareFactory.hpp>
32*cdf0e10cSrcweir #include <com/sun/star/container/XIndexReplace.hpp>
33*cdf0e10cSrcweir #include <com/sun/star/drawing/LineStyle.hpp>
34*cdf0e10cSrcweir #include <com/sun/star/drawing/LineJoint.hpp>
35*cdf0e10cSrcweir #include <com/sun/star/drawing/FillStyle.hpp>
36*cdf0e10cSrcweir #include <com/sun/star/presentation/AnimationSpeed.hpp>
37*cdf0e10cSrcweir #include <com/sun/star/presentation/FadeEffect.hpp>
38*cdf0e10cSrcweir #include <com/sun/star/drawing/ConnectorType.hpp>
39*cdf0e10cSrcweir #include <com/sun/star/drawing/RectanglePoint.hpp>
40*cdf0e10cSrcweir #include <com/sun/star/drawing/CircleKind.hpp>
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_DRAWING_BitmapMode_HPP_
43*cdf0e10cSrcweir #include <com/sun/star/drawing/BitmapMode.hpp>
44*cdf0e10cSrcweir #endif
45*cdf0e10cSrcweir #include <com/sun/star/text/WritingMode.hpp>
46*cdf0e10cSrcweir #include <xmloff/EnumPropertyHdl.hxx>
47*cdf0e10cSrcweir #include <xmloff/NamedBoolPropertyHdl.hxx>
48*cdf0e10cSrcweir #include <xmloff/WordWrapPropertyHdl.hxx>
49*cdf0e10cSrcweir #include "numithdl.hxx"
50*cdf0e10cSrcweir #include "XMLBitmapRepeatOffsetPropertyHandler.hxx"
51*cdf0e10cSrcweir #include "XMLFillBitmapSizePropertyHandler.hxx"
52*cdf0e10cSrcweir #include "XMLBitmapLogicalSizePropertyHandler.hxx"
53*cdf0e10cSrcweir #include <com/sun/star/drawing/TextAnimationKind.hpp>
54*cdf0e10cSrcweir #include <com/sun/star/drawing/TextAnimationDirection.hpp>
55*cdf0e10cSrcweir #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
56*cdf0e10cSrcweir #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
57*cdf0e10cSrcweir #include <com/sun/star/drawing/TextFitToSizeType.hpp>
58*cdf0e10cSrcweir #include <com/sun/star/drawing/MeasureTextHorzPos.hpp>
59*cdf0e10cSrcweir #include <com/sun/star/drawing/MeasureTextVertPos.hpp>
60*cdf0e10cSrcweir #include <xmloff/controlpropertyhdl.hxx>
61*cdf0e10cSrcweir #include <xmloff/xmltoken.hxx>
62*cdf0e10cSrcweir #include "sdpropls.hxx"
63*cdf0e10cSrcweir #include "propimp0.hxx"
64*cdf0e10cSrcweir #include <xmloff/xmlexp.hxx>
65*cdf0e10cSrcweir #include <xmloff/xmlnmspe.hxx>
66*cdf0e10cSrcweir #include <com/sun/star/drawing/NormalsKind.hpp>
67*cdf0e10cSrcweir #include <com/sun/star/drawing/TextureProjectionMode.hpp>
68*cdf0e10cSrcweir #include <com/sun/star/drawing/TextureKind.hpp>
69*cdf0e10cSrcweir #include <com/sun/star/drawing/TextureMode.hpp>
70*cdf0e10cSrcweir #include <xmloff/txtprmap.hxx>
71*cdf0e10cSrcweir #include "XMLClipPropertyHandler.hxx"
72*cdf0e10cSrcweir #include "XMLIsPercentagePropertyHandler.hxx"
73*cdf0e10cSrcweir #include "XMLPercentOrMeasurePropertyHandler.hxx"
74*cdf0e10cSrcweir #include "animations.hxx"
75*cdf0e10cSrcweir #include <xmloff/xmluconv.hxx>
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir #include "sdxmlexp_impl.hxx"
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir using ::com::sun::star::uno::Any;
80*cdf0e10cSrcweir using ::com::sun::star::uno::Reference;
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir using ::rtl::OUString;
83*cdf0e10cSrcweir using ::rtl::OUStringBuffer;
84*cdf0e10cSrcweir 
85*cdf0e10cSrcweir using namespace ::com::sun::star;
86*cdf0e10cSrcweir using namespace ::xmloff::token;
87*cdf0e10cSrcweir 
88*cdf0e10cSrcweir #define _MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010 }
89*cdf0e10cSrcweir #define _MAPV(name,prefix,token,type,context,version)  { name, sizeof(name)-1, prefix, token, type, context, version }
90*cdf0e10cSrcweir #define GMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context)
91*cdf0e10cSrcweir #define GMAPV(name,prefix,token,type,context,version) _MAPV(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context,version)
92*cdf0e10cSrcweir #define DPMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
93*cdf0e10cSrcweir #define TMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
94*cdf0e10cSrcweir #define PMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
95*cdf0e10cSrcweir #define MAP_END() { 0L, 0, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFVER_010}
96*cdf0e10cSrcweir 
97*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
98*cdf0e10cSrcweir // entry list for graphic properties
99*cdf0e10cSrcweir 
100*cdf0e10cSrcweir const XMLPropertyMapEntry aXMLSDProperties[] =
101*cdf0e10cSrcweir {
102*cdf0e10cSrcweir     // this entry must be first! this is needed for XMLShapeImportHelper::CreateExternalShapePropMapper
103*cdf0e10cSrcweir     GMAP( "UserDefinedAttributes",          XML_NAMESPACE_TEXT, XML_XMLNS,                  XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
104*cdf0e10cSrcweir 
105*cdf0e10cSrcweir     // stroke attributes
106*cdf0e10cSrcweir     GMAP( "LineStyle",                      XML_NAMESPACE_DRAW, XML_STROKE,                 XML_SD_TYPE_STROKE, 0 ),
107*cdf0e10cSrcweir     GMAP( "LineDashName",                   XML_NAMESPACE_DRAW, XML_STROKE_DASH,            XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT , CTF_DASHNAME ),
108*cdf0e10cSrcweir     GMAP( "LineWidth",                      XML_NAMESPACE_SVG,  XML_STROKE_WIDTH,           XML_TYPE_MEASURE, 0 ),
109*cdf0e10cSrcweir     GMAP( "LineColor",                      XML_NAMESPACE_SVG,  XML_STROKE_COLOR,           XML_TYPE_COLOR, 0 ),
110*cdf0e10cSrcweir     GMAP( "LineStartName",                  XML_NAMESPACE_DRAW, XML_MARKER_START,           XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_LINESTARTNAME ),
111*cdf0e10cSrcweir     GMAP( "LineStartWidth",                 XML_NAMESPACE_DRAW, XML_MARKER_START_WIDTH,     XML_TYPE_MEASURE, 0 ),
112*cdf0e10cSrcweir     GMAP( "LineStartCenter",                XML_NAMESPACE_DRAW, XML_MARKER_START_CENTER,    XML_TYPE_BOOL, 0 ),
113*cdf0e10cSrcweir     GMAP( "LineEndName",                    XML_NAMESPACE_DRAW, XML_MARKER_END,             XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_LINEENDNAME ),
114*cdf0e10cSrcweir     GMAP( "LineEndWidth",                   XML_NAMESPACE_DRAW, XML_MARKER_END_WIDTH,       XML_TYPE_MEASURE, 0 ),
115*cdf0e10cSrcweir     GMAP( "LineEndCenter",                  XML_NAMESPACE_DRAW, XML_MARKER_END_CENTER,      XML_TYPE_BOOL, 0 ),
116*cdf0e10cSrcweir     GMAP( "LineTransparence",               XML_NAMESPACE_SVG,  XML_STROKE_OPACITY,         XML_SD_TYPE_OPACITY, 0 ),
117*cdf0e10cSrcweir     GMAP( "LineJoint",                      XML_NAMESPACE_DRAW, XML_STROKE_LINEJOIN,        XML_SD_TYPE_LINEJOIN, 0 ),
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir     // fill attributes
120*cdf0e10cSrcweir     GMAP( "FillStyle",                      XML_NAMESPACE_DRAW, XML_FILL,                   XML_SD_TYPE_FILLSTYLE, 0 ),
121*cdf0e10cSrcweir     GMAP( "FillColor",                      XML_NAMESPACE_DRAW, XML_FILL_COLOR,             XML_TYPE_COLOR, 0 ),
122*cdf0e10cSrcweir     GMAP( "FillColor2",                     XML_NAMESPACE_DRAW, XML_SECONDARY_FILL_COLOR,   XML_TYPE_COLOR, 0 ),
123*cdf0e10cSrcweir     GMAP( "FillGradientName",               XML_NAMESPACE_DRAW, XML_FILL_GRADIENT_NAME,     XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLGRADIENTNAME ),
124*cdf0e10cSrcweir     GMAP( "FillGradientStepCount",          XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT,    XML_TYPE_NUMBER16, 0 ),
125*cdf0e10cSrcweir     GMAP( "FillHatchName",                  XML_NAMESPACE_DRAW, XML_FILL_HATCH_NAME,        XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLHATCHNAME ),
126*cdf0e10cSrcweir     GMAP( "FillBackground",                 XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID,       XML_TYPE_BOOL, 0 ),
127*cdf0e10cSrcweir     GMAP( "FillBitmapName",                 XML_NAMESPACE_DRAW, XML_FILL_IMAGE_NAME,        XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLBITMAPNAME ),
128*cdf0e10cSrcweir     GMAP( "FillTransparence",               XML_NAMESPACE_DRAW, XML_OPACITY,            XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),    // exists in SW, too
129*cdf0e10cSrcweir     GMAP( "FillTransparenceGradientName",   XML_NAMESPACE_DRAW, XML_OPACITY_NAME,       XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLTRANSNAME ),
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir     GMAP( "FillBitmapSizeX",                    XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,       XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
132*cdf0e10cSrcweir     GMAP( "FillBitmapLogicalSize",          XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,       XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
133*cdf0e10cSrcweir     GMAP( "FillBitmapSizeY",                    XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,      XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
134*cdf0e10cSrcweir     GMAP( "FillBitmapLogicalSize",          XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,      XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
135*cdf0e10cSrcweir     GMAP( "FillBitmapMode",                 XML_NAMESPACE_STYLE,XML_REPEAT,                 XML_SD_TYPE_BITMAP_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
136*cdf0e10cSrcweir     GMAP( "FillBitmapPositionOffsetX",      XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
137*cdf0e10cSrcweir     GMAP( "FillBitmapPositionOffsetY",      XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
138*cdf0e10cSrcweir     GMAP( "FillBitmapRectanglePoint",       XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT,   XML_SD_TYPE_BITMAP_REFPOINT, 0 ),
139*cdf0e10cSrcweir     GMAP( "FillBitmapOffsetX",              XML_NAMESPACE_DRAW, XML_TILE_REPEAT_OFFSET,     XML_SD_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_X ),
140*cdf0e10cSrcweir     GMAP( "FillBitmapOffsetY",              XML_NAMESPACE_DRAW, XML_TILE_REPEAT_OFFSET,     XML_SD_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_Y ),
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir     // text frame attributes
143*cdf0e10cSrcweir     GMAP( "TextHorizontalAdjust",           XML_NAMESPACE_DRAW, XML_TEXTAREA_HORIZONTAL_ALIGN,  XML_SD_TYPE_TEXT_ALIGN, 0 ),
144*cdf0e10cSrcweir     GMAP( "TextVerticalAdjust",             XML_NAMESPACE_DRAW, XML_TEXTAREA_VERTICAL_ALIGN,    XML_SD_TYPE_VERTICAL_ALIGN, 0 ),
145*cdf0e10cSrcweir     GMAP( "TextAutoGrowHeight",             XML_NAMESPACE_DRAW, XML_AUTO_GROW_HEIGHT,       XML_TYPE_BOOL, 0 ),
146*cdf0e10cSrcweir     GMAP( "TextAutoGrowWidth",              XML_NAMESPACE_DRAW, XML_AUTO_GROW_WIDTH,        XML_TYPE_BOOL, 0 ),
147*cdf0e10cSrcweir     GMAP( "TextFitToSize",                  XML_NAMESPACE_DRAW, XML_FIT_TO_SIZE,            XML_SD_TYPE_FITTOSIZE, 0 ),
148*cdf0e10cSrcweir     GMAP( "TextContourFrame",               XML_NAMESPACE_DRAW, XML_FIT_TO_CONTOUR,         XML_TYPE_BOOL, 0 ),
149*cdf0e10cSrcweir     GMAP( "TextMaximumFrameHeight",         XML_NAMESPACE_FO,   XML_MAX_HEIGHT,             XML_TYPE_MEASURE, 0 ),
150*cdf0e10cSrcweir     GMAP( "TextMaximumFrameWidth",          XML_NAMESPACE_FO,   XML_MAX_WIDTH,              XML_TYPE_MEASURE, 0 ),
151*cdf0e10cSrcweir     GMAP( "TextMinimumFrameHeight",         XML_NAMESPACE_FO,   XML_MIN_HEIGHT,             XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),  // exists in SW, too
152*cdf0e10cSrcweir     GMAP( "TextMinimumFrameWidth",          XML_NAMESPACE_FO,   XML_MIN_WIDTH,              XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),
153*cdf0e10cSrcweir     GMAP( "TextUpperDistance",              XML_NAMESPACE_FO,   XML_PADDING_TOP,            XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),  // exists in SW, too
154*cdf0e10cSrcweir     GMAP( "TextLowerDistance",              XML_NAMESPACE_FO,   XML_PADDING_BOTTOM,         XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),  // exists in SW, too
155*cdf0e10cSrcweir     GMAP( "TextLeftDistance",               XML_NAMESPACE_FO,   XML_PADDING_LEFT,           XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),  // exists in SW, too
156*cdf0e10cSrcweir     GMAP( "TextRightDistance",              XML_NAMESPACE_FO,   XML_PADDING_RIGHT,          XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),  // exists in SW, too
157*cdf0e10cSrcweir     PMAP( "TextWritingMode",                XML_NAMESPACE_STYLE,XML_WRITING_MODE,           XML_SD_TYPE_WRITINGMODE|MID_FLAG_MULTI_PROPERTY, CTF_WRITINGMODE ),
158*cdf0e10cSrcweir     GMAP( "NumberingRules",                 XML_NAMESPACE_TEXT, XML_LIST_STYLE,             XML_SD_TYPE_NUMBULLET|MID_FLAG_ELEMENT_ITEM, CTF_NUMBERINGRULES ),
159*cdf0e10cSrcweir     GMAP( "NumberingRules",                 XML_NAMESPACE_TEXT, XML_LIST_STYLE_NAME,        XML_TYPE_STRING, CTF_SD_NUMBERINGRULES_NAME ),
160*cdf0e10cSrcweir     GMAP( "TextWordWrap",                   XML_NAMESPACE_FO,   XML_WRAP_OPTION,            XML_TYPE_WRAP_OPTION, 0 ),
161*cdf0e10cSrcweir 
162*cdf0e10cSrcweir     // shadow attributes
163*cdf0e10cSrcweir     GMAP( "Shadow",                         XML_NAMESPACE_DRAW, XML_SHADOW,                 XML_SD_TYPE_SHADOW, 0 ),
164*cdf0e10cSrcweir     GMAP( "ShadowXDistance",                    XML_NAMESPACE_DRAW, XML_SHADOW_OFFSET_X,        XML_TYPE_MEASURE, 0 ),
165*cdf0e10cSrcweir     GMAP( "ShadowYDistance",                    XML_NAMESPACE_DRAW, XML_SHADOW_OFFSET_Y,        XML_TYPE_MEASURE, 0 ),
166*cdf0e10cSrcweir     GMAP( "ShadowColor",                        XML_NAMESPACE_DRAW, XML_SHADOW_COLOR,           XML_TYPE_COLOR, 0 ),
167*cdf0e10cSrcweir     GMAP( "ShadowTransparence",             XML_NAMESPACE_DRAW, XML_SHADOW_OPACITY, XML_TYPE_NEG_PERCENT, 0 ),
168*cdf0e10cSrcweir 
169*cdf0e10cSrcweir     // graphic attributes
170*cdf0e10cSrcweir     GMAP( "GraphicColorMode",               XML_NAMESPACE_DRAW, XML_COLOR_MODE,             XML_TYPE_COLOR_MODE, 0 ), // exists in SW, too, with same property name
171*cdf0e10cSrcweir     GMAP( "AdjustLuminance",                XML_NAMESPACE_DRAW, XML_LUMINANCE,              XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
172*cdf0e10cSrcweir     GMAP( "AdjustContrast",                 XML_NAMESPACE_DRAW, XML_CONTRAST,               XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
173*cdf0e10cSrcweir     GMAP( "Gamma",                          XML_NAMESPACE_DRAW, XML_GAMMA,                  XML_TYPE_DOUBLE_PERCENT, 0 ), // signed? exists in SW, too, with same property name
174*cdf0e10cSrcweir     GMAP( "AdjustRed",                      XML_NAMESPACE_DRAW, XML_RED,                    XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
175*cdf0e10cSrcweir     GMAP( "AdjustGreen",                    XML_NAMESPACE_DRAW, XML_GREEN,                  XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
176*cdf0e10cSrcweir     GMAP( "AdjustBlue",                     XML_NAMESPACE_DRAW, XML_BLUE,                   XML_TYPE_PERCENT16, 0 ), // signed? exists in SW, too, with same property name
177*cdf0e10cSrcweir     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
178*cdf0e10cSrcweir     GMAP( "GraphicCrop",                    XML_NAMESPACE_FO,   XML_CLIP,                   XML_TYPE_TEXT_CLIP11, CTF_TEXT_CLIP11 ), // exists in SW, too, with same property name
179*cdf0e10cSrcweir     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#
180*cdf0e10cSrcweir     GMAP( "IsMirrored",                     XML_NAMESPACE_STYLE,    XML_MIRROR,             XML_TYPE_SD_MIRROR|MID_FLAG_MULTI_PROPERTY, 0 ),  // exists in SW, too // #i40214#
181*cdf0e10cSrcweir 
182*cdf0e10cSrcweir     // animation text attributes
183*cdf0e10cSrcweir     TMAP( "TextAnimationKind",              XML_NAMESPACE_STYLE,XML_TEXT_BLINKING,          XML_TYPE_TEXT_ANIMATION_BLINKING, CTF_TEXTANIMATION_BLINKING ),
184*cdf0e10cSrcweir     GMAP( "TextAnimationKind",              XML_NAMESPACE_TEXT, XML_ANIMATION,              XML_TYPE_TEXT_ANIMATION, CTF_TEXTANIMATION_KIND ),
185*cdf0e10cSrcweir     GMAP( "TextAnimationDirection",         XML_NAMESPACE_TEXT, XML_ANIMATION_DIRECTION,    XML_TYPE_TEXT_ANIMATION_DIRECTION, 0 ),
186*cdf0e10cSrcweir     GMAP( "TextAnimationStartInside",       XML_NAMESPACE_TEXT, XML_ANIMATION_START_INSIDE, XML_TYPE_BOOL, 0 ),
187*cdf0e10cSrcweir     GMAP( "TextAnimationStopInside",            XML_NAMESPACE_TEXT, XML_ANIMATION_STOP_INSIDE,  XML_TYPE_BOOL, 0 ),
188*cdf0e10cSrcweir     GMAP( "TextAnimationCount",             XML_NAMESPACE_TEXT, XML_ANIMATION_REPEAT,       XML_TYPE_NUMBER16, 0 ),
189*cdf0e10cSrcweir     GMAP( "TextAnimationDelay",             XML_NAMESPACE_TEXT, XML_ANIMATION_DELAY,        XML_TYPE_DURATION16_MS, 0 ),
190*cdf0e10cSrcweir     GMAP( "TextAnimationAmount",                XML_NAMESPACE_TEXT, XML_ANIMATION_STEPS,        XML_TYPE_TEXT_ANIMATION_STEPS, 0 ),
191*cdf0e10cSrcweir 
192*cdf0e10cSrcweir     // connector attributes
193*cdf0e10cSrcweir     GMAP( "EdgeNode1HorzDist",              XML_NAMESPACE_DRAW, XML_START_LINE_SPACING_HORIZONTAL,  XML_TYPE_MEASURE, 0 ),
194*cdf0e10cSrcweir     GMAP( "EdgeNode1VertDist",              XML_NAMESPACE_DRAW, XML_START_LINE_SPACING_VERTICAL,    XML_TYPE_MEASURE, 0 ),
195*cdf0e10cSrcweir     GMAP( "EdgeNode2HorzDist",              XML_NAMESPACE_DRAW, XML_END_LINE_SPACING_HORIZONTAL,    XML_TYPE_MEASURE, 0 ),
196*cdf0e10cSrcweir     GMAP( "EdgeNode2VertDist",              XML_NAMESPACE_DRAW, XML_END_LINE_SPACING_VERTICAL,      XML_TYPE_MEASURE, 0 ),
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir     // measure attributes
199*cdf0e10cSrcweir     GMAP( "MeasureLineDistance",                XML_NAMESPACE_DRAW, XML_LINE_DISTANCE,          XML_TYPE_MEASURE, 0 ),
200*cdf0e10cSrcweir     GMAP( "MeasureHelpLineOverhang",            XML_NAMESPACE_DRAW, XML_GUIDE_OVERHANG,         XML_TYPE_MEASURE, 0 ),
201*cdf0e10cSrcweir     GMAP( "MeasureHelpLineDistance",            XML_NAMESPACE_DRAW, XML_GUIDE_DISTANCE,         XML_TYPE_MEASURE, 0 ),
202*cdf0e10cSrcweir     GMAP( "MeasureHelpLine1Length",         XML_NAMESPACE_DRAW, XML_START_GUIDE,            XML_TYPE_MEASURE, 0 ),
203*cdf0e10cSrcweir     GMAP( "MeasureHelpLine2Length",         XML_NAMESPACE_DRAW, XML_END_GUIDE,              XML_TYPE_MEASURE, 0 ),
204*cdf0e10cSrcweir     GMAP( "MeasureTextHorizontalPosition",  XML_NAMESPACE_DRAW, XML_MEASURE_ALIGN,          XML_SD_TYPE_MEASURE_HALIGN, 0 ),
205*cdf0e10cSrcweir     GMAP( "MeasureTextVerticalPosition",    XML_NAMESPACE_DRAW, XML_MEASURE_VERTICAL_ALIGN, XML_SD_TYPE_MEASURE_VALIGN, 0 ),
206*cdf0e10cSrcweir     GMAP( "MeasureUnit",                        XML_NAMESPACE_DRAW, XML_UNIT,                   XML_SD_TYPE_MEASURE_UNIT, 0 ),
207*cdf0e10cSrcweir     GMAP( "MeasureShowUnit",                    XML_NAMESPACE_DRAW, XML_SHOW_UNIT,              XML_TYPE_BOOL, 0 ),
208*cdf0e10cSrcweir     GMAP( "MeasureBelowReferenceEdge",      XML_NAMESPACE_DRAW, XML_PLACING,                XML_SD_TYPE_MEASURE_PLACING, 0 ),
209*cdf0e10cSrcweir     GMAP( "MeasureTextRotate90",                XML_NAMESPACE_DRAW, XML_PARALLEL,               XML_TYPE_BOOL, 0 ),
210*cdf0e10cSrcweir     GMAP( "MeasureDecimalPlaces",           XML_NAMESPACE_DRAW, XML_DECIMAL_PLACES,         XML_TYPE_NUMBER16, 0 ),
211*cdf0e10cSrcweir 
212*cdf0e10cSrcweir     // 3D geometry attributes
213*cdf0e10cSrcweir     GMAP( "D3DHorizontalSegments",          XML_NAMESPACE_DR3D, XML_HORIZONTAL_SEGMENTS,    XML_TYPE_NUMBER, 0 ),
214*cdf0e10cSrcweir     GMAP( "D3DVerticalSegments",                XML_NAMESPACE_DR3D, XML_VERTICAL_SEGMENTS,      XML_TYPE_NUMBER, 0 ),
215*cdf0e10cSrcweir     GMAP( "D3DPercentDiagonal",             XML_NAMESPACE_DR3D, XML_EDGE_ROUNDING,          XML_TYPE_PERCENT, 0 ),
216*cdf0e10cSrcweir     GMAP( "D3DBackscale",                   XML_NAMESPACE_DR3D, XML_BACK_SCALE,             XML_TYPE_PERCENT, 0 ),
217*cdf0e10cSrcweir     GMAP( "D3DEndAngle",                        XML_NAMESPACE_DR3D, XML_END_ANGLE,              XML_TYPE_NUMBER, 0 ),
218*cdf0e10cSrcweir     GMAP( "D3DDepth",                       XML_NAMESPACE_DR3D, XML_DEPTH,                  XML_TYPE_MEASURE, 0 ),
219*cdf0e10cSrcweir     GMAP( "D3DDoubleSided",                 XML_NAMESPACE_DR3D, XML_BACKFACE_CULLING,       XML_SD_TYPE_BACKFACE_CULLING, 0 ),
220*cdf0e10cSrcweir 
221*cdf0e10cSrcweir     // #107245# New 3D properties which are possible for lathe and extrude 3d objects
222*cdf0e10cSrcweir     GMAP( "D3DCloseFront",                  XML_NAMESPACE_DR3D, XML_CLOSE_FRONT,            XML_TYPE_BOOL, 0 ),
223*cdf0e10cSrcweir     GMAP( "D3DCloseBack",                   XML_NAMESPACE_DR3D, XML_CLOSE_BACK,             XML_TYPE_BOOL, 0 ),
224*cdf0e10cSrcweir 
225*cdf0e10cSrcweir     // 3D lighting attributes
226*cdf0e10cSrcweir     GMAP( "D3DNormalsKind",                 XML_NAMESPACE_DR3D, XML_NORMALS_KIND,           XML_SD_TYPE_NORMALS_KIND, 0 ),
227*cdf0e10cSrcweir     GMAP( "D3DNormalsInvert",               XML_NAMESPACE_DR3D, XML_NORMALS_DIRECTION,      XML_SD_TYPE_NORMALS_DIRECTION, 0 ),
228*cdf0e10cSrcweir 
229*cdf0e10cSrcweir     // 3D texture attributes
230*cdf0e10cSrcweir     GMAP( "D3DTextureProjectionX",          XML_NAMESPACE_DR3D, XML_TEX_GENERATION_MODE_X,  XML_SD_TYPE_TEX_GENERATION_MODE_X, 0 ),
231*cdf0e10cSrcweir     GMAP( "D3DTextureProjectionY",          XML_NAMESPACE_DR3D, XML_TEX_GENERATION_MODE_Y,  XML_SD_TYPE_TEX_GENERATION_MODE_Y, 0 ),
232*cdf0e10cSrcweir     GMAP( "D3DTextureKind",                 XML_NAMESPACE_DR3D, XML_TEX_KIND,               XML_SD_TYPE_TEX_KIND, 0 ),
233*cdf0e10cSrcweir     GMAP( "D3DTextureMode",                 XML_NAMESPACE_DR3D, XML_TEX_MODE,               XML_SD_TYPE_TEX_MODE, 0 ),
234*cdf0e10cSrcweir     GMAP( "D3DTextureFilter",               XML_NAMESPACE_DR3D, XML_TEX_FILTER,             XML_SD_TYPE_BACKFACE_CULLING, 0 ),
235*cdf0e10cSrcweir 
236*cdf0e10cSrcweir     // 3D material attributes
237*cdf0e10cSrcweir     GMAP( "D3DMaterialColor",               XML_NAMESPACE_DR3D, XML_DIFFUSE_COLOR,          XML_TYPE_COLOR, 0 ),
238*cdf0e10cSrcweir     GMAP( "D3DMaterialEmission",                XML_NAMESPACE_DR3D, XML_EMISSIVE_COLOR,         XML_TYPE_COLOR, 0 ),
239*cdf0e10cSrcweir     GMAP( "D3DMaterialSpecular",                XML_NAMESPACE_DR3D, XML_SPECULAR_COLOR,         XML_TYPE_COLOR, 0 ),
240*cdf0e10cSrcweir     GMAP( "D3DMaterialSpecularIntensity",   XML_NAMESPACE_DR3D, XML_SHININESS,              XML_TYPE_PERCENT, 0 ),
241*cdf0e10cSrcweir 
242*cdf0e10cSrcweir     // 3D shadow attributes
243*cdf0e10cSrcweir     GMAP( "D3DShadow3D",                        XML_NAMESPACE_DR3D, XML_SHADOW,                 XML_SD_TYPE_SHADOW, 0 ),
244*cdf0e10cSrcweir 
245*cdf0e10cSrcweir     // #FontWork# attributes
246*cdf0e10cSrcweir     GMAP( "FontWorkStyle",                  XML_NAMESPACE_DRAW, XML_FONTWORK_STYLE,             XML_SD_TYPE_FONTWORK_STYLE, CTF_FONTWORK_STYLE  ),
247*cdf0e10cSrcweir     GMAP( "FontWorkAdjust",                 XML_NAMESPACE_DRAW, XML_FONTWORK_ADJUST,                XML_SD_TYPE_FONTWORK_ADJUST,CTF_FONTWORK_ADJUST ),
248*cdf0e10cSrcweir     GMAP( "FontWorkDistance",               XML_NAMESPACE_DRAW, XML_FONTWORK_DISTANCE,              XML_TYPE_MEASURE,           CTF_FONTWORK_DISTANCE   ),
249*cdf0e10cSrcweir     GMAP( "FontWorkStart",                  XML_NAMESPACE_DRAW, XML_FONTWORK_START,                 XML_TYPE_MEASURE,           CTF_FONTWORK_START  ),
250*cdf0e10cSrcweir     GMAP( "FontWorkMirror",                 XML_NAMESPACE_DRAW, XML_FONTWORK_MIRROR,                XML_TYPE_BOOL,              CTF_FONTWORK_MIRROR ),
251*cdf0e10cSrcweir     GMAP( "FontWorkOutline",                    XML_NAMESPACE_DRAW, XML_FONTWORK_OUTLINE,               XML_TYPE_BOOL,              CTF_FONTWORK_OUTLINE    ),
252*cdf0e10cSrcweir     GMAP( "FontWorkShadow",                 XML_NAMESPACE_DRAW, XML_FONTWORK_SHADOW,                XML_SD_TYPE_FONTWORK_SHADOW,CTF_FONTWORK_SHADOW ),
253*cdf0e10cSrcweir     GMAP( "FontWorkShadowColor",                XML_NAMESPACE_DRAW, XML_FONTWORK_SHADOW_COLOR,          XML_TYPE_COLOR,             CTF_FONTWORK_SHADOWCOLOR    ),
254*cdf0e10cSrcweir     GMAP( "FontWorkShadowOffsetX",          XML_NAMESPACE_DRAW, XML_FONTWORK_SHADOW_OFFSET_X,       XML_TYPE_MEASURE,           CTF_FONTWORK_SHADOWOFFSETX  ),
255*cdf0e10cSrcweir     GMAP( "FontWorkShadowOffsetY",          XML_NAMESPACE_DRAW, XML_FONTWORK_SHADOW_OFFSET_Y,       XML_TYPE_MEASURE,           CTF_FONTWORK_SHADOWOFFSETY  ),
256*cdf0e10cSrcweir     GMAP( "FontWorkForm",                   XML_NAMESPACE_DRAW, XML_FONTWORK_FORM,                  XML_SD_TYPE_FONTWORK_FORM,  CTF_FONTWORK_FORM   ),
257*cdf0e10cSrcweir     GMAP( "FontWorkHideForm",               XML_NAMESPACE_DRAW, XML_FONTWORK_HIDE_FORM,             XML_TYPE_BOOL,              CTF_FONTWORK_HIDEFORM   ),
258*cdf0e10cSrcweir     GMAP( "FontWorkShadowTransparence",     XML_NAMESPACE_DRAW, XML_FONTWORK_SHADOW_TRANSPARENCE,   XML_TYPE_PERCENT,           CTF_FONTWORK_SHADOWTRANSPARENCE ),
259*cdf0e10cSrcweir 
260*cdf0e10cSrcweir     // control attributes (border exists one mor time for the text additions of shapes)
261*cdf0e10cSrcweir     GMAP( "ControlSymbolColor",             XML_NAMESPACE_DRAW, XML_SYMBOL_COLOR,           XML_TYPE_COLOR, 0 ),
262*cdf0e10cSrcweir     GMAP( "ControlBackground",              XML_NAMESPACE_FO,   XML_BACKGROUND_COLOR,       XML_TYPE_COLOR|MID_FLAG_MULTI_PROPERTY, 0 ),
263*cdf0e10cSrcweir     GMAP( "ControlBorder",                  XML_NAMESPACE_FO,   XML_BORDER,                 XML_SD_TYPE_CONTROL_BORDER|MID_FLAG_MULTI_PROPERTY|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
264*cdf0e10cSrcweir     GMAP( "ControlBorderColor",             XML_NAMESPACE_FO,   XML_BORDER,                 XML_SD_TYPE_CONTROL_BORDER_COLOR|MID_FLAG_MULTI_PROPERTY|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
265*cdf0e10cSrcweir     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 ),
266*cdf0e10cSrcweir     GMAP( "ControlTextEmphasis",            XML_NAMESPACE_STYLE,XML_TEXT_EMPHASIZE,         XML_TYPE_CONTROL_TEXT_EMPHASIZE, 0 ),
267*cdf0e10cSrcweir     GMAP( "ImageScaleMode",                 XML_NAMESPACE_STYLE,XML_REPEAT,                 XML_SD_TYPE_IMAGE_SCALE_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
268*cdf0e10cSrcweir     GMAP( "ControlWritingMode",             XML_NAMESPACE_STYLE,XML_WRITING_MODE,           XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT|MID_FLAG_MULTI_PROPERTY, CTF_CONTROLWRITINGMODE ),
269*cdf0e10cSrcweir 
270*cdf0e10cSrcweir     // special entries for floating frames
271*cdf0e10cSrcweir     GMAP( "FrameIsAutoScroll",          XML_NAMESPACE_DRAW, XML_FRAME_DISPLAY_SCROLLBAR,    XML_TYPE_BOOL|MID_FLAG_MULTI_PROPERTY,              CTF_FRAME_DISPLAY_SCROLLBAR ),
272*cdf0e10cSrcweir     GMAP( "FrameIsBorder",              XML_NAMESPACE_DRAW, XML_FRAME_DISPLAY_BORDER,       XML_TYPE_BOOL|MID_FLAG_MULTI_PROPERTY,              CTF_FRAME_DISPLAY_BORDER ),
273*cdf0e10cSrcweir     GMAP( "FrameMarginWidth",           XML_NAMESPACE_DRAW, XML_FRAME_MARGIN_HORIZONTAL,    XML_TYPE_MEASURE_PX|MID_FLAG_MULTI_PROPERTY,        CTF_FRAME_MARGIN_HORI ),
274*cdf0e10cSrcweir     GMAP( "FrameMarginHeight",          XML_NAMESPACE_DRAW, XML_FRAME_MARGIN_VERTICAL,      XML_TYPE_MEASURE_PX|MID_FLAG_MULTI_PROPERTY,        CTF_FRAME_MARGIN_VERT ),
275*cdf0e10cSrcweir     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 ),
276*cdf0e10cSrcweir     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 ),
277*cdf0e10cSrcweir     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 ),
278*cdf0e10cSrcweir     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 ),
279*cdf0e10cSrcweir     GMAP( "IsInternal",                 XML_NAMESPACE_DRAW, XML__EMPTY,                     XML_TYPE_BUILDIN_CMP_ONLY,                          CTF_SD_OLE_ISINTERNAL ),
280*cdf0e10cSrcweir     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 ),
281*cdf0e10cSrcweir     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 ),
282*cdf0e10cSrcweir     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 ),
283*cdf0e10cSrcweir     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 ),
284*cdf0e10cSrcweir 
285*cdf0e10cSrcweir     GMAP( "Aspect",                     XML_NAMESPACE_DRAW, XML_DRAW_ASPECT,                XML_TYPE_TEXT_DRAW_ASPECT|MID_FLAG_MULTI_PROPERTY,  CTF_SD_OLE_ASPECT ),
286*cdf0e10cSrcweir 
287*cdf0e10cSrcweir     // caption properties
288*cdf0e10cSrcweir     GMAP( "CaptionType",                    XML_NAMESPACE_DRAW, XML_CAPTION_TYPE,               XML_SD_TYPE_CAPTION_TYPE, 0 ),
289*cdf0e10cSrcweir     GMAP( "CaptionIsFixedAngle",            XML_NAMESPACE_DRAW, XML_CAPTION_ANGLE_TYPE,         XML_SD_TYPE_CAPTION_ANGLE_TYPE, 0 ),
290*cdf0e10cSrcweir     GMAP( "CaptionAngle",               XML_NAMESPACE_DRAW, XML_CAPTION_ANGLE,              XML_TYPE_NUMBER, 0 ),
291*cdf0e10cSrcweir     GMAP( "CaptionGap",                 XML_NAMESPACE_DRAW, XML_CAPTION_GAP,                XML_TYPE_MEASURE, 0 ),
292*cdf0e10cSrcweir     GMAP( "CaptionEscapeDirection",     XML_NAMESPACE_DRAW, XML_CAPTION_ESCAPE_DIRECTION,   XML_SD_TYPE_CAPTION_ESC_DIR, 0 ),
293*cdf0e10cSrcweir     GMAP( "CaptionIsEscapeRelative",    XML_NAMESPACE_DRAW, XML_CAPTION_ESCAPE,             XML_SD_TYPE_CAPTION_IS_ESC_REL|MID_FLAG_MULTI_PROPERTY, CTF_CAPTION_ISESCREL ),
294*cdf0e10cSrcweir     GMAP( "CaptionEscapeRelative",      XML_NAMESPACE_DRAW, XML_CAPTION_ESCAPE,             XML_SD_TYPE_CAPTION_ESC_REL|MID_FLAG_MULTI_PROPERTY, CTF_CAPTION_ESCREL ),
295*cdf0e10cSrcweir     GMAP( "CaptionEscapeAbsolute",      XML_NAMESPACE_DRAW, XML_CAPTION_ESCAPE,             XML_SD_TYPE_CAPTION_ESC_ABS|MID_FLAG_MULTI_PROPERTY, CTF_CAPTION_ESCABS ),
296*cdf0e10cSrcweir     GMAP( "CaptionLineLength",          XML_NAMESPACE_DRAW, XML_CAPTION_LINE_LENGTH,        XML_TYPE_MEASURE, 0 ),
297*cdf0e10cSrcweir     GMAP( "CaptionIsFitLineLength",     XML_NAMESPACE_DRAW, XML_CAPTION_FIT_LINE_LENGTH,    XML_TYPE_BOOL, 0 ),
298*cdf0e10cSrcweir 
299*cdf0e10cSrcweir     // misc object properties
300*cdf0e10cSrcweir     GMAP( "MoveProtect",                    XML_NAMESPACE_STYLE, XML_PROTECT,               XML_SD_TYPE_MOVE_PROTECT|MID_FLAG_MULTI_PROPERTY|MID_FLAG_MERGE_ATTRIBUTE, CTF_SD_MOVE_PROTECT ),
301*cdf0e10cSrcweir     GMAP( "SizeProtect",                    XML_NAMESPACE_STYLE, XML_PROTECT,               XML_SD_TYPE_SIZE_PROTECT|MID_FLAG_MULTI_PROPERTY|MID_FLAG_MERGE_ATTRIBUTE, CTF_SD_SIZE_PROTECT ),
302*cdf0e10cSrcweir     MAP_END()
303*cdf0e10cSrcweir };
304*cdf0e10cSrcweir 
305*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
306*cdf0e10cSrcweir // entry list for presentation page properties
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir const XMLPropertyMapEntry aXMLSDPresPageProps[] =
309*cdf0e10cSrcweir {
310*cdf0e10cSrcweir     DPMAP( "UserDefinedAttributes",     XML_NAMESPACE_TEXT, XML_XMLNS,                  XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
311*cdf0e10cSrcweir 
312*cdf0e10cSrcweir     DPMAP( "Change",                        XML_NAMESPACE_PRESENTATION, XML_TRANSITION_TYPE,    XML_SD_TYPE_PRESPAGE_TYPE, CTF_PAGE_TRANS_TYPE ),
313*cdf0e10cSrcweir     DPMAP( "Effect",                        XML_NAMESPACE_PRESENTATION, XML_TRANSITION_STYLE,   XML_SD_TYPE_PRESPAGE_STYLE, CTF_PAGE_TRANS_STYLE ),
314*cdf0e10cSrcweir     DPMAP( "Speed",                     XML_NAMESPACE_PRESENTATION, XML_TRANSITION_SPEED,   XML_SD_TYPE_PRESPAGE_SPEED, CTF_PAGE_TRANS_SPEED ),
315*cdf0e10cSrcweir     DPMAP( "Duration",                  XML_NAMESPACE_PRESENTATION, XML_DURATION,           XML_SD_TYPE_PRESPAGE_DURATION, CTF_PAGE_TRANS_DURATION ),
316*cdf0e10cSrcweir     DPMAP( "Visible",                   XML_NAMESPACE_PRESENTATION, XML_VISIBILITY,         XML_SD_TYPE_PRESPAGE_VISIBILITY, CTF_PAGE_VISIBLE ),
317*cdf0e10cSrcweir     DPMAP( "Sound",                     XML_NAMESPACE_PRESENTATION, XML_SOUND,              XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM, CTF_PAGE_SOUND_URL ),
318*cdf0e10cSrcweir     DPMAP( "BackgroundFullSize",            XML_NAMESPACE_DRAW,         XML_BACKGROUND_SIZE,    XML_SD_TYPE_PRESPAGE_BACKSIZE, CTF_PAGE_BACKSIZE ),
319*cdf0e10cSrcweir 
320*cdf0e10cSrcweir     DPMAP( "IsBackgroundVisible",       XML_NAMESPACE_PRESENTATION, XML_BACKGROUND_VISIBLE, XML_TYPE_BOOL, 0 ),
321*cdf0e10cSrcweir     DPMAP( "IsBackgroundObjectsVisible",    XML_NAMESPACE_PRESENTATION, XML_BACKGROUND_OBJECTS_VISIBLE, XML_TYPE_BOOL, 0 ),
322*cdf0e10cSrcweir 
323*cdf0e10cSrcweir     DPMAP( "FillStyle",                 XML_NAMESPACE_DRAW, XML_FILL,                   XML_SD_TYPE_FILLSTYLE, 0 ),
324*cdf0e10cSrcweir     DPMAP( "FillColor",                 XML_NAMESPACE_DRAW, XML_FILL_COLOR,             XML_TYPE_COLOR, 0 ),
325*cdf0e10cSrcweir     DPMAP( "FillGradientName",          XML_NAMESPACE_DRAW, XML_FILL_GRADIENT_NAME,     XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLGRADIENTNAME ),
326*cdf0e10cSrcweir     DPMAP( "FillGradientStepCount",     XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT,    XML_TYPE_NUMBER, 0 ),
327*cdf0e10cSrcweir     DPMAP( "FillHatchName",             XML_NAMESPACE_DRAW, XML_FILL_HATCH_NAME,        XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLHATCHNAME ),
328*cdf0e10cSrcweir     GMAP( "FillBackground",                 XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID,       XML_TYPE_BOOL, 0 ),
329*cdf0e10cSrcweir     DPMAP( "FillBitmapName",                XML_NAMESPACE_DRAW, XML_FILL_IMAGE_NAME,    XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLBITMAPNAME ),
330*cdf0e10cSrcweir     DPMAP( "FillTransparenceGradientName",  XML_NAMESPACE_DRAW, XML_OPACITY_NAME,       XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLTRANSNAME ),
331*cdf0e10cSrcweir     DPMAP( "FillBitmapSizeX",           XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,       XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
332*cdf0e10cSrcweir     DPMAP( "FillBitmapLogicalSize",     XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,       XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
333*cdf0e10cSrcweir     DPMAP( "FillBitmapSizeY",           XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,      XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
334*cdf0e10cSrcweir     DPMAP( "FillBitmapLogicalSize",     XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,      XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
335*cdf0e10cSrcweir     DPMAP( "FillBitmapMode",            XML_NAMESPACE_STYLE,XML_REPEAT,                 XML_SD_TYPE_BITMAP_MODE, 0 ),
336*cdf0e10cSrcweir     DPMAP( "FillBitmapPositionOffsetX", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
337*cdf0e10cSrcweir     DPMAP( "FillBitmapPositionOffsetY", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
338*cdf0e10cSrcweir     DPMAP( "FillBitmapRectanglePoint",  XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT,   XML_SD_TYPE_BITMAP_REFPOINT, 0 ),
339*cdf0e10cSrcweir     DPMAP( "FillBitmapOffsetX",         XML_NAMESPACE_DRAW, XML_TILE_REPEAT_OFFSET,     XML_SD_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_X ),
340*cdf0e10cSrcweir     DPMAP( "FillBitmapOffsetY",         XML_NAMESPACE_DRAW, XML_TILE_REPEAT_OFFSET, XML_SD_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_Y ),
341*cdf0e10cSrcweir 
342*cdf0e10cSrcweir     DPMAP( "IsHeaderVisible",           XML_NAMESPACE_PRESENTATION, XML_DISPLAY_HEADER,         XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_HEADER_VISIBLE ),
343*cdf0e10cSrcweir     DPMAP( "IsFooterVisible",           XML_NAMESPACE_PRESENTATION, XML_DISPLAY_FOOTER,         XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_FOOTER_VISIBLE ),
344*cdf0e10cSrcweir     DPMAP( "IsPageNumberVisible",       XML_NAMESPACE_PRESENTATION, XML_DISPLAY_PAGE_NUMBER,    XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_PAGE_NUMBER_VISIBLE ),
345*cdf0e10cSrcweir     DPMAP( "IsDateTimeVisible",         XML_NAMESPACE_PRESENTATION, XML_DISPLAY_DATE_TIME,      XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_DATE_TIME_VISIBLE ),
346*cdf0e10cSrcweir 
347*cdf0e10cSrcweir     DPMAP( "TransitionType",            XML_NAMESPACE_SMIL, XML_TYPE,                   XML_SD_TYPE_TRANSITION_TYPE, CTF_PAGE_TRANSITION_TYPE ),
348*cdf0e10cSrcweir     DPMAP( "TransitionSubtype",         XML_NAMESPACE_SMIL, XML_SUBTYPE,                XML_SD_TYPE_TRANSTIION_SUBTYPE, CTF_PAGE_TRANSITION_SUBTYPE ),
349*cdf0e10cSrcweir     DPMAP( "TransitionDirection",       XML_NAMESPACE_SMIL, XML_DIRECTION,              XML_SD_TYPE_TRANSTIION_DIRECTION, CTF_PAGE_TRANSITION_DIRECTION ),
350*cdf0e10cSrcweir     DPMAP( "TransitionFadeColor",       XML_NAMESPACE_SMIL, XML_FADECOLOR,              XML_TYPE_COLOR, CTF_PAGE_TRANSITION_FADECOLOR ),
351*cdf0e10cSrcweir     MAP_END()
352*cdf0e10cSrcweir };
353*cdf0e10cSrcweir 
354*cdf0e10cSrcweir const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[] =
355*cdf0e10cSrcweir {
356*cdf0e10cSrcweir     DPMAP( "IsHeaderVisible",               XML_NAMESPACE_PRESENTATION, XML_DISPLAY_HEADER,         XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_HEADER_VISIBLE ),
357*cdf0e10cSrcweir     DPMAP( "IsFooterVisible",               XML_NAMESPACE_PRESENTATION, XML_DISPLAY_FOOTER,         XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_FOOTER_VISIBLE ),
358*cdf0e10cSrcweir     DPMAP( "IsPageNumberVisible",           XML_NAMESPACE_PRESENTATION, XML_DISPLAY_PAGE_NUMBER,    XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_PAGE_NUMBER_VISIBLE ),
359*cdf0e10cSrcweir     DPMAP( "IsDateTimeVisible",             XML_NAMESPACE_PRESENTATION, XML_DISPLAY_DATE_TIME,      XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE, CTF_DATE_TIME_VISIBLE ),
360*cdf0e10cSrcweir 
361*cdf0e10cSrcweir     MAP_END()
362*cdf0e10cSrcweir };
363*cdf0e10cSrcweir 
364*cdf0e10cSrcweir /** contains the attribute to property mapping for a drawing layer table
365*cdf0e10cSrcweir     WARNING: if attributes are added, SdXMLTableShapeContext::processAttribute needs to be updated!
366*cdf0e10cSrcweir */
367*cdf0e10cSrcweir const XMLPropertyMapEntry aXMLTableShapeAttributes[] =
368*cdf0e10cSrcweir {
369*cdf0e10cSrcweir     _MAP( "UseFirstRowStyle",       XML_NAMESPACE_TABLE, XML_USE_FIRST_ROW_STYLES, XML_TYPE_BOOL, 0 ),
370*cdf0e10cSrcweir     _MAP( "UseLastRowStyle",        XML_NAMESPACE_TABLE, XML_USE_LAST_ROW_STYLES, XML_TYPE_BOOL, 0 ),
371*cdf0e10cSrcweir     _MAP( "UseFirstColumnStyle",    XML_NAMESPACE_TABLE, XML_USE_FIRST_COLUMN_STYLES, XML_TYPE_BOOL, 0 ),
372*cdf0e10cSrcweir     _MAP( "UseLastColumnStyle",     XML_NAMESPACE_TABLE, XML_USE_LAST_COLUMN_STYLES, XML_TYPE_BOOL, 0 ),
373*cdf0e10cSrcweir     _MAP( "UseBandingRowStyle",     XML_NAMESPACE_TABLE, XML_USE_BANDING_ROWS_STYLES, XML_TYPE_BOOL, 0 ),
374*cdf0e10cSrcweir     _MAP( "UseBandingColumnStyle",  XML_NAMESPACE_TABLE, XML_USE_BANDING_COLUMNS_STYLES, XML_TYPE_BOOL, 0 ),
375*cdf0e10cSrcweir     MAP_END()
376*cdf0e10cSrcweir };
377*cdf0e10cSrcweir 
378*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
379*cdf0e10cSrcweir // implementation of factory for own graphic properties
380*cdf0e10cSrcweir 
381*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_LineStyle_EnumMap[] =
382*cdf0e10cSrcweir {
383*cdf0e10cSrcweir     { XML_NONE,     drawing::LineStyle_NONE },
384*cdf0e10cSrcweir     { XML_SOLID,    drawing::LineStyle_SOLID },
385*cdf0e10cSrcweir     { XML_DASH,     drawing::LineStyle_DASH },
386*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
387*cdf0e10cSrcweir };
388*cdf0e10cSrcweir 
389*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_LineJoint_EnumMap[] =
390*cdf0e10cSrcweir {
391*cdf0e10cSrcweir     { XML_NONE,     drawing::LineJoint_NONE },
392*cdf0e10cSrcweir     { XML_MITER,    drawing::LineJoint_MITER },
393*cdf0e10cSrcweir     { XML_ROUND,    drawing::LineJoint_ROUND },
394*cdf0e10cSrcweir     { XML_BEVEL,    drawing::LineJoint_BEVEL },
395*cdf0e10cSrcweir     { XML_MIDDLE,   drawing::LineJoint_MIDDLE },
396*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
397*cdf0e10cSrcweir };
398*cdf0e10cSrcweir 
399*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_FillStyle_EnumMap[] =
400*cdf0e10cSrcweir {
401*cdf0e10cSrcweir     { XML_NONE,     drawing::FillStyle_NONE },
402*cdf0e10cSrcweir     { XML_SOLID,    drawing::FillStyle_SOLID },
403*cdf0e10cSrcweir     { XML_BITMAP,   drawing::FillStyle_BITMAP },
404*cdf0e10cSrcweir     { XML_GRADIENT, drawing::FillStyle_GRADIENT },
405*cdf0e10cSrcweir     { XML_HATCH,    drawing::FillStyle_HATCH },
406*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
407*cdf0e10cSrcweir };
408*cdf0e10cSrcweir 
409*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_PresChange_EnumMap[] =
410*cdf0e10cSrcweir {
411*cdf0e10cSrcweir     { XML_MANUAL,           0 },
412*cdf0e10cSrcweir     { XML_AUTOMATIC,        1 },
413*cdf0e10cSrcweir     { XML_SEMI_AUTOMATIC,   2 },
414*cdf0e10cSrcweir     { XML_TOKEN_INVALID,                    0 }
415*cdf0e10cSrcweir };
416*cdf0e10cSrcweir 
417*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_TransSpeed_EnumMap[] =
418*cdf0e10cSrcweir {
419*cdf0e10cSrcweir     { XML_FAST,     presentation::AnimationSpeed_FAST },
420*cdf0e10cSrcweir     { XML_MEDIUM,   presentation::AnimationSpeed_MEDIUM },
421*cdf0e10cSrcweir     { XML_SLOW,     presentation::AnimationSpeed_SLOW },
422*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
423*cdf0e10cSrcweir };
424*cdf0e10cSrcweir 
425*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_FadeEffect_EnumMap[] =
426*cdf0e10cSrcweir {
427*cdf0e10cSrcweir     { XML_NONE,                 presentation::FadeEffect_NONE },
428*cdf0e10cSrcweir     { XML_FADE_FROM_LEFT,       presentation::FadeEffect_FADE_FROM_LEFT },
429*cdf0e10cSrcweir     { XML_FADE_FROM_TOP,        presentation::FadeEffect_FADE_FROM_TOP },
430*cdf0e10cSrcweir     { XML_FADE_FROM_RIGHT,      presentation::FadeEffect_FADE_FROM_RIGHT },
431*cdf0e10cSrcweir     { XML_FADE_FROM_BOTTOM,     presentation::FadeEffect_FADE_FROM_BOTTOM },
432*cdf0e10cSrcweir     { XML_FADE_TO_CENTER,       presentation::FadeEffect_FADE_TO_CENTER },
433*cdf0e10cSrcweir     { XML_FADE_FROM_CENTER,     presentation::FadeEffect_FADE_FROM_CENTER },
434*cdf0e10cSrcweir     { XML_MOVE_FROM_LEFT,       presentation::FadeEffect_MOVE_FROM_LEFT },
435*cdf0e10cSrcweir     { XML_MOVE_FROM_TOP,        presentation::FadeEffect_MOVE_FROM_TOP },
436*cdf0e10cSrcweir     { XML_MOVE_FROM_RIGHT,      presentation::FadeEffect_MOVE_FROM_RIGHT },
437*cdf0e10cSrcweir     { XML_MOVE_FROM_BOTTOM,     presentation::FadeEffect_MOVE_FROM_BOTTOM },
438*cdf0e10cSrcweir     { XML_ROLL_FROM_TOP,        presentation::FadeEffect_ROLL_FROM_TOP },
439*cdf0e10cSrcweir     { XML_ROLL_FROM_LEFT,       presentation::FadeEffect_ROLL_FROM_LEFT },
440*cdf0e10cSrcweir     { XML_ROLL_FROM_RIGHT,      presentation::FadeEffect_ROLL_FROM_RIGHT },
441*cdf0e10cSrcweir     { XML_ROLL_FROM_BOTTOM,     presentation::FadeEffect_ROLL_FROM_BOTTOM },
442*cdf0e10cSrcweir     { XML_VERTICAL_STRIPES,     presentation::FadeEffect_VERTICAL_STRIPES },
443*cdf0e10cSrcweir     { XML_HORIZONTAL_STRIPES,   presentation::FadeEffect_HORIZONTAL_STRIPES },
444*cdf0e10cSrcweir     { XML_CLOCKWISE,            presentation::FadeEffect_CLOCKWISE },
445*cdf0e10cSrcweir     { XML_COUNTERCLOCKWISE,     presentation::FadeEffect_COUNTERCLOCKWISE },
446*cdf0e10cSrcweir     { XML_FADE_FROM_UPPERLEFT,  presentation::FadeEffect_FADE_FROM_UPPERLEFT },
447*cdf0e10cSrcweir     { XML_FADE_FROM_UPPERRIGHT, presentation::FadeEffect_FADE_FROM_UPPERRIGHT },
448*cdf0e10cSrcweir     { XML_FADE_FROM_LOWERLEFT,  presentation::FadeEffect_FADE_FROM_LOWERLEFT },
449*cdf0e10cSrcweir     { XML_FADE_FROM_LOWERRIGHT, presentation::FadeEffect_FADE_FROM_LOWERRIGHT },
450*cdf0e10cSrcweir     { XML_CLOSE_VERTICAL,       presentation::FadeEffect_CLOSE_VERTICAL },
451*cdf0e10cSrcweir     { XML_CLOSE_HORIZONTAL,     presentation::FadeEffect_CLOSE_HORIZONTAL },
452*cdf0e10cSrcweir     { XML_OPEN_VERTICAL,        presentation::FadeEffect_OPEN_VERTICAL },
453*cdf0e10cSrcweir     { XML_OPEN_HORIZONTAL,      presentation::FadeEffect_OPEN_HORIZONTAL },
454*cdf0e10cSrcweir     { XML_SPIRALIN_LEFT,        presentation::FadeEffect_SPIRALIN_LEFT },
455*cdf0e10cSrcweir     { XML_SPIRALIN_RIGHT,       presentation::FadeEffect_SPIRALIN_RIGHT },
456*cdf0e10cSrcweir     { XML_SPIRALOUT_LEFT,       presentation::FadeEffect_SPIRALOUT_LEFT },
457*cdf0e10cSrcweir     { XML_SPIRALOUT_RIGHT,      presentation::FadeEffect_SPIRALOUT_RIGHT },
458*cdf0e10cSrcweir     { XML_DISSOLVE,             presentation::FadeEffect_DISSOLVE },
459*cdf0e10cSrcweir     { XML_WAVYLINE_FROM_LEFT,   presentation::FadeEffect_WAVYLINE_FROM_LEFT },
460*cdf0e10cSrcweir     { XML_WAVYLINE_FROM_TOP,    presentation::FadeEffect_WAVYLINE_FROM_TOP },
461*cdf0e10cSrcweir     { XML_WAVYLINE_FROM_RIGHT,  presentation::FadeEffect_WAVYLINE_FROM_RIGHT },
462*cdf0e10cSrcweir     { XML_WAVYLINE_FROM_BOTTOM, presentation::FadeEffect_WAVYLINE_FROM_BOTTOM },
463*cdf0e10cSrcweir     { XML_RANDOM,               presentation::FadeEffect_RANDOM },
464*cdf0e10cSrcweir     { XML_STRETCH_FROM_LEFT,    presentation::FadeEffect_STRETCH_FROM_LEFT },
465*cdf0e10cSrcweir     { XML_STRETCH_FROM_TOP,     presentation::FadeEffect_STRETCH_FROM_TOP },
466*cdf0e10cSrcweir     { XML_STRETCH_FROM_RIGHT,   presentation::FadeEffect_STRETCH_FROM_RIGHT },
467*cdf0e10cSrcweir     { XML_STRETCH_FROM_BOTTOM,  presentation::FadeEffect_STRETCH_FROM_BOTTOM },
468*cdf0e10cSrcweir     { XML_VERTICAL_LINES,       presentation::FadeEffect_VERTICAL_LINES },
469*cdf0e10cSrcweir     { XML_HORIZONTAL_LINES,     presentation::FadeEffect_HORIZONTAL_LINES },
470*cdf0e10cSrcweir     { XML_MOVE_FROM_UPPERLEFT,  presentation::FadeEffect_MOVE_FROM_UPPERLEFT },
471*cdf0e10cSrcweir     { XML_MOVE_FROM_UPPERRIGHT, presentation::FadeEffect_MOVE_FROM_UPPERRIGHT },
472*cdf0e10cSrcweir     { XML_MOVE_FROM_LOWERRIGHT, presentation::FadeEffect_MOVE_FROM_LOWERRIGHT },
473*cdf0e10cSrcweir     { XML_MOVE_FROM_LOWERLEFT,  presentation::FadeEffect_MOVE_FROM_LOWERLEFT },
474*cdf0e10cSrcweir     { XML_UNCOVER_TO_LEFT,      presentation::FadeEffect_UNCOVER_TO_LEFT },
475*cdf0e10cSrcweir     { XML_UNCOVER_TO_UPPERLEFT, presentation::FadeEffect_UNCOVER_TO_UPPERLEFT },
476*cdf0e10cSrcweir     { XML_UNCOVER_TO_TOP,       presentation::FadeEffect_UNCOVER_TO_TOP },
477*cdf0e10cSrcweir     { XML_UNCOVER_TO_UPPERRIGHT,presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT },
478*cdf0e10cSrcweir     { XML_UNCOVER_TO_RIGHT,     presentation::FadeEffect_UNCOVER_TO_RIGHT },
479*cdf0e10cSrcweir     { XML_UNCOVER_TO_LOWERRIGHT,presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT },
480*cdf0e10cSrcweir     { XML_UNCOVER_TO_BOTTOM,    presentation::FadeEffect_UNCOVER_TO_BOTTOM },
481*cdf0e10cSrcweir     { XML_UNCOVER_TO_LOWERLEFT, presentation::FadeEffect_UNCOVER_TO_LOWERLEFT },
482*cdf0e10cSrcweir     { XML_VERTICAL_CHECKERBOARD,presentation::FadeEffect_VERTICAL_CHECKERBOARD },
483*cdf0e10cSrcweir     { XML_HORIZONTAL_CHECKERBOARD,presentation::FadeEffect_HORIZONTAL_CHECKERBOARD },
484*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
485*cdf0e10cSrcweir };
486*cdf0e10cSrcweir 
487*cdf0e10cSrcweir SvXMLEnumMapEntry   aXML_ConnectionKind_EnumMap[] =
488*cdf0e10cSrcweir {
489*cdf0e10cSrcweir     { XML_STANDARD,     drawing::ConnectorType_STANDARD },
490*cdf0e10cSrcweir     { XML_CURVE,        drawing::ConnectorType_CURVE },
491*cdf0e10cSrcweir     { XML_LINE,         drawing::ConnectorType_LINE },
492*cdf0e10cSrcweir     { XML_LINES,        drawing::ConnectorType_LINES },
493*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
494*cdf0e10cSrcweir };
495*cdf0e10cSrcweir 
496*cdf0e10cSrcweir SvXMLEnumMapEntry   aXML_BitmapMode_EnumMap[] =
497*cdf0e10cSrcweir {
498*cdf0e10cSrcweir     { XML_REPEAT,                   drawing::BitmapMode_REPEAT },
499*cdf0e10cSrcweir     { XML_STRETCH,                  drawing::BitmapMode_STRETCH },
500*cdf0e10cSrcweir     { XML_BACKGROUND_NO_REPEAT,     drawing::BitmapMode_NO_REPEAT },
501*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
502*cdf0e10cSrcweir };
503*cdf0e10cSrcweir 
504*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
505*cdf0e10cSrcweir // 3D EnumMaps
506*cdf0e10cSrcweir 
507*cdf0e10cSrcweir SvXMLEnumMapEntry  aXML_NormalsKind_EnumMap[] =
508*cdf0e10cSrcweir {
509*cdf0e10cSrcweir     { XML_OBJECT,       drawing::NormalsKind_SPECIFIC },
510*cdf0e10cSrcweir     { XML_FLAT,         drawing::NormalsKind_FLAT },
511*cdf0e10cSrcweir     { XML_SPHERE,       drawing::NormalsKind_SPHERE },
512*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
513*cdf0e10cSrcweir };
514*cdf0e10cSrcweir 
515*cdf0e10cSrcweir SvXMLEnumMapEntry  aXML_TexGenerationX_EnumMap[] =
516*cdf0e10cSrcweir {
517*cdf0e10cSrcweir     { XML_OBJECT,       drawing::TextureProjectionMode_OBJECTSPECIFIC },
518*cdf0e10cSrcweir     { XML_PARALLEL,     drawing::TextureProjectionMode_PARALLEL },
519*cdf0e10cSrcweir     { XML_SPHERE,       drawing::TextureProjectionMode_SPHERE },
520*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
521*cdf0e10cSrcweir };
522*cdf0e10cSrcweir 
523*cdf0e10cSrcweir SvXMLEnumMapEntry  aXML_TexGenerationY_EnumMap[] =
524*cdf0e10cSrcweir {
525*cdf0e10cSrcweir     { XML_OBJECT,       drawing::TextureProjectionMode_OBJECTSPECIFIC },
526*cdf0e10cSrcweir     { XML_PARALLEL,     drawing::TextureProjectionMode_PARALLEL },
527*cdf0e10cSrcweir     { XML_SPHERE,       drawing::TextureProjectionMode_SPHERE },
528*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
529*cdf0e10cSrcweir };
530*cdf0e10cSrcweir 
531*cdf0e10cSrcweir SvXMLEnumMapEntry  aXML_TexKind_EnumMap[] =
532*cdf0e10cSrcweir {
533*cdf0e10cSrcweir     { XML_LUMINANCE,    drawing::TextureKind_LUMINANCE },
534*cdf0e10cSrcweir //    { XML_INTENSITY,  drawing::TextureKind_INTENSITY },
535*cdf0e10cSrcweir     { XML_COLOR,        drawing::TextureKind_COLOR },
536*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
537*cdf0e10cSrcweir };
538*cdf0e10cSrcweir 
539*cdf0e10cSrcweir SvXMLEnumMapEntry  aXML_TexMode_EnumMap[] =
540*cdf0e10cSrcweir {
541*cdf0e10cSrcweir     { XML_REPLACE,      drawing::TextureMode_REPLACE },
542*cdf0e10cSrcweir     { XML_MODULATE,     drawing::TextureMode_MODULATE },
543*cdf0e10cSrcweir     { XML_BLEND,        drawing::TextureMode_BLEND },
544*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
545*cdf0e10cSrcweir };
546*cdf0e10cSrcweir 
547*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_RefPoint_EnumMap[] =
548*cdf0e10cSrcweir {
549*cdf0e10cSrcweir     { XML_TOP_LEFT,     drawing::RectanglePoint_LEFT_TOP },
550*cdf0e10cSrcweir     { XML_TOP,          drawing::RectanglePoint_MIDDLE_TOP },
551*cdf0e10cSrcweir     { XML_TOP_RIGHT,    drawing::RectanglePoint_RIGHT_TOP },
552*cdf0e10cSrcweir     { XML_LEFT,         drawing::RectanglePoint_LEFT_MIDDLE },
553*cdf0e10cSrcweir     { XML_CENTER,       drawing::RectanglePoint_MIDDLE_MIDDLE },
554*cdf0e10cSrcweir     { XML_RIGHT,        drawing::RectanglePoint_RIGHT_MIDDLE },
555*cdf0e10cSrcweir     { XML_BOTTOM_LEFT,  drawing::RectanglePoint_LEFT_BOTTOM },
556*cdf0e10cSrcweir     { XML_BOTTOM,       drawing::RectanglePoint_MIDDLE_BOTTOM },
557*cdf0e10cSrcweir     { XML_BOTTOM_RIGHT, drawing::RectanglePoint_RIGHT_BOTTOM },
558*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
559*cdf0e10cSrcweir };
560*cdf0e10cSrcweir 
561*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_CircleKind_EnumMap[] =
562*cdf0e10cSrcweir {
563*cdf0e10cSrcweir     { XML_FULL,         drawing::CircleKind_FULL },
564*cdf0e10cSrcweir     { XML_SECTION,      drawing::CircleKind_SECTION },
565*cdf0e10cSrcweir     { XML_CUT,          drawing::CircleKind_CUT },
566*cdf0e10cSrcweir     { XML_ARC,          drawing::CircleKind_ARC },
567*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
568*cdf0e10cSrcweir };
569*cdf0e10cSrcweir 
570*cdf0e10cSrcweir SvXMLEnumMapEntry aXML_WritingMode_EnumMap[] =
571*cdf0e10cSrcweir {
572*cdf0e10cSrcweir     { XML_TB_RL,        text::WritingMode_TB_RL },
573*cdf0e10cSrcweir     { XML_LR_TB,        text::WritingMode_LR_TB },
574*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
575*cdf0e10cSrcweir };
576*cdf0e10cSrcweir 
577*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_TextAnimation_Enum[] =
578*cdf0e10cSrcweir {
579*cdf0e10cSrcweir     { XML_NONE,         drawing::TextAnimationKind_NONE },
580*cdf0e10cSrcweir     { XML_BLINKING,     drawing::TextAnimationKind_BLINK }, // will be filtered
581*cdf0e10cSrcweir     { XML_SCROLL,       drawing::TextAnimationKind_SCROLL },
582*cdf0e10cSrcweir     { XML_ALTERNATE,    drawing::TextAnimationKind_ALTERNATE },
583*cdf0e10cSrcweir     { XML_SLIDE,        drawing::TextAnimationKind_SLIDE },
584*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
585*cdf0e10cSrcweir };
586*cdf0e10cSrcweir 
587*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_TextAnimation_Blinking_Enum[] =
588*cdf0e10cSrcweir {
589*cdf0e10cSrcweir     { XML_FALSE,        drawing::TextAnimationKind_NONE },
590*cdf0e10cSrcweir     { XML_TRUE,         drawing::TextAnimationKind_BLINK },
591*cdf0e10cSrcweir     { XML_FALSE,        drawing::TextAnimationKind_SCROLL },
592*cdf0e10cSrcweir     { XML_FALSE,        drawing::TextAnimationKind_ALTERNATE },
593*cdf0e10cSrcweir     { XML_FALSE,        drawing::TextAnimationKind_SLIDE },
594*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
595*cdf0e10cSrcweir };
596*cdf0e10cSrcweir 
597*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_TextAnimationDirection_Enum[] =
598*cdf0e10cSrcweir {
599*cdf0e10cSrcweir     { XML_LEFT,         drawing::TextAnimationDirection_LEFT },
600*cdf0e10cSrcweir     { XML_RIGHT,        drawing::TextAnimationDirection_RIGHT },    // will be filtered
601*cdf0e10cSrcweir     { XML_UP,           drawing::TextAnimationDirection_UP },
602*cdf0e10cSrcweir     { XML_DOWN,         drawing::TextAnimationDirection_DOWN },
603*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
604*cdf0e10cSrcweir };
605*cdf0e10cSrcweir 
606*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_TextAlign_Enum[] =
607*cdf0e10cSrcweir {
608*cdf0e10cSrcweir     { XML_LEFT,         drawing::TextHorizontalAdjust_LEFT },
609*cdf0e10cSrcweir     { XML_CENTER,       drawing::TextHorizontalAdjust_CENTER },
610*cdf0e10cSrcweir     { XML_RIGHT,        drawing::TextHorizontalAdjust_RIGHT },
611*cdf0e10cSrcweir     { XML_JUSTIFY,      drawing::TextHorizontalAdjust_BLOCK },
612*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
613*cdf0e10cSrcweir };
614*cdf0e10cSrcweir 
615*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_VerticalAlign_Enum[] =
616*cdf0e10cSrcweir {
617*cdf0e10cSrcweir     { XML_TOP,          drawing::TextVerticalAdjust_TOP },
618*cdf0e10cSrcweir     { XML_MIDDLE,       drawing::TextVerticalAdjust_CENTER },
619*cdf0e10cSrcweir     { XML_BOTTOM,       drawing::TextVerticalAdjust_BOTTOM },
620*cdf0e10cSrcweir     { XML_JUSTIFY,      drawing::TextVerticalAdjust_BLOCK },
621*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
622*cdf0e10cSrcweir };
623*cdf0e10cSrcweir 
624*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_FitToSize_Enum[] =
625*cdf0e10cSrcweir {
626*cdf0e10cSrcweir     { XML_FALSE,        drawing::TextFitToSizeType_NONE },
627*cdf0e10cSrcweir     { XML_TRUE,         drawing::TextFitToSizeType_PROPORTIONAL },
628*cdf0e10cSrcweir     { XML_TRUE,         drawing::TextFitToSizeType_ALLLINES },
629*cdf0e10cSrcweir     { XML_TRUE,         drawing::TextFitToSizeType_RESIZEATTR },
630*cdf0e10cSrcweir     { XML_TOKEN_INVALID, 0 }
631*cdf0e10cSrcweir };
632*cdf0e10cSrcweir 
633*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_MeasureUnit_Enum[] =
634*cdf0e10cSrcweir {
635*cdf0e10cSrcweir     { XML_AUTOMATIC,    0 },
636*cdf0e10cSrcweir     { XML_UNIT_MM,      1 },
637*cdf0e10cSrcweir     { XML_UNIT_CM,      2 },
638*cdf0e10cSrcweir     { XML_UNIT_M,       3 },
639*cdf0e10cSrcweir     { XML_UNIT_KM,      4 },
640*cdf0e10cSrcweir     { XML_UNIT_PT,      6 },
641*cdf0e10cSrcweir     { XML_UNIT_PC,      7 },
642*cdf0e10cSrcweir     { XML_UNIT_INCH,    8 },
643*cdf0e10cSrcweir     { XML_UNIT_FOOT,    9 },
644*cdf0e10cSrcweir     { XML_UNIT_MILES,   10 },
645*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
646*cdf0e10cSrcweir };
647*cdf0e10cSrcweir 
648*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Measure_HAlign_Enum[] =
649*cdf0e10cSrcweir {
650*cdf0e10cSrcweir     { XML_AUTOMATIC,        drawing::MeasureTextHorzPos_AUTO },
651*cdf0e10cSrcweir     { XML_LEFT_OUTSIDE,     drawing::MeasureTextHorzPos_LEFTOUTSIDE },
652*cdf0e10cSrcweir     { XML_INSIDE,           drawing::MeasureTextHorzPos_INSIDE },
653*cdf0e10cSrcweir     { XML_RIGHT_OUTSIDE,    drawing::MeasureTextHorzPos_RIGHTOUTSIDE},
654*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
655*cdf0e10cSrcweir };
656*cdf0e10cSrcweir 
657*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Measure_VAlign_Enum[] =
658*cdf0e10cSrcweir {
659*cdf0e10cSrcweir     { XML_AUTOMATIC,    drawing::MeasureTextVertPos_AUTO },
660*cdf0e10cSrcweir     { XML_ABOVE,        drawing::MeasureTextVertPos_EAST },
661*cdf0e10cSrcweir     { XML_BELOW,        drawing::MeasureTextVertPos_WEST },
662*cdf0e10cSrcweir     { XML_CENTER,       drawing::MeasureTextVertPos_CENTERED },
663*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
664*cdf0e10cSrcweir };
665*cdf0e10cSrcweir 
666*cdf0e10cSrcweir // #FontWork#
667*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Fontwork_Style_Enum[] =
668*cdf0e10cSrcweir {
669*cdf0e10cSrcweir     { XML_ROTATE,       0 }, //XFT_ROTATE,
670*cdf0e10cSrcweir     { XML_UPRIGHT,      1 }, //XFT_UPRIGHT,
671*cdf0e10cSrcweir     { XML_SLANT_X,      2 }, //XFT_SLANTX,
672*cdf0e10cSrcweir     { XML_SLANT_Y,      3 }, //XFT_SLANTY,
673*cdf0e10cSrcweir     { XML_NONE,         4 }, //XFT_NONE
674*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
675*cdf0e10cSrcweir };
676*cdf0e10cSrcweir 
677*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Fontwork_Adjust_Enum[] =
678*cdf0e10cSrcweir {
679*cdf0e10cSrcweir     { XML_LEFT,         0 }, //XFT_LEFT,
680*cdf0e10cSrcweir     { XML_RIGHT,        1 }, //XFT_RIGHT,
681*cdf0e10cSrcweir     { XML_AUTOSIZE,     2 }, //XFT_AUTOSIZE,
682*cdf0e10cSrcweir     { XML_CENTER,       3 }, //XFT_CENTER
683*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
684*cdf0e10cSrcweir };
685*cdf0e10cSrcweir 
686*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Fontwork_Shadow_Enum[] =
687*cdf0e10cSrcweir {
688*cdf0e10cSrcweir     { XML_NORMAL,       0 }, //XFTSHADOW_NORMAL,
689*cdf0e10cSrcweir     { XML_SLANT,        1 }, //XFTSHADOW_SLANT,
690*cdf0e10cSrcweir     { XML_NONE,         2 }, //XFTSHADOW_NONE
691*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
692*cdf0e10cSrcweir };
693*cdf0e10cSrcweir 
694*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Fontwork_Form_Enum[] =
695*cdf0e10cSrcweir {
696*cdf0e10cSrcweir     { XML_NONE,             0 }, //XFTFORM_NONE,
697*cdf0e10cSrcweir     { XML_TOPCIRCLE,        1 }, //XFTFORM_TOPCIRC,
698*cdf0e10cSrcweir     { XML_BOTTOMCIRCLE,     2 }, //XFTFORM_BOTCIRC,
699*cdf0e10cSrcweir     { XML_LEFTCIRCLE,       3 }, //XFTFORM_LFTCIRC,
700*cdf0e10cSrcweir     { XML_RIGHTCIRCLE,      4 }, //XFTFORM_RGTCIRC,
701*cdf0e10cSrcweir     { XML_TOPARC,           5 }, //XFTFORM_TOPARC,
702*cdf0e10cSrcweir     { XML_BOTTOMARC,        6 }, //XFTFORM_BOTARC,
703*cdf0e10cSrcweir     { XML_LEFTARC,          7 }, //XFTFORM_LFTARC,
704*cdf0e10cSrcweir     { XML_RIGHTARC,         8 }, //XFTFORM_RGTARC,
705*cdf0e10cSrcweir     { XML_BUTTON1,          9 }, //XFTFORM_BUTTON1,
706*cdf0e10cSrcweir     { XML_BUTTON2,          10 }, //XFTFORM_BUTTON2,
707*cdf0e10cSrcweir     { XML_BUTTON3,          11 }, //XFTFORM_BUTTON3,
708*cdf0e10cSrcweir     { XML_BUTTON4,          12 }, //XFTFORM_BUTTON4
709*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
710*cdf0e10cSrcweir };
711*cdf0e10cSrcweir 
712*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Caption_Esc_Dir_Enum[] =
713*cdf0e10cSrcweir {
714*cdf0e10cSrcweir     { XML_HORIZONTAL,       0 }, //SDRCAPT_ESCHORIZONTAL,
715*cdf0e10cSrcweir     { XML_VERTICAL,         1 }, //SDRCAPT_ESCVERTICAL,
716*cdf0e10cSrcweir     { XML_AUTO,             2 }, //SDRCAPT_ESCBESTFIT,
717*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
718*cdf0e10cSrcweir };
719*cdf0e10cSrcweir 
720*cdf0e10cSrcweir SvXMLEnumMapEntry __READONLY_DATA pXML_Caption_Type_Enum[] =
721*cdf0e10cSrcweir {
722*cdf0e10cSrcweir     { XML_STRAIGHT_LINE,            0 }, //SDRCAPT_TYPE1,
723*cdf0e10cSrcweir     { XML_ANGLED_LINE,              1 }, //SDRCAPT_TYPE2,
724*cdf0e10cSrcweir     { XML_ANGLED_CONNECTOR_LINE,    2 }, //SDRCAPT_TYPE3,
725*cdf0e10cSrcweir     { XML_TOKEN_INVALID,0 }
726*cdf0e10cSrcweir };
727*cdf0e10cSrcweir 
728*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
729*cdf0e10cSrcweir 
730*cdf0e10cSrcweir class XMLCaptionEscapeRelative : public XMLPropertyHandler
731*cdf0e10cSrcweir {
732*cdf0e10cSrcweir public:
733*cdf0e10cSrcweir     virtual sal_Bool importXML(
734*cdf0e10cSrcweir             const ::rtl::OUString& rStrImpValue,
735*cdf0e10cSrcweir             ::com::sun::star::uno::Any& rValue,
736*cdf0e10cSrcweir             const SvXMLUnitConverter& rUnitConverter ) const;
737*cdf0e10cSrcweir     virtual sal_Bool exportXML(
738*cdf0e10cSrcweir             ::rtl::OUString& rStrExpValue,
739*cdf0e10cSrcweir             const ::com::sun::star::uno::Any& rValue,
740*cdf0e10cSrcweir             const SvXMLUnitConverter& rUnitConverter ) const;
741*cdf0e10cSrcweir };
742*cdf0e10cSrcweir 
743*cdf0e10cSrcweir sal_Bool XMLCaptionEscapeRelative::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
744*cdf0e10cSrcweir {
745*cdf0e10cSrcweir     sal_Int32 nValue;
746*cdf0e10cSrcweir 
747*cdf0e10cSrcweir     if( !SvXMLUnitConverter::convertPercent( nValue, rStrImpValue ) )
748*cdf0e10cSrcweir         return sal_False;
749*cdf0e10cSrcweir 
750*cdf0e10cSrcweir     nValue *= 100;
751*cdf0e10cSrcweir     rValue <<= nValue;
752*cdf0e10cSrcweir     return sal_True;
753*cdf0e10cSrcweir }
754*cdf0e10cSrcweir 
755*cdf0e10cSrcweir sal_Bool XMLCaptionEscapeRelative::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
756*cdf0e10cSrcweir {
757*cdf0e10cSrcweir     sal_Int32 nValue = 0;
758*cdf0e10cSrcweir     if( !(rValue >>= nValue ) )
759*cdf0e10cSrcweir         return sal_False;
760*cdf0e10cSrcweir 
761*cdf0e10cSrcweir     nValue /= 100;
762*cdf0e10cSrcweir     OUStringBuffer aOut;
763*cdf0e10cSrcweir     SvXMLUnitConverter::convertPercent( aOut, nValue );
764*cdf0e10cSrcweir     rStrExpValue = aOut.makeStringAndClear();
765*cdf0e10cSrcweir     return sal_True;
766*cdf0e10cSrcweir }
767*cdf0e10cSrcweir 
768*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
769*cdf0e10cSrcweir 
770*cdf0e10cSrcweir class XMLMoveSizeProtectHdl : public XMLPropertyHandler
771*cdf0e10cSrcweir {
772*cdf0e10cSrcweir public:
773*cdf0e10cSrcweir     XMLMoveSizeProtectHdl( sal_Int32 nType ) : mnType( nType ) {}
774*cdf0e10cSrcweir 
775*cdf0e10cSrcweir     virtual sal_Bool importXML(
776*cdf0e10cSrcweir             const ::rtl::OUString& rStrImpValue,
777*cdf0e10cSrcweir             ::com::sun::star::uno::Any& rValue,
778*cdf0e10cSrcweir             const SvXMLUnitConverter& rUnitConverter ) const;
779*cdf0e10cSrcweir     virtual sal_Bool exportXML(
780*cdf0e10cSrcweir             ::rtl::OUString& rStrExpValue,
781*cdf0e10cSrcweir             const ::com::sun::star::uno::Any& rValue,
782*cdf0e10cSrcweir             const SvXMLUnitConverter& rUnitConverter ) const;
783*cdf0e10cSrcweir private:
784*cdf0e10cSrcweir     const sal_Int32 mnType;
785*cdf0e10cSrcweir };
786*cdf0e10cSrcweir 
787*cdf0e10cSrcweir sal_Bool XMLMoveSizeProtectHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
788*cdf0e10cSrcweir {
789*cdf0e10cSrcweir     const sal_Bool bValue = rStrImpValue.indexOf( GetXMLToken( mnType == XML_SD_TYPE_MOVE_PROTECT ? XML_POSITION : XML_SIZE ) ) != -1;
790*cdf0e10cSrcweir     rValue <<= bValue;
791*cdf0e10cSrcweir     return sal_True;
792*cdf0e10cSrcweir }
793*cdf0e10cSrcweir 
794*cdf0e10cSrcweir sal_Bool XMLMoveSizeProtectHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
795*cdf0e10cSrcweir {
796*cdf0e10cSrcweir     sal_Bool bValue = sal_Bool();
797*cdf0e10cSrcweir     if( !(rValue >>= bValue ) )
798*cdf0e10cSrcweir         return sal_False;
799*cdf0e10cSrcweir 
800*cdf0e10cSrcweir     if( bValue )
801*cdf0e10cSrcweir     {
802*cdf0e10cSrcweir         if( rStrExpValue.getLength() )
803*cdf0e10cSrcweir             rStrExpValue += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " " ) );
804*cdf0e10cSrcweir 
805*cdf0e10cSrcweir         rStrExpValue += GetXMLToken( mnType == XML_SD_TYPE_MOVE_PROTECT ? XML_POSITION : XML_SIZE );
806*cdf0e10cSrcweir     }
807*cdf0e10cSrcweir 
808*cdf0e10cSrcweir     return sal_True;
809*cdf0e10cSrcweir }
810*cdf0e10cSrcweir 
811*cdf0e10cSrcweir 
812*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
813*cdf0e10cSrcweir 
814*cdf0e10cSrcweir class XMLSdHeaderFooterVisibilityTypeHdl : public XMLPropertyHandler
815*cdf0e10cSrcweir {
816*cdf0e10cSrcweir public:
817*cdf0e10cSrcweir     virtual ~XMLSdHeaderFooterVisibilityTypeHdl();
818*cdf0e10cSrcweir 
819*cdf0e10cSrcweir     virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
820*cdf0e10cSrcweir     virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
821*cdf0e10cSrcweir };
822*cdf0e10cSrcweir 
823*cdf0e10cSrcweir XMLSdHeaderFooterVisibilityTypeHdl::~XMLSdHeaderFooterVisibilityTypeHdl()
824*cdf0e10cSrcweir {
825*cdf0e10cSrcweir }
826*cdf0e10cSrcweir 
827*cdf0e10cSrcweir sal_Bool XMLSdHeaderFooterVisibilityTypeHdl::importXML(
828*cdf0e10cSrcweir         const ::rtl::OUString& rStrImpValue,
829*cdf0e10cSrcweir         ::com::sun::star::uno::Any& rValue,
830*cdf0e10cSrcweir         const SvXMLUnitConverter& ) const
831*cdf0e10cSrcweir {
832*cdf0e10cSrcweir     // #i38644#
833*cdf0e10cSrcweir     // attributes with this type where saved with VISIBLE|HIDDEN prior
834*cdf0e10cSrcweir     // to src680m67. So we have to import that correctly
835*cdf0e10cSrcweir     const sal_Bool bBool = IsXMLToken(rStrImpValue, XML_TRUE) || IsXMLToken(rStrImpValue, XML_VISIBLE);
836*cdf0e10cSrcweir     rValue <<= bBool;
837*cdf0e10cSrcweir     return bBool || IsXMLToken(rStrImpValue, XML_FALSE) || IsXMLToken(rStrImpValue, XML_HIDDEN);
838*cdf0e10cSrcweir }
839*cdf0e10cSrcweir 
840*cdf0e10cSrcweir sal_Bool XMLSdHeaderFooterVisibilityTypeHdl::exportXML(
841*cdf0e10cSrcweir         OUString& rStrExpValue,
842*cdf0e10cSrcweir         const Any& rValue,
843*cdf0e10cSrcweir         const SvXMLUnitConverter& ) const
844*cdf0e10cSrcweir {
845*cdf0e10cSrcweir     sal_Bool bRet = sal_False;
846*cdf0e10cSrcweir     OUStringBuffer aOut;
847*cdf0e10cSrcweir     sal_Bool bValue = sal_Bool();
848*cdf0e10cSrcweir 
849*cdf0e10cSrcweir     if (rValue >>= bValue)
850*cdf0e10cSrcweir     {
851*cdf0e10cSrcweir         SvXMLUnitConverter::convertBool( aOut, bValue );
852*cdf0e10cSrcweir         rStrExpValue = aOut.makeStringAndClear();
853*cdf0e10cSrcweir 
854*cdf0e10cSrcweir         bRet = sal_True;
855*cdf0e10cSrcweir     }
856*cdf0e10cSrcweir 
857*cdf0e10cSrcweir     return bRet;
858*cdf0e10cSrcweir }
859*cdf0e10cSrcweir 
860*cdf0e10cSrcweir 
861*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
862*cdf0e10cSrcweir 
863*cdf0e10cSrcweir XMLSdPropHdlFactory::XMLSdPropHdlFactory( uno::Reference< frame::XModel > xModel, SvXMLImport& rImport )
864*cdf0e10cSrcweir : mxModel( xModel ), mpExport(0), mpImport( &rImport )
865*cdf0e10cSrcweir {
866*cdf0e10cSrcweir }
867*cdf0e10cSrcweir 
868*cdf0e10cSrcweir XMLSdPropHdlFactory::XMLSdPropHdlFactory( uno::Reference< frame::XModel > xModel, SvXMLExport& rExport )
869*cdf0e10cSrcweir : mxModel( xModel ), mpExport( &rExport ), mpImport(0)
870*cdf0e10cSrcweir {
871*cdf0e10cSrcweir }
872*cdf0e10cSrcweir 
873*cdf0e10cSrcweir XMLSdPropHdlFactory::~XMLSdPropHdlFactory()
874*cdf0e10cSrcweir {
875*cdf0e10cSrcweir }
876*cdf0e10cSrcweir 
877*cdf0e10cSrcweir const XMLPropertyHandler* XMLSdPropHdlFactory::GetPropertyHandler( sal_Int32 nType ) const
878*cdf0e10cSrcweir {
879*cdf0e10cSrcweir     const XMLPropertyHandler* pHdl = XMLPropertyHandlerFactory::GetPropertyHandler( nType );
880*cdf0e10cSrcweir     if(!pHdl)
881*cdf0e10cSrcweir     {
882*cdf0e10cSrcweir         switch(nType)
883*cdf0e10cSrcweir         {
884*cdf0e10cSrcweir             case XML_SD_TYPE_STROKE :
885*cdf0e10cSrcweir             {
886*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_LineStyle_EnumMap, ::getCppuType((const drawing::LineStyle*)0) );
887*cdf0e10cSrcweir                 break;
888*cdf0e10cSrcweir             }
889*cdf0e10cSrcweir             case XML_SD_TYPE_LINEJOIN :
890*cdf0e10cSrcweir             {
891*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_LineJoint_EnumMap, ::getCppuType((const drawing::LineJoint*)0) );
892*cdf0e10cSrcweir                 break;
893*cdf0e10cSrcweir             }
894*cdf0e10cSrcweir             case XML_SD_TYPE_FILLSTYLE :
895*cdf0e10cSrcweir             {
896*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_FillStyle_EnumMap, ::getCppuType((const drawing::FillStyle*)0) );
897*cdf0e10cSrcweir                 break;
898*cdf0e10cSrcweir             }
899*cdf0e10cSrcweir             case XML_SD_TYPE_PRESPAGE_TYPE :
900*cdf0e10cSrcweir             {
901*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_PresChange_EnumMap, ::getCppuType((const sal_Int32*)0) );
902*cdf0e10cSrcweir                 break;
903*cdf0e10cSrcweir             }
904*cdf0e10cSrcweir             case XML_SD_TYPE_SHADOW :
905*cdf0e10cSrcweir             {
906*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_VISIBLE), GetXMLToken(XML_HIDDEN) );
907*cdf0e10cSrcweir                 break;
908*cdf0e10cSrcweir             }
909*cdf0e10cSrcweir             case XML_TYPE_SD_MIRROR:
910*cdf0e10cSrcweir             {
911*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_HORIZONTAL), GetXMLToken(XML_NONE) );
912*cdf0e10cSrcweir                 break;
913*cdf0e10cSrcweir             }
914*cdf0e10cSrcweir             case XML_SD_TYPE_PRESPAGE_STYLE :
915*cdf0e10cSrcweir             {
916*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_FadeEffect_EnumMap, ::getCppuType((const presentation::FadeEffect*)0) );
917*cdf0e10cSrcweir                 break;
918*cdf0e10cSrcweir             }
919*cdf0e10cSrcweir             case XML_SD_TYPE_PRESPAGE_SPEED :
920*cdf0e10cSrcweir             {
921*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_TransSpeed_EnumMap, ::getCppuType((const presentation::AnimationSpeed*)0) );
922*cdf0e10cSrcweir                 break;
923*cdf0e10cSrcweir             }
924*cdf0e10cSrcweir             case XML_SD_TYPE_PRESPAGE_DURATION :
925*cdf0e10cSrcweir             {
926*cdf0e10cSrcweir                 pHdl = new XMLDurationPropertyHdl();
927*cdf0e10cSrcweir                 break;
928*cdf0e10cSrcweir             }
929*cdf0e10cSrcweir             case XML_SD_TYPE_TEXT_CROSSEDOUT :
930*cdf0e10cSrcweir             {
931*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_SOLID), GetXMLToken(XML_NONE) );
932*cdf0e10cSrcweir                 break;
933*cdf0e10cSrcweir             }
934*cdf0e10cSrcweir             case XML_SD_TYPE_OPACITY :
935*cdf0e10cSrcweir             {
936*cdf0e10cSrcweir                 pHdl = new XMLOpacityPropertyHdl(mpImport);
937*cdf0e10cSrcweir                 break;
938*cdf0e10cSrcweir             }
939*cdf0e10cSrcweir             case XML_SD_TYPE_WRITINGMODE :
940*cdf0e10cSrcweir             {
941*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_WritingMode_EnumMap, ::getCppuType((const text::WritingMode*)0) );
942*cdf0e10cSrcweir                 break;
943*cdf0e10cSrcweir             }
944*cdf0e10cSrcweir             case XML_SD_TYPE_PRESPAGE_VISIBILITY :
945*cdf0e10cSrcweir             {
946*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_VISIBLE), GetXMLToken(XML_HIDDEN) );
947*cdf0e10cSrcweir                 break;
948*cdf0e10cSrcweir             }
949*cdf0e10cSrcweir             case XML_SD_TYPE_PRESPAGE_BACKSIZE:
950*cdf0e10cSrcweir             {
951*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FULL), GetXMLToken(XML_BORDER) );
952*cdf0e10cSrcweir                 break;
953*cdf0e10cSrcweir             }
954*cdf0e10cSrcweir 
955*cdf0e10cSrcweir             //////////////////////////////////////////////////////////////////
956*cdf0e10cSrcweir             // 3D Properties
957*cdf0e10cSrcweir 
958*cdf0e10cSrcweir             case XML_SD_TYPE_BACKFACE_CULLING:
959*cdf0e10cSrcweir             {
960*cdf0e10cSrcweir                 // #87922# DoubleSided -> BackfaceCulling
961*cdf0e10cSrcweir                 // This sal_Bool needs to be flipped, DoubleSided sal_True -> NO Backface culling
962*cdf0e10cSrcweir                 // and vice versa.
963*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_DISABLED), GetXMLToken(XML_ENABLED) );
964*cdf0e10cSrcweir                 break;
965*cdf0e10cSrcweir             }
966*cdf0e10cSrcweir 
967*cdf0e10cSrcweir             case XML_SD_TYPE_NORMALS_KIND:
968*cdf0e10cSrcweir             {
969*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_NormalsKind_EnumMap, ::getCppuType((const drawing::NormalsKind*)0) );
970*cdf0e10cSrcweir                 break;
971*cdf0e10cSrcweir             }
972*cdf0e10cSrcweir             case XML_SD_TYPE_NORMALS_DIRECTION:
973*cdf0e10cSrcweir             {
974*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_NORMAL), GetXMLToken(XML_INVERSE) );
975*cdf0e10cSrcweir                 break;
976*cdf0e10cSrcweir             }
977*cdf0e10cSrcweir             case XML_SD_TYPE_TEX_GENERATION_MODE_X:
978*cdf0e10cSrcweir             {
979*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_TexGenerationX_EnumMap, ::getCppuType((const drawing::TextureProjectionMode*)0) );
980*cdf0e10cSrcweir                 break;
981*cdf0e10cSrcweir             }
982*cdf0e10cSrcweir             case XML_SD_TYPE_TEX_GENERATION_MODE_Y:
983*cdf0e10cSrcweir             {
984*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_TexGenerationY_EnumMap, ::getCppuType((const drawing::TextureProjectionMode*)0) );
985*cdf0e10cSrcweir                 break;
986*cdf0e10cSrcweir             }
987*cdf0e10cSrcweir             case XML_SD_TYPE_TEX_KIND:
988*cdf0e10cSrcweir             {
989*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_TexKind_EnumMap, ::getCppuType((const drawing::TextureKind*)0) );
990*cdf0e10cSrcweir                 break;
991*cdf0e10cSrcweir             }
992*cdf0e10cSrcweir             case XML_SD_TYPE_TEX_MODE:
993*cdf0e10cSrcweir             {
994*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_TexMode_EnumMap, ::getCppuType((const drawing::TextureMode*)0) );
995*cdf0e10cSrcweir                 break;
996*cdf0e10cSrcweir             }
997*cdf0e10cSrcweir             case XML_SD_TYPE_NUMBULLET:
998*cdf0e10cSrcweir             {
999*cdf0e10cSrcweir                 uno::Reference<ucb::XAnyCompareFactory> xCompareFac( mxModel, uno::UNO_QUERY );
1000*cdf0e10cSrcweir                 uno::Reference<ucb::XAnyCompare> xCompare;
1001*cdf0e10cSrcweir                 if( xCompareFac.is() )
1002*cdf0e10cSrcweir                     xCompare = xCompareFac->createAnyCompareByName( OUString( RTL_CONSTASCII_USTRINGPARAM( "NumberingRules" ) ) );
1003*cdf0e10cSrcweir 
1004*cdf0e10cSrcweir                 pHdl = new XMLNumRulePropHdl( xCompare );
1005*cdf0e10cSrcweir                 break;
1006*cdf0e10cSrcweir             }
1007*cdf0e10cSrcweir             case XML_SD_TYPE_BITMAP_MODE:
1008*cdf0e10cSrcweir             {
1009*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_BitmapMode_EnumMap, getCppuType((const drawing::BitmapMode*)0) );
1010*cdf0e10cSrcweir                 break;
1011*cdf0e10cSrcweir             }
1012*cdf0e10cSrcweir             case XML_SD_TYPE_BITMAPREPOFFSETX:
1013*cdf0e10cSrcweir             case XML_SD_TYPE_BITMAPREPOFFSETY:
1014*cdf0e10cSrcweir             {
1015*cdf0e10cSrcweir                 pHdl = new XMLBitmapRepeatOffsetPropertyHandler( nType == XML_SD_TYPE_BITMAPREPOFFSETX );
1016*cdf0e10cSrcweir                 break;
1017*cdf0e10cSrcweir             }
1018*cdf0e10cSrcweir             case XML_SD_TYPE_FILLBITMAPSIZE:
1019*cdf0e10cSrcweir             {
1020*cdf0e10cSrcweir                 pHdl = new XMLFillBitmapSizePropertyHandler();
1021*cdf0e10cSrcweir                 break;
1022*cdf0e10cSrcweir             }
1023*cdf0e10cSrcweir             case XML_SD_TYPE_LOGICAL_SIZE:
1024*cdf0e10cSrcweir             {
1025*cdf0e10cSrcweir                 pHdl = new XMLBitmapLogicalSizePropertyHandler();
1026*cdf0e10cSrcweir                 break;
1027*cdf0e10cSrcweir             }
1028*cdf0e10cSrcweir             case XML_SD_TYPE_BITMAP_REFPOINT:
1029*cdf0e10cSrcweir             {
1030*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( aXML_RefPoint_EnumMap, getCppuType((const ::com::sun::star::drawing::RectanglePoint*)0) );
1031*cdf0e10cSrcweir                 break;
1032*cdf0e10cSrcweir             }
1033*cdf0e10cSrcweir             case XML_TYPE_TEXT_ANIMATION:
1034*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_TextAnimation_Enum, ::getCppuType((const com::sun::star::drawing::TextAnimationKind*)0) );
1035*cdf0e10cSrcweir                 break;
1036*cdf0e10cSrcweir             case XML_TYPE_TEXT_ANIMATION_BLINKING:
1037*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_TextAnimation_Blinking_Enum, ::getCppuType((const com::sun::star::drawing::TextAnimationKind*)0) );
1038*cdf0e10cSrcweir                 break;
1039*cdf0e10cSrcweir             case XML_TYPE_TEXT_ANIMATION_DIRECTION:
1040*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_TextAnimationDirection_Enum, ::getCppuType((const com::sun::star::drawing::TextAnimationDirection*)0) );
1041*cdf0e10cSrcweir                 break;
1042*cdf0e10cSrcweir             case XML_TYPE_TEXT_ANIMATION_STEPS:
1043*cdf0e10cSrcweir                 pHdl = new XMLTextAnimationStepPropertyHdl;
1044*cdf0e10cSrcweir                 break;
1045*cdf0e10cSrcweir             case XML_SD_TYPE_TEXT_ALIGN:
1046*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_TextAlign_Enum, ::getCppuType((const com::sun::star::drawing::TextHorizontalAdjust*)0) );
1047*cdf0e10cSrcweir                 break;
1048*cdf0e10cSrcweir             case XML_SD_TYPE_VERTICAL_ALIGN:
1049*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_VerticalAlign_Enum, ::getCppuType((const com::sun::star::drawing::TextVerticalAdjust*)0) );
1050*cdf0e10cSrcweir                 break;
1051*cdf0e10cSrcweir             case XML_SD_TYPE_FITTOSIZE:
1052*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_FitToSize_Enum, ::getCppuType((const com::sun::star::drawing::TextFitToSizeType*)0) );
1053*cdf0e10cSrcweir                 break;
1054*cdf0e10cSrcweir             case XML_SD_TYPE_MEASURE_UNIT:
1055*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_MeasureUnit_Enum, ::getCppuType((const sal_Int32*)0) );
1056*cdf0e10cSrcweir                 break;
1057*cdf0e10cSrcweir             case XML_SD_TYPE_MEASURE_HALIGN:
1058*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Measure_HAlign_Enum, ::getCppuType((const com::sun::star::drawing::MeasureTextHorzPos*)0) );
1059*cdf0e10cSrcweir                 break;
1060*cdf0e10cSrcweir             case XML_SD_TYPE_MEASURE_VALIGN:
1061*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Measure_VAlign_Enum, ::getCppuType((const com::sun::star::drawing::MeasureTextVertPos*)0) );
1062*cdf0e10cSrcweir                 break;
1063*cdf0e10cSrcweir             case XML_SD_TYPE_MEASURE_PLACING:
1064*cdf0e10cSrcweir                 {
1065*cdf0e10cSrcweir                     pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_BELOW), GetXMLToken(XML_ABOVE) );
1066*cdf0e10cSrcweir                 }
1067*cdf0e10cSrcweir                 break;
1068*cdf0e10cSrcweir             case XML_TYPE_TEXT_CLIP11:
1069*cdf0e10cSrcweir                 pHdl = new XMLClipPropertyHandler( sal_True );
1070*cdf0e10cSrcweir                 break;
1071*cdf0e10cSrcweir             case XML_TYPE_TEXT_CLIP:
1072*cdf0e10cSrcweir                 pHdl = new XMLClipPropertyHandler( sal_False );
1073*cdf0e10cSrcweir                 break;
1074*cdf0e10cSrcweir 
1075*cdf0e10cSrcweir             // #FontWork#
1076*cdf0e10cSrcweir             case XML_SD_TYPE_FONTWORK_STYLE     :
1077*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Style_Enum , ::getCppuType((const sal_Int32*)0));
1078*cdf0e10cSrcweir                 break;
1079*cdf0e10cSrcweir             case XML_SD_TYPE_FONTWORK_ADJUST        :
1080*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Adjust_Enum , ::getCppuType((const sal_Int32*)0));
1081*cdf0e10cSrcweir                 break;
1082*cdf0e10cSrcweir             case XML_SD_TYPE_FONTWORK_SHADOW        :
1083*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Shadow_Enum , ::getCppuType((const sal_Int32*)0));
1084*cdf0e10cSrcweir                 break;
1085*cdf0e10cSrcweir             case XML_SD_TYPE_FONTWORK_FORM      :
1086*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Fontwork_Form_Enum , ::getCppuType((const sal_Int32*)0));
1087*cdf0e10cSrcweir                 break;
1088*cdf0e10cSrcweir 
1089*cdf0e10cSrcweir             case XML_SD_TYPE_CONTROL_BORDER:
1090*cdf0e10cSrcweir                 pHdl = new ::xmloff::OControlBorderHandler( ::xmloff::OControlBorderHandler::STYLE );
1091*cdf0e10cSrcweir                 break;
1092*cdf0e10cSrcweir             case XML_SD_TYPE_CONTROL_BORDER_COLOR:
1093*cdf0e10cSrcweir                 pHdl = new ::xmloff::OControlBorderHandler( ::xmloff::OControlBorderHandler::COLOR );
1094*cdf0e10cSrcweir                 break;
1095*cdf0e10cSrcweir             case XML_SD_TYPE_IMAGE_SCALE_MODE:
1096*cdf0e10cSrcweir                 pHdl = new ::xmloff::ImageScaleModeHandler;
1097*cdf0e10cSrcweir                 break;
1098*cdf0e10cSrcweir             case XML_TYPE_CONTROL_TEXT_EMPHASIZE:
1099*cdf0e10cSrcweir                 pHdl = new ::xmloff::OControlTextEmphasisHandler;
1100*cdf0e10cSrcweir                 break;
1101*cdf0e10cSrcweir 
1102*cdf0e10cSrcweir             case XML_SD_TYPE_CAPTION_ANGLE_TYPE:
1103*cdf0e10cSrcweir             {
1104*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FIXED), GetXMLToken(XML_FREE) );
1105*cdf0e10cSrcweir                 break;
1106*cdf0e10cSrcweir             }
1107*cdf0e10cSrcweir             case XML_SD_TYPE_CAPTION_IS_ESC_REL:
1108*cdf0e10cSrcweir                 pHdl = new XMLIsPercentagePropertyHandler();
1109*cdf0e10cSrcweir                 break;
1110*cdf0e10cSrcweir             case XML_SD_TYPE_CAPTION_ESC_REL:
1111*cdf0e10cSrcweir                 pHdl = new XMLCaptionEscapeRelative();
1112*cdf0e10cSrcweir                 break;
1113*cdf0e10cSrcweir             case XML_SD_TYPE_CAPTION_ESC_ABS:
1114*cdf0e10cSrcweir                 pHdl = new XMLPercentOrMeasurePropertyHandler( sal_False );
1115*cdf0e10cSrcweir                 break;
1116*cdf0e10cSrcweir             case XML_SD_TYPE_CAPTION_ESC_DIR:
1117*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Caption_Esc_Dir_Enum , ::getCppuType((const sal_Int32*)0));
1118*cdf0e10cSrcweir                 break;
1119*cdf0e10cSrcweir             case XML_SD_TYPE_CAPTION_TYPE:
1120*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( pXML_Caption_Type_Enum , ::getCppuType((const sal_Int32*)0));
1121*cdf0e10cSrcweir                 break;
1122*cdf0e10cSrcweir             case XML_SD_TYPE_DATETIMEUPDATE:
1123*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FIXED), GetXMLToken(XML_VARIABLE) );
1124*cdf0e10cSrcweir                 break;
1125*cdf0e10cSrcweir             case XML_SD_TYPE_DATETIME_FORMAT:
1126*cdf0e10cSrcweir                 pHdl = new XMLDateTimeFormatHdl( mpExport );
1127*cdf0e10cSrcweir                 break;
1128*cdf0e10cSrcweir             case XML_SD_TYPE_TRANSITION_TYPE:
1129*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( xmloff::getAnimationsEnumMap(xmloff::Animations_EnumMap_TransitionType) , ::getCppuType((const sal_Int16*)0));
1130*cdf0e10cSrcweir                 break;
1131*cdf0e10cSrcweir             case XML_SD_TYPE_TRANSTIION_SUBTYPE:
1132*cdf0e10cSrcweir                 pHdl = new XMLEnumPropertyHdl( xmloff::getAnimationsEnumMap(xmloff::Animations_EnumMap_TransitionSubType) , ::getCppuType((const sal_Int16*)0));
1133*cdf0e10cSrcweir                 break;
1134*cdf0e10cSrcweir             case XML_SD_TYPE_TRANSTIION_DIRECTION:
1135*cdf0e10cSrcweir                 pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken(XML_FORWARD), GetXMLToken(XML_REVERSE) );
1136*cdf0e10cSrcweir                 break;
1137*cdf0e10cSrcweir             case XML_TYPE_WRAP_OPTION:
1138*cdf0e10cSrcweir                 pHdl = new XMLWordWrapPropertyHdl( mpImport );
1139*cdf0e10cSrcweir                 break;
1140*cdf0e10cSrcweir 
1141*cdf0e10cSrcweir             case XML_SD_TYPE_MOVE_PROTECT:
1142*cdf0e10cSrcweir             case XML_SD_TYPE_SIZE_PROTECT:
1143*cdf0e10cSrcweir                 pHdl = new XMLMoveSizeProtectHdl( nType );
1144*cdf0e10cSrcweir                 break;
1145*cdf0e10cSrcweir             case XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE:
1146*cdf0e10cSrcweir                 pHdl = new XMLSdHeaderFooterVisibilityTypeHdl();
1147*cdf0e10cSrcweir                 break;
1148*cdf0e10cSrcweir         }
1149*cdf0e10cSrcweir 
1150*cdf0e10cSrcweir         if(pHdl)
1151*cdf0e10cSrcweir             PutHdlCache(nType, pHdl);
1152*cdf0e10cSrcweir     }
1153*cdf0e10cSrcweir 
1154*cdf0e10cSrcweir     return pHdl;
1155*cdf0e10cSrcweir }
1156*cdf0e10cSrcweir 
1157*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
1158*cdf0e10cSrcweir 
1159*cdf0e10cSrcweir XMLShapePropertySetMapper::XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef)
1160*cdf0e10cSrcweir : XMLPropertySetMapper( aXMLSDProperties, rFactoryRef )
1161*cdf0e10cSrcweir {
1162*cdf0e10cSrcweir }
1163*cdf0e10cSrcweir 
1164*cdf0e10cSrcweir XMLShapePropertySetMapper::XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef, sal_uInt16 nOffset)
1165*cdf0e10cSrcweir : XMLPropertySetMapper( &aXMLSDProperties[nOffset], rFactoryRef )
1166*cdf0e10cSrcweir {
1167*cdf0e10cSrcweir }
1168*cdf0e10cSrcweir 
1169*cdf0e10cSrcweir XMLShapePropertySetMapper::~XMLShapePropertySetMapper()
1170*cdf0e10cSrcweir {
1171*cdf0e10cSrcweir }
1172*cdf0e10cSrcweir 
1173*cdf0e10cSrcweir // ----------------------------------------
1174*cdf0e10cSrcweir 
1175*cdf0e10cSrcweir XMLShapeExportPropertyMapper::XMLShapeExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, XMLTextListAutoStylePool *pListAutoPool, SvXMLExport& rExport )
1176*cdf0e10cSrcweir : SvXMLExportPropertyMapper( rMapper )
1177*cdf0e10cSrcweir , mpListAutoPool( pListAutoPool )
1178*cdf0e10cSrcweir , mrExport( rExport )
1179*cdf0e10cSrcweir , maNumRuleExp( rExport )
1180*cdf0e10cSrcweir , mbIsInAutoStyles( sal_True )
1181*cdf0e10cSrcweir , msCDATA( GetXMLToken(XML_CDATA))
1182*cdf0e10cSrcweir , msTrue( GetXMLToken(XML_TRUE))
1183*cdf0e10cSrcweir , msFalse( GetXMLToken(XML_FALSE))
1184*cdf0e10cSrcweir {
1185*cdf0e10cSrcweir }
1186*cdf0e10cSrcweir 
1187*cdf0e10cSrcweir XMLShapeExportPropertyMapper::~XMLShapeExportPropertyMapper()
1188*cdf0e10cSrcweir {
1189*cdf0e10cSrcweir }
1190*cdf0e10cSrcweir 
1191*cdf0e10cSrcweir void XMLShapeExportPropertyMapper::ContextFilter(
1192*cdf0e10cSrcweir     std::vector< XMLPropertyState >& rProperties,
1193*cdf0e10cSrcweir     uno::Reference< beans::XPropertySet > rPropSet ) const
1194*cdf0e10cSrcweir {
1195*cdf0e10cSrcweir     XMLPropertyState* pRepeatOffsetX = NULL;
1196*cdf0e10cSrcweir     XMLPropertyState* pRepeatOffsetY = NULL;
1197*cdf0e10cSrcweir     XMLPropertyState* pTextAnimationBlinking = NULL;
1198*cdf0e10cSrcweir     XMLPropertyState* pTextAnimationKind = NULL;
1199*cdf0e10cSrcweir 
1200*cdf0e10cSrcweir     // #FontWork#
1201*cdf0e10cSrcweir     XMLPropertyState* pFontWorkStyle = NULL;
1202*cdf0e10cSrcweir     XMLPropertyState* pFontWorkAdjust = NULL;
1203*cdf0e10cSrcweir     XMLPropertyState* pFontWorkDistance = NULL;
1204*cdf0e10cSrcweir     XMLPropertyState* pFontWorkStart = NULL;
1205*cdf0e10cSrcweir     XMLPropertyState* pFontWorkMirror = NULL;
1206*cdf0e10cSrcweir     XMLPropertyState* pFontWorkOutline = NULL;
1207*cdf0e10cSrcweir     XMLPropertyState* pFontWorkShadow = NULL;
1208*cdf0e10cSrcweir     XMLPropertyState* pFontWorkShadowColor = NULL;
1209*cdf0e10cSrcweir     XMLPropertyState* pFontWorkShadowOffsetx = NULL;
1210*cdf0e10cSrcweir     XMLPropertyState* pFontWorkShadowOffsety = NULL;
1211*cdf0e10cSrcweir     XMLPropertyState* pFontWorkForm = NULL;
1212*cdf0e10cSrcweir     XMLPropertyState* pFontWorkHideform = NULL;
1213*cdf0e10cSrcweir     XMLPropertyState* pFontWorkShadowTransparence = NULL;
1214*cdf0e10cSrcweir 
1215*cdf0e10cSrcweir     // OLE
1216*cdf0e10cSrcweir     XMLPropertyState* pOLEVisAreaLeft = NULL;
1217*cdf0e10cSrcweir     XMLPropertyState* pOLEVisAreaTop = NULL;
1218*cdf0e10cSrcweir     XMLPropertyState* pOLEVisAreaWidth = NULL;
1219*cdf0e10cSrcweir     XMLPropertyState* pOLEVisAreaHeight = NULL;
1220*cdf0e10cSrcweir     XMLPropertyState* pOLEIsInternal = NULL;
1221*cdf0e10cSrcweir 
1222*cdf0e10cSrcweir     // caption
1223*cdf0e10cSrcweir     XMLPropertyState* pCaptionIsEscRel = NULL;
1224*cdf0e10cSrcweir     XMLPropertyState* pCaptionEscRel = NULL;
1225*cdf0e10cSrcweir     XMLPropertyState* pCaptionEscAbs = NULL;
1226*cdf0e10cSrcweir 
1227*cdf0e10cSrcweir     // filter fo:clip
1228*cdf0e10cSrcweir     XMLPropertyState* pClip11State = NULL;
1229*cdf0e10cSrcweir     XMLPropertyState* pClipState = NULL;
1230*cdf0e10cSrcweir 
1231*cdf0e10cSrcweir     XMLPropertyState* pShapeWritingMode = NULL;
1232*cdf0e10cSrcweir     XMLPropertyState* pTextWritingMode = NULL;
1233*cdf0e10cSrcweir     XMLPropertyState* pControlWritingMode = NULL;
1234*cdf0e10cSrcweir 
1235*cdf0e10cSrcweir     // filter properties
1236*cdf0e10cSrcweir     for( std::vector< XMLPropertyState >::iterator aIter = rProperties.begin();
1237*cdf0e10cSrcweir          aIter != rProperties.end();
1238*cdf0e10cSrcweir          ++aIter )
1239*cdf0e10cSrcweir     {
1240*cdf0e10cSrcweir             XMLPropertyState *property = &(*aIter);
1241*cdf0e10cSrcweir         if( property->mnIndex == -1 )
1242*cdf0e10cSrcweir             continue;
1243*cdf0e10cSrcweir 
1244*cdf0e10cSrcweir         // find properties with context
1245*cdf0e10cSrcweir         // to prevent writing this property set mnIndex member to -1
1246*cdf0e10cSrcweir         switch( getPropertySetMapper()->GetEntryContextId( property->mnIndex ))
1247*cdf0e10cSrcweir         {
1248*cdf0e10cSrcweir             case CTF_NUMBERINGRULES:
1249*cdf0e10cSrcweir                 {
1250*cdf0e10cSrcweir                     if( mbIsInAutoStyles )
1251*cdf0e10cSrcweir                         property->mnIndex = -1;
1252*cdf0e10cSrcweir                 }
1253*cdf0e10cSrcweir                 break;
1254*cdf0e10cSrcweir             case CTF_SD_NUMBERINGRULES_NAME:
1255*cdf0e10cSrcweir                 {
1256*cdf0e10cSrcweir                     // this property is not exported in the style:properties element
1257*cdf0e10cSrcweir                     // because its an XIndexAccess and not a string.
1258*cdf0e10cSrcweir                     // This will be handled in SvXMLAutoStylePoolP::exportStyleAttributes
1259*cdf0e10cSrcweir                     // This is suboptimal
1260*cdf0e10cSrcweir                     if( !mbIsInAutoStyles )
1261*cdf0e10cSrcweir                         property->mnIndex = -1;
1262*cdf0e10cSrcweir                 }
1263*cdf0e10cSrcweir                 break;
1264*cdf0e10cSrcweir             case CTF_WRITINGMODE:
1265*cdf0e10cSrcweir                 {
1266*cdf0e10cSrcweir                     pShapeWritingMode = property;
1267*cdf0e10cSrcweir                     text::WritingMode eWritingMode;
1268*cdf0e10cSrcweir                     if( property->maValue >>= eWritingMode )
1269*cdf0e10cSrcweir                     {
1270*cdf0e10cSrcweir                         if( text::WritingMode_LR_TB == eWritingMode )
1271*cdf0e10cSrcweir                         {
1272*cdf0e10cSrcweir                             property->mnIndex = -1;
1273*cdf0e10cSrcweir                             pShapeWritingMode = 0;
1274*cdf0e10cSrcweir                         }
1275*cdf0e10cSrcweir                     }
1276*cdf0e10cSrcweir                 }
1277*cdf0e10cSrcweir                 break;
1278*cdf0e10cSrcweir             case CTF_CONTROLWRITINGMODE:
1279*cdf0e10cSrcweir                 pControlWritingMode = property;
1280*cdf0e10cSrcweir                 break;
1281*cdf0e10cSrcweir             case CTF_TEXTWRITINGMODE:
1282*cdf0e10cSrcweir                 pTextWritingMode = property;
1283*cdf0e10cSrcweir                 break;
1284*cdf0e10cSrcweir             case CTF_REPEAT_OFFSET_X:
1285*cdf0e10cSrcweir                 pRepeatOffsetX = property;
1286*cdf0e10cSrcweir                 break;
1287*cdf0e10cSrcweir 
1288*cdf0e10cSrcweir             case CTF_REPEAT_OFFSET_Y:
1289*cdf0e10cSrcweir                 pRepeatOffsetY = property;
1290*cdf0e10cSrcweir                 break;
1291*cdf0e10cSrcweir 
1292*cdf0e10cSrcweir             case CTF_DASHNAME:
1293*cdf0e10cSrcweir             case CTF_FILLGRADIENTNAME:
1294*cdf0e10cSrcweir             case CTF_FILLHATCHNAME:
1295*cdf0e10cSrcweir             case CTF_FILLBITMAPNAME:
1296*cdf0e10cSrcweir                 {
1297*cdf0e10cSrcweir                     OUString aStr;
1298*cdf0e10cSrcweir                     if( (property->maValue >>= aStr) && 0 == aStr.getLength() )
1299*cdf0e10cSrcweir                         property->mnIndex = -1;
1300*cdf0e10cSrcweir                 }
1301*cdf0e10cSrcweir                 break;
1302*cdf0e10cSrcweir             case CTF_TEXTANIMATION_BLINKING:
1303*cdf0e10cSrcweir                 pTextAnimationBlinking = property;
1304*cdf0e10cSrcweir                 break;
1305*cdf0e10cSrcweir             case CTF_TEXTANIMATION_KIND:
1306*cdf0e10cSrcweir                 pTextAnimationKind = property;
1307*cdf0e10cSrcweir                 break;
1308*cdf0e10cSrcweir 
1309*cdf0e10cSrcweir             // #FontWork#
1310*cdf0e10cSrcweir             case CTF_FONTWORK_STYLE:                pFontWorkStyle = property;              break;
1311*cdf0e10cSrcweir             case CTF_FONTWORK_ADJUST:               pFontWorkAdjust = property;             break;
1312*cdf0e10cSrcweir             case CTF_FONTWORK_DISTANCE:             pFontWorkDistance = property;           break;
1313*cdf0e10cSrcweir             case CTF_FONTWORK_START:                pFontWorkStart = property;              break;
1314*cdf0e10cSrcweir             case CTF_FONTWORK_MIRROR:               pFontWorkMirror = property;             break;
1315*cdf0e10cSrcweir             case CTF_FONTWORK_OUTLINE:              pFontWorkOutline = property;            break;
1316*cdf0e10cSrcweir             case CTF_FONTWORK_SHADOW:               pFontWorkShadow = property;             break;
1317*cdf0e10cSrcweir             case CTF_FONTWORK_SHADOWCOLOR:          pFontWorkShadowColor = property;        break;
1318*cdf0e10cSrcweir             case CTF_FONTWORK_SHADOWOFFSETX:        pFontWorkShadowOffsetx = property;      break;
1319*cdf0e10cSrcweir             case CTF_FONTWORK_SHADOWOFFSETY:        pFontWorkShadowOffsety = property;      break;
1320*cdf0e10cSrcweir             case CTF_FONTWORK_FORM:                 pFontWorkForm = property;               break;
1321*cdf0e10cSrcweir             case CTF_FONTWORK_HIDEFORM:             pFontWorkHideform = property;           break;
1322*cdf0e10cSrcweir             case CTF_FONTWORK_SHADOWTRANSPARENCE:   pFontWorkShadowTransparence = property; break;
1323*cdf0e10cSrcweir 
1324*cdf0e10cSrcweir             // OLE
1325*cdf0e10cSrcweir             case CTF_SD_OLE_VIS_AREA_EXPORT_LEFT:           pOLEVisAreaLeft = property;     break;
1326*cdf0e10cSrcweir             case CTF_SD_OLE_VIS_AREA_EXPORT_TOP:            pOLEVisAreaTop = property;      break;
1327*cdf0e10cSrcweir             case CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH:          pOLEVisAreaWidth = property;    break;
1328*cdf0e10cSrcweir             case CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT:     pOLEVisAreaHeight = property;   break;
1329*cdf0e10cSrcweir             case CTF_SD_OLE_ISINTERNAL:             pOLEIsInternal = property;      break;
1330*cdf0e10cSrcweir 
1331*cdf0e10cSrcweir             case CTF_FRAME_DISPLAY_SCROLLBAR:
1332*cdf0e10cSrcweir                 {
1333*cdf0e10cSrcweir                     if( !property->maValue.hasValue() )
1334*cdf0e10cSrcweir                         property->mnIndex = -1;
1335*cdf0e10cSrcweir                 }
1336*cdf0e10cSrcweir                 break;
1337*cdf0e10cSrcweir             case CTF_FRAME_MARGIN_HORI:
1338*cdf0e10cSrcweir             case CTF_FRAME_MARGIN_VERT:
1339*cdf0e10cSrcweir                 {
1340*cdf0e10cSrcweir                     sal_Int32 nValue = 0;
1341*cdf0e10cSrcweir                     if( (property->maValue >>= nValue) && (nValue < 0) )
1342*cdf0e10cSrcweir                         property->mnIndex = -1;
1343*cdf0e10cSrcweir                 }
1344*cdf0e10cSrcweir                 break;
1345*cdf0e10cSrcweir 
1346*cdf0e10cSrcweir             case CTF_SD_MOVE_PROTECT:
1347*cdf0e10cSrcweir                 {
1348*cdf0e10cSrcweir                     sal_Bool bProtected = sal_Bool();
1349*cdf0e10cSrcweir                     if( (property->maValue >>= bProtected) && !bProtected )
1350*cdf0e10cSrcweir                         property->mnIndex = -1;
1351*cdf0e10cSrcweir                 }
1352*cdf0e10cSrcweir                 break;
1353*cdf0e10cSrcweir             case CTF_SD_SIZE_PROTECT:
1354*cdf0e10cSrcweir                 {
1355*cdf0e10cSrcweir                     sal_Bool bProtected = sal_Bool();
1356*cdf0e10cSrcweir                     if( (property->maValue >>= bProtected) && !bProtected )
1357*cdf0e10cSrcweir                         property->mnIndex = -1;
1358*cdf0e10cSrcweir                 }
1359*cdf0e10cSrcweir                 break;
1360*cdf0e10cSrcweir             case CTF_CAPTION_ISESCREL:              pCaptionIsEscRel = property;    break;
1361*cdf0e10cSrcweir             case CTF_CAPTION_ESCREL:                pCaptionEscRel = property;      break;
1362*cdf0e10cSrcweir             case CTF_CAPTION_ESCABS:                pCaptionEscAbs = property;      break;
1363*cdf0e10cSrcweir             case CTF_TEXT_CLIP11:           pClip11State = property; break;
1364*cdf0e10cSrcweir             case CTF_TEXT_CLIP:             pClipState = property; break;
1365*cdf0e10cSrcweir         }
1366*cdf0e10cSrcweir     }
1367*cdf0e10cSrcweir 
1368*cdf0e10cSrcweir     // check for duplicate writing mode
1369*cdf0e10cSrcweir     if( pShapeWritingMode && (pTextWritingMode || pControlWritingMode) )
1370*cdf0e10cSrcweir     {
1371*cdf0e10cSrcweir         if( pTextWritingMode )
1372*cdf0e10cSrcweir             pTextWritingMode->mnIndex = -1;
1373*cdf0e10cSrcweir         if( pControlWritingMode )
1374*cdf0e10cSrcweir             pControlWritingMode->mnIndex = -1;
1375*cdf0e10cSrcweir     }
1376*cdf0e10cSrcweir     else if( pTextWritingMode && pControlWritingMode )
1377*cdf0e10cSrcweir     {
1378*cdf0e10cSrcweir         pControlWritingMode->mnIndex = -1;
1379*cdf0e10cSrcweir     }
1380*cdf0e10cSrcweir 
1381*cdf0e10cSrcweir     // do not export visual area for internal ole objects
1382*cdf0e10cSrcweir     if( pOLEIsInternal )
1383*cdf0e10cSrcweir     {
1384*cdf0e10cSrcweir         sal_Bool bInternal = sal_Bool();
1385*cdf0e10cSrcweir         if( (pOLEIsInternal->maValue >>= bInternal) && !bInternal )
1386*cdf0e10cSrcweir         {
1387*cdf0e10cSrcweir             try
1388*cdf0e10cSrcweir             {
1389*cdf0e10cSrcweir                 const OUString sVisibleArea( RTL_CONSTASCII_USTRINGPARAM("VisibleArea") );
1390*cdf0e10cSrcweir                 awt::Rectangle aRect;
1391*cdf0e10cSrcweir                 if( rPropSet->getPropertyValue( sVisibleArea ) >>= aRect )
1392*cdf0e10cSrcweir                 {
1393*cdf0e10cSrcweir                     if( pOLEVisAreaLeft )
1394*cdf0e10cSrcweir                     {
1395*cdf0e10cSrcweir                         pOLEVisAreaLeft->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_LEFT );
1396*cdf0e10cSrcweir                         pOLEVisAreaLeft->maValue <<= aRect;
1397*cdf0e10cSrcweir                     }
1398*cdf0e10cSrcweir                     if( pOLEVisAreaTop )
1399*cdf0e10cSrcweir                     {
1400*cdf0e10cSrcweir                         pOLEVisAreaTop->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_TOP );
1401*cdf0e10cSrcweir                         pOLEVisAreaTop->maValue <<=  aRect;
1402*cdf0e10cSrcweir                     }
1403*cdf0e10cSrcweir                     if( pOLEVisAreaWidth )
1404*cdf0e10cSrcweir                     {
1405*cdf0e10cSrcweir                         pOLEVisAreaWidth->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH );
1406*cdf0e10cSrcweir                         pOLEVisAreaWidth->maValue <<= aRect;
1407*cdf0e10cSrcweir                     }
1408*cdf0e10cSrcweir                     if( pOLEVisAreaHeight )
1409*cdf0e10cSrcweir                     {
1410*cdf0e10cSrcweir                         pOLEVisAreaHeight->mnIndex = getPropertySetMapper()->FindEntryIndex( CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT );
1411*cdf0e10cSrcweir                         pOLEVisAreaHeight->maValue <<= aRect;
1412*cdf0e10cSrcweir                     }
1413*cdf0e10cSrcweir                 }
1414*cdf0e10cSrcweir             }
1415*cdf0e10cSrcweir             catch( uno::Exception& )
1416*cdf0e10cSrcweir             {
1417*cdf0e10cSrcweir             }
1418*cdf0e10cSrcweir         }
1419*cdf0e10cSrcweir         else
1420*cdf0e10cSrcweir         {
1421*cdf0e10cSrcweir             if( pOLEVisAreaLeft )   pOLEVisAreaLeft->mnIndex = -1;
1422*cdf0e10cSrcweir             if( pOLEVisAreaTop )    pOLEVisAreaTop->mnIndex = -1;
1423*cdf0e10cSrcweir             if( pOLEVisAreaWidth )  pOLEVisAreaWidth->mnIndex = -1;
1424*cdf0e10cSrcweir             if( pOLEVisAreaHeight ) pOLEVisAreaHeight->mnIndex = -1;
1425*cdf0e10cSrcweir         }
1426*cdf0e10cSrcweir 
1427*cdf0e10cSrcweir         pOLEIsInternal->mnIndex = -1;
1428*cdf0e10cSrcweir     }
1429*cdf0e10cSrcweir 
1430*cdf0e10cSrcweir     if( pTextAnimationBlinking && pTextAnimationKind )
1431*cdf0e10cSrcweir     {
1432*cdf0e10cSrcweir         drawing::TextAnimationKind eKind;
1433*cdf0e10cSrcweir         if( (pTextAnimationKind->maValue >>= eKind) && eKind != drawing::TextAnimationKind_BLINK )
1434*cdf0e10cSrcweir         {
1435*cdf0e10cSrcweir             pTextAnimationBlinking->mnIndex = -1;
1436*cdf0e10cSrcweir         }
1437*cdf0e10cSrcweir         else
1438*cdf0e10cSrcweir         {
1439*cdf0e10cSrcweir             pTextAnimationKind->mnIndex = -1;
1440*cdf0e10cSrcweir         }
1441*cdf0e10cSrcweir     }
1442*cdf0e10cSrcweir 
1443*cdf0e10cSrcweir     if( pRepeatOffsetX && pRepeatOffsetY )
1444*cdf0e10cSrcweir     {
1445*cdf0e10cSrcweir         sal_Int32 nOffset = 0;
1446*cdf0e10cSrcweir         if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
1447*cdf0e10cSrcweir             pRepeatOffsetX->mnIndex = -1;
1448*cdf0e10cSrcweir         else
1449*cdf0e10cSrcweir             pRepeatOffsetY->mnIndex = -1;
1450*cdf0e10cSrcweir     }
1451*cdf0e10cSrcweir 
1452*cdf0e10cSrcweir     if(pFontWorkStyle)
1453*cdf0e10cSrcweir     {
1454*cdf0e10cSrcweir         // #FontWork#
1455*cdf0e10cSrcweir         sal_Int32 nStyle = 0;
1456*cdf0e10cSrcweir 
1457*cdf0e10cSrcweir         if(pFontWorkStyle->maValue >>= nStyle)
1458*cdf0e10cSrcweir         {
1459*cdf0e10cSrcweir             if(/*XFT_NONE*/4 == nStyle)
1460*cdf0e10cSrcweir             {
1461*cdf0e10cSrcweir                 pFontWorkStyle->mnIndex = -1;
1462*cdf0e10cSrcweir                 if(pFontWorkAdjust)
1463*cdf0e10cSrcweir                     pFontWorkAdjust->mnIndex = -1;
1464*cdf0e10cSrcweir                 if(pFontWorkDistance)
1465*cdf0e10cSrcweir                     pFontWorkDistance->mnIndex = -1;
1466*cdf0e10cSrcweir                 if(pFontWorkStart)
1467*cdf0e10cSrcweir                     pFontWorkStart->mnIndex = -1;
1468*cdf0e10cSrcweir                 if(pFontWorkMirror)
1469*cdf0e10cSrcweir                     pFontWorkMirror->mnIndex = -1;
1470*cdf0e10cSrcweir                 if(pFontWorkOutline)
1471*cdf0e10cSrcweir                     pFontWorkOutline->mnIndex = -1;
1472*cdf0e10cSrcweir                 if(pFontWorkShadow)
1473*cdf0e10cSrcweir                     pFontWorkShadow->mnIndex = -1;
1474*cdf0e10cSrcweir                 if(pFontWorkShadowColor)
1475*cdf0e10cSrcweir                     pFontWorkShadowColor->mnIndex = -1;
1476*cdf0e10cSrcweir                 if(pFontWorkShadowOffsetx)
1477*cdf0e10cSrcweir                     pFontWorkShadowOffsetx->mnIndex = -1;
1478*cdf0e10cSrcweir                 if(pFontWorkShadowOffsety)
1479*cdf0e10cSrcweir                     pFontWorkShadowOffsety->mnIndex = -1;
1480*cdf0e10cSrcweir                 if(pFontWorkForm)
1481*cdf0e10cSrcweir                     pFontWorkForm->mnIndex = -1;
1482*cdf0e10cSrcweir                 if(pFontWorkHideform)
1483*cdf0e10cSrcweir                     pFontWorkHideform->mnIndex = -1;
1484*cdf0e10cSrcweir                 if(pFontWorkShadowTransparence)
1485*cdf0e10cSrcweir                     pFontWorkShadowTransparence->mnIndex = -1;
1486*cdf0e10cSrcweir             }
1487*cdf0e10cSrcweir         }
1488*cdf0e10cSrcweir     }
1489*cdf0e10cSrcweir 
1490*cdf0e10cSrcweir     if( pCaptionIsEscRel )
1491*cdf0e10cSrcweir     {
1492*cdf0e10cSrcweir         sal_Bool bIsRel = false;
1493*cdf0e10cSrcweir         pCaptionIsEscRel->maValue >>= bIsRel;
1494*cdf0e10cSrcweir 
1495*cdf0e10cSrcweir         if( bIsRel )
1496*cdf0e10cSrcweir         {
1497*cdf0e10cSrcweir             if( pCaptionEscAbs )
1498*cdf0e10cSrcweir                 pCaptionEscAbs->mnIndex = -1;
1499*cdf0e10cSrcweir         }
1500*cdf0e10cSrcweir         else
1501*cdf0e10cSrcweir         {
1502*cdf0e10cSrcweir             if( pCaptionEscRel )
1503*cdf0e10cSrcweir                 pCaptionEscRel->mnIndex = -1;
1504*cdf0e10cSrcweir         }
1505*cdf0e10cSrcweir 
1506*cdf0e10cSrcweir         pCaptionIsEscRel->mnIndex = -1;
1507*cdf0e10cSrcweir     }
1508*cdf0e10cSrcweir 
1509*cdf0e10cSrcweir     if( pClipState != NULL && pClip11State != NULL  )
1510*cdf0e10cSrcweir         pClip11State->mnIndex = -1;
1511*cdf0e10cSrcweir 
1512*cdf0e10cSrcweir     SvXMLExportPropertyMapper::ContextFilter(rProperties, rPropSet);
1513*cdf0e10cSrcweir }
1514*cdf0e10cSrcweir 
1515*cdf0e10cSrcweir void XMLShapeExportPropertyMapper::handleSpecialItem(
1516*cdf0e10cSrcweir         SvXMLAttributeList& rAttrList,
1517*cdf0e10cSrcweir         const XMLPropertyState& rProperty,
1518*cdf0e10cSrcweir         const SvXMLUnitConverter& rUnitConverter,
1519*cdf0e10cSrcweir         const SvXMLNamespaceMap& rNamespaceMap,
1520*cdf0e10cSrcweir         const ::std::vector< XMLPropertyState > *pProperties,
1521*cdf0e10cSrcweir         sal_uInt32 nIdx ) const
1522*cdf0e10cSrcweir {
1523*cdf0e10cSrcweir     switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
1524*cdf0e10cSrcweir     {
1525*cdf0e10cSrcweir         case CTF_SD_CONTROL_SHAPE_DATA_STYLE:
1526*cdf0e10cSrcweir             // not to be handled by the base class
1527*cdf0e10cSrcweir             break;
1528*cdf0e10cSrcweir 
1529*cdf0e10cSrcweir         default:
1530*cdf0e10cSrcweir             SvXMLExportPropertyMapper::handleSpecialItem( rAttrList, rProperty, rUnitConverter, rNamespaceMap, pProperties, nIdx );
1531*cdf0e10cSrcweir             break;
1532*cdf0e10cSrcweir     }
1533*cdf0e10cSrcweir }
1534*cdf0e10cSrcweir 
1535*cdf0e10cSrcweir void XMLShapeExportPropertyMapper::handleElementItem(
1536*cdf0e10cSrcweir     SvXMLExport& rExport,
1537*cdf0e10cSrcweir     const XMLPropertyState& rProperty,
1538*cdf0e10cSrcweir     sal_uInt16 nFlags,
1539*cdf0e10cSrcweir     const ::std::vector< XMLPropertyState > *pProperties,
1540*cdf0e10cSrcweir     sal_uInt32 nIdx) const
1541*cdf0e10cSrcweir {
1542*cdf0e10cSrcweir     switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
1543*cdf0e10cSrcweir     {
1544*cdf0e10cSrcweir         case CTF_NUMBERINGRULES:
1545*cdf0e10cSrcweir             {
1546*cdf0e10cSrcweir                 // only export list-styles as elements in styles section
1547*cdf0e10cSrcweir                 if( !mbIsInAutoStyles )
1548*cdf0e10cSrcweir                 {
1549*cdf0e10cSrcweir                     uno::Reference< container::XIndexReplace > xNumRule( rProperty.maValue, uno::UNO_QUERY );
1550*cdf0e10cSrcweir                     if( xNumRule.is() )
1551*cdf0e10cSrcweir                         const_cast<XMLShapeExportPropertyMapper*>(this)->maNumRuleExp.exportNumberingRule( maStyleName, xNumRule );
1552*cdf0e10cSrcweir                 }
1553*cdf0e10cSrcweir             }
1554*cdf0e10cSrcweir             break;
1555*cdf0e10cSrcweir         default:
1556*cdf0e10cSrcweir             SvXMLExportPropertyMapper::handleElementItem( rExport, rProperty, nFlags, pProperties, nIdx );
1557*cdf0e10cSrcweir             break;
1558*cdf0e10cSrcweir     }
1559*cdf0e10cSrcweir }
1560*cdf0e10cSrcweir 
1561*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
1562*cdf0e10cSrcweir 
1563*cdf0e10cSrcweir XMLPagePropertySetMapper::XMLPagePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef)
1564*cdf0e10cSrcweir : XMLPropertySetMapper( aXMLSDPresPageProps, rFactoryRef )
1565*cdf0e10cSrcweir {
1566*cdf0e10cSrcweir }
1567*cdf0e10cSrcweir 
1568*cdf0e10cSrcweir XMLPagePropertySetMapper::~XMLPagePropertySetMapper()
1569*cdf0e10cSrcweir {
1570*cdf0e10cSrcweir }
1571*cdf0e10cSrcweir 
1572*cdf0e10cSrcweir // ----------------------------------------
1573*cdf0e10cSrcweir 
1574*cdf0e10cSrcweir XMLPageExportPropertyMapper::XMLPageExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, SvXMLExport& rExport ) :
1575*cdf0e10cSrcweir         SvXMLExportPropertyMapper( rMapper ),
1576*cdf0e10cSrcweir         mrExport( rExport ),
1577*cdf0e10cSrcweir         msCDATA( GetXMLToken(XML_CDATA))
1578*cdf0e10cSrcweir {
1579*cdf0e10cSrcweir }
1580*cdf0e10cSrcweir 
1581*cdf0e10cSrcweir XMLPageExportPropertyMapper::~XMLPageExportPropertyMapper()
1582*cdf0e10cSrcweir {
1583*cdf0e10cSrcweir }
1584*cdf0e10cSrcweir 
1585*cdf0e10cSrcweir void XMLPageExportPropertyMapper::ContextFilter(
1586*cdf0e10cSrcweir     std::vector< XMLPropertyState >& rProperties,
1587*cdf0e10cSrcweir     uno::Reference< beans::XPropertySet > rPropSet ) const
1588*cdf0e10cSrcweir {
1589*cdf0e10cSrcweir     XMLPropertyState* pRepeatOffsetX = NULL;
1590*cdf0e10cSrcweir     XMLPropertyState* pRepeatOffsetY = NULL;
1591*cdf0e10cSrcweir     XMLPropertyState* pTransType = NULL;
1592*cdf0e10cSrcweir     XMLPropertyState* pTransDuration = NULL;
1593*cdf0e10cSrcweir     XMLPropertyState* pDateTimeUpdate = NULL;
1594*cdf0e10cSrcweir     XMLPropertyState* pDateTimeFormat = NULL;
1595*cdf0e10cSrcweir     XMLPropertyState* pTransitionFadeColor = NULL;
1596*cdf0e10cSrcweir 
1597*cdf0e10cSrcweir     sal_Int16 nTransitionType = 0;
1598*cdf0e10cSrcweir 
1599*cdf0e10cSrcweir     // filter properties
1600*cdf0e10cSrcweir     for( std::vector< XMLPropertyState >::iterator aIter = rProperties.begin();
1601*cdf0e10cSrcweir          aIter != rProperties.end();
1602*cdf0e10cSrcweir          ++aIter )
1603*cdf0e10cSrcweir     {
1604*cdf0e10cSrcweir         XMLPropertyState *property = &(*aIter);
1605*cdf0e10cSrcweir         if( property->mnIndex == -1 )
1606*cdf0e10cSrcweir             continue;
1607*cdf0e10cSrcweir 
1608*cdf0e10cSrcweir         // find properties with context
1609*cdf0e10cSrcweir         // to prevent writing this property set mnIndex member to -1
1610*cdf0e10cSrcweir         switch( getPropertySetMapper()->GetEntryContextId( property->mnIndex ))
1611*cdf0e10cSrcweir         {
1612*cdf0e10cSrcweir 
1613*cdf0e10cSrcweir             case CTF_REPEAT_OFFSET_X:
1614*cdf0e10cSrcweir                 pRepeatOffsetX = property;
1615*cdf0e10cSrcweir                 break;
1616*cdf0e10cSrcweir 
1617*cdf0e10cSrcweir             case CTF_REPEAT_OFFSET_Y:
1618*cdf0e10cSrcweir                 pRepeatOffsetY = property;
1619*cdf0e10cSrcweir                 break;
1620*cdf0e10cSrcweir             case CTF_PAGE_TRANS_TYPE:
1621*cdf0e10cSrcweir                 pTransType = property;
1622*cdf0e10cSrcweir                 break;
1623*cdf0e10cSrcweir             case CTF_PAGE_TRANS_STYLE:
1624*cdf0e10cSrcweir                 if( mrExport.getExportFlags() & EXPORT_OASIS )
1625*cdf0e10cSrcweir                     (*property).mnIndex = -1;
1626*cdf0e10cSrcweir                 break;
1627*cdf0e10cSrcweir             case CTF_PAGE_TRANSITION_TYPE:
1628*cdf0e10cSrcweir                 {
1629*cdf0e10cSrcweir                     if( ((mrExport.getExportFlags() & EXPORT_OASIS) == 0) ||
1630*cdf0e10cSrcweir                         (((*property).maValue >>= nTransitionType) && (nTransitionType == 0)) )
1631*cdf0e10cSrcweir                             (*property).mnIndex = -1;
1632*cdf0e10cSrcweir                 }
1633*cdf0e10cSrcweir                 break;
1634*cdf0e10cSrcweir             case CTF_PAGE_TRANSITION_SUBTYPE:
1635*cdf0e10cSrcweir                 {
1636*cdf0e10cSrcweir                     sal_Int16 nTransitionSubtype = sal_Int16();
1637*cdf0e10cSrcweir                     if( ((mrExport.getExportFlags() & EXPORT_OASIS) == 0) ||
1638*cdf0e10cSrcweir                         (((*property).maValue >>= nTransitionSubtype) && (nTransitionSubtype == 0)) )
1639*cdf0e10cSrcweir                             (*property).mnIndex = -1;
1640*cdf0e10cSrcweir 
1641*cdf0e10cSrcweir                 }
1642*cdf0e10cSrcweir                 break;
1643*cdf0e10cSrcweir             case CTF_PAGE_TRANSITION_DIRECTION:
1644*cdf0e10cSrcweir                 {
1645*cdf0e10cSrcweir                     sal_Bool bDirection = sal_Bool();
1646*cdf0e10cSrcweir                     if( ((mrExport.getExportFlags() & EXPORT_OASIS) == 0) ||
1647*cdf0e10cSrcweir                         (((*property).maValue >>= bDirection) && bDirection) )
1648*cdf0e10cSrcweir                             (*property).mnIndex = -1;
1649*cdf0e10cSrcweir                 }
1650*cdf0e10cSrcweir                 break;
1651*cdf0e10cSrcweir             case CTF_PAGE_TRANSITION_FADECOLOR:
1652*cdf0e10cSrcweir                 if( ((mrExport.getExportFlags() & EXPORT_OASIS) == 0) )
1653*cdf0e10cSrcweir                     (*property).mnIndex = -1;
1654*cdf0e10cSrcweir                 else
1655*cdf0e10cSrcweir                     pTransitionFadeColor = property;
1656*cdf0e10cSrcweir                 break;
1657*cdf0e10cSrcweir             case CTF_PAGE_TRANS_SPEED:
1658*cdf0e10cSrcweir                 {
1659*cdf0e10cSrcweir                     presentation::AnimationSpeed aEnum;
1660*cdf0e10cSrcweir                     if( ((*property).maValue >>= aEnum) && aEnum == presentation::AnimationSpeed_MEDIUM )
1661*cdf0e10cSrcweir                         (*property).mnIndex = -1;
1662*cdf0e10cSrcweir                 }
1663*cdf0e10cSrcweir                 break;
1664*cdf0e10cSrcweir             case CTF_PAGE_VISIBLE:
1665*cdf0e10cSrcweir //          case CTF_HEADER_VISIBLE:
1666*cdf0e10cSrcweir //          case CTF_FOOTER_VISIBLE:
1667*cdf0e10cSrcweir //          case CTF_PAGE_NUMBER_VISIBLE:
1668*cdf0e10cSrcweir //          case CTF_DATE_TIME_VISIBLE:
1669*cdf0e10cSrcweir                 {
1670*cdf0e10cSrcweir                     sal_Bool bVisible = false;
1671*cdf0e10cSrcweir                     (*property).maValue >>= bVisible;
1672*cdf0e10cSrcweir                     if( bVisible )
1673*cdf0e10cSrcweir                         (*property).mnIndex = -1;
1674*cdf0e10cSrcweir                 }
1675*cdf0e10cSrcweir                 break;
1676*cdf0e10cSrcweir             case CTF_PAGE_TRANS_DURATION:
1677*cdf0e10cSrcweir                 pTransDuration = property;
1678*cdf0e10cSrcweir                 break;
1679*cdf0e10cSrcweir             case CTF_HEADER_TEXT:
1680*cdf0e10cSrcweir             case CTF_FOOTER_TEXT:
1681*cdf0e10cSrcweir             case CTF_DATE_TIME_TEXT:
1682*cdf0e10cSrcweir                 {
1683*cdf0e10cSrcweir                     OUString aValue;
1684*cdf0e10cSrcweir                     (*property).maValue >>= aValue;
1685*cdf0e10cSrcweir                     if( aValue.getLength() == 0 )
1686*cdf0e10cSrcweir                         (*property).mnIndex = -1;
1687*cdf0e10cSrcweir                 }
1688*cdf0e10cSrcweir                 break;
1689*cdf0e10cSrcweir 
1690*cdf0e10cSrcweir             case CTF_DATE_TIME_UPDATE:
1691*cdf0e10cSrcweir                 pDateTimeUpdate = property;
1692*cdf0e10cSrcweir                 break;
1693*cdf0e10cSrcweir 
1694*cdf0e10cSrcweir             case CTF_DATE_TIME_FORMAT:
1695*cdf0e10cSrcweir                 pDateTimeFormat = property;
1696*cdf0e10cSrcweir                 break;
1697*cdf0e10cSrcweir         }
1698*cdf0e10cSrcweir     }
1699*cdf0e10cSrcweir 
1700*cdf0e10cSrcweir     if( pTransitionFadeColor && nTransitionType != ::com::sun::star::animations::TransitionType::FADE )
1701*cdf0e10cSrcweir         pTransitionFadeColor->mnIndex = -1;
1702*cdf0e10cSrcweir 
1703*cdf0e10cSrcweir     if( pDateTimeFormat && pDateTimeUpdate )
1704*cdf0e10cSrcweir     {
1705*cdf0e10cSrcweir         sal_Bool bIsFixed = false;
1706*cdf0e10cSrcweir         pDateTimeUpdate->maValue >>= bIsFixed;
1707*cdf0e10cSrcweir         if( bIsFixed )
1708*cdf0e10cSrcweir             pDateTimeFormat->mnIndex = -1;
1709*cdf0e10cSrcweir     }
1710*cdf0e10cSrcweir 
1711*cdf0e10cSrcweir     if( pRepeatOffsetX && pRepeatOffsetY )
1712*cdf0e10cSrcweir     {
1713*cdf0e10cSrcweir         sal_Int32 nOffset = 0;
1714*cdf0e10cSrcweir         if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
1715*cdf0e10cSrcweir             pRepeatOffsetX->mnIndex = -1;
1716*cdf0e10cSrcweir         else
1717*cdf0e10cSrcweir             pRepeatOffsetY->mnIndex = -1;
1718*cdf0e10cSrcweir     }
1719*cdf0e10cSrcweir 
1720*cdf0e10cSrcweir     if( pTransType && pTransDuration )
1721*cdf0e10cSrcweir     {
1722*cdf0e10cSrcweir         sal_Int32 nChange = 0;
1723*cdf0e10cSrcweir         pTransType->maValue >>= nChange;
1724*cdf0e10cSrcweir 
1725*cdf0e10cSrcweir         // only export duration for automatic
1726*cdf0e10cSrcweir         if( nChange != 1 )
1727*cdf0e10cSrcweir             pTransDuration->mnIndex = -1;
1728*cdf0e10cSrcweir 
1729*cdf0e10cSrcweir         // do not export default transition change
1730*cdf0e10cSrcweir         if( nChange == 0 )
1731*cdf0e10cSrcweir             pTransType->mnIndex = -1;
1732*cdf0e10cSrcweir     }
1733*cdf0e10cSrcweir 
1734*cdf0e10cSrcweir     SvXMLExportPropertyMapper::ContextFilter(rProperties, rPropSet);
1735*cdf0e10cSrcweir }
1736*cdf0e10cSrcweir 
1737*cdf0e10cSrcweir void XMLPageExportPropertyMapper::handleElementItem(
1738*cdf0e10cSrcweir     SvXMLExport& rExport,
1739*cdf0e10cSrcweir     const XMLPropertyState& rProperty,
1740*cdf0e10cSrcweir     sal_uInt16 nFlags,
1741*cdf0e10cSrcweir     const ::std::vector< XMLPropertyState > *pProperties,
1742*cdf0e10cSrcweir     sal_uInt32 nIdx) const
1743*cdf0e10cSrcweir {
1744*cdf0e10cSrcweir     switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ) )
1745*cdf0e10cSrcweir     {
1746*cdf0e10cSrcweir         case CTF_PAGE_SOUND_URL:
1747*cdf0e10cSrcweir             {
1748*cdf0e10cSrcweir                 OUString aSoundURL;
1749*cdf0e10cSrcweir                 if( (rProperty.maValue >>= aSoundURL) && aSoundURL.getLength() != 0 )
1750*cdf0e10cSrcweir                 {
1751*cdf0e10cSrcweir                     mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, mrExport.GetRelativeReference(aSoundURL) );
1752*cdf0e10cSrcweir                     mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
1753*cdf0e10cSrcweir                     mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_NEW );
1754*cdf0e10cSrcweir                     mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONREQUEST );
1755*cdf0e10cSrcweir                     SvXMLElementExport aElem( mrExport, XML_NAMESPACE_PRESENTATION, XML_SOUND, sal_True, sal_True );
1756*cdf0e10cSrcweir                 }
1757*cdf0e10cSrcweir             }
1758*cdf0e10cSrcweir             break;
1759*cdf0e10cSrcweir         default:
1760*cdf0e10cSrcweir             SvXMLExportPropertyMapper::handleElementItem( rExport, rProperty, nFlags, pProperties, nIdx );
1761*cdf0e10cSrcweir             break;
1762*cdf0e10cSrcweir     }
1763*cdf0e10cSrcweir }
1764*cdf0e10cSrcweir 
1765