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