xref: /trunk/main/xmloff/source/forms/formenums.cxx (revision cf6516809c57e1bb0a940545cca99cdad54d4ce2)
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
10cdf0e10cSrcweir  *
1163bba73cSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
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.
19cdf0e10cSrcweir  *
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 //.........................................................................
344