xref: /aoo4110/main/xmloff/source/forms/formenums.cxx (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 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_xmloff.hxx"
26 #include "formenums.hxx"
27 #include <osl/diagnose.h>
28 #include <com/sun/star/form/FormSubmitEncoding.hpp>
29 #include <com/sun/star/form/FormSubmitMethod.hpp>
30 #include <com/sun/star/sdb/CommandType.hpp>
31 #include <com/sun/star/form/NavigationBarMode.hpp>
32 #include <com/sun/star/form/TabulatorCycle.hpp>
33 #include <com/sun/star/form/FormButtonType.hpp>
34 #include <com/sun/star/form/ListSourceType.hpp>
35 #include <com/sun/star/awt/TextAlign.hpp>
36 #include <com/sun/star/awt/FontWidth.hpp>
37 #include <com/sun/star/awt/FontEmphasisMark.hpp>
38 #include <com/sun/star/awt/FontRelief.hpp>
39 #include <com/sun/star/awt/ScrollBarOrientation.hpp>
40 #include <com/sun/star/awt/VisualEffect.hpp>
41 #include <com/sun/star/awt/ImageScaleMode.hpp>
42 #include <tools/wintypes.hxx>		// for check states
43 #include <xmloff/xmltoken.hxx>
44 
45 //.........................................................................
46 namespace xmloff
47 {
48 //.........................................................................
49 
50 	using namespace ::com::sun::star::form;
51 	using namespace ::com::sun::star::sdb;
52 	using namespace ::com::sun::star::awt;
53 	using namespace ::xmloff::token;
54 
55 	const SvXMLEnumMapEntry*	OEnumMapper::s_pEnumMap[OEnumMapper::KNOWN_ENUM_PROPERTIES] =
56 	{
57 		NULL,
58 		NULL,
59 		NULL,
60 		NULL,
61 		NULL,
62 		NULL,
63 		NULL,
64 		NULL,
65 		NULL,
66 		NULL,
67 		NULL,
68 		NULL,
69 		NULL,
70 		NULL,
71 		NULL
72 	};
73 
74 	//---------------------------------------------------------------------
getEnumMap(EnumProperties _eProperty)75 	const SvXMLEnumMapEntry*	OEnumMapper::getEnumMap(EnumProperties _eProperty)
76 	{
77 		OSL_ENSURE(_eProperty < KNOWN_ENUM_PROPERTIES, "OEnumMapper::getEnumMap: invalid index (this will crash)!");
78 
79 		const SvXMLEnumMapEntry*& rReturn = s_pEnumMap[_eProperty];
80 		if (!rReturn)
81 		{
82 			// the map for this property is not initialized yet
83 		 	switch (_eProperty)
84 			{
85 				// FormSubmitEncoding
86 				case epSubmitEncoding:
87 				{
88 					static SvXMLEnumMapEntry aSubmitEncodingMap[] =
89 					{
90 						{ XML_APPLICATION_X_WWW_FORM_URLENCODED, FormSubmitEncoding_URL },
91 						{ XML_MULTIPART_FORMDATA, FormSubmitEncoding_MULTIPART },
92 						{ XML_APPLICATION_TEXT, FormSubmitEncoding_TEXT },
93 						{ XML_TOKEN_INVALID, 0 }
94 					};
95 					rReturn = aSubmitEncodingMap;
96 				}
97 				break;
98 				// FormSubmitMethod
99 				case epSubmitMethod:
100 				{
101 					static SvXMLEnumMapEntry aSubmitMethodMap[] =
102 					{
103 						{ XML_GET, FormSubmitMethod_GET },
104 						{ XML_POST, FormSubmitMethod_POST },
105 						{ XML_TOKEN_INVALID, 0 }
106 					};
107 					rReturn = aSubmitMethodMap;
108 				}
109 				break;
110 				// CommandType
111 				case epCommandType:
112 				{
113 					static SvXMLEnumMapEntry aCommandTypeMap[] =
114 					{
115 						{ XML_TABLE, CommandType::TABLE },
116 						{ XML_QUERY, CommandType::QUERY },
117 						{ XML_COMMAND, CommandType::COMMAND },
118 						{ XML_TOKEN_INVALID, 0 }
119 					};
120 					rReturn = aCommandTypeMap;
121 				}
122 				break;
123 				// NavigationBarMode
124 				case epNavigationType:
125 				{
126 					static SvXMLEnumMapEntry aNavigationTypeMap[] =
127 					{
128 						{ XML_NONE, NavigationBarMode_NONE },
129 						{ XML_CURRENT, NavigationBarMode_CURRENT },
130 						{ XML_PARENT, NavigationBarMode_PARENT },
131 						{ XML_TOKEN_INVALID, 0 }
132 					};
133 					rReturn = aNavigationTypeMap;
134 				};
135 				break;
136 				// TabulatorCycle
137 				case epTabCyle:
138 				{
139 					static SvXMLEnumMapEntry aTabulytorCycleMap[] =
140 					{
141 						{ XML_RECORDS, TabulatorCycle_RECORDS },
142 						{ XML_CURRENT, TabulatorCycle_CURRENT },
143 						{ XML_PAGE, TabulatorCycle_PAGE },
144 						{ XML_TOKEN_INVALID, 0 }
145 					};
146 					rReturn = aTabulytorCycleMap;
147 				};
148 				break;
149 				// FormButtonType
150 				case epButtonType:
151 				{
152 					static SvXMLEnumMapEntry aFormButtonTypeMap[] =
153 					{
154 						{ XML_PUSH, FormButtonType_PUSH },
155 						{ XML_SUBMIT, FormButtonType_SUBMIT },
156 						{ XML_RESET, FormButtonType_RESET },
157 						{ XML_URL, FormButtonType_URL },
158 						{ XML_TOKEN_INVALID, 0 }
159 					};
160 					rReturn = aFormButtonTypeMap;
161 				};
162 				break;
163 				// ListSourceType
164 				case epListSourceType:
165 				{
166 					static SvXMLEnumMapEntry aListSourceTypeMap[] =
167 					{
168 						{ XML_VALUE_LIST, ListSourceType_VALUELIST },
169 						{ XML_TABLE, ListSourceType_TABLE },
170 						{ XML_QUERY, ListSourceType_QUERY },
171 						{ XML_SQL, ListSourceType_SQL },
172 						{ XML_SQL_PASS_THROUGH, ListSourceType_SQLPASSTHROUGH },
173 						{ XML_TABLE_FIELDS, ListSourceType_TABLEFIELDS },
174 						{ XML_TOKEN_INVALID, 0 }
175 					};
176 					rReturn = aListSourceTypeMap;
177 				};
178 				break;
179 				// check state of a checkbox
180 				case epCheckState:
181 				{
182 					static SvXMLEnumMapEntry aCheckStateMap[] =
183 					{
184 						{ XML_UNCHECKED, STATE_NOCHECK },
185 						{ XML_CHECKED, STATE_CHECK },
186 						{ XML_UNKNOWN, STATE_DONTKNOW },
187 						{ XML_TOKEN_INVALID, 0 }
188 					};
189 					rReturn = aCheckStateMap;
190 				};
191 				break;
192 				case epTextAlign:
193 				{
194 					static SvXMLEnumMapEntry aTextAlignMap[] =
195 					{
196 						{ XML_START,		TextAlign::LEFT },
197 						{ XML_CENTER,		TextAlign::CENTER },
198 						{ XML_END,			TextAlign::RIGHT },
199 						{ XML_JUSTIFY,		(sal_uInt16)-1 },
200                         { XML_JUSTIFIED,    (sal_uInt16)-1 },
201 						{ XML_TOKEN_INVALID, 0 }
202 					};
203 					rReturn = aTextAlignMap;
204 				};
205 				break;
206 				case epBorderWidth:
207 				{
208 					static SvXMLEnumMapEntry aBorderTypeMap[] =
209 					{
210 						{ XML_NONE,	    0 },
211 						{ XML_HIDDEN, 	0 },
212 						{ XML_SOLID, 	2 },
213 						{ XML_DOUBLE,	2 },
214 						{ XML_DOTTED, 	2 },
215 						{ XML_DASHED, 	2 },
216 						{ XML_GROOVE, 	1 },
217 						{ XML_RIDGE,  	1 },
218 						{ XML_INSET,  	1 },
219 						{ XML_OUTSET, 	1 },
220 						{ XML_TOKEN_INVALID, 0 }
221 					};
222 					rReturn = aBorderTypeMap;
223 				};
224 				break;
225 
226 				case epFontEmphasis:
227 				{
228 					static SvXMLEnumMapEntry aFontEmphasisMap[] =
229 					{
230 						{ XML_NONE,	    FontEmphasisMark::NONE },
231 						{ XML_DOT,		FontEmphasisMark::DOT },
232 						{ XML_CIRCLE,	FontEmphasisMark::CIRCLE },
233 						{ XML_DISC,	    FontEmphasisMark::DISC },
234 						{ XML_ACCENT,	FontEmphasisMark::ACCENT },
235 						{ XML_TOKEN_INVALID, 0 }
236 					};
237 					rReturn = aFontEmphasisMap;
238 				}
239 				break;
240 
241 				case epFontRelief:
242 				{
243 					static SvXMLEnumMapEntry aFontReliefMap[] =
244 					{
245 						{ XML_NONE,		FontRelief::NONE },
246 						{ XML_ENGRAVED,	FontRelief::ENGRAVED },
247 						{ XML_EMBOSSED,	FontRelief::EMBOSSED },
248 						{ XML_TOKEN_INVALID, 0 }
249 					};
250 					rReturn = aFontReliefMap;
251 				}
252 				break;
253 
254                 case epListLinkageType:
255 				{
256 					static SvXMLEnumMapEntry aListLinkageMap[] =
257 					{
258 						{ XML_SELECTION,            0 },
259 						{ XML_SELECTION_INDEXES,    1 },
260 						{ XML_TOKEN_INVALID, 0 }
261 					};
262 					rReturn = aListLinkageMap;
263 				}
264 				break;
265 
266                 case epOrientation:
267                 {
268                     static SvXMLEnumMapEntry aOrientationMap[] =
269                     {
270                         { XML_HORIZONTAL,   ScrollBarOrientation::HORIZONTAL },
271                         { XML_VERTICAL,     ScrollBarOrientation::VERTICAL },
272                         { XML_TOKEN_INVALID, 0 }
273                     };
274                     rReturn = aOrientationMap;
275                 }
276 				break;
277 
278                 case epVisualEffect:
279                 {
280                     static SvXMLEnumMapEntry aVisualEffectMap[] =
281                     {
282                         { XML_NONE, VisualEffect::NONE },
283                         { XML_3D,   VisualEffect::LOOK3D },
284                         { XML_FLAT, VisualEffect::FLAT },
285                         { XML_TOKEN_INVALID, 0 }
286                     };
287                     rReturn = aVisualEffectMap;
288                 }
289                 break;
290 
291                 case epImagePosition:
292                 {
293                     static SvXMLEnumMapEntry aImagePositionMap[] =
294                     {
295                         { XML_START,  0 },
296                         { XML_END,    1 },
297                         { XML_TOP,    2 },
298                         { XML_BOTTOM, 3 },
299                         { XML_CENTER, (sal_uInt16)-1 },
300                         { XML_TOKEN_INVALID, 0 }
301                     };
302                     rReturn = aImagePositionMap;
303                 }
304                 break;
305 
306                 case epImageAlign:
307                 {
308                     static SvXMLEnumMapEntry aImageAlignMap[] =
309                     {
310                         { XML_START,  0 },
311                         { XML_CENTER, 1 },
312                         { XML_END, 2 },
313                         { XML_TOKEN_INVALID, 0 }
314                     };
315                     rReturn = aImageAlignMap;
316                 }
317                 break;
318 
319                 case epImageScaleMode:
320                 {
321                     static const SvXMLEnumMapEntry aScaleModeMap[] =
322                     {
323                         { XML_BACKGROUND_NO_REPEAT, ImageScaleMode::NONE },
324                         { XML_REPEAT,               ImageScaleMode::NONE },  // repeating the image is not supported
325                         { XML_STRETCH,              ImageScaleMode::ANISOTROPIC },
326                         { XML_SCALE,                ImageScaleMode::ISOTROPIC },
327                         { XML_TOKEN_INVALID,        ImageScaleMode::NONE }
328                     };
329                     rReturn = aScaleModeMap;
330                 }
331                 break;
332 
333                 case KNOWN_ENUM_PROPERTIES:
334                     break;
335 			}
336 		}
337 
338 		return rReturn;
339 	}
340 
341 //.........................................................................
342 }	// namespace xmloff
343 //.........................................................................
344 
345