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