xref: /trunk/main/xmloff/source/text/txtprmap.cxx (revision 85ecee34)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 // MARKER(update_precomp.py): autogen include statement, do not remove
23 #include "precompiled_xmloff.hxx"
24 
25 #include <xmloff/txtprmap.hxx>
26 #include <tools/debug.hxx>
27 #include <xmloff/xmlnmspe.hxx>
28 #include <xmloff/xmltoken.hxx>
29 #include "txtprhdl.hxx"
30 
31 //UUUU
32 #include <xmlsdtypes.hxx>
33 
34 using namespace ::com::sun::star;
35 using namespace ::com::sun::star::uno;
36 using namespace ::xmloff::token;
37 
38 #define _M_E( a, p, l, t, c ) \
39 	{ a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, static_cast<sal_Int32>(t), c, SvtSaveOptions::ODFVER_010 }
40 
41 #define _M_EV( a, p, l, t, c, v ) \
42 	{ a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, static_cast<sal_Int32>(t), c, v }
43 
44 #define _M_ED( a, p, l, t, c ) \
45 	{ a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, static_cast<sal_Int32>((t) | MID_FLAG_DEFAULT_ITEM_EXPORT), c, SvtSaveOptions::ODFVER_010 }
46 
47 // text properties
48 #define MT_E( a, p, l, t, c ) \
49 	_M_E( a, p, l, (t|XML_TYPE_PROP_TEXT), c )
50 #define MT_ED( a, p, l, t, c ) \
51 	_M_ED( a, p, l, (t|XML_TYPE_PROP_TEXT), c )
52 
53 // paragraph properties
54 #define MP_E( a, p, l, t, c ) \
55 	_M_E( a, p, l, (t|XML_TYPE_PROP_PARAGRAPH), c )
56 #define MP_ED( a, p, l, t, c ) \
57 	_M_ED( a, p, l, (t|XML_TYPE_PROP_PARAGRAPH), c )
58 
59 // graphic properties
60 #define MG_E( a, p, l, t, c ) \
61 	_M_E( a, p, l, (t|XML_TYPE_PROP_GRAPHIC), c )
62 #define MG_ED( a, p, l, t, c ) \
63 	_M_ED( a, p, l, (t|XML_TYPE_PROP_GRAPHIC), c )
64 #define MG_EV( a, p, l, t, c, v ) \
65 	_M_EV( a, p, l, (t|XML_TYPE_PROP_GRAPHIC), c, v )
66 
67 // section properties
68 #define MS_E( a, p, l, t, c ) \
69 	_M_E( a, p, l, (t|XML_TYPE_PROP_SECTION), c )
70 #define MS_ED( a, p, l, t, c ) \
71 	_M_ED( a, p, l, (t|XML_TYPE_PROP_SECTION), c )
72 
73 // ruby properties
74 #define MR_E( a, p, l, t, c ) \
75 	_M_E( a, p, l, (t|XML_TYPE_PROP_RUBY), c )
76 #define MR_ED( a, p, l, t, c ) \
77 	_M_ED( a, p, l, (t|XML_TYPE_PROP_RUBY), c )
78 
79 #define M_END() \
80 	{ NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010 }
81 
82 //UUUU
83 #define _MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010 }
84 #define GMAP(name,prefix,token,type,context) _MAP(name,prefix,token,static_cast<sal_Int32>(type|XML_TYPE_PROP_GRAPHIC),context)
85 
86 XMLPropertyMapEntry aXMLParaPropMap[] =
87 {
88 	// RES_UNKNOWNATR_CONTAINER
89 	MP_E( "ParaUserDefinedAttributes", TEXT, XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
90 
91     //UUUU fill attributes for paragraph backgrounds
92     // #125045# moved to the front to be able to exclude these in lcl_txtprmap_getMap
93     // for TEXT_PROP_MAP_SHAPE_PARA to not have these double for Shapes (which already have these)
94     GMAP( "FillStyle",						XML_NAMESPACE_DRAW,	XML_FILL,					XML_SW_TYPE_FILLSTYLE, 0 ),
95     GMAP( "FillColor",						XML_NAMESPACE_DRAW, XML_FILL_COLOR, 			XML_TYPE_COLOR, 0 ),
96     GMAP( "FillColor2",						XML_NAMESPACE_DRAW, XML_SECONDARY_FILL_COLOR,	XML_TYPE_COLOR, 0 ),
97     GMAP( "FillGradientName",				XML_NAMESPACE_DRAW, XML_FILL_GRADIENT_NAME, 	XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLGRADIENTNAME ),
98     GMAP( "FillGradientStepCount",			XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT,	XML_TYPE_NUMBER16, 0 ),
99     GMAP( "FillHatchName",					XML_NAMESPACE_DRAW, XML_FILL_HATCH_NAME,		XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLHATCHNAME ),
100     GMAP( "FillBackground",					XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID,		XML_TYPE_BOOL, 0 ),
101     GMAP( "FillBitmapName",					XML_NAMESPACE_DRAW, XML_FILL_IMAGE_NAME,		XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLBITMAPNAME ),
102     GMAP( "FillTransparence",				XML_NAMESPACE_DRAW, XML_OPACITY,			    XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),	// exists in SW, too
103     GMAP( "FillTransparenceGradientName",	XML_NAMESPACE_DRAW, XML_OPACITY_NAME,		    XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLTRANSNAME ),
104     GMAP( "FillBitmapSizeX",				XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_WIDTH,		XML_SW_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
105     GMAP( "FillBitmapLogicalSize",			XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,		XML_SW_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
106     GMAP( "FillBitmapSizeY",				XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_HEIGHT,		XML_SW_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
107     GMAP( "FillBitmapLogicalSize",			XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,		XML_SW_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
108     GMAP( "FillBitmapMode",					XML_NAMESPACE_STYLE,XML_REPEAT, 				XML_SW_TYPE_BITMAP_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
109     GMAP( "FillBitmapPositionOffsetX",		XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
110     GMAP( "FillBitmapPositionOffsetY",		XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
111     GMAP( "FillBitmapRectanglePoint",		XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_REF_POINT,	XML_SW_TYPE_BITMAP_REFPOINT, 0 ),
112     GMAP( "FillBitmapOffsetX",				XML_NAMESPACE_DRAW,	XML_TILE_REPEAT_OFFSET, 	XML_SW_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_X ),
113     GMAP( "FillBitmapOffsetY",				XML_NAMESPACE_DRAW,	XML_TILE_REPEAT_OFFSET, 	XML_SW_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_Y ),
114 
115     // RES_LR_SPACE
116     // !!! DO NOT REORDER THE MARGINS !!!
117 	MP_E( "ParaLeftMargin",			FO,	MARGIN,		XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARAMARGINALL ),
118 	MP_E( "ParaLeftMarginRelative",	FO,	MARGIN,		XML_TYPE_PERCENT16, CTF_PARAMARGINALL_REL ),
119 	MP_E( "ParaLeftMargin",			FO,	MARGIN_LEFT,		XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARALEFTMARGIN ),
120 	MP_E( "ParaLeftMarginRelative",	FO,	MARGIN_LEFT,		XML_TYPE_PERCENT16, CTF_PARALEFTMARGIN_REL ),
121 	MP_E( "ParaRightMargin",			FO,	MARGIN_RIGHT,		XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARARIGHTMARGIN ),
122 	MP_E( "ParaRightMarginRelative",	FO,	MARGIN_RIGHT,		XML_TYPE_PERCENT16, CTF_PARARIGHTMARGIN_REL ),
123 	// RES_UL_SPACE
124 	MP_E( "ParaTopMargin",			FO,	MARGIN_TOP,			XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARATOPMARGIN ),
125 	MP_E( "ParaTopMarginRelative",	FO,	MARGIN_TOP,			XML_TYPE_PERCENT16, CTF_PARATOPMARGIN_REL ),
126 	MP_E( "ParaBottomMargin",		FO,	MARGIN_BOTTOM,		XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARABOTTOMMARGIN ),
127 	MP_E( "ParaBottomMarginRelative",FO,	MARGIN_BOTTOM,		XML_TYPE_PERCENT16, CTF_PARABOTTOMMARGIN_REL ),
128 	// RES_CHRATR_CASEMAP
129 	MT_E( "CharCaseMap",		FO,		FONT_VARIANT,	 	XML_TYPE_TEXT_CASEMAP_VAR,	0 ),
130 	MT_E( "CharCaseMap",		FO,		TEXT_TRANSFORM, 	XML_TYPE_TEXT_CASEMAP,	0 ),
131 	// RES_CHRATR_COLOR
132 	MT_ED( "CharColor",		FO,		COLOR, 				XML_TYPE_COLORAUTO|MID_FLAG_MERGE_PROPERTY,	0 ),
133 	MT_ED( "CharColor",		STYLE,	USE_WINDOW_FONT_COLOR,	XML_TYPE_ISAUTOCOLOR|MID_FLAG_MERGE_PROPERTY,	0 ),
134 	// RES_CHRATR_CONTOUR
135 	MT_E( "CharContoured",	STYLE,	TEXT_OUTLINE, 		XML_TYPE_BOOL,	0 ),
136 	// RES_CHRATR_CROSSEDOUT
137 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_STYLE, 	XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY,	0),
138 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_TYPE, 	XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY,	0),
139 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_WIDTH, 	XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY,	0),
140 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_TEXT, 	XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY,	0),
141 	// RES_CHRATR_ESCAPEMENT
142 	MT_E( "CharEscapement",		 STYLE, TEXT_POSITION,	XML_TYPE_TEXT_ESCAPEMENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
143 	MT_E( "CharEscapementHeight", STYLE, TEXT_POSITION,	XML_TYPE_TEXT_ESCAPEMENT_HEIGHT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
144 	// RES_CHRATR_FONT
145 	MT_ED( "CharFontName",	STYLE,	FONT_NAME, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME ),
146 	MT_ED( "CharFontName",	FO,		FONT_FAMILY, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME ),
147 	MT_ED( "CharFontStyleName",STYLE,	FONT_STYLE_NAME,	XML_TYPE_STRING, CTF_FONTSTYLENAME ),
148 	MT_ED( "CharFontFamily",	STYLE,	FONT_FAMILY_GENERIC,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY ),
149 	MT_ED( "CharFontPitch",	STYLE,	FONT_PITCH,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH ),
150 	MT_ED( "CharFontCharSet",	STYLE,	FONT_CHARSET,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET ),
151 	// RES_CHRATR_FONTSIZE
152 	MT_ED( "CharHeight",		  FO,	FONT_SIZE,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT ),
153 	MT_ED( "CharPropHeight",FO,	FONT_SIZE,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL ),
154 	MT_ED( "CharDiffHeight",STYLE,FONT_SIZE_REL,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF ),
155 	// RES_CHRATR_KERNING
156 	MT_E( "CharKerning",		FO,		LETTER_SPACING,		XML_TYPE_TEXT_KERNING, 0 ),
157 	// RES_CHRATR_LANGUAGE
158 	MT_ED( "CharLocale",		FO,		LANGUAGE, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
159 	MT_ED( "CharLocale",		FO,		COUNTRY, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
160 	// RES_CHRATR_POSTURE
161 	MT_E( "CharPosture",		FO,		FONT_STYLE,			XML_TYPE_TEXT_POSTURE, 0 ),
162 	// RES_CHRATR_PROPORTIONALFONTSIZE
163 	// TODO: not used?
164 	// RES_CHRATR_SHADOWED
165 	MT_E( "CharShadowed",	FO,		TEXT_SHADOW,		XML_TYPE_TEXT_SHADOWED, 0 ),
166 	// RES_CHRATR_UNDERLINE
167 	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_STYLE,		XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, CTF_UNDERLINE ),
168 	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_TYPE,		XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
169 	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_WIDTH,		XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
170 	MT_E( "CharUnderlineColor",	STYLE,	TEXT_UNDERLINE_COLOR,		XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, CTF_UNDERLINE_COLOR	),
171 	MT_E( "CharUnderlineHasColor",	STYLE,	TEXT_UNDERLINE_COLOR,		XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, CTF_UNDERLINE_HASCOLOR	),
172 	// RES_CHRATR_WEIGHT
173 	MT_E( "CharWeight",		FO,		FONT_WEIGHT,		XML_TYPE_TEXT_WEIGHT, 0 ),
174 	// RES_CHRATR_WORDLINEMODE
175 	MT_E( "CharWordMode",	STYLE,	TEXT_UNDERLINE_MODE,		XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
176     MT_E( "CharWordMode",   STYLE,  TEXT_OVERLINE_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
177     MT_E( "CharWordMode",   STYLE,  TEXT_LINE_THROUGH_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
178 	// RES_CHRATR_AUTOKERN
179 	MT_E( "CharAutoKerning",	STYLE,	LETTER_KERNING,		XML_TYPE_BOOL, 0 ),
180 	// RES_CHRATR_BLINK
181 	MT_E( "CharFlash",		STYLE,	TEXT_BLINKING,		XML_TYPE_BOOL, 0 ),
182 	// RES_CHRATR_NOHYPHEN
183 	// TODO: not used?
184 	// RES_CHRATR_NOLINEBREAK
185 	// TODO: not used?
186 	// RES_CHRATR_BACKGROUND
187 	MT_E( "CharBackColor",	FO,	BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
188 	MT_E( "CharBackTransparent",	FO,	BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
189 	MT_E( "CharBackColor",	FO,	TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ),
190 	// RES_CHRATR_CJK_FONT
191 	MT_ED( "CharFontNameAsian",	STYLE,	FONT_NAME_ASIAN, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CJK ),
192 	MT_ED( "CharFontNameAsian",	STYLE,		FONT_FAMILY_ASIAN, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CJK ),
193 	MT_ED( "CharFontStyleNameAsian",STYLE,	FONT_STYLE_NAME_ASIAN,	XML_TYPE_STRING, CTF_FONTSTYLENAME_CJK ),
194 	MT_ED( "CharFontFamilyAsian",	STYLE,	FONT_FAMILY_GENERIC_ASIAN,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CJK ),
195 	MT_ED( "CharFontPitchAsian",	STYLE,	FONT_PITCH_ASIAN,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CJK ),
196 	MT_ED( "CharFontCharSetAsian",	STYLE,	FONT_CHARSET_ASIAN,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CJK ),
197 	// RES_CHRATR_CJK_FONTSIZE
198 	MT_ED( "CharHeightAsian",		  STYLE,	FONT_SIZE_ASIAN,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CJK ),
199 	MT_ED( "CharPropHeightAsian",STYLE,	FONT_SIZE_ASIAN,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CJK ),
200 	MT_ED( "CharDiffHeightAsian",STYLE,FONT_SIZE_REL_ASIAN,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CJK ),
201 	// RES_CHRATR_CJK_LANGUAGE
202 	MT_ED( "CharLocaleAsian",		STYLE,		LANGUAGE_ASIAN, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
203 	MT_ED( "CharLocaleAsian",		STYLE,		COUNTRY_ASIAN, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
204 	// RES_CHRATR_CJK_POSTURE
205 	MT_E( "CharPostureAsian",		STYLE,		FONT_STYLE_ASIAN,			XML_TYPE_TEXT_POSTURE, 0 ),
206 	// RES_CHRATR_CJK_WEIGHT
207 	MT_E( "CharWeightAsian",		STYLE,		FONT_WEIGHT_ASIAN,		XML_TYPE_TEXT_WEIGHT, 0 ),
208 	// RES_CHRATR_CTL_FONT
209 	MT_ED( "CharFontNameComplex",	STYLE,	FONT_NAME_COMPLEX, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CTL ),
210 	MT_ED( "CharFontNameComplex",	STYLE,		FONT_FAMILY_COMPLEX, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CTL ),
211 	MT_ED( "CharFontStyleNameComplex",STYLE,	FONT_STYLE_NAME_COMPLEX,	XML_TYPE_STRING, CTF_FONTSTYLENAME_CTL ),
212 	MT_ED( "CharFontFamilyComplex",	STYLE,	FONT_FAMILY_GENERIC_COMPLEX,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CTL ),
213 	MT_ED( "CharFontPitchComplex",	STYLE,	FONT_PITCH_COMPLEX,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CTL ),
214 	MT_ED( "CharFontCharSetComplex",	STYLE,	FONT_CHARSET_COMPLEX,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CTL ),
215 	// RES_CHRATR_CTL_FONTSIZE
216 	MT_ED( "CharHeightComplex",		  STYLE,	FONT_SIZE_COMPLEX,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CTL ),
217 	MT_ED( "CharPropHeightComplex",STYLE,	FONT_SIZE_COMPLEX,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CTL ),
218 	MT_ED( "CharDiffHeightComplex",STYLE,FONT_SIZE_REL_COMPLEX,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CTL ),
219 	// RES_CHRATR_CTL_LANGUAGE
220 	MT_ED( "CharLocaleComplex",		STYLE,		LANGUAGE_COMPLEX, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
221 	MT_ED( "CharLocaleComplex",		STYLE,		COUNTRY_COMPLEX, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
222 	// RES_CHRATR_CTL_POSTURE
223 	MT_E( "CharPostureComplex",		STYLE,		FONT_STYLE_COMPLEX,			XML_TYPE_TEXT_POSTURE, 0 ),
224 	// RES_CHRATR_CTL_WEIGHT
225 	MT_E( "CharWeightComplex",		STYLE,		FONT_WEIGHT_COMPLEX,		XML_TYPE_TEXT_WEIGHT, 0 ),
226 	// RES_CHRATR_ROTATE
227 	MT_E( "CharRotation",			STYLE,		TEXT_ROTATION_ANGLE,		XML_TYPE_TEXT_ROTATION_ANGLE, 0 ),
228 	MT_E( "CharRotationIsFitToLine",	STYLE,		TEXT_ROTATION_SCALE,		XML_TYPE_TEXT_ROTATION_SCALE, 0 ),
229 	// RES_CHRATR_EMPHASIS_MARK
230 	MT_E( "CharEmphasis",			STYLE,		TEXT_EMPHASIZE,				XML_TYPE_TEXT_EMPHASIZE, 0 ),
231 	// RES_CHRATR_TWO_LINES
232 	MT_E( "CharCombineIsOn",			STYLE,		TEXT_COMBINE,				XML_TYPE_TEXT_COMBINE, 0 ),
233 	MT_E( "CharCombinePrefix",		STYLE,		TEXT_COMBINE_START_CHAR,	XML_TYPE_TEXT_COMBINECHAR, 0 ),
234 	MT_E( "CharCombineSuffix",		STYLE,		TEXT_COMBINE_END_CHAR,		XML_TYPE_TEXT_COMBINECHAR, 0 ),
235 	// RES_CHRATR_SCALEW
236 	MT_E( "CharScaleWidth",			STYLE,		TEXT_SCALE,					XML_TYPE_PERCENT16, 0 ),
237 	//RES_CHRATR_RELIEF
238 	MT_E( "CharRelief",				STYLE,		FONT_RELIEF,				XML_TYPE_TEXT_FONT_RELIEF, 0 ),
239     // RES_CHRATR_HIDDEN
240     MT_E( "CharHidden",              TEXT,       DISPLAY,                    XML_TYPE_TEXT_HIDDEN_AS_DISPLAY|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_TEXT_DISPLAY ),
241     // RES_CHRATR_OVERLINE
242     MT_E( "CharOverline",   STYLE,  TEXT_OVERLINE_STYLE,        XML_TYPE_TEXT_OVERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, 0 ),
243     MT_E( "CharOverline",   STYLE,  TEXT_OVERLINE_TYPE,     XML_TYPE_TEXT_OVERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
244     MT_E( "CharOverline",   STYLE,  TEXT_OVERLINE_WIDTH,        XML_TYPE_TEXT_OVERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
245     MT_E( "CharOverlineColor",  STYLE,  TEXT_OVERLINE_COLOR,        XML_TYPE_TEXT_OVERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, 0 ),
246     MT_E( "CharOverlineHasColor",   STYLE,  TEXT_OVERLINE_COLOR,        XML_TYPE_TEXT_OVERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
247 
248     // RES_TXTATR_INETFMT
249 	// TODO
250 	// RES_TXTATR_REFMARK
251 	// TODO
252 	// RES_TXTATR_TOXMARK
253 	// TODO
254 	// RES_TXTATR_CHARFMT
255 //	M_E_SI( TEXT,	style_name,			RES_TXTATR_CHARFMT, 0 ),
256 	// RES_TXTATR_CJK_RUBY
257 	// TODO
258 	// RES_TXTATR_FIELD
259 	// TODO
260 	// RES_TXTATR_FLYCNT
261 	// TODO
262 	// RES_TXTATR_FTN
263 	// TODO
264 	// RES_TXTATR_SOFTHYPH
265 	// TODO
266 	// RES_TXTATR_HARDBLANK
267 	// TODO
268 
269 	// RES_PARATR_LINESPACING
270 	MP_E( "ParaLineSpacing",		FO,		LINE_HEIGHT,			XML_TYPE_LINE_SPACE_FIXED, 0 ),
271 	MP_E( "ParaLineSpacing",		STYLE,	LINE_HEIGHT_AT_LEAST,	XML_TYPE_LINE_SPACE_MINIMUM, 0 ),
272 	MP_E( "ParaLineSpacing",		STYLE,	LINE_SPACING,			XML_TYPE_LINE_SPACE_DISTANCE, 0 ),
273 	// RES_PARATR_ADJUST
274 	MP_E( "ParaAdjust",			FO,		TEXT_ALIGN,			XML_TYPE_TEXT_ADJUST, CTF_SD_SHAPE_PARA_ADJUST ),
275 	MP_E( "ParaLastLineAdjust",	FO,		TEXT_ALIGN_LAST,	XML_TYPE_TEXT_ADJUSTLAST, CTF_PARA_ADJUSTLAST ),
276 	MP_E( "ParaExpandSingleWord",STYLE,	JUSTIFY_SINGLE_WORD,XML_TYPE_BOOL, 0 ),
277 	// RES_PARATR_SPLIT
278 	MP_E( "ParaSplit",			FO,     KEEP_TOGETHER,		XML_TYPE_TEXT_SPLIT, 0 ),
279 	// RES_PARATR_ORPHANS
280 	MP_E( "ParaOrphans",			FO,		ORPHANS,			XML_TYPE_NUMBER8, 0 ),
281 	// RES_PARATR_WIDOWS
282 	MP_E( "ParaWidows",			FO,		WIDOWS,				XML_TYPE_NUMBER8, 0 ),
283 	// RES_PARATR_TABSTOP
284 	MP_ED( "ParaTabStops",		STYLE,	TAB_STOPS,			MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_TABSTOP, CTF_TABSTOP ),	// this is not really a string!
285 	// RES_PARATR_HYPHENZONE
286 	MT_E( "ParaIsHyphenation",	FO,		HYPHENATE,			XML_TYPE_BOOL, 0 ),
287 	MT_E( "ParaHyphenationMaxLeadingChars", FO, HYPHENATION_REMAIN_CHAR_COUNT, XML_TYPE_NUMBER16, 0 ),
288 	MT_E( "ParaHyphenationMaxTrailingChars",FO, HYPHENATION_PUSH_CHAR_COUNT, XML_TYPE_NUMBER16, 0 ),
289 	MP_E( "ParaHyphenationMaxHyphens",	FO, HYPHENATION_LADDER_COUNT, XML_TYPE_NUMBER16_NONE, 0 ),
290 	// RES_PARATR_DROP
291 	MP_E( "DropCapWholeWord",	STYLE,	LENGTH,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_BOOL, CTF_DROPCAPWHOLEWORD ),
292 	MP_E( "DropCapCharStyleName",	STYLE,	STYLE_NAME,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING, CTF_DROPCAPCHARSTYLE ),
293 	MP_E( "DropCapFormat",		STYLE,	DROP_CAP,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_DROPCAP, CTF_DROPCAPFORMAT ),
294 	// RES_PARATR_REGISTER
295 	MP_E( "ParaRegisterModeActive",	STYLE,	REGISTER_TRUE,	XML_TYPE_BOOL, 0 ),
296 	// RES_PARATR_NUMRULE
297 	MP_E( "NumberingStyleName",	STYLE,	LIST_STYLE_NAME,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STYLENAME, CTF_NUMBERINGSTYLENAME ),
298 	MP_E( "NumberingRules",		TEXT,	ENABLE_NUMBERING,	MID_FLAG_NO_PROPERTY|XML_TYPE_BOOL, CTF_ALIEN_ATTRIBUTE_IMPORT ),
299 
300 	// RES_FILL_ORDER
301 	// not required
302 	// RES_FRM_SIZE
303 	// not required
304 	// RES_PAPER_BIN
305 	// not required
306 	// RES_LR_SPACE
307 
308 	MP_E( "ParaFirstLineIndent",		FO,	TEXT_INDENT,		XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARAFIRSTLINE ),
309 	MP_E( "ParaFirstLineIndentRelative",	FO,	TEXT_INDENT,	XML_TYPE_PERCENT, CTF_PARAFIRSTLINE_REL ),
310 	MP_E( "ParaIsAutoFirstLineIndent",	STYLE, AUTO_TEXT_INDENT, 	XML_TYPE_BOOL, 0 ),
311 	// RES_PAGEDESC
312 	MP_E( "PageDescName",			STYLE,	MASTER_PAGE_NAME,			MID_FLAG_SPECIAL_ITEM|XML_TYPE_STYLENAME, CTF_PAGEDESCNAME ),
313 	MP_E( "PageNumberOffset",		STYLE,	PAGE_NUMBER,			XML_TYPE_NUMBER16_AUTO, 0 ),
314 	// RES_BREAK : TODO: does this work?
315 	MP_E( "BreakType", 		FO,	BREAK_BEFORE,		XML_TYPE_TEXT_BREAKBEFORE|MID_FLAG_MULTI_PROPERTY, 0 ),
316 	MP_E( "BreakType", 		FO,	BREAK_AFTER,		XML_TYPE_TEXT_BREAKAFTER, 0 ),
317 	// RES_CNTNT
318 	// not required
319 	// RES_HEADER
320 	// not required
321 	// RES_FOOTER
322 	// not required
323 	// RES_PRINT
324 	// not required
325 	// RES_OPAQUE
326 	// not required
327 	// RES_PROTECT
328 	// not required
329 	// RES_SURROUND
330 	// not required
331 	// RES_VERT_ORIENT
332 	// not required
333 	// RES_HORI_ORIENT
334 	// not required
335 	// RES_ANCHOR
336 	// not required
337 	// RES_BACKGROUND
338 	MP_E( "ParaBackColor",	FO,	BACKGROUND_COLOR,		XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
339 	MP_E( "ParaBackTransparent",	FO,	BACKGROUND_COLOR,		XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
340 	MP_E( "ParaBackGraphicLocation",	STYLE,	POSITION,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_BUILDIN_CMP_ONLY, CTF_BACKGROUND_POS  ),
341 	MP_E( "ParaBackGraphicFilter",STYLE,	FILTER_NAME,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING, CTF_BACKGROUND_FILTER ),
342 	MP_E( "ParaBackGraphicURL",	STYLE,	BACKGROUND_IMAGE,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_STRING, CTF_BACKGROUND_URL ),
343 
344     // RES_BOX
345 	MP_E( "LeftBorder",			STYLE,	BORDER_LINE_WIDTH,		  XML_TYPE_BORDER_WIDTH, CTF_ALLBORDERWIDTH ),
346 	MP_E( "LeftBorder",			STYLE,	BORDER_LINE_WIDTH_LEFT,	  XML_TYPE_BORDER_WIDTH, CTF_LEFTBORDERWIDTH ),
347 	MP_E( "RightBorder",			STYLE,	BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH, CTF_RIGHTBORDERWIDTH ),
348 	MP_E( "TopBorder",			STYLE,	BORDER_LINE_WIDTH_TOP,	  XML_TYPE_BORDER_WIDTH, CTF_TOPBORDERWIDTH ),
349 	MP_E( "BottomBorder",		STYLE,	BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH, CTF_BOTTOMBORDERWIDTH ),
350 
351 	MP_E( "LeftBorderDistance",	FO, 	PADDING,				  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_ALLBORDERDISTANCE ), // need special import filtering
352 	MP_E( "LeftBorderDistance",	FO, 	PADDING_LEFT,			  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_LEFTBORDERDISTANCE ),
353 	MP_E( "RightBorderDistance",	FO, 	PADDING_RIGHT,			  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_RIGHTBORDERDISTANCE ),
354 	MP_E( "TopBorderDistance",	FO, 	PADDING_TOP,			  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_TOPBORDERDISTANCE ),
355 	MP_E( "BottomBorderDistance",FO, 	PADDING_BOTTOM,			  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_BOTTOMBORDERDISTANCE ),
356 
357 	MP_E( "LeftBorder",			FO,		BORDER,					  XML_TYPE_BORDER, CTF_ALLBORDER ),
358 	MP_E( "LeftBorder",			FO,		BORDER_LEFT,			  XML_TYPE_BORDER, CTF_LEFTBORDER ),
359 	MP_E( "RightBorder",			FO,		BORDER_RIGHT,			  XML_TYPE_BORDER, CTF_RIGHTBORDER ),
360 	MP_E( "TopBorder",			FO,		BORDER_TOP,				  XML_TYPE_BORDER, CTF_TOPBORDER ),
361 	MP_E( "BottomBorder",		FO,		BORDER_BOTTOM,			  XML_TYPE_BORDER, CTF_BOTTOMBORDER ),
362 	// RES_SHADOW
363 	MP_E( "ParaShadowFormat",	STYLE,	SHADOW,		XML_TYPE_TEXT_SHADOW, 0 ),
364 	// RES_FRMMACRO
365 	// not required
366 	// RES_COL
367 	// not required
368 	// RES_KEEP
369 	MP_E( "ParaKeepTogether",	FO, KEEP_WITH_NEXT,		XML_TYPE_TEXT_KEEP, 0 ),
370 	// RES_URL
371 	// not required
372 	// RES_EDIT_IN_READONLY
373 	// not required
374 	// RES_LAYOUT_SPLIT
375 	// not required
376 	// RES_CHAIN
377 	// not required
378 
379 	// RES_LINENUMBER
380 	MP_E( "ParaLineNumberCount",	TEXT,	NUMBER_LINES,			XML_TYPE_BOOL, 0 ),
381 	MP_E( "ParaLineNumberStartValue", TEXT, LINE_NUMBER,			XML_TYPE_NUMBER, 0 ),
382 
383 	// RES_FTN_AT_TXTEND
384 	// not required
385 	// RES_END_AT_TXTEND
386 	// not required
387 	MP_ED( "ParaIsCharacterDistance", STYLE, TEXT_AUTOSPACE, XML_TYPE_TEXT_AUTOSPACE, 0 ),
388 	MP_ED( "ParaIsHangingPunctuation", STYLE, PUNCTUATION_WRAP, XML_TYPE_TEXT_PUNCTUATION_WRAP, 0 ),
389 	MP_ED( "ParaIsForbiddenRules", STYLE, LINE_BREAK, XML_TYPE_TEXT_LINE_BREAK, 0 ),
390 	MP_E( "TabStopDistance", STYLE, TAB_STOP_DISTANCE, XML_TYPE_MEASURE, 0 ),
391 
392 	// RES_PARATR_VERTALIGN
393 	MP_E( "ParaVertAlignment", STYLE, VERTICAL_ALIGN,	XML_TYPE_TEXT_VERTICAL_ALIGN, 0 ),
394 
395     // RES_PARATR_SNAPTOGRID
396     MP_E( "SnapToGrid", STYLE, SNAP_TO_LAYOUT_GRID, XML_TYPE_BOOL, 0 ),
397 
398     MP_ED( "WritingMode",      STYLE, WRITING_MODE,       XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT, CTF_TEXTWRITINGMODE ),
399 
400     MP_E( "ParaIsConnectBorder", STYLE, JOIN_BORDER,  XML_TYPE_BOOL, 0 ),
401 
402     MP_E( "DefaultOutlineLevel", STYLE, DEFAULT_OUTLINE_LEVEL, XML_TYPE_TEXT_NUMBER8_ONE_BASED|MID_FLAG_SPECIAL_ITEM_EXPORT|MID_FLAG_NO_PROPERTY_IMPORT, CTF_DEFAULT_OUTLINE_LEVEL ),
403 
404 	MP_ED( "FontIndependentLineSpacing", STYLE, FONT_INDEPENDENT_LINE_SPACING, XML_TYPE_BOOL, 0 ),
405 
406     M_END()
407 };
408 
409 
410 XMLPropertyMapEntry aXMLAdditionalTextDefaultsMap[] =
411 {
412     // RES_FOLLOW_TEXT_FLOW - DVO, OD 01.10.2003 #i18732#
413     MG_ED( "IsFollowingTextFlow", STYLE, FLOW_WITH_TEXT,      XML_TYPE_BOOL, 0 ),
414 
415     // OD 2004-05-05 #i28701# - RES_WRAP_INFLUENCE_ON_OBJPOS
416     MG_ED( "WrapInfluenceOnPosition", DRAW, WRAP_INFLUENCE_ON_POSITION, XML_TYPE_WRAP_INFLUENCE_ON_POSITION, 0 ),
417 
418     M_END()
419 };
420 
421 XMLPropertyMapEntry aXMLTextPropMap[] =
422 {
423 	// RES_CHRATR_CASEMAP
424 	MT_E( "CharCaseMap",		FO,		FONT_VARIANT,	 	XML_TYPE_TEXT_CASEMAP_VAR,	0 ),
425 	MT_E( "CharCaseMap",		FO,		TEXT_TRANSFORM, 	XML_TYPE_TEXT_CASEMAP,	0 ),
426 	// RES_CHRATR_COLOR
427 	MT_ED( "CharColor",		FO,		COLOR, 				XML_TYPE_COLORAUTO|MID_FLAG_MERGE_PROPERTY,	0 ),
428 	MT_ED( "CharColor",		STYLE,	USE_WINDOW_FONT_COLOR,	XML_TYPE_ISAUTOCOLOR|MID_FLAG_MERGE_PROPERTY,	0 ),
429 	// RES_CHRATR_CONTOUR
430 	MT_E( "CharContoured",	STYLE,	TEXT_OUTLINE, 		XML_TYPE_BOOL,	0 ),
431 	// RES_CHRATR_CROSSEDOUT
432 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_STYLE, 	XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY,	0),
433 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_TYPE, 	XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY,	0),
434 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_WIDTH, 	XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY,	0),
435 	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_TEXT, 	XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY,	0),
436 	// RES_CHRATR_ESCAPEMENT
437 	MT_E( "CharEscapement",		 STYLE, TEXT_POSITION,	XML_TYPE_TEXT_ESCAPEMENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
438 	MT_E( "CharEscapementHeight", STYLE, TEXT_POSITION,	XML_TYPE_TEXT_ESCAPEMENT_HEIGHT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
439 	// RES_CHRATR_FONT
440 	MT_ED( "CharFontName",	STYLE,	FONT_NAME, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME ),
441 	MT_ED( "CharFontName",	FO,		FONT_FAMILY, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME ),
442 	MT_ED( "CharFontStyleName",STYLE,	FONT_STYLE_NAME,	XML_TYPE_STRING, CTF_FONTSTYLENAME ),
443 	MT_ED( "CharFontFamily",	STYLE,	FONT_FAMILY_GENERIC,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY ),
444 	MT_ED( "CharFontPitch",	STYLE,	FONT_PITCH,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH ),
445 	MT_ED( "CharFontCharSet",	STYLE,	FONT_CHARSET,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET ),
446 	// RES_CHRATR_FONTSIZE
447 	MT_ED( "CharHeight",		  FO,	FONT_SIZE,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT ),
448 	MT_ED( "CharPropHeight",FO,	FONT_SIZE,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL ),
449 	MT_ED( "CharDiffHeight",STYLE,FONT_SIZE_REL,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF ),
450 	// RES_CHRATR_KERNING
451 	MT_E( "CharKerning",		FO,		LETTER_SPACING,		XML_TYPE_TEXT_KERNING, 0 ),
452 	// RES_CHRATR_LANGUAGE
453 	MT_ED( "CharLocale",		FO,		LANGUAGE, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
454 	MT_ED( "CharLocale",		FO,		COUNTRY, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
455 	// RES_CHRATR_POSTURE
456 	MT_E( "CharPosture",		FO,		FONT_STYLE,			XML_TYPE_TEXT_POSTURE, 0 ),
457 	// RES_CHRATR_PROPORTIONALFONTSIZE
458 	// TODO: not used?
459 	// RES_CHRATR_SHADOWED
460 	MT_E( "CharShadowed",	FO,		TEXT_SHADOW,		XML_TYPE_TEXT_SHADOWED, 0 ),
461 	// BIS HIER GEPRUEFT!
462 	// RES_CHRATR_UNDERLINE
463 	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_STYLE,		XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, CTF_UNDERLINE ),
464 	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_TYPE,		XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
465 	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_WIDTH,		XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
466 	MT_E( "CharUnderlineColor",	STYLE,	TEXT_UNDERLINE_COLOR,		XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, CTF_UNDERLINE_COLOR	),
467 	MT_E( "CharUnderlineHasColor",	STYLE,	TEXT_UNDERLINE_COLOR,		XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, CTF_UNDERLINE_HASCOLOR	),
468 	// RES_CHRATR_WEIGHT
469 	MT_E( "CharWeight",		FO,		FONT_WEIGHT,		XML_TYPE_TEXT_WEIGHT, 0 ),
470 	// RES_CHRATR_WORDLINEMODE
471 	MT_E( "CharWordMode",	STYLE,	TEXT_UNDERLINE_MODE,		XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
472     MT_E( "CharWordMode",   STYLE,  TEXT_OVERLINE_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
473     MT_E( "CharWordMode",   STYLE,  TEXT_LINE_THROUGH_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
474 	// RES_CHRATR_AUTOKERN
475 	MT_E( "CharAutoKerning",	STYLE,	LETTER_KERNING,		XML_TYPE_BOOL, 0 ),
476 	// RES_CHRATR_BLINK
477 	MT_E( "CharFlash",		STYLE,	TEXT_BLINKING,		XML_TYPE_BOOL, 0 ),
478 	// RES_CHRATR_NOHYPHEN
479 	// TODO: not used?
480 	// RES_CHRATR_NOLINEBREAK
481 	// TODO: not used?
482 	// RES_CHRATR_BACKGROUND
483 	MT_E( "CharBackColor",	FO,	BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
484 	MT_E( "CharBackTransparent",	FO,	BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
485 	MT_E( "CharBackColor",	FO,	TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ),
486 	// RES_CHRATR_CJK_FONT
487 	MT_ED( "CharFontNameAsian",	STYLE,	FONT_NAME_ASIAN, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CJK ),
488 	MT_ED( "CharFontNameAsian",	STYLE,		FONT_FAMILY_ASIAN, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CJK ),
489 	MT_ED( "CharFontStyleNameAsian",STYLE,	FONT_STYLE_NAME_ASIAN,	XML_TYPE_STRING, CTF_FONTSTYLENAME_CJK ),
490 	MT_ED( "CharFontFamilyAsian",	STYLE,	FONT_FAMILY_GENERIC_ASIAN,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CJK ),
491 	MT_ED( "CharFontPitchAsian",	STYLE,	FONT_PITCH_ASIAN,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CJK ),
492 	MT_ED( "CharFontCharSetAsian",	STYLE,	FONT_CHARSET_ASIAN,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CJK ),
493 	// RES_CHRATR_CJK_FONTSIZE
494 	MT_ED( "CharHeightAsian",		  STYLE,	FONT_SIZE_ASIAN,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CJK ),
495 	MT_ED( "CharPropHeightAsian",STYLE,	FONT_SIZE_ASIAN,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CJK ),
496 	MT_ED( "CharDiffHeightAsian",STYLE,FONT_SIZE_REL_ASIAN,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CJK ),
497 	// RES_CHRATR_CJK_LANGUAGE
498 	MT_ED( "CharLocaleAsian",		STYLE,		LANGUAGE_ASIAN, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
499 	MT_ED( "CharLocaleAsian",		STYLE,		COUNTRY_ASIAN, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
500 	// RES_CHRATR_CJK_POSTURE
501 	MT_E( "CharPostureAsian",		STYLE,		FONT_STYLE_ASIAN,			XML_TYPE_TEXT_POSTURE, 0 ),
502 	// RES_CHRATR_CJK_WEIGHT
503 	MT_E( "CharWeightAsian",		STYLE,		FONT_WEIGHT_ASIAN,		XML_TYPE_TEXT_WEIGHT, 0 ),
504 	// RES_CHRATR_CTL_FONT
505 	MT_ED( "CharFontNameComplex",	STYLE,	FONT_NAME_COMPLEX, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CTL ),
506 	MT_ED( "CharFontNameComplex",	STYLE,		FONT_FAMILY_COMPLEX, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CTL ),
507 	MT_ED( "CharFontStyleNameComplex",STYLE,	FONT_STYLE_NAME_COMPLEX,	XML_TYPE_STRING, CTF_FONTSTYLENAME_CTL ),
508 	MT_ED( "CharFontFamilyComplex",	STYLE,	FONT_FAMILY_GENERIC_COMPLEX,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CTL ),
509 	MT_ED( "CharFontPitchComplex",	STYLE,	FONT_PITCH_COMPLEX,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CTL ),
510 	MT_ED( "CharFontCharSetComplex",	STYLE,	FONT_CHARSET_COMPLEX,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CTL ),
511 	// RES_CHRATR_CTL_FONTSIZE
512 	MT_ED( "CharHeightComplex",		  STYLE,	FONT_SIZE_COMPLEX,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CTL ),
513 	MT_ED( "CharPropHeightComplex",STYLE,	FONT_SIZE_COMPLEX,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CTL ),
514 	MT_ED( "CharDiffHeightComplex",STYLE,FONT_SIZE_REL_COMPLEX,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CTL ),
515 	// RES_CHRATR_CTL_LANGUAGE
516 	MT_ED( "CharLocaleComplex",		STYLE,		LANGUAGE_COMPLEX, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
517 	MT_ED( "CharLocaleComplex",		STYLE,		COUNTRY_COMPLEX, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
518 	// RES_CHRATR_CTL_POSTURE
519 	MT_E( "CharPostureComplex",		STYLE,		FONT_STYLE_COMPLEX,			XML_TYPE_TEXT_POSTURE, 0 ),
520 	// RES_CHRATR_CTL_WEIGHT
521 	MT_E( "CharWeightComplex",		STYLE,		FONT_WEIGHT_COMPLEX,		XML_TYPE_TEXT_WEIGHT, 0 ),
522 	// RES_CHRATR_ROTATE
523 	MT_E( "CharRotation",			STYLE,		TEXT_ROTATION_ANGLE,		XML_TYPE_TEXT_ROTATION_ANGLE, 0 ),
524 	MT_E( "CharRotationIsFitToLine",	STYLE,		TEXT_ROTATION_SCALE,		XML_TYPE_TEXT_ROTATION_SCALE, 0 ),
525 	// RES_CHRATR_EMPHASIS_MARK
526 	MT_E( "CharEmphasis",			STYLE,		TEXT_EMPHASIZE,				XML_TYPE_TEXT_EMPHASIZE, 0 ),
527 	// RES_CHRATR_TWO_LINES
528 	MT_E( "CharCombineIsOn",			STYLE,		TEXT_COMBINE,				XML_TYPE_TEXT_COMBINE|MID_FLAG_MULTI_PROPERTY, 0 ),
529 	MT_E( "CharCombinePrefix",		STYLE,		TEXT_COMBINE_START_CHAR,	XML_TYPE_TEXT_COMBINECHAR, 0 ),
530 	MT_E( "CharCombineSuffix",		STYLE,		TEXT_COMBINE_END_CHAR,		XML_TYPE_TEXT_COMBINECHAR, 0 ),
531 	// RES_CHRATR_SCALEW
532 	MT_E( "CharScaleWidth",			STYLE,		TEXT_SCALE,					XML_TYPE_PERCENT16, 0 ),
533 	// combined characters field, does not correspond to a property
534 	MT_E( "",						STYLE,		TEXT_COMBINE,				XML_TYPE_TEXT_COMBINE_CHARACTERS|MID_FLAG_NO_PROPERTY, CTF_COMBINED_CHARACTERS_FIELD ),
535 	//RES_CHRATR_RELIEF
536 	MT_E( "CharRelief",				STYLE,		FONT_RELIEF,				XML_TYPE_TEXT_FONT_RELIEF, 0 ),
537     // RES_CHRATR_HIDDEN
538     MT_E( "CharHidden",              TEXT,       DISPLAY,                    XML_TYPE_TEXT_HIDDEN_AS_DISPLAY|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_TEXT_DISPLAY ),
539     // RES_CHRATR_OVERLINE
540     MT_E( "CharOverline",   STYLE,  TEXT_OVERLINE_STYLE,        XML_TYPE_TEXT_OVERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, 0 ),
541     MT_E( "CharOverline",   STYLE,  TEXT_OVERLINE_TYPE,     XML_TYPE_TEXT_OVERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
542     MT_E( "CharOverline",   STYLE,  TEXT_OVERLINE_WIDTH,        XML_TYPE_TEXT_OVERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
543     MT_E( "CharOverlineColor",  STYLE,  TEXT_OVERLINE_COLOR,        XML_TYPE_TEXT_OVERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, 0 ),
544     MT_E( "CharOverlineHasColor",   STYLE,  TEXT_OVERLINE_COLOR,        XML_TYPE_TEXT_OVERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
545 
546 	// RES_TXTATR_INETFMT
547 	MT_E( "HyperLinkURL",			TEXT,		XMLNS,						XML_TYPE_STRING|MID_FLAG_NO_PROPERTY_IMPORT,	CTF_HYPERLINK_URL ),
548 	// RES_TXTATR_REFMARK
549 	// TODO
550 	// RES_TXTATR_TOXMARK
551 	// TODO
552 	// RES_TXTATR_CHARFMT
553 	MT_E( "CharStyleName",			TEXT, 		STYLE_NAME,			 		XML_TYPE_STRING|MID_FLAG_NO_PROPERTY_IMPORT,	CTF_CHAR_STYLE_NAME ),
554 	// RES_TXTATR_CJK_RUBY
555 	// TODO
556 	// RES_TXTATR_FIELD
557 	// TODO
558 	// RES_TXTATR_FLYCNT
559 	// TODO
560 	// RES_TXTATR_FTN
561 	// TODO
562 	// RES_TXTATR_SOFTHYPH
563 	// TODO
564 	// RES_TXTATR_HARDBLANK
565 	// TODO
566 	// RES_UNKNOWNATR_CONTAINER
567 	MT_E( "TextUserDefinedAttributes", TEXT, XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
568 	MT_ED( "ParaIsCharacterDistance", STYLE, TEXT_AUTOSPACE, XML_TYPE_TEXT_AUTOSPACE, 0 ),
569 	MT_ED( "ParaIsHangingPunctuation", STYLE, PUNCTUATION_WRAP, XML_TYPE_TEXT_PUNCTUATION_WRAP, 0 ),
570 	MT_ED( "ParaIsForbiddenRules", STYLE, LINE_BREAK, XML_TYPE_TEXT_LINE_BREAK, 0 ),
571 	MT_E( "TabStopDistance", STYLE, TAB_STOP_DISTANCE, XML_TYPE_MEASURE, 0 ),
572 
573     M_END()
574 };
575 
576 XMLPropertyMapEntry aXMLFramePropMap[] =
577 {
578 	// RES_FILL_ORDER
579 	// TODO: not required???
580 	// RES_FRM_SIZE
581 	MG_ED( "Width",			SVG, WIDTH,				XML_TYPE_MEASURE, CTF_FRAMEWIDTH_ABS ),
582 	MG_ED( "Width",			FO,  MIN_WIDTH,			XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_FRAMEWIDTH_MIN_ABS ),
583 	MG_ED( "RelativeWidth",	FO,  MIN_WIDTH,			XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEWIDTH_MIN_REL ),
584 	MG_ED( "RelativeWidth",	STYLE, REL_WIDTH,		XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEWIDTH_REL ),
585 	MG_ED( "WidthType",		FO, TEXT_BOX,			XML_TYPE_NUMBER16|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FRAMEWIDTH_TYPE ),
586 //	M_ED( "RelativeWidth",	STYLE, REL_WIDTH,		XML_TYPE_TEXT_REL_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, 0 ),
587 //	M_ED( "IsSyncWidthToHeight",STYLE, REL_WIDTH,	XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, 0 ),
588 
589 	MG_ED( "Height",			SVG, HEIGHT,			XML_TYPE_MEASURE, CTF_FRAMEHEIGHT_ABS ),
590 	MG_ED( "Height",			FO, MIN_HEIGHT,			XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_FRAMEHEIGHT_MIN_ABS ),
591 	MG_ED( "RelativeHeight",	FO, MIN_HEIGHT,			XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEHEIGHT_MIN_REL ),
592 	MG_ED( "RelativeHeight",	STYLE, REL_HEIGHT,		XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEHEIGHT_REL ),
593 //	M_ED( "RelativeHeight",	STYLE, REL_HEIGHT,		XML_TYPE_TEXT_REL_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_FRAMEHEIGHT_REL ),
594 //	M_ED( "IsSyncHeightToWidth",STYLE, REL_HEIGHT,	XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_SYNCHEIGHT ),
595 //	M_ED( "IsSyncHeightToWidth",STYLE, REL_HEIGHT,	XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT_MIN, CTF_SYNCHEIGHT_MIN ),
596 	MG_ED( "SizeType",		FO, TEXT_BOX,			XML_TYPE_NUMBER16|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_SIZETYPE ),
597 	// RES_PAPER_BIN
598 	// not required
599 	// RES_ANCHOR
600 	// moved to here because it is not used for automatic styles
601 	MG_ED( "AnchorType",			TEXT,	ANCHOR_TYPE,		  	XML_TYPE_TEXT_ANCHOR_TYPE, CTF_ANCHORTYPE ),
602 	// AnchorPage number is not required for styles!
603 	MG_ED( "HoriOrientPosition",	SVG,	X,		  XML_TYPE_MEASURE, 0 ),
604 	MG_ED( "VertOrientPosition",	SVG,	Y,		  XML_TYPE_MEASURE, 0 ),
605 	// ***** The map for automatic styles starts here *****
606 	// RES_LR_SPACE
607 	MG_E( "LeftMargin",				FO,	MARGIN,		XML_TYPE_MEASURE,  CTF_MARGINALL ),
608 	MG_E( "LeftMargin",				FO,	MARGIN_LEFT,		XML_TYPE_MEASURE,  CTF_MARGINLEFT ),
609 	MG_E( "RightMargin",				FO,	MARGIN_RIGHT,		XML_TYPE_MEASURE, CTF_MARGINRIGHT ),
610 	// RES_UL_SPACE
611 	MG_E( "TopMargin",				FO,	MARGIN_TOP,			XML_TYPE_MEASURE, CTF_MARGINTOP ),
612 	MG_E( "BottomMargin",			FO,	MARGIN_BOTTOM,		XML_TYPE_MEASURE, CTF_MARGINBOTTOM ),
613 	// RES_PAGEDESC
614 	// not required
615 	// RES_BREAK
616 	// not required
617 	// RES_CNTNT
618 	// not required (accessed using API)
619 	// RES_HEADER
620 	// not required
621 	// RES_FOOTER
622 	// not required
623 	// RES_PRINT
624 	MG_E( "Print",					STYLE,	PRINT_CONTENT,	XML_TYPE_BOOL, 0 ),
625 	// RES_OPAQUE
626 	MG_ED( "Opaque",					STYLE,	RUN_THROUGH,	XML_TYPE_TEXT_OPAQUE, 0 ),
627 	// RES_PROTECT
628 	MG_E( "ContentProtected",		STYLE,	PROTECT,		XML_TYPE_TEXT_PROTECT_CONTENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
629 	MG_E( "SizeProtected",		STYLE,	PROTECT,		XML_TYPE_TEXT_PROTECT_SIZE|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
630 	MG_E( "PositionProtected",		STYLE,	PROTECT,		XML_TYPE_TEXT_PROTECT_POSITION|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
631 	// RES_SURROUND
632 	MG_ED( "TextWrap",				STYLE,	WRAP,	XML_TYPE_TEXT_WRAP, CTF_WRAP ),
633 	MG_ED( "SurroundAnchorOnly",		STYLE,	NUMBER_WRAPPED_PARAGRAPHS,	XML_TYPE_TEXT_PARAGRAPH_ONLY, CTF_WRAP_PARAGRAPH_ONLY ),
634 	MG_E( "SurroundContour",			STYLE,	WRAP_CONTOUR,	XML_TYPE_BOOL, CTF_WRAP_CONTOUR ),
635 	MG_E( "ContourOutside",			STYLE,	WRAP_CONTOUR_MODE,	XML_TYPE_TEXT_WRAP_OUTSIDE, CTF_WRAP_CONTOUR_MODE ),
636 	// RES_VERT_ORIENT
637 	MG_ED( "VertOrient",				STYLE,	VERTICAL_POS,		  XML_TYPE_TEXT_VERTICAL_POS, CTF_VERTICALPOS ),
638 	MG_ED( "VertOrient",				STYLE,	VERTICAL_POS,		  XML_TYPE_TEXT_VERTICAL_POS_AT_CHAR, CTF_VERTICALPOS_ATCHAR ),
639 	MG_ED( "VertOrient",				STYLE,	VERTICAL_REL,		  XML_TYPE_TEXT_VERTICAL_REL_AS_CHAR|MID_FLAG_MULTI_PROPERTY, CTF_VERTICALREL_ASCHAR ),
640 	MG_ED( "VertOrientRelation",		STYLE,	VERTICAL_REL,		  XML_TYPE_TEXT_VERTICAL_REL, CTF_VERTICALREL ),
641 	MG_ED( "VertOrientRelation",		STYLE,	VERTICAL_REL,		  XML_TYPE_TEXT_VERTICAL_REL_PAGE|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_VERTICALREL_PAGE ),
642 	MG_ED( "VertOrientRelation",		STYLE,	VERTICAL_REL,		  XML_TYPE_TEXT_VERTICAL_REL_FRAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_VERTICALREL_FRAME ),
643 	// RES_HORI_ORIENT
644 	MG_ED( "HoriOrient",				STYLE,	HORIZONTAL_POS,		  XML_TYPE_TEXT_HORIZONTAL_POS|MID_FLAG_MULTI_PROPERTY, CTF_HORIZONTALPOS ),
645 	MG_ED( "PageToggle",		STYLE,	HORIZONTAL_POS,		  XML_TYPE_TEXT_HORIZONTAL_MIRROR, CTF_HORIZONTALMIRROR ),
646 	MG_ED( "HoriOrient",				STYLE,	HORIZONTAL_POS,		  XML_TYPE_TEXT_HORIZONTAL_POS_MIRRORED|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_HORIZONTALPOS_MIRRORED ),
647 	MG_ED( "HoriOrientRelation",		STYLE,	HORIZONTAL_REL,		  XML_TYPE_TEXT_HORIZONTAL_REL, CTF_HORIZONTALREL ),
648 	MG_ED( "HoriOrientRelation",		STYLE,	HORIZONTAL_REL,		  XML_TYPE_TEXT_HORIZONTAL_REL_FRAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_HORIZONTALREL_FRAME ),
649 	// RES_ANCHOR
650 	// see above
651 	// RES_BACKGROUND
652 	MG_ED( "BackColorRGB",	FO,	BACKGROUND_COLOR,		XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
653 	MG_ED( "BackTransparent",	FO,	BACKGROUND_COLOR,		XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, CTF_BACKGROUND_TRANSPARENT ),
654     MG_ED( "BackColorTransparency", STYLE, BACKGROUND_TRANSPARENCY, XML_TYPE_PERCENT8, CTF_BACKGROUND_TRANSPARENCY ),
655 
656     MG_E( "BackGraphicTransparency", STYLE, BACKGROUND_IMAGE_TRANSPARENCY, MID_FLAG_SPECIAL_ITEM|XML_TYPE_PERCENT8, CTF_BACKGROUND_TRANSPARENCY ),
657 	MG_E( "BackGraphicLocation",	STYLE,	POSITION,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_BUILDIN_CMP_ONLY, CTF_BACKGROUND_POS  ),
658 	MG_E( "BackGraphicFilter",STYLE,	FILTER_NAME,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING, CTF_BACKGROUND_FILTER ),
659 	MG_E( "BackGraphicURL",	STYLE,	BACKGROUND_IMAGE,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_STRING, CTF_BACKGROUND_URL ),
660 
661 	//UUUU fill attributes
662 	GMAP( "FillStyle",						XML_NAMESPACE_DRAW,	XML_FILL,					XML_SW_TYPE_FILLSTYLE, 0 ),
663 	GMAP( "FillColor",						XML_NAMESPACE_DRAW, XML_FILL_COLOR, 			XML_TYPE_COLOR, 0 ),
664 	GMAP( "FillColor2",						XML_NAMESPACE_DRAW, XML_SECONDARY_FILL_COLOR,	XML_TYPE_COLOR, 0 ),
665 	GMAP( "FillGradientName",				XML_NAMESPACE_DRAW, XML_FILL_GRADIENT_NAME, 	XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLGRADIENTNAME ),
666 	GMAP( "FillGradientStepCount",			XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT,	XML_TYPE_NUMBER16, 0 ),
667 	GMAP( "FillHatchName",					XML_NAMESPACE_DRAW, XML_FILL_HATCH_NAME,		XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLHATCHNAME ),
668 	GMAP( "FillBackground",					XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID,		XML_TYPE_BOOL, 0 ),
669 	GMAP( "FillBitmapName",					XML_NAMESPACE_DRAW, XML_FILL_IMAGE_NAME,		XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLBITMAPNAME ),
670 	GMAP( "FillTransparence",				XML_NAMESPACE_DRAW, XML_OPACITY,			    XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),	// exists in SW, too
671 	GMAP( "FillTransparenceGradientName",	XML_NAMESPACE_DRAW, XML_OPACITY_NAME,		    XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLTRANSNAME ),
672 	GMAP( "FillBitmapSizeX",				XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_WIDTH,		XML_SW_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
673 	GMAP( "FillBitmapLogicalSize",			XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,		XML_SW_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
674 	GMAP( "FillBitmapSizeY",				XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_HEIGHT,		XML_SW_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
675 	GMAP( "FillBitmapLogicalSize",			XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,		XML_SW_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
676 	GMAP( "FillBitmapMode",					XML_NAMESPACE_STYLE,XML_REPEAT, 				XML_SW_TYPE_BITMAP_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
677 	GMAP( "FillBitmapPositionOffsetX",		XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
678 	GMAP( "FillBitmapPositionOffsetY",		XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
679 	GMAP( "FillBitmapRectanglePoint",		XML_NAMESPACE_DRAW,	XML_FILL_IMAGE_REF_POINT,	XML_SW_TYPE_BITMAP_REFPOINT, 0 ),
680 	GMAP( "FillBitmapOffsetX",				XML_NAMESPACE_DRAW,	XML_TILE_REPEAT_OFFSET, 	XML_SW_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_X ),
681 	GMAP( "FillBitmapOffsetY",				XML_NAMESPACE_DRAW,	XML_TILE_REPEAT_OFFSET, 	XML_SW_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_Y ),
682 
683     // RES_BOX
684 	MG_ED( "LeftBorder",			STYLE,	BORDER_LINE_WIDTH,		  XML_TYPE_BORDER_WIDTH, CTF_ALLBORDERWIDTH ),
685 	MG_ED( "LeftBorder",			STYLE,	BORDER_LINE_WIDTH_LEFT,	  XML_TYPE_BORDER_WIDTH, CTF_LEFTBORDERWIDTH ),
686 	MG_ED( "RightBorder",			STYLE,	BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH, CTF_RIGHTBORDERWIDTH ),
687 	MG_ED( "TopBorder",			STYLE,	BORDER_LINE_WIDTH_TOP,	  XML_TYPE_BORDER_WIDTH, CTF_TOPBORDERWIDTH ),
688 	MG_ED( "BottomBorder",		STYLE,	BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH, CTF_BOTTOMBORDERWIDTH ),
689 
690 	MG_ED( "LeftBorderDistance",	FO, 	PADDING,				  XML_TYPE_MEASURE, CTF_ALLBORDERDISTANCE ), // need special import filtering
691 	MG_ED( "LeftBorderDistance",	FO, 	PADDING_LEFT,			  XML_TYPE_MEASURE, CTF_LEFTBORDERDISTANCE ),
692 	MG_ED( "RightBorderDistance",	FO, 	PADDING_RIGHT,			  XML_TYPE_MEASURE, CTF_RIGHTBORDERDISTANCE ),
693 	MG_ED( "TopBorderDistance",	FO, 	PADDING_TOP,			  XML_TYPE_MEASURE, CTF_TOPBORDERDISTANCE ),
694 	MG_ED( "BottomBorderDistance",FO, 	PADDING_BOTTOM,			  XML_TYPE_MEASURE, CTF_BOTTOMBORDERDISTANCE ),
695 
696 	// There is an additional property for controls!
697 	MG_ED( "LeftBorder",			FO,		BORDER,					  XML_TYPE_BORDER|MID_FLAG_MULTI_PROPERTY, CTF_ALLBORDER ),
698 	MG_ED( "LeftBorder",			FO,		BORDER_LEFT,			  XML_TYPE_BORDER, CTF_LEFTBORDER ),
699 	MG_ED( "RightBorder",			FO,		BORDER_RIGHT,			  XML_TYPE_BORDER, CTF_RIGHTBORDER ),
700 	MG_ED( "TopBorder",			FO,		BORDER_TOP,				  XML_TYPE_BORDER, CTF_TOPBORDER ),
701 	MG_ED( "BottomBorder",		FO,		BORDER_BOTTOM,			  XML_TYPE_BORDER, CTF_BOTTOMBORDER ),
702 	// RES_SHADOW
703 	MG_E( "ShadowFormat",		STYLE,	SHADOW,					XML_TYPE_TEXT_SHADOW, 0 ),
704 	// RES_FRMMACRO
705 	// TODO
706 	// RES_COL
707 	MG_E( "TextColumns",			STYLE,	COLUMNS,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_COLUMNS, CTF_TEXTCOLUMNS ),
708 	// RES_KEEP
709 	// not required
710 	// RES_URL
711 	// not required (exprted as draw:a element)
712 	// RES_EDIT_IN_READONLY
713 	MG_ED( "EditInReadonly",		STYLE,	EDITABLE,					XML_TYPE_BOOL, 0 ),
714 	// RES_LAYOUT_SPLIT
715 	// not required
716 	// RES_CHAIN
717 	// not required (exported at text:text-box element)
718 	// RES_LINENUMBER
719 	// not required
720 	// RES_FTN_AT_TXTEND
721 	// not required
722 	// RES_END_AT_TXTEND
723 	// not required
724 	// RES_COLUMNBALANCE
725 	// TODO
726 	// RES_UNKNOWNATR_CONTAINER
727 //	M_E_SE( TEXT, xmlns, RES_UNKNOWNATR_CONTAINER, 0 ),
728 	// RES_GRFATR_MIRRORGRF (vertical MUST be processed after horizontal!)
729 	MG_E( "HoriMirroredOnEvenPages",		STYLE,	MIRROR,		XML_TYPE_TEXT_MIRROR_HORIZONTAL_LEFT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
730 	MG_E( "HoriMirroredOnOddPages",		STYLE,	MIRROR,		XML_TYPE_TEXT_MIRROR_HORIZONTAL_RIGHT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
731 	MG_E( "VertMirrored",		STYLE,	MIRROR,		XML_TYPE_TEXT_MIRROR_VERTICAL|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
732 	// RES_GRFATR_CROPGRF
733 	MG_EV( "GraphicCrop",			FO,		CLIP,		XML_TYPE_TEXT_CLIP, CTF_TEXT_CLIP, SvtSaveOptions::ODFVER_012 ),
734 	MG_E( "GraphicCrop",			FO,		CLIP,		XML_TYPE_TEXT_CLIP11, CTF_TEXT_CLIP11 ),
735 	// RES_GRFATR_ROTATION
736 	// not required (exported as svg:transform attribute)
737 	// RES_GRFATR_LUMINANCE
738 	MG_E( "AdjustLuminance",  DRAW, LUMINANCE,			XML_TYPE_PERCENT16, 0 ),		// signed?
739 	// RES_GRFATR_CONTRAST
740 	MG_E( "AdjustContrast",	DRAW,	CONTRAST,			XML_TYPE_PERCENT16, 0 ),		// signed?
741 	// RES_GRFATR_CHANNELR
742 	MG_E( "AdjustRed",		DRAW, RED,					XML_TYPE_PERCENT16, 0 ),		// signed?
743 	// RES_GRFATR_CHANNELG
744 	MG_E( "AdjustGreen",	    DRAW, GREEN,				XML_TYPE_PERCENT16, 0 ),		// signed?
745 	// RES_GRFATR_CHANNELB
746 	MG_E( "AdjustBlue",		DRAW, BLUE,					XML_TYPE_PERCENT16, 0 ),		// signed?
747 	// RES_GRFATR_GAMMA
748 	MG_E( "Gamma",			DRAW, GAMMA,				XML_TYPE_DOUBLE_PERCENT, 0 ),			// signed?
749 	// RES_GRFATR_INVERT
750 	MG_E( "GraphicIsInverted", DRAW, COLOR_INVERSION,		XML_TYPE_BOOL, 0 ),
751 	// RES_GRFATR_TRANSPARENCY
752 	MG_E( "Transparency",	DRAW, IMAGE_OPACITY,		XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ), // #i25616#
753 	// RES_GRFATR_DRAWMODE
754 	MG_E( "GraphicColorMode", DRAW, COLOR_MODE,			XML_TYPE_COLOR_MODE, 0 ),
755     MG_E( "WritingMode",      STYLE, WRITING_MODE,       XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT, 0 ),
756     // RES_FOLLOW_TEXT_FLOW - DVO, OD 01.10.2003 #i18732#
757     MG_E( "IsFollowingTextFlow", DRAW, FLOW_WITH_TEXT,      XML_TYPE_BOOL|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLD_FLOW_WITH_TEXT ),
758     MG_E( "IsFollowingTextFlow", STYLE, FLOW_WITH_TEXT,     XML_TYPE_BOOL, 0 ),
759     // OD 2004-05-05 #i28701# - RES_WRAP_INFLUENCE_ON_OBJPOS
760     MG_E( "WrapInfluenceOnPosition", DRAW, WRAP_INFLUENCE_ON_POSITION, XML_TYPE_WRAP_INFLUENCE_ON_POSITION, 0 ),
761 
762 	// special entries for floating frames
763 	MG_E( "",			DRAW,	FRAME_DISPLAY_SCROLLBAR,	XML_TYPE_BOOL|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_FRAME_DISPLAY_SCROLLBAR ),
764 	MG_E( "",			DRAW,	FRAME_DISPLAY_BORDER,	XML_TYPE_BOOL|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_FRAME_DISPLAY_BORDER ),
765 	MG_E( "",			DRAW,	FRAME_MARGIN_HORIZONTAL,	XML_TYPE_MEASURE_PX|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_FRAME_MARGIN_HORI ),
766 	MG_E( "",			DRAW,	FRAME_MARGIN_VERTICAL,	XML_TYPE_MEASURE_PX|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_FRAME_MARGIN_VERT ),
767 	MG_E( "",			DRAW,	VISIBLE_AREA_LEFT,		XML_TYPE_MEASURE|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_OLE_VIS_AREA_LEFT ),
768 	MG_E( "",			DRAW,	VISIBLE_AREA_TOP,		XML_TYPE_MEASURE|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_OLE_VIS_AREA_TOP ),
769 	MG_E( "",			DRAW,	VISIBLE_AREA_WIDTH,		XML_TYPE_MEASURE|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_OLE_VIS_AREA_WIDTH ),
770 	MG_E( "",			DRAW,	VISIBLE_AREA_HEIGHT,	XML_TYPE_MEASURE|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_OLE_VIS_AREA_HEIGHT ),
771 	MG_E( "",			DRAW,	DRAW_ASPECT,			XML_TYPE_TEXT_DRAW_ASPECT|MID_FLAG_NO_PROPERTY|MID_FLAG_MULTI_PROPERTY,	CTF_OLE_DRAW_ASPECT ),
772 	MG_E( "UserDefinedAttributes", TEXT, XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
773 
774     M_END()
775 };
776 
777 XMLPropertyMapEntry aXMLShapePropMap[] =
778 {
779 	// RES_LR_SPACE
780 	MG_E( "LeftMargin",				FO,	MARGIN_LEFT,		XML_TYPE_MEASURE,  0),
781 	MG_E( "RightMargin",				FO,	MARGIN_RIGHT,		XML_TYPE_MEASURE, 0 ),
782 	// RES_UL_SPACE
783 	MG_E( "TopMargin",				FO,	MARGIN_TOP,			XML_TYPE_MEASURE, 0 ),
784 	MG_E( "BottomMargin",			FO,	MARGIN_BOTTOM,		XML_TYPE_MEASURE, 0 ),
785 	// RES_OPAQUE
786 	MG_ED( "Opaque",					STYLE,	RUN_THROUGH,	XML_TYPE_TEXT_OPAQUE, 0 ),
787 	// RES_SURROUND
788 	MG_E( "TextWrap",				STYLE,	WRAP,	XML_TYPE_TEXT_WRAP, CTF_WRAP ),
789 	MG_E( "SurroundAnchorOnly",		STYLE,	NUMBER_WRAPPED_PARAGRAPHS,	XML_TYPE_TEXT_PARAGRAPH_ONLY, CTF_WRAP_PARAGRAPH_ONLY ),
790 	MG_E( "SurroundContour",			STYLE,	WRAP_CONTOUR,	XML_TYPE_BOOL, CTF_WRAP_CONTOUR ),
791 	MG_E( "ContourOutside",			STYLE,	WRAP_CONTOUR_MODE,	XML_TYPE_TEXT_WRAP_OUTSIDE, CTF_WRAP_CONTOUR_MODE ),
792     // --> OD 2004-08-09 #i28749# - use own CTF ids for positioning attributes
793     // RES_VERT_ORIENT
794     MG_E( "VertOrient",         STYLE,  VERTICAL_POS,   XML_TYPE_TEXT_VERTICAL_POS, CTF_SHAPE_VERTICALPOS ),
795 	// OD 2004-04-16 #i26791# - add property for at-character anchored shapes
796     MG_E( "VertOrient",         STYLE,  VERTICAL_POS,   XML_TYPE_TEXT_VERTICAL_POS_AT_CHAR, CTF_SHAPE_VERTICALPOS_ATCHAR ),
797     MG_E( "VertOrient",         STYLE,  VERTICAL_REL,   XML_TYPE_TEXT_VERTICAL_REL_AS_CHAR|MID_FLAG_MULTI_PROPERTY, CTF_VERTICALREL_ASCHAR ),
798     MG_E( "VertOrientRelation", STYLE,  VERTICAL_REL,   XML_TYPE_TEXT_VERTICAL_REL, CTF_SHAPE_VERTICALREL ),
799     MG_E( "VertOrientRelation", STYLE,  VERTICAL_REL,   XML_TYPE_TEXT_VERTICAL_REL_PAGE|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_SHAPE_VERTICALREL_PAGE ),
800     MG_E( "VertOrientRelation", STYLE,  VERTICAL_REL,   XML_TYPE_TEXT_VERTICAL_REL_FRAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_SHAPE_VERTICALREL_FRAME ),
801 	// RES_HORI_ORIENT
802     MG_E( "HoriOrient",         STYLE,  HORIZONTAL_POS, XML_TYPE_TEXT_HORIZONTAL_POS|MID_FLAG_MULTI_PROPERTY, CTF_SHAPE_HORIZONTALPOS ),
803     MG_E( "PageToggle",         STYLE,  HORIZONTAL_POS, XML_TYPE_TEXT_HORIZONTAL_MIRROR, CTF_SHAPE_HORIZONTALMIRROR ),
804     MG_E( "HoriOrient",         STYLE,  HORIZONTAL_POS, XML_TYPE_TEXT_HORIZONTAL_POS_MIRRORED|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_SHAPE_HORIZONTALPOS_MIRRORED ),
805     MG_E( "HoriOrientRelation", STYLE,  HORIZONTAL_REL, XML_TYPE_TEXT_HORIZONTAL_REL, CTF_SHAPE_HORIZONTALREL ),
806     MG_E( "HoriOrientRelation", STYLE,  HORIZONTAL_REL, XML_TYPE_TEXT_HORIZONTAL_REL_FRAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_SHAPE_HORIZONTALREL_FRAME ),
807     // <--
808     // OD 2004-05-05 #i28701# - RES_WRAP_INFLUENCE_ON_OBJPOS
809     MG_ED( "WrapInfluenceOnPosition", DRAW, WRAP_INFLUENCE_ON_POSITION, XML_TYPE_WRAP_INFLUENCE_ON_POSITION, 0 ),
810     // UserDefinedAttributes is already contained in the map this one is
811     // chained to.
812 
813     // RES_FOLLOW_TEXT_FLOW - OD 2004-04-21 #i26791#
814     MG_ED( "IsFollowingTextFlow", STYLE, FLOW_WITH_TEXT,      XML_TYPE_BOOL, 0 ),
815 
816     M_END()
817 };
818 
819 XMLPropertyMapEntry aXMLSectionPropMap[] =
820 {
821 	// RES_COL
822 	MS_E( "TextColumns",			STYLE,	COLUMNS,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_COLUMNS, CTF_TEXTCOLUMNS ),
823 
824 	// RES_BACKGROUND
825 	MS_E( "BackColor",	FO,	BACKGROUND_COLOR,		XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
826 	MS_E( "BackTransparent",	FO,	BACKGROUND_COLOR,		XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
827 	MS_E( "BackGraphicLocation",	STYLE,	POSITION,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_BUILDIN_CMP_ONLY, CTF_BACKGROUND_POS  ),
828 	MS_E( "BackGraphicFilter",STYLE,	FILTER_NAME,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING, CTF_BACKGROUND_FILTER ),
829 	MS_E( "BackGraphicURL",	STYLE,	BACKGROUND_IMAGE,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_STRING, CTF_BACKGROUND_URL ),
830 
831 	// move protect-flag into section element
832 //	M_E( "IsProtected",			STYLE,	PROTECT,	XML_TYPE_BOOL, 0 ),
833 
834     MS_E( "DontBalanceTextColumns", TEXT, DONT_BALANCE_TEXT_COLUMNS, XML_TYPE_BOOL, 0 ),
835 
836     MS_E( "WritingMode",      STYLE, WRITING_MODE,       XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT, 0 ),
837 
838     MS_E( "SectionLeftMargin",      FO, MARGIN_LEFT,		XML_TYPE_MEASURE,  0),
839     MS_E( "SectionRightMargin",     FO, MARGIN_RIGHT,		XML_TYPE_MEASURE,  0),
840 
841 	// section footnote settings
842 	MS_E( "FootnoteIsOwnNumbering",		TEXT,	_EMPTY,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_BOOL,	CTF_SECTION_FOOTNOTE_NUM_OWN ),
843 	MS_E( "FootnoteIsRestartNumbering",	TEXT,	_EMPTY,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_BOOL,	CTF_SECTION_FOOTNOTE_NUM_RESTART ),
844 	MS_E( "FootnoteRestartNumberingAt",	TEXT,	_EMPTY,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_NUMBER16,CTF_SECTION_FOOTNOTE_NUM_RESTART_AT ),
845 	MS_E( "FootnoteNumberingType",		TEXT,	_EMPTY,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_NUMBER16,CTF_SECTION_FOOTNOTE_NUM_TYPE ),
846 	MS_E( "FootnoteNumberingPrefix",		TEXT,	_EMPTY,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING,	CTF_SECTION_FOOTNOTE_NUM_PREFIX ),
847 	MS_E( "FootnoteNumberingSuffix",		TEXT,	_EMPTY,	MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING,	CTF_SECTION_FOOTNOTE_NUM_SUFFIX ),
848 	MS_E( "FootnoteIsCollectAtTextEnd",	TEXT,	NOTES_CONFIGURATION,	MID_FLAG_ELEMENT_ITEM|XML_TYPE_BOOL,	CTF_SECTION_FOOTNOTE_END ),
849 
850 	// section footnote settings
851 	MS_E( "EndnoteIsOwnNumbering",		TEXT,	_EMPTY,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_BOOL,	CTF_SECTION_ENDNOTE_NUM_OWN ),
852 	MS_E( "EndnoteIsRestartNumbering",	TEXT,	_EMPTY,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_BOOL,	CTF_SECTION_ENDNOTE_NUM_RESTART ),
853 	MS_E( "EndnoteRestartNumberingAt",	TEXT,	_EMPTY,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_NUMBER16,CTF_SECTION_ENDNOTE_NUM_RESTART_AT ),
854 	MS_E( "EndnoteNumberingType",		TEXT,	_EMPTY,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_NUMBER16,CTF_SECTION_ENDNOTE_NUM_TYPE ),
855 	MS_E( "EndnoteNumberingPrefix",		TEXT,	_EMPTY,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING,	CTF_SECTION_ENDNOTE_NUM_PREFIX ),
856 	MS_E( "EndnoteNumberingSuffix",		TEXT,	_EMPTY,		MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING,	CTF_SECTION_ENDNOTE_NUM_SUFFIX ),
857 	MS_E( "EndnoteIsCollectAtTextEnd",	TEXT,	NOTES_CONFIGURATION,		MID_FLAG_ELEMENT_ITEM|XML_TYPE_BOOL,	CTF_SECTION_ENDNOTE_END ),
858 	MS_E( "UserDefinedAttributes", 		TEXT,	XMLNS,		XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
859 
860     // --> FME 2004-06-22 #114856# edit in readonly sections
861     // RES_EDIT_IN_READONLY
862     MS_E( "EditInReadonly",             STYLE,  EDITABLE,  XML_TYPE_BOOL, 0 ),
863     // <--
864 
865     M_END()
866 };
867 
868 XMLPropertyMapEntry aXMLRubyPropMap[] =
869 {
870 	MR_E( "RubyAdjust",	STYLE, RUBY_ALIGN, XML_TYPE_TEXT_RUBY_ADJUST, 0 ),
871 	MR_E( "RubyIsAbove",	STYLE, RUBY_POSITION, XML_TYPE_TEXT_RUBY_POSITION, 0 ),
872     M_END()
873 };
874 
875 
876 XMLPropertyMapEntry aXMLTableDefaultsMap[] =
877 {
878     // RES_COLLAPSING_BORDERS: only occurs in tables, but we need to
879     // read/write the default for this item
880     _M_ED( "CollapsingBorders", TABLE, BORDER_MODEL, XML_TYPE_PROP_TABLE | XML_TYPE_BORDER_MODEL | MID_FLAG_NO_PROPERTY_IMPORT, CTF_BORDER_MODEL ),
881 
882     M_END()
883 };
884 
885 XMLPropertyMapEntry aXMLTableRowDefaultsMap[] =
886 {
887     // RES_ROW_SPLIT: only occurs in table rows, but we need to
888     // read/write the default for this item
889     _M_ED( "IsSplitAllowed", FO, KEEP_TOGETHER, XML_TYPE_PROP_TABLE_ROW | XML_TYPE_TEXT_NKEEP | MID_FLAG_NO_PROPERTY_IMPORT, CTF_KEEP_TOGETHER ),
890 
891     M_END()
892 };
893 
lcl_txtprmap_getMap(sal_uInt16 nType)894 XMLPropertyMapEntry *lcl_txtprmap_getMap( sal_uInt16 nType )
895 {
896 	XMLPropertyMapEntry *pMap = 0;
897 	switch( nType )
898 	{
899 	case TEXT_PROP_MAP_TEXT:
900 		pMap = aXMLTextPropMap;
901 		break;
902 	case TEXT_PROP_MAP_SHAPE_PARA:
903         // #125045# use [21] instead of [1] for text props for Shapes, idices
904         // [1..20] contain the DrawingLayer FillStyle attributes corresponding to
905         // [XATTR_FILL_FIRST .. XATTR_FILL_LAST] and would be double since Shapes
906         // already contain these (usually in aXMLSDProperties)
907 		pMap = &(aXMLParaPropMap[21]);
908         OSL_ENSURE( pMap->meXMLName == XML_MARGIN, "shape para map changed" );
909 		break;
910 	case TEXT_PROP_MAP_PARA:
911 		pMap = aXMLParaPropMap;
912 		break;
913 	case TEXT_PROP_MAP_FRAME:
914 		pMap = aXMLFramePropMap;
915 		break;
916 	case TEXT_PROP_MAP_AUTO_FRAME:
917 		pMap = &(aXMLFramePropMap[13]);
918         OSL_ENSURE( pMap->meXMLName == XML_MARGIN, "frame map changed" );
919 		break;
920 	case TEXT_PROP_MAP_SHAPE:
921 		pMap = aXMLShapePropMap;
922 		break;
923 	case TEXT_PROP_MAP_SECTION:
924 		pMap = aXMLSectionPropMap;
925 		break;
926 	case TEXT_PROP_MAP_RUBY:
927 		pMap = aXMLRubyPropMap;
928 		break;
929     case TEXT_PROP_MAP_TEXT_ADDITIONAL_DEFAULTS:
930         pMap = aXMLAdditionalTextDefaultsMap;
931         break;
932     case TEXT_PROP_MAP_TABLE_DEFAULTS:
933         pMap = aXMLTableDefaultsMap;
934         break;
935     case TEXT_PROP_MAP_TABLE_ROW_DEFAULTS:
936         pMap = aXMLTableRowDefaultsMap;
937         break;
938 	}
939 	DBG_ASSERT( pMap, "illegal map type" );
940 	return pMap;
941 }
942 
getPropertyMapForType(sal_uInt16 _nType)943 const XMLPropertyMapEntry* XMLTextPropertySetMapper::getPropertyMapForType( sal_uInt16 _nType )
944 {
945     return lcl_txtprmap_getMap( _nType );
946 }
947 
XMLTextPropertySetMapper(sal_uInt16 nType)948 XMLTextPropertySetMapper::XMLTextPropertySetMapper( sal_uInt16 nType ) :
949 	XMLPropertySetMapper( lcl_txtprmap_getMap( nType ),
950 						  new XMLTextPropertyHandlerFactory )
951 {
952 }
953 
~XMLTextPropertySetMapper()954 XMLTextPropertySetMapper::~XMLTextPropertySetMapper()
955 {
956 }
957