Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include "formenums.hxx"
21 : #include <osl/diagnose.h>
22 : #include <com/sun/star/form/FormSubmitEncoding.hpp>
23 : #include <com/sun/star/form/FormSubmitMethod.hpp>
24 : #include <com/sun/star/sdb/CommandType.hpp>
25 : #include <com/sun/star/form/NavigationBarMode.hpp>
26 : #include <com/sun/star/form/TabulatorCycle.hpp>
27 : #include <com/sun/star/form/FormButtonType.hpp>
28 : #include <com/sun/star/form/ListSourceType.hpp>
29 : #include <com/sun/star/awt/TextAlign.hpp>
30 : #include <com/sun/star/awt/FontWidth.hpp>
31 : #include <com/sun/star/awt/FontEmphasisMark.hpp>
32 : #include <com/sun/star/awt/FontRelief.hpp>
33 : #include <com/sun/star/awt/ScrollBarOrientation.hpp>
34 : #include <com/sun/star/awt/VisualEffect.hpp>
35 : #include <com/sun/star/awt/ImageScaleMode.hpp>
36 : #include <tools/gen.hxx>
37 : #include <xmloff/xmltoken.hxx>
38 :
39 : namespace xmloff
40 : {
41 :
42 : using namespace ::com::sun::star::form;
43 : using namespace ::com::sun::star::sdb;
44 : using namespace ::com::sun::star::awt;
45 : using namespace ::com::sun::star;
46 : using namespace ::xmloff::token;
47 :
48 : const SvXMLEnumMapEntry* OEnumMapper::s_pEnumMap[OEnumMapper::KNOWN_ENUM_PROPERTIES] =
49 : {
50 : NULL,
51 : NULL,
52 : NULL,
53 : NULL,
54 : NULL,
55 : NULL,
56 : NULL,
57 : NULL,
58 : NULL,
59 : NULL,
60 : NULL,
61 : NULL,
62 : NULL,
63 : NULL,
64 : NULL
65 : };
66 :
67 26798 : const SvXMLEnumMapEntry* OEnumMapper::getEnumMap(EnumProperties _eProperty)
68 : {
69 : OSL_ENSURE(_eProperty < KNOWN_ENUM_PROPERTIES, "OEnumMapper::getEnumMap: invalid index (this will crash)!");
70 :
71 26798 : const SvXMLEnumMapEntry*& rReturn = s_pEnumMap[_eProperty];
72 26798 : if (!rReturn)
73 : {
74 : // the map for this property is not initialized yet
75 1602 : switch (_eProperty)
76 : {
77 : // FormSubmitEncoding
78 : case epSubmitEncoding:
79 : {
80 : static const SvXMLEnumMapEntry aSubmitEncodingMap[] =
81 : {
82 : { XML_APPLICATION_X_WWW_FORM_URLENCODED, FormSubmitEncoding_URL },
83 : { XML_MULTIPART_FORMDATA, FormSubmitEncoding_MULTIPART },
84 : { XML_APPLICATION_TEXT, FormSubmitEncoding_TEXT },
85 : { XML_TOKEN_INVALID, 0 }
86 : };
87 128 : rReturn = aSubmitEncodingMap;
88 : }
89 128 : break;
90 : // FormSubmitMethod
91 : case epSubmitMethod:
92 : {
93 : static const SvXMLEnumMapEntry aSubmitMethodMap[] =
94 : {
95 : { XML_GET, FormSubmitMethod_GET },
96 : { XML_POST, FormSubmitMethod_POST },
97 : { XML_TOKEN_INVALID, 0 }
98 : };
99 128 : rReturn = aSubmitMethodMap;
100 : }
101 128 : break;
102 : // CommandType
103 : case epCommandType:
104 : {
105 : static const SvXMLEnumMapEntry aCommandTypeMap[] =
106 : {
107 : { XML_TABLE, CommandType::TABLE },
108 : { XML_QUERY, CommandType::QUERY },
109 : { XML_COMMAND, CommandType::COMMAND },
110 : { XML_TOKEN_INVALID, 0 }
111 : };
112 128 : rReturn = aCommandTypeMap;
113 : }
114 128 : break;
115 : // NavigationBarMode
116 : case epNavigationType:
117 : {
118 : static const SvXMLEnumMapEntry aNavigationTypeMap[] =
119 : {
120 : { XML_NONE, NavigationBarMode_NONE },
121 : { XML_CURRENT, NavigationBarMode_CURRENT },
122 : { XML_PARENT, NavigationBarMode_PARENT },
123 : { XML_TOKEN_INVALID, 0 }
124 : };
125 128 : rReturn = aNavigationTypeMap;
126 : };
127 128 : break;
128 : // TabulatorCycle
129 : case epTabCyle:
130 : {
131 : static const SvXMLEnumMapEntry aTabulytorCycleMap[] =
132 : {
133 : { XML_RECORDS, TabulatorCycle_RECORDS },
134 : { XML_CURRENT, TabulatorCycle_CURRENT },
135 : { XML_PAGE, TabulatorCycle_PAGE },
136 : { XML_TOKEN_INVALID, 0 }
137 : };
138 128 : rReturn = aTabulytorCycleMap;
139 : };
140 128 : break;
141 : // FormButtonType
142 : case epButtonType:
143 : {
144 : static const SvXMLEnumMapEntry aFormButtonTypeMap[] =
145 : {
146 : { XML_PUSH, FormButtonType_PUSH },
147 : { XML_SUBMIT, FormButtonType_SUBMIT },
148 : { XML_RESET, FormButtonType_RESET },
149 : { XML_URL, FormButtonType_URL },
150 : { XML_TOKEN_INVALID, 0 }
151 : };
152 128 : rReturn = aFormButtonTypeMap;
153 : };
154 128 : break;
155 : // ListSourceType
156 : case epListSourceType:
157 : {
158 : static const SvXMLEnumMapEntry aListSourceTypeMap[] =
159 : {
160 : { XML_VALUE_LIST, ListSourceType_VALUELIST },
161 : { XML_TABLE, ListSourceType_TABLE },
162 : { XML_QUERY, ListSourceType_QUERY },
163 : { XML_SQL, ListSourceType_SQL },
164 : { XML_SQL_PASS_THROUGH, ListSourceType_SQLPASSTHROUGH },
165 : { XML_TABLE_FIELDS, ListSourceType_TABLEFIELDS },
166 : { XML_TOKEN_INVALID, 0 }
167 : };
168 128 : rReturn = aListSourceTypeMap;
169 : };
170 128 : break;
171 : // check state of a checkbox
172 : case epCheckState:
173 : {
174 : static const SvXMLEnumMapEntry aCheckStateMap[] =
175 : {
176 : { XML_UNCHECKED, TRISTATE_FALSE },
177 : { XML_CHECKED, TRISTATE_TRUE },
178 : { XML_UNKNOWN, TRISTATE_INDET },
179 : { XML_TOKEN_INVALID, 0 }
180 : };
181 128 : rReturn = aCheckStateMap;
182 : };
183 128 : break;
184 : case epTextAlign:
185 : {
186 : static const SvXMLEnumMapEntry aTextAlignMap[] =
187 : {
188 : { XML_START, awt::TextAlign::LEFT },
189 : { XML_CENTER, awt::TextAlign::CENTER },
190 : { XML_END, awt::TextAlign::RIGHT },
191 : { XML_JUSTIFY, (sal_uInt16)-1 },
192 : { XML_JUSTIFIED, (sal_uInt16)-1 },
193 : { XML_TOKEN_INVALID, 0 }
194 : };
195 52 : rReturn = aTextAlignMap;
196 : };
197 52 : break;
198 : case epBorderWidth:
199 : {
200 : static const SvXMLEnumMapEntry aBorderTypeMap[] =
201 : {
202 : { XML_NONE, 0 },
203 : { XML_HIDDEN, 0 },
204 : { XML_SOLID, 2 },
205 : { XML_DOUBLE, 2 },
206 : { XML_DOTTED, 2 },
207 : { XML_DASHED, 2 },
208 : { XML_GROOVE, 1 },
209 : { XML_RIDGE, 1 },
210 : { XML_INSET, 1 },
211 : { XML_OUTSET, 1 },
212 : { XML_TOKEN_INVALID, 0 }
213 : };
214 24 : rReturn = aBorderTypeMap;
215 : };
216 24 : break;
217 :
218 : case epFontEmphasis:
219 : {
220 : static const SvXMLEnumMapEntry aFontEmphasisMap[] =
221 : {
222 : { XML_NONE, awt::FontEmphasisMark::NONE },
223 : { XML_DOT, awt::FontEmphasisMark::DOT },
224 : { XML_CIRCLE, awt::FontEmphasisMark::CIRCLE },
225 : { XML_DISC, awt::FontEmphasisMark::DISC },
226 : { XML_ACCENT, awt::FontEmphasisMark::ACCENT },
227 : { XML_TOKEN_INVALID, 0 }
228 : };
229 52 : rReturn = aFontEmphasisMap;
230 : }
231 52 : break;
232 :
233 : case epFontRelief:
234 : {
235 : static const SvXMLEnumMapEntry aFontReliefMap[] =
236 : {
237 : { XML_NONE, FontRelief::NONE },
238 : { XML_ENGRAVED, FontRelief::ENGRAVED },
239 : { XML_EMBOSSED, FontRelief::EMBOSSED },
240 : { XML_TOKEN_INVALID, 0 }
241 : };
242 52 : rReturn = aFontReliefMap;
243 : }
244 52 : break;
245 :
246 : case epListLinkageType:
247 : {
248 : static const SvXMLEnumMapEntry aListLinkageMap[] =
249 : {
250 : { XML_SELECTION, 0 },
251 : { XML_SELECTION_INDEXES, 1 },
252 : { XML_TOKEN_INVALID, 0 }
253 : };
254 0 : rReturn = aListLinkageMap;
255 : }
256 0 : break;
257 :
258 : case epOrientation:
259 : {
260 : static const SvXMLEnumMapEntry aOrientationMap[] =
261 : {
262 : { XML_HORIZONTAL, ScrollBarOrientation::HORIZONTAL },
263 : { XML_VERTICAL, ScrollBarOrientation::VERTICAL },
264 : { XML_TOKEN_INVALID, 0 }
265 : };
266 128 : rReturn = aOrientationMap;
267 : }
268 128 : break;
269 :
270 : case epVisualEffect:
271 : {
272 : static const SvXMLEnumMapEntry aVisualEffectMap[] =
273 : {
274 : { XML_NONE, VisualEffect::NONE },
275 : { XML_3D, VisualEffect::LOOK3D },
276 : { XML_FLAT, VisualEffect::FLAT },
277 : { XML_TOKEN_INVALID, 0 }
278 : };
279 128 : rReturn = aVisualEffectMap;
280 : }
281 128 : break;
282 :
283 : case epImagePosition:
284 : {
285 : static const SvXMLEnumMapEntry aImagePositionMap[] =
286 : {
287 : { XML_START, 0 },
288 : { XML_END, 1 },
289 : { XML_TOP, 2 },
290 : { XML_BOTTOM, 3 },
291 : { XML_CENTER, (sal_uInt16)-1 },
292 : { XML_TOKEN_INVALID, 0 }
293 : };
294 6 : rReturn = aImagePositionMap;
295 : }
296 6 : break;
297 :
298 : case epImageAlign:
299 : {
300 : static const SvXMLEnumMapEntry aImageAlignMap[] =
301 : {
302 : { XML_START, 0 },
303 : { XML_CENTER, 1 },
304 : { XML_END, 2 },
305 : { XML_TOKEN_INVALID, 0 }
306 : };
307 0 : rReturn = aImageAlignMap;
308 : }
309 0 : break;
310 :
311 : case epImageScaleMode:
312 : {
313 : static const SvXMLEnumMapEntry aScaleModeMap[] =
314 : {
315 : { XML_BACKGROUND_NO_REPEAT, ImageScaleMode::NONE },
316 : { XML_REPEAT, ImageScaleMode::NONE }, // repeating the image is not supported
317 : { XML_STRETCH, ImageScaleMode::ANISOTROPIC },
318 : { XML_SCALE, ImageScaleMode::ISOTROPIC },
319 : { XML_TOKEN_INVALID, ImageScaleMode::NONE }
320 : };
321 136 : rReturn = aScaleModeMap;
322 : }
323 136 : break;
324 :
325 : case KNOWN_ENUM_PROPERTIES:
326 0 : break;
327 : }
328 : }
329 :
330 26798 : return rReturn;
331 : }
332 :
333 : } // namespace xmloff
334 :
335 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|