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