xref: /aoo4110/main/xmloff/inc/xmloff/xmltypes.hxx (revision b1cdbd2c)
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 
23 
24 #ifndef _XMLOFF_XMLTYPES_HXX
25 #define _XMLOFF_XMLTYPES_HXX
26 
27 ///////////////////////////////////////////////////////////////////////////////
28 // Flags to specify how to im/export the property
29 //
30 // OLD:
31 // 8421.8421.8421.8421.8421.8421.8421.8421
32 //  n n   m  mmmd    m baaa tttt.tttt.tttt
33 // spsp eep  paef    e  ppp tttt.tttt.tttt
34 // iiee iei  ieie    i  ppp tttt.tttt.tttt
35 // NOW:
36 //  n n   mm mmdm   pp ppba aatt.tttt.tttt
37 // spsp eepp aefe         p pptt.tttt.tttt
38 // iiee ieii eiei         p pptt.tttt.tttt
39 
40 #define MID_FLAG_MASK					0x00003fff
41 
42 // Import only: the xml attribute's value is evaluated by a call to
43 // handleSpecialItem instead of calling the property handler's importXML method
44 #define MID_FLAG_SPECIAL_ITEM_IMPORT	0x80000000
45 
46 // Export only: the property's value is exported by a call to handleSpecialItem
47 // instead of calling the property handler's exportXML method
48 #define MID_FLAG_SPECIAL_ITEM_EXPORT	0x20000000
49 #define MID_FLAG_SPECIAL_ITEM			0xa0000000	// both import and export
50 
51 // the map entry denotes the name of an element item
52 #define MID_FLAG_ELEMENT_ITEM_IMPORT	0x08000000
53 #define MID_FLAG_ELEMENT_ITEM_EXPORT	0x04000000
54 #define MID_FLAG_ELEMENT_ITEM			0x0c000000  // both import and export
55 
56 // the attribute is ignored (not yet implemented)
57 #define MID_FLAG_NO_PROPERTY_IMPORT		0x40000000
58 
59 // the property is ignored
60 #define MID_FLAG_NO_PROPERTY_EXPORT		0x10000000
61 #define MID_FLAG_NO_PROPERTY			0x50000000	// both import and export
62 
63 // Import only: there are more entries for the same xml attribute existing
64 #define MID_FLAG_MULTI_PROPERTY			0x02000000	//
65 
66 // Import only: If a property with the same name has been set already, supply
67 // the current value to the importXML call.
68 #define MID_FLAG_MERGE_PROPERTY			0x01000000
69 
70 // Export only: If an xml attribute with the same name has been exported
71 // already, supply its value to teh exportXML call and delete the existing
72 // atribute afterwards.
73 #define MID_FLAG_MERGE_ATTRIBUTE		0x00800000
74 
75 // Import and Export: The property in question must exist. No call to
76 // hasPropertyByName is required.
77 #define MID_FLAG_MUST_EXIST				0x00400000
78 
79 // Export only: When exporting defaults, export this property even if it is
80 // not set
81 #define MID_FLAG_DEFAULT_ITEM_EXPORT	0x00200000
82 
83 // Import only: In general, properties may not throw exception, but
84 // this one may. If it throws an IllegalArgumentException, it will be
85 // silently ignored. This should be used for properties whose values
86 // cannot be checked. (E.g., the printer paper tray: The tray names
87 // are different for all printers, and we don't know ahead whether a
88 // printer supports the trays in the current document.)
89 #define MID_FLAG_PROPERTY_MAY_EXCEPT    0x00100000
90 
91 #define XML_TYPE_PROP_SHIFT 14
92 #define XML_TYPE_PROP_MASK (0xf << XML_TYPE_PROP_SHIFT)
93 
94 #define XML_TYPE_PROP_START (0x1 << XML_TYPE_PROP_SHIFT)
95 #define XML_TYPE_PROP_GRAPHIC (0x1 << XML_TYPE_PROP_SHIFT)
96 #define XML_TYPE_PROP_DRAWING_PAGE (0x2 << XML_TYPE_PROP_SHIFT)
97 #define XML_TYPE_PROP_PAGE_LAYOUT (0x3 << XML_TYPE_PROP_SHIFT)
98 #define XML_TYPE_PROP_HEADER_FOOTER (0x4 << XML_TYPE_PROP_SHIFT)
99 #define XML_TYPE_PROP_TEXT (0x5 << XML_TYPE_PROP_SHIFT)
100 #define XML_TYPE_PROP_PARAGRAPH (0x6 << XML_TYPE_PROP_SHIFT)
101 #define XML_TYPE_PROP_RUBY (0x7 << XML_TYPE_PROP_SHIFT)
102 #define XML_TYPE_PROP_SECTION (0x8 << XML_TYPE_PROP_SHIFT)
103 #define XML_TYPE_PROP_TABLE (0x9 << XML_TYPE_PROP_SHIFT)
104 #define XML_TYPE_PROP_TABLE_COLUMN (0xa << XML_TYPE_PROP_SHIFT)
105 #define XML_TYPE_PROP_TABLE_ROW (0xb << XML_TYPE_PROP_SHIFT)
106 #define XML_TYPE_PROP_TABLE_CELL (0xc << XML_TYPE_PROP_SHIFT)
107 #define XML_TYPE_PROP_LIST_LEVEL (0xd << XML_TYPE_PROP_SHIFT)
108 #define XML_TYPE_PROP_CHART (0xe << XML_TYPE_PROP_SHIFT)
109 #define XML_TYPE_PROP_END (0xf << XML_TYPE_PROP_SHIFT)
110 
111 ///////////////////////////////////////////////////////////////////////////////
112 //
113 // XML-data-type-ID's
114 //
115 
116 // simple types, no special compare necessary
117 #define XML_TYPE_BUILDIN_CMP 0x00002000
118 
119 // basic types (all also XML_TYPE_BUILDIN_CMP)
120 #define XML_TYPE_BOOL		 		0x00002001			// true/false
121 #define XML_TYPE_MEASURE	 		0x00002002			// 1cm
122 #define XML_TYPE_MEASURE8	 		0x00002003			// 1cm
123 #define XML_TYPE_MEASURE16	 		0x00002004			// 1cm
124 #define XML_TYPE_PERCENT	 		0x00002005			// 50%
125 #define XML_TYPE_PERCENT8	 		0x00002006			// 50%
126 #define XML_TYPE_PERCENT16	 		0x00002007			// 50%
127 #define XML_TYPE_STRING		 		0x00002008			// "blablabla"
128 #define XML_TYPE_COLOR		 		0x00002009			// Colors
129 #define XML_TYPE_NUMBER		 		0x0000200a			// 123
130 #define XML_TYPE_NUMBER8	 		0x0000200b			// 123
131 #define XML_TYPE_NUMBER16	 		0x0000200c			// 123
132 #define XML_TYPE_NUMBER_NONE 		0x0000200d			// 123 and "no-limit" for 0
133 #define XML_TYPE_DOUBLE		 		0x0000200e			// for doubles
134 #define XML_TYPE_NBOOL		 		0x0000200f			// !true/false
135 #define XML_TYPE_COLORTRANSPARENT 	0x00002010			// Colors or "transparent"
136 #define XML_TYPE_ISTRANSPARENT		0x00002011			// "transparent"
137 #define XML_TYPE_BUILDIN_CMP_ONLY	0x00002012			// Only buildin comparison is required, so no handler exists
138 #define XML_TYPE_NUMBER8_NONE 		0x00002013			// 123 and "no-limit" for 0
139 #define XML_TYPE_NUMBER16_NONE 		0x00002014			// 123 and "no-limit" for 0
140 #define XML_TYPE_COLOR_MODE 		0x00002015
141 #define XML_TYPE_DURATION16_MS		0x00002016			// PT00H00M01S to ms in sal_Int16
142 #define XML_TYPE_MEASURE_PX			0x00002017				// 1px
143 #define XML_TYPE_COLORAUTO			0x00002018			// color if not -1
144 #define XML_TYPE_ISAUTOCOLOR		0x00002019			// true if -1
145 #define XML_TYPE_STYLENAME	 		0x00002020			// "blablabla"
146 #define XML_TYPE_NEG_PERCENT		0x00002021			// (100-x)%
147 #define XML_TYPE_NEG_PERCENT8	 	0x00002022			// (100-x)%
148 #define XML_TYPE_NEG_PERCENT16	 	0x00002023			// (100-x)
149 #define XML_TYPE_DOUBLE_PERCENT		0x00002024			// 	50% (source is a double from 0.0 to 1.0)
150 
151 // special basic types
152 #define XML_TYPE_RECTANGLE_LEFT		0x00000100			// the Left member of a awt::Rectangle as a measure
153 #define XML_TYPE_RECTANGLE_TOP		0x00000101			// the Top member of a awt::Rectangle as a measure
154 #define XML_TYPE_RECTANGLE_WIDTH	0x00000102			// the Width member of a awt::Rectangle as a measure
155 #define XML_TYPE_RECTANGLE_HEIGHT	0x00000103			// the Height member of a awt::Rectangle as a measure
156 
157 #define XML_TYPE_APP_SHIFT 10
158 #define XML_SC_TYPES_START	(0x1 << XML_TYPE_APP_SHIFT)
159 #define XML_SD_TYPES_START	(0x2 << XML_TYPE_APP_SHIFT)
160 
161 #define XML_TEXT_TYPES_START (0x3 << XML_TYPE_APP_SHIFT)
162 #define XML_TYPE_TEXT_CROSSEDOUT_STYLE	(XML_TEXT_TYPES_START +   0)
163 #define XML_TYPE_TEXT_CASEMAP		(XML_TEXT_TYPES_START +   1)
164 #define XML_TYPE_TEXT_FONTFAMILYNAME (XML_TEXT_TYPES_START +   2)
165 #define XML_TYPE_TEXT_FONTFAMILY	(XML_TEXT_TYPES_START +   3)
166 #define XML_TYPE_TEXT_FONTENCODING	(XML_TEXT_TYPES_START +   4)
167 #define XML_TYPE_TEXT_FONTPITCH		(XML_TEXT_TYPES_START +   5)
168 #define XML_TYPE_TEXT_KERNING		(XML_TEXT_TYPES_START +   6)
169 #define XML_TYPE_TEXT_POSTURE		(XML_TEXT_TYPES_START +   7)
170 #define XML_TYPE_TEXT_SHADOWED		(XML_TEXT_TYPES_START +   8)
171 #define XML_TYPE_TEXT_UNDERLINE_STYLE	(XML_TEXT_TYPES_START +   9)
172 #define XML_TYPE_TEXT_WEIGHT		(XML_TEXT_TYPES_START +  10)
173 #define XML_TYPE_TEXT_SPLIT			(XML_TEXT_TYPES_START +  11)
174 #define XML_TYPE_TEXT_BREAKBEFORE	(XML_TEXT_TYPES_START +  12)
175 #define XML_TYPE_TEXT_BREAKAFTER	(XML_TEXT_TYPES_START +  13)
176 #define XML_TYPE_TEXT_SHADOW		(XML_TEXT_TYPES_START +  14)
177 #define XML_TYPE_TEXT_ADJUST		(XML_TEXT_TYPES_START +  15)
178 #define XML_TYPE_TEXT_ADJUSTLAST	(XML_TEXT_TYPES_START +  16)
179 #define XML_TYPE_TEXT_CASEMAP_VAR	(XML_TEXT_TYPES_START +  17)
180 #define XML_TYPE_TEXT_ESCAPEMENT	(XML_TEXT_TYPES_START +  18)
181 #define XML_TYPE_TEXT_ESCAPEMENT_HEIGHT (XML_TEXT_TYPES_START + 19)
182 #define XML_TYPE_CHAR_HEIGHT		(XML_TEXT_TYPES_START +  20)
183 #define XML_TYPE_CHAR_HEIGHT_PROP	(XML_TEXT_TYPES_START +  21)
184 #define XML_TYPE_CHAR_LANGUAGE		(XML_TEXT_TYPES_START +  22)
185 #define XML_TYPE_CHAR_COUNTRY		(XML_TEXT_TYPES_START +  23)
186 #define XML_TYPE_LINE_SPACE_FIXED	(XML_TEXT_TYPES_START +  24)
187 #define XML_TYPE_LINE_SPACE_MINIMUM	(XML_TEXT_TYPES_START +  25)
188 #define XML_TYPE_LINE_SPACE_DISTANCE (XML_TEXT_TYPES_START +  26)
189 #define XML_TYPE_BORDER				(XML_TEXT_TYPES_START + 27)
190 #define XML_TYPE_BORDER_WIDTH		(XML_TEXT_TYPES_START + 28)
191 #define XML_TYPE_TEXT_DROPCAP		(XML_TEXT_TYPES_START + 29)
192 #define XML_TYPE_TEXT_TABSTOP		(XML_TEXT_TYPES_START + 30)
193 #define XML_TYPE_TEXT_BOOLCROSSEDOUT (XML_TEXT_TYPES_START + 31)
194 #define XML_TYPE_TEXT_WRAP			(XML_TEXT_TYPES_START + 32)
195 #define XML_TYPE_TEXT_PARAGRAPH_ONLY (XML_TEXT_TYPES_START + 33)
196 #define XML_TYPE_TEXT_WRAP_OUTSIDE	(XML_TEXT_TYPES_START + 34)
197 #define XML_TYPE_TEXT_OPAQUE		(XML_TEXT_TYPES_START + 35)
198 #define XML_TYPE_TEXT_PROTECT_CONTENT	(XML_TEXT_TYPES_START + 36)
199 #define XML_TYPE_TEXT_PROTECT_SIZE		(XML_TEXT_TYPES_START + 37)
200 #define XML_TYPE_TEXT_PROTECT_POSITION	(XML_TEXT_TYPES_START + 38)
201 #define XML_TYPE_TEXT_ANCHOR_TYPE		(XML_TEXT_TYPES_START + 39)
202 #define XML_TYPE_TEXT_COLUMNS		(XML_TEXT_TYPES_START + 40)
203 #define XML_TYPE_TEXT_HORIZONTAL_POS	(XML_TEXT_TYPES_START + 41)
204 #define XML_TYPE_TEXT_HORIZONTAL_POS_MIRRORED	(XML_TEXT_TYPES_START + 42)
205 #define XML_TYPE_TEXT_HORIZONTAL_REL	(XML_TEXT_TYPES_START + 43)
206 #define XML_TYPE_TEXT_HORIZONTAL_REL_FRAME	(XML_TEXT_TYPES_START + 44)
207 #define XML_TYPE_TEXT_HORIZONTAL_MIRROR	(XML_TEXT_TYPES_START + 45)
208 #define XML_TYPE_TEXT_VERTICAL_POS	(XML_TEXT_TYPES_START + 46)
209 #define XML_TYPE_TEXT_VERTICAL_REL	(XML_TEXT_TYPES_START + 47)
210 #define XML_TYPE_TEXT_VERTICAL_REL_PAGE	(XML_TEXT_TYPES_START + 48)
211 #define XML_TYPE_TEXT_VERTICAL_REL_FRAME	(XML_TEXT_TYPES_START + 49)
212 #define XML_TYPE_TEXT_VERTICAL_REL_AS_CHAR	(XML_TEXT_TYPES_START + 50)
213 #define XML_TYPE_TEXT_MIRROR_VERTICAL (XML_TEXT_TYPES_START + 51)
214 #define XML_TYPE_TEXT_MIRROR_HORIZONTAL_LEFT (XML_TEXT_TYPES_START + 52)
215 #define XML_TYPE_TEXT_MIRROR_HORIZONTAL_RIGHT (XML_TEXT_TYPES_START + 53)
216 #define XML_TYPE_TEXT_CLIP11	(XML_TEXT_TYPES_START + 54)
217 #define XML_TYPE_ATTRIBUTE_CONTAINER (XML_TEXT_TYPES_START + 55 )
218 #define XML_TYPE_CHAR_HEIGHT_DIFF	(XML_TEXT_TYPES_START +  56)
219 #define XML_TYPE_TEXT_EMPHASIZE (XML_TEXT_TYPES_START +  57)
220 #define XML_TYPE_TEXT_COMBINE (XML_TEXT_TYPES_START +  58)
221 #define XML_TYPE_TEXT_COMBINECHAR (XML_TEXT_TYPES_START +  59)
222 #define XML_TYPE_TEXT_UNDERLINE_COLOR (XML_TEXT_TYPES_START +  60)
223 #define XML_TYPE_TEXT_UNDERLINE_HASCOLOR (XML_TEXT_TYPES_START +  61)
224 #define XML_TYPE_TEXT_AUTOSPACE (XML_TEXT_TYPES_START + 62)
225 #define XML_TYPE_TEXT_PUNCTUATION_WRAP (XML_TEXT_TYPES_START + 63)
226 #define XML_TYPE_TEXT_LINE_BREAK (XML_TEXT_TYPES_START + 64)
227 
228 #define XML_TYPE_TEXT_ALIGN				(XML_TEXT_TYPES_START + 65)
229 #define XML_TYPE_FONT_WIDTH				(XML_TEXT_TYPES_START + 66)
230 #define XML_TYPE_ROTATION_ANGLE			(XML_TEXT_TYPES_START + 67)
231 #define XML_TYPE_CONTROL_BORDER			(XML_TEXT_TYPES_START + 68)
232 #define XML_TYPE_TEXT_REL_WIDTH_HEIGHT	(XML_TEXT_TYPES_START + 69)
233 #define XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT	(XML_TEXT_TYPES_START + 70)
234 #define XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT_MIN	(XML_TEXT_TYPES_START + 71)
235 #define XML_TYPE_TEXT_COMBINE_CHARACTERS (XML_TEXT_TYPES_START +  72)
236 #define XML_TYPE_TEXT_ANIMATION				(XML_TEXT_TYPES_START + 73)
237 #define XML_TYPE_TEXT_ANIMATION_DIRECTION	(XML_TEXT_TYPES_START + 74)
238 #define XML_TYPE_TEXT_HORIZONTAL_ADJUST		(XML_TEXT_TYPES_START + 75)
239 #define XML_TYPE_TEXT_RUBY_ADJUST		(XML_TEXT_TYPES_START + 76)
240 #define XML_TYPE_TEXT_FONT_RELIEF		(XML_TEXT_TYPES_START + 77)
241 #define XML_TYPE_TEXT_ROTATION_ANGLE	(XML_TEXT_TYPES_START + 78)
242 #define XML_TYPE_TEXT_ROTATION_SCALE	(XML_TEXT_TYPES_START + 79)
243 #define XML_TYPE_TEXT_VERTICAL_ALIGN	(XML_TEXT_TYPES_START + 80)
244 #define XML_TYPE_TEXT_DRAW_ASPECT		(XML_TEXT_TYPES_START + 81)
245 #define XML_TYPE_CONTROL_TEXT_EMPHASIZE	(XML_TEXT_TYPES_START + 82)
246 #define XML_TYPE_TEXT_RUBY_POSITION		(XML_TEXT_TYPES_START + 83)
247 #define XML_TYPE_TEXT_VERTICAL_POS_AT_CHAR	(XML_TEXT_TYPES_START + 84)
248 #define XML_TYPE_TEXT_WRITING_MODE	(XML_TEXT_TYPES_START + 85)
249 #define XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT (XML_TEXT_TYPES_START + 86)
250 #define XML_TYPE_LAYOUT_GRID_MODE       (XML_TEXT_TYPES_START + 87)
251 #define XML_TYPE_TEXT_HIDDEN_AS_DISPLAY (XML_TEXT_TYPES_START + 88)
252 #define XML_TYPE_CONTROL_BORDER_COLOR   (XML_TEXT_TYPES_START + 89)
253 #define XML_TYPE_BORDER_MODEL            (XML_TEXT_TYPES_START + 90)
254 #define XML_TYPE_TEXT_LINE_MODE			(XML_TEXT_TYPES_START + 91)
255 #define XML_TYPE_TEXT_UNDERLINE_TYPE	(XML_TEXT_TYPES_START + 92)
256 #define XML_TYPE_TEXT_UNDERLINE_WIDTH	(XML_TEXT_TYPES_START + 93)
257 #define XML_TYPE_TEXT_CROSSEDOUT_TYPE	(XML_TEXT_TYPES_START + 94)
258 #define XML_TYPE_TEXT_CROSSEDOUT_WIDTH	(XML_TEXT_TYPES_START + 95)
259 #define XML_TYPE_TEXT_CROSSEDOUT_TEXT	(XML_TEXT_TYPES_START + 96)
260 #define XML_TYPE_TEXT_KEEP				(XML_TEXT_TYPES_START + 97)
261 #define XML_TYPE_TEXT_NKEEP				(XML_TEXT_TYPES_START + 98)
262 #define XML_TYPE_WRAP_INFLUENCE_ON_POSITION (XML_TEXT_TYPES_START + 99)
263 #define XML_TYPE_WRAP_OPTION			(XML_TEXT_TYPES_START + 100)
264 #define XML_TYPE_TEXT_NUMBER8_ONE_BASED (XML_TEXT_TYPES_START + 101)
265 #define XML_TYPE_NUMBER_NO_ZERO         (XML_TEXT_TYPES_START + 102)
266 #define XML_TYPE_NUMBER8_NO_ZERO        (XML_TEXT_TYPES_START + 103)
267 #define XML_TYPE_NUMBER16_NO_ZERO       (XML_TEXT_TYPES_START + 104)
268 #define XML_TYPE_NUMBER16_AUTO			(XML_TEXT_TYPES_START + 105)
269 #define XML_TYPE_TEXT_SOFT_PAGE_BREAK   (XML_TEXT_TYPES_START + 106)
270 #define XML_TYPE_TEXT_USE_SOFT_PAGE_BREAKS (XML_TEXT_TYPES_START + 107)
271 #define XML_TYPE_TEXT_CLIP				(XML_TEXT_TYPES_START + 108)
272 #define XML_TYPE_TEXT_OVERLINE_TYPE     (XML_TEXT_TYPES_START + 109)
273 #define XML_TYPE_TEXT_OVERLINE_STYLE    (XML_TEXT_TYPES_START + 110)
274 #define XML_TYPE_TEXT_OVERLINE_WIDTH    (XML_TEXT_TYPES_START + 111)
275 #define XML_TYPE_TEXT_OVERLINE_COLOR    (XML_TEXT_TYPES_START + 112)
276 #define XML_TYPE_TEXT_OVERLINE_HASCOLOR (XML_TEXT_TYPES_START + 113)
277 
278 #define XML_SCH_TYPES_START	(0x4 << XML_TYPE_APP_SHIFT)
279 #define XML_PM_TYPES_START	(0x5 << XML_TYPE_APP_SHIFT)	// page master
280 #define XML_DB_TYPES_START	(0x6 << XML_TYPE_APP_SHIFT)
281 
282 #endif		// _XMLOFF_XMLTYPES_HXX
283