1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove 25*b1cdbd2cSJim Jagielski #include "precompiled_extensions.hxx" 26*b1cdbd2cSJim Jagielski #include "formmetadata.hxx" 27*b1cdbd2cSJim Jagielski #ifndef _EXTENSIONS_FORMCTRLR_FORMHELPID_HRC_ 28*b1cdbd2cSJim Jagielski #include "propctrlr.hrc" 29*b1cdbd2cSJim Jagielski #endif 30*b1cdbd2cSJim Jagielski #include "formstrings.hxx" 31*b1cdbd2cSJim Jagielski #ifndef _EXTENSIONS_FORMCTRLR_PROPRESID_HRC_ 32*b1cdbd2cSJim Jagielski #include "formresid.hrc" 33*b1cdbd2cSJim Jagielski #endif 34*b1cdbd2cSJim Jagielski #include "propctrlr.hrc" 35*b1cdbd2cSJim Jagielski #include <svtools/localresaccess.hxx> 36*b1cdbd2cSJim Jagielski #include <tools/debug.hxx> 37*b1cdbd2cSJim Jagielski #include <comphelper/extract.hxx> 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski #include <algorithm> 40*b1cdbd2cSJim Jagielski #include <functional> 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski //............................................................................ 43*b1cdbd2cSJim Jagielski namespace pcr 44*b1cdbd2cSJim Jagielski { 45*b1cdbd2cSJim Jagielski //............................................................................ 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno; 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski //======================================================================== 50*b1cdbd2cSJim Jagielski //= OPropertyInfoImpl 51*b1cdbd2cSJim Jagielski //======================================================================== 52*b1cdbd2cSJim Jagielski struct OPropertyInfoImpl 53*b1cdbd2cSJim Jagielski { 54*b1cdbd2cSJim Jagielski String sName; 55*b1cdbd2cSJim Jagielski String sTranslation; 56*b1cdbd2cSJim Jagielski rtl::OString sHelpId; 57*b1cdbd2cSJim Jagielski sal_Int32 nId; 58*b1cdbd2cSJim Jagielski sal_uInt16 nPos; 59*b1cdbd2cSJim Jagielski sal_uInt32 nUIFlags; 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski OPropertyInfoImpl( 62*b1cdbd2cSJim Jagielski const ::rtl::OUString& rName, 63*b1cdbd2cSJim Jagielski sal_Int32 _nId, 64*b1cdbd2cSJim Jagielski const String& aTranslation, 65*b1cdbd2cSJim Jagielski sal_uInt16 nPosId, 66*b1cdbd2cSJim Jagielski const rtl::OString&, 67*b1cdbd2cSJim Jagielski sal_uInt32 _nUIFlags); 68*b1cdbd2cSJim Jagielski }; 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ OPropertyInfoImpl(const::rtl::OUString & _rName,sal_Int32 _nId,const String & aString,sal_uInt16 nP,const rtl::OString & sHid,sal_uInt32 _nUIFlags)71*b1cdbd2cSJim Jagielski OPropertyInfoImpl::OPropertyInfoImpl(const ::rtl::OUString& _rName, sal_Int32 _nId, 72*b1cdbd2cSJim Jagielski const String& aString, sal_uInt16 nP, const rtl::OString& sHid, sal_uInt32 _nUIFlags) 73*b1cdbd2cSJim Jagielski :sName(_rName) 74*b1cdbd2cSJim Jagielski ,sTranslation(aString) 75*b1cdbd2cSJim Jagielski ,sHelpId(sHid) 76*b1cdbd2cSJim Jagielski ,nId(_nId) 77*b1cdbd2cSJim Jagielski ,nPos(nP) 78*b1cdbd2cSJim Jagielski ,nUIFlags(_nUIFlags) 79*b1cdbd2cSJim Jagielski { 80*b1cdbd2cSJim Jagielski } 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 83*b1cdbd2cSJim Jagielski // Vergleichen von PropertyInfo 84*b1cdbd2cSJim Jagielski struct PropertyInfoLessByName : public ::std::binary_function< OPropertyInfoImpl, OPropertyInfoImpl, bool > 85*b1cdbd2cSJim Jagielski { operator ()pcr::PropertyInfoLessByName86*b1cdbd2cSJim Jagielski bool operator()( const OPropertyInfoImpl& _rLHS, const OPropertyInfoImpl& _rRHS ) 87*b1cdbd2cSJim Jagielski { 88*b1cdbd2cSJim Jagielski return _rLHS.sName.CompareTo( _rRHS.sName ) == COMPARE_LESS; 89*b1cdbd2cSJim Jagielski } 90*b1cdbd2cSJim Jagielski }; 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski //======================================================================== 93*b1cdbd2cSJim Jagielski //= OPropertyInfoService 94*b1cdbd2cSJim Jagielski //======================================================================== 95*b1cdbd2cSJim Jagielski #define DEF_INFO( ident, uinameres, helpid, flags ) \ 96*b1cdbd2cSJim Jagielski OPropertyInfoImpl( PROPERTY_##ident, PROPERTY_ID_##ident, \ 97*b1cdbd2cSJim Jagielski String( PcrRes( RID_STR_##uinameres ) ), nPos++, HID_PROP_##helpid, flags ) 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski #define DEF_INFO_1( ident, uinameres, helpid, flag1 ) \ 100*b1cdbd2cSJim Jagielski DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 ) 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski #define DEF_INFO_2( ident, uinameres, helpid, flag1, flag2 ) \ 103*b1cdbd2cSJim Jagielski DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 ) 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski #define DEF_INFO_3( ident, uinameres, helpid, flag1, flag2, flag3 ) \ 106*b1cdbd2cSJim Jagielski DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 ) 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski #define DEF_INFO_4( ident, uinameres, helpid, flag1, flag2, flag3, flag4 ) \ 109*b1cdbd2cSJim Jagielski DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 | PROP_FLAG_##flag4 ) 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski #define DEF_INFO_5( ident, uinameres, helpid, flag1, flag2, flag3, flag4, flag5 ) \ 112*b1cdbd2cSJim Jagielski DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 | PROP_FLAG_##flag4 | PROP_FLAG_##flag5 ) 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski sal_uInt16 OPropertyInfoService::s_nCount = 0; 115*b1cdbd2cSJim Jagielski OPropertyInfoImpl* OPropertyInfoService::s_pPropertyInfos = NULL; 116*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyInfo()117*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo() 118*b1cdbd2cSJim Jagielski { 119*b1cdbd2cSJim Jagielski if ( s_pPropertyInfos ) 120*b1cdbd2cSJim Jagielski return s_pPropertyInfos; 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski PcrClient aResourceAccess; 123*b1cdbd2cSJim Jagielski // this ensures that we have our resource file loaded 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski sal_uInt16 nPos = 1; 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski static OPropertyInfoImpl aPropertyInfos[] = 128*b1cdbd2cSJim Jagielski { 129*b1cdbd2cSJim Jagielski /* 130*b1cdbd2cSJim Jagielski DEF_INFO_?( propname and id, resoure id, help id, flags ), 131*b1cdbd2cSJim Jagielski */ 132*b1cdbd2cSJim Jagielski DEF_INFO_3( NAME, NAME, NAME, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 133*b1cdbd2cSJim Jagielski DEF_INFO_2( TITLE, TITLE, TITLE, FORM_VISIBLE, DIALOG_VISIBLE ), 134*b1cdbd2cSJim Jagielski DEF_INFO_3( LABEL, LABEL, LABEL, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 135*b1cdbd2cSJim Jagielski DEF_INFO_2( CONTROLLABEL, LABELCONTROL, CONTROLLABEL, FORM_VISIBLE, COMPOSEABLE ), 136*b1cdbd2cSJim Jagielski DEF_INFO_3( WRITING_MODE, WRITING_MODE, WRITING_MODE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 137*b1cdbd2cSJim Jagielski DEF_INFO_2( TEXT, TEXT, TEXT, DIALOG_VISIBLE, COMPOSEABLE ), 138*b1cdbd2cSJim Jagielski DEF_INFO_3( MAXTEXTLEN, MAXTEXTLEN, MAXTEXTLEN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 139*b1cdbd2cSJim Jagielski DEF_INFO_3( EDITMASK, EDITMASK, EDITMASK, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 140*b1cdbd2cSJim Jagielski DEF_INFO_3( LITERALMASK, LITERALMASK, LITERALMASK, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 141*b1cdbd2cSJim Jagielski DEF_INFO_3( STRICTFORMAT, STRICTFORMAT, STRICTFORMAT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 142*b1cdbd2cSJim Jagielski DEF_INFO_3( ENABLED, ENABLED, ENABLED, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 143*b1cdbd2cSJim Jagielski DEF_INFO_3( ENABLE_VISIBLE, ENABLE_VISIBLE, ENABLE_VISIBLE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 144*b1cdbd2cSJim Jagielski DEF_INFO_3( READONLY, READONLY, READONLY, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 145*b1cdbd2cSJim Jagielski DEF_INFO_3( PRINTABLE, PRINTABLE, PRINTABLE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 146*b1cdbd2cSJim Jagielski DEF_INFO_3( STEP, STEP, STEP, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 147*b1cdbd2cSJim Jagielski DEF_INFO_3( TABSTOP, TABSTOP, TABSTOP, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 148*b1cdbd2cSJim Jagielski DEF_INFO_2( TABINDEX, TABINDEX, TABINDEX, FORM_VISIBLE, DIALOG_VISIBLE ), 149*b1cdbd2cSJim Jagielski DEF_INFO_3( WHEEL_BEHAVIOR, WHEEL_BEHAVIOR, WHEEL_BEHAVIOR, FORM_VISIBLE, ENUM, COMPOSEABLE ), 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski DEF_INFO_2( BOUND_CELL, BOUND_CELL, BOUND_CELL, FORM_VISIBLE, DATA_PROPERTY ), 152*b1cdbd2cSJim Jagielski DEF_INFO_3( CELL_EXCHANGE_TYPE,CELL_EXCHANGE_TYPE, CELL_EXCHANGE_TYPE,FORM_VISIBLE, DATA_PROPERTY, ENUM ), 153*b1cdbd2cSJim Jagielski DEF_INFO_2( LIST_CELL_RANGE, LIST_CELL_RANGE, LIST_CELL_RANGE, FORM_VISIBLE, DATA_PROPERTY ), 154*b1cdbd2cSJim Jagielski DEF_INFO_3( CONTROLSOURCE, CONTROLSOURCE, CONTROLSOURCE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 155*b1cdbd2cSJim Jagielski DEF_INFO_3( EMPTY_IS_NULL, EMPTY_IS_NULL, EMPTY_IS_NULL, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 156*b1cdbd2cSJim Jagielski DEF_INFO_3( INPUT_REQUIRED, INPUT_REQUIRED, INPUT_REQUIRED, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 157*b1cdbd2cSJim Jagielski DEF_INFO_3( REFVALUE, REFVALUE, REFVALUE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 158*b1cdbd2cSJim Jagielski DEF_INFO_3( UNCHECKEDREFVALUE, UNCHECKEDREFVALUE, UNCHECKEDREFVALUE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 159*b1cdbd2cSJim Jagielski DEF_INFO_3( DATASOURCE, DATASOURCE, DATASOURCE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 160*b1cdbd2cSJim Jagielski DEF_INFO_4( COMMANDTYPE, CURSORSOURCETYPE, CURSORSOURCETYPE, FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ), 161*b1cdbd2cSJim Jagielski DEF_INFO_3( COMMAND, CURSORSOURCE, CURSORSOURCE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 162*b1cdbd2cSJim Jagielski DEF_INFO_3( ESCAPE_PROCESSING, ESCAPE_PROCESSING, ESCAPE_PROCESSING, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 163*b1cdbd2cSJim Jagielski DEF_INFO_3( FILTER, FILTER, FILTER, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 164*b1cdbd2cSJim Jagielski DEF_INFO_3( SORT, SORT_CRITERIA, SORT_CRITERIA, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 165*b1cdbd2cSJim Jagielski DEF_INFO_2( MASTERFIELDS, MASTERFIELDS, MASTERFIELDS, FORM_VISIBLE, DATA_PROPERTY ), 166*b1cdbd2cSJim Jagielski DEF_INFO_2( DETAILFIELDS, SLAVEFIELDS, SLAVEFIELDS, FORM_VISIBLE, DATA_PROPERTY ), 167*b1cdbd2cSJim Jagielski DEF_INFO_3( ALLOWADDITIONS, ALLOW_ADDITIONS, ALLOW_ADDITIONS, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 168*b1cdbd2cSJim Jagielski DEF_INFO_3( ALLOWEDITS, ALLOW_EDITS, ALLOW_EDITS, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 169*b1cdbd2cSJim Jagielski DEF_INFO_3( ALLOWDELETIONS, ALLOW_DELETIONS, ALLOW_DELETIONS, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 170*b1cdbd2cSJim Jagielski DEF_INFO_4( INSERTONLY, DATAENTRY, DATAENTRY, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE, COMPOSEABLE ), 171*b1cdbd2cSJim Jagielski DEF_INFO_4( NAVIGATION, NAVIGATION, NAVIGATION, FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ), 172*b1cdbd2cSJim Jagielski DEF_INFO_4( CYCLE, CYCLE, CYCLE, FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ), 173*b1cdbd2cSJim Jagielski DEF_INFO_3( FILTERPROPOSAL, FILTERPROPOSAL, FILTERPROPOSAL, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 174*b1cdbd2cSJim Jagielski DEF_INFO_4( LISTSOURCETYPE, LISTSOURCETYPE, LISTSOURCETYPE, FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ), 175*b1cdbd2cSJim Jagielski DEF_INFO_3( LISTSOURCE, LISTSOURCE, LISTSOURCE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 176*b1cdbd2cSJim Jagielski DEF_INFO_3( BOUNDCOLUMN, BOUNDCOLUMN, BOUNDCOLUMN, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ), 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski // <!-----------------> 179*b1cdbd2cSJim Jagielski // XML node binding 180*b1cdbd2cSJim Jagielski DEF_INFO_2( LIST_BINDING, LIST_BINDING, LIST_BINDING, FORM_VISIBLE, DATA_PROPERTY ), 181*b1cdbd2cSJim Jagielski DEF_INFO_2( XML_DATA_MODEL, XML_DATA_MODEL, XML_DATA_MODEL, FORM_VISIBLE, DATA_PROPERTY ), 182*b1cdbd2cSJim Jagielski DEF_INFO_2( BINDING_NAME, BINDING_NAME, BINDING_NAME, FORM_VISIBLE, DATA_PROPERTY ), 183*b1cdbd2cSJim Jagielski DEF_INFO_2( BIND_EXPRESSION, BIND_EXPRESSION, BIND_EXPRESSION, FORM_VISIBLE, DATA_PROPERTY ), 184*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_REQUIRED, XSD_REQUIRED, XSD_REQUIRED, FORM_VISIBLE, DATA_PROPERTY ), 185*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_RELEVANT, XSD_RELEVANT, XSD_RELEVANT, FORM_VISIBLE, DATA_PROPERTY ), 186*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_READONLY, XSD_READONLY, XSD_READONLY, FORM_VISIBLE, DATA_PROPERTY ), 187*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_CONSTRAINT, XSD_CONSTRAINT, XSD_CONSTRAINT, FORM_VISIBLE, DATA_PROPERTY ), 188*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_CALCULATION, XSD_CALCULATION, XSD_CALCULATION, FORM_VISIBLE, DATA_PROPERTY ), 189*b1cdbd2cSJim Jagielski 190*b1cdbd2cSJim Jagielski // data type 191*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_DATA_TYPE, XSD_DATA_TYPE, XSD_DATA_TYPE, FORM_VISIBLE, DATA_PROPERTY ), 192*b1cdbd2cSJim Jagielski // data types facets 193*b1cdbd2cSJim Jagielski // common 194*b1cdbd2cSJim Jagielski DEF_INFO_3( XSD_WHITESPACES, XSD_WHITESPACES, XSD_WHITESPACES, FORM_VISIBLE, DATA_PROPERTY, ENUM ), 195*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_PATTERN, XSD_PATTERN, XSD_PATTERN, FORM_VISIBLE, DATA_PROPERTY ), 196*b1cdbd2cSJim Jagielski // string 197*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_LENGTH, XSD_LENGTH, XSD_LENGTH, FORM_VISIBLE, DATA_PROPERTY ), 198*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_LENGTH, XSD_MIN_LENGTH, XSD_MIN_LENGTH, FORM_VISIBLE, DATA_PROPERTY ), 199*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_LENGTH, XSD_MAX_LENGTH, XSD_MAX_LENGTH, FORM_VISIBLE, DATA_PROPERTY ), 200*b1cdbd2cSJim Jagielski // decimal 201*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_TOTAL_DIGITS, XSD_TOTAL_DIGITS, XSD_TOTAL_DIGITS, FORM_VISIBLE, DATA_PROPERTY ), 202*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_FRACTION_DIGITS,XSD_FRACTION_DIGITS,XSD_FRACTION_DIGITS,FORM_VISIBLE, DATA_PROPERTY ), 203*b1cdbd2cSJim Jagielski // int value types (year, month, day) 204*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_INCLUSIVE_INT, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 205*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_EXCLUSIVE_INT, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 206*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_INCLUSIVE_INT, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 207*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_EXCLUSIVE_INT, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 208*b1cdbd2cSJim Jagielski // double value types (double, float, decimal) 209*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_INCLUSIVE_DOUBLE, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 210*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_EXCLUSIVE_DOUBLE, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 211*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_INCLUSIVE_DOUBLE, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 212*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_EXCLUSIVE_DOUBLE, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 213*b1cdbd2cSJim Jagielski // date value type 214*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_INCLUSIVE_DATE, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 215*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_EXCLUSIVE_DATE, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 216*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_INCLUSIVE_DATE, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 217*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_EXCLUSIVE_DATE, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 218*b1cdbd2cSJim Jagielski // time value type 219*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_INCLUSIVE_TIME, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 220*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_EXCLUSIVE_TIME, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 221*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_INCLUSIVE_TIME, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 222*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_EXCLUSIVE_TIME, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 223*b1cdbd2cSJim Jagielski // dateTime value type 224*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_INCLUSIVE_DATE_TIME, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 225*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MAX_EXCLUSIVE_DATE_TIME, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 226*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_INCLUSIVE_DATE_TIME, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 227*b1cdbd2cSJim Jagielski DEF_INFO_2( XSD_MIN_EXCLUSIVE_DATE_TIME, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ), 228*b1cdbd2cSJim Jagielski // <!-----------------> 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski DEF_INFO_2( HIDDEN_VALUE, VALUE, HIDDEN_VALUE, FORM_VISIBLE, COMPOSEABLE ), 231*b1cdbd2cSJim Jagielski DEF_INFO_2( VALUE, VALUE, VALUE, DIALOG_VISIBLE, COMPOSEABLE ), 232*b1cdbd2cSJim Jagielski DEF_INFO_3( VALUEMIN, VALUEMIN, VALUEMIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 233*b1cdbd2cSJim Jagielski DEF_INFO_3( VALUEMAX, VALUEMAX, VALUEMAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 234*b1cdbd2cSJim Jagielski DEF_INFO_3( VALUESTEP, VALUESTEP, VALUESTEP, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 235*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_VALUE, DEFAULTVALUE, DEFAULT_LONG_VALUE,FORM_VISIBLE, COMPOSEABLE ), 236*b1cdbd2cSJim Jagielski DEF_INFO_3( DECIMAL_ACCURACY, DECIMAL_ACCURACY, DECIMAL_ACCURACY, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 237*b1cdbd2cSJim Jagielski DEF_INFO_3( SHOWTHOUSANDSEP, SHOWTHOUSANDSEP, SHOWTHOUSANDSEP, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 238*b1cdbd2cSJim Jagielski 239*b1cdbd2cSJim Jagielski DEF_INFO_3( CURRENCYSYMBOL, CURRENCYSYMBOL, CURRENCYSYMBOL, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 240*b1cdbd2cSJim Jagielski DEF_INFO_3( CURRSYM_POSITION, CURRSYM_POSITION, CURRSYM_POSITION, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski DEF_INFO_2( DATE, DATE, DATE, DIALOG_VISIBLE, COMPOSEABLE ), 243*b1cdbd2cSJim Jagielski DEF_INFO_3( DATEMIN, DATEMIN, DATEMIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 244*b1cdbd2cSJim Jagielski DEF_INFO_3( DATEMAX, DATEMAX, DATEMAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 245*b1cdbd2cSJim Jagielski DEF_INFO_4( DATEFORMAT, DATEFORMAT, DATEFORMAT, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 246*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_DATE, DEFAULTDATE, DEFAULT_DATE, FORM_VISIBLE, COMPOSEABLE ), 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski DEF_INFO_2( TIME, TIME, TIME, DIALOG_VISIBLE, COMPOSEABLE ), 249*b1cdbd2cSJim Jagielski DEF_INFO_3( TIMEMIN, TIMEMIN, TIMEMIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 250*b1cdbd2cSJim Jagielski DEF_INFO_3( TIMEMAX, TIMEMAX, TIMEMAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 251*b1cdbd2cSJim Jagielski DEF_INFO_4( TIMEFORMAT, TIMEFORMAT, TIMEFORMAT, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 252*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_TIME, DEFAULTTIME, DEFAULT_TIME, FORM_VISIBLE, COMPOSEABLE ), 253*b1cdbd2cSJim Jagielski 254*b1cdbd2cSJim Jagielski DEF_INFO_1( EFFECTIVE_VALUE, VALUE, VALUE, DIALOG_VISIBLE ), 255*b1cdbd2cSJim Jagielski DEF_INFO_3( EFFECTIVE_MIN, VALUEMIN, EFFECTIVEMIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 256*b1cdbd2cSJim Jagielski DEF_INFO_3( EFFECTIVE_MAX, VALUEMAX, EFFECTIVEMAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 257*b1cdbd2cSJim Jagielski DEF_INFO_2( EFFECTIVE_DEFAULT, DEFAULTVALUE, EFFECTIVEDEFAULT, FORM_VISIBLE, COMPOSEABLE ), 258*b1cdbd2cSJim Jagielski DEF_INFO_3( FORMATKEY, FORMATKEY, FORMATKEY, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 259*b1cdbd2cSJim Jagielski 260*b1cdbd2cSJim Jagielski DEF_INFO_3( PROGRESSVALUE, PROGRESSVALUE, PROGRESSVALUE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 261*b1cdbd2cSJim Jagielski DEF_INFO_3( PROGRESSVALUE_MIN, PROGRESSVALUE_MIN, PROGRESSVALUE_MIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 262*b1cdbd2cSJim Jagielski DEF_INFO_3( PROGRESSVALUE_MAX, PROGRESSVALUE_MAX, PROGRESSVALUE_MAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski DEF_INFO_2( SCROLLVALUE, SCROLLVALUE, SCROLLVALUE, DIALOG_VISIBLE, COMPOSEABLE ), 265*b1cdbd2cSJim Jagielski DEF_INFO_3( SCROLLVALUE_MIN, SCROLLVALUE_MIN, SCROLLVALUE_MIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 266*b1cdbd2cSJim Jagielski DEF_INFO_3( SCROLLVALUE_MAX, SCROLLVALUE_MAX, SCROLLVALUE_MAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 267*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_SCROLLVALUE,DEFAULT_SCROLLVALUE,DEFAULT_SCROLLVALUE,FORM_VISIBLE, COMPOSEABLE ), 268*b1cdbd2cSJim Jagielski DEF_INFO_3( LINEINCREMENT, LINEINCREMENT, LINEINCREMENT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 269*b1cdbd2cSJim Jagielski DEF_INFO_3( BLOCKINCREMENT, BLOCKINCREMENT, BLOCKINCREMENT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 270*b1cdbd2cSJim Jagielski 271*b1cdbd2cSJim Jagielski DEF_INFO_2( SPINVALUE, VALUE, SPINVALUE, DIALOG_VISIBLE, COMPOSEABLE ), 272*b1cdbd2cSJim Jagielski DEF_INFO_3( SPINVALUE_MIN, VALUEMIN, SPINVALUE_MIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 273*b1cdbd2cSJim Jagielski DEF_INFO_3( SPINVALUE_MAX, VALUEMAX, SPINVALUE_MAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 274*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_SPINVALUE,DEFAULTVALUE, DEFAULT_SPINVALUE, FORM_VISIBLE, COMPOSEABLE ), 275*b1cdbd2cSJim Jagielski DEF_INFO_3( SPININCREMENT, VALUESTEP, SPININCREMENT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 276*b1cdbd2cSJim Jagielski 277*b1cdbd2cSJim Jagielski DEF_INFO_3( SPIN, SPIN, SPIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 278*b1cdbd2cSJim Jagielski DEF_INFO_3( REPEAT, REPEAT, REPEAT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 279*b1cdbd2cSJim Jagielski DEF_INFO_3( REPEAT_DELAY, REPEAT_DELAY, REPEAT_DELAY, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 280*b1cdbd2cSJim Jagielski DEF_INFO_3( VISIBLESIZE, VISIBLESIZE, VISIBLESIZE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 281*b1cdbd2cSJim Jagielski DEF_INFO_4( ORIENTATION, ORIENTATION, ORIENTATION, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 282*b1cdbd2cSJim Jagielski DEF_INFO_3( FOCUSONCLICK, FOCUSONCLICK, FOCUSONCLICK, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 283*b1cdbd2cSJim Jagielski DEF_INFO_3( TOGGLE, TOGGLE, TOGGLE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 284*b1cdbd2cSJim Jagielski DEF_INFO_3( DEFAULT_STATE, DEFAULT_STATE, DEFAULT_STATE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 285*b1cdbd2cSJim Jagielski 286*b1cdbd2cSJim Jagielski DEF_INFO_3( TEXT_ANCHOR_TYPE, ANCHOR_TYPE, ANCHOR_TYPE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 287*b1cdbd2cSJim Jagielski DEF_INFO_3( SHEET_ANCHOR_TYPE, ANCHOR_TYPE, ANCHOR_TYPE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 288*b1cdbd2cSJim Jagielski DEF_INFO_3( POSITIONX, POSITIONX, POSITIONX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 289*b1cdbd2cSJim Jagielski DEF_INFO_3( POSITIONY, POSITIONY, POSITIONY, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 290*b1cdbd2cSJim Jagielski DEF_INFO_3( WIDTH, WIDTH, WIDTH, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 291*b1cdbd2cSJim Jagielski DEF_INFO_3( HEIGHT, HEIGHT, HEIGHT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 292*b1cdbd2cSJim Jagielski 293*b1cdbd2cSJim Jagielski DEF_INFO_1( LISTINDEX, LISTINDEX, LISTINDEX, FORM_VISIBLE ), 294*b1cdbd2cSJim Jagielski DEF_INFO_3( STRINGITEMLIST, STRINGITEMLIST, STRINGITEMLIST, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 295*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_TEXT, DEFAULTTEXT, DEFAULTVALUE, FORM_VISIBLE, COMPOSEABLE ), 296*b1cdbd2cSJim Jagielski DEF_INFO_3( FONT, FONT, FONT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 297*b1cdbd2cSJim Jagielski DEF_INFO_4( VISUALEFFECT, VISUALEFFECT, VISUALEFFECT, FORM_VISIBLE, DIALOG_VISIBLE, ENUM_ONE, COMPOSEABLE ), 298*b1cdbd2cSJim Jagielski DEF_INFO_4( ALIGN, ALIGN, ALIGN, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 299*b1cdbd2cSJim Jagielski DEF_INFO_3( VERTICAL_ALIGN, VERTICAL_ALIGN, VERTICAL_ALIGN, FORM_VISIBLE, ENUM, COMPOSEABLE ), 300*b1cdbd2cSJim Jagielski DEF_INFO_3( ROWHEIGHT, ROWHEIGHT, ROWHEIGHT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 301*b1cdbd2cSJim Jagielski DEF_INFO_3( BACKGROUNDCOLOR, BACKGROUNDCOLOR, BACKGROUNDCOLOR, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 302*b1cdbd2cSJim Jagielski DEF_INFO_3( SYMBOLCOLOR, SYMBOLCOLOR, SYMBOLCOLOR, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 303*b1cdbd2cSJim Jagielski DEF_INFO_3( FILLCOLOR, FILLCOLOR, FILLCOLOR, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 304*b1cdbd2cSJim Jagielski DEF_INFO_3( LINECOLOR, LINECOLOR, LINECOLOR, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 305*b1cdbd2cSJim Jagielski DEF_INFO_4( BORDER, BORDER, BORDER, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 306*b1cdbd2cSJim Jagielski DEF_INFO_3( BORDERCOLOR, BORDERCOLOR, BORDERCOLOR, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 307*b1cdbd2cSJim Jagielski DEF_INFO_3( ICONSIZE, ICONSIZE, ICONSIZE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 308*b1cdbd2cSJim Jagielski DEF_INFO_2( SHOW_POSITION, SHOW_POSITION, SHOW_POSITION, FORM_VISIBLE, COMPOSEABLE ), 309*b1cdbd2cSJim Jagielski DEF_INFO_2( SHOW_NAVIGATION, SHOW_NAVIGATION, SHOW_NAVIGATION, FORM_VISIBLE, COMPOSEABLE ), 310*b1cdbd2cSJim Jagielski DEF_INFO_2( SHOW_RECORDACTIONS,SHOW_RECORDACTIONS, SHOW_RECORDACTIONS,FORM_VISIBLE, COMPOSEABLE ), 311*b1cdbd2cSJim Jagielski DEF_INFO_2( SHOW_FILTERSORT, SHOW_FILTERSORT, SHOW_FILTERSORT, FORM_VISIBLE, COMPOSEABLE ), 312*b1cdbd2cSJim Jagielski 313*b1cdbd2cSJim Jagielski DEF_INFO_3( DROPDOWN, DROPDOWN, DROPDOWN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 314*b1cdbd2cSJim Jagielski DEF_INFO_3( LINECOUNT, LINECOUNT, LINECOUNT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 315*b1cdbd2cSJim Jagielski DEF_INFO_3( AUTOCOMPLETE, AUTOCOMPLETE, AUTOCOMPLETE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 316*b1cdbd2cSJim Jagielski DEF_INFO_3( MULTILINE, MULTILINE, MULTILINE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 317*b1cdbd2cSJim Jagielski DEF_INFO_3( WORDBREAK, WORDBREAK, WORDBREAK, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 318*b1cdbd2cSJim Jagielski DEF_INFO_3( TEXTTYPE, TEXTTYPE, TEXTTYPE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 319*b1cdbd2cSJim Jagielski DEF_INFO_3( LINEEND_FORMAT, LINEEND_FORMAT, LINEEND_FORMAT, FORM_VISIBLE, ENUM_ONE, COMPOSEABLE ), 320*b1cdbd2cSJim Jagielski DEF_INFO_3( MULTISELECTION, MULTISELECTION, MULTISELECTION, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 321*b1cdbd2cSJim Jagielski DEF_INFO_4( SHOW_SCROLLBARS, SHOW_SCROLLBARS, SHOW_SCROLLBARS, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 322*b1cdbd2cSJim Jagielski DEF_INFO_3( HSCROLL, HSCROLL, HSCROLL, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 323*b1cdbd2cSJim Jagielski DEF_INFO_3( VSCROLL, VSCROLL, VSCROLL, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 324*b1cdbd2cSJim Jagielski DEF_INFO_3( BUTTONTYPE, BUTTONTYPE, BUTTONTYPE, FORM_VISIBLE, ENUM, COMPOSEABLE ), 325*b1cdbd2cSJim Jagielski DEF_INFO_2( XFORMS_BUTTONTYPE, BUTTONTYPE, BUTTONTYPE, FORM_VISIBLE, ENUM ), 326*b1cdbd2cSJim Jagielski DEF_INFO_1( SUBMISSION_ID, SUBMISSION_ID, SUBMISSION_ID, FORM_VISIBLE ), 327*b1cdbd2cSJim Jagielski DEF_INFO_2( PUSHBUTTONTYPE, PUSHBUTTONTYPE, PUSHBUTTONTYPE, DIALOG_VISIBLE, ENUM ), 328*b1cdbd2cSJim Jagielski DEF_INFO_2( TARGET_URL, TARGET_URL, TARGET_URL, FORM_VISIBLE, COMPOSEABLE ), 329*b1cdbd2cSJim Jagielski DEF_INFO_1( TARGET_FRAME, TARGET_FRAME, TARGET_FRAME, FORM_VISIBLE ), 330*b1cdbd2cSJim Jagielski DEF_INFO_2( SUBMIT_ACTION, SUBMIT_ACTION, SUBMIT_ACTION, FORM_VISIBLE, COMPOSEABLE ), 331*b1cdbd2cSJim Jagielski DEF_INFO_2( SUBMIT_TARGET, SUBMIT_TARGET, SUBMIT_TARGET, FORM_VISIBLE, COMPOSEABLE ), 332*b1cdbd2cSJim Jagielski DEF_INFO_3( SUBMIT_ENCODING, SUBMIT_ENCODING, SUBMIT_ENCODING, FORM_VISIBLE, ENUM, COMPOSEABLE ), 333*b1cdbd2cSJim Jagielski DEF_INFO_3( SUBMIT_METHOD, SUBMIT_METHOD, SUBMIT_METHOD, FORM_VISIBLE, ENUM, COMPOSEABLE ), 334*b1cdbd2cSJim Jagielski DEF_INFO_3( STATE, STATE, STATE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 335*b1cdbd2cSJim Jagielski DEF_INFO_3( DEFAULTBUTTON, DEFAULT_BUTTON, DEFAULT_BUTTON, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 336*b1cdbd2cSJim Jagielski DEF_INFO_3( IMAGE_URL, IMAGE_URL, IMAGE_URL, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 337*b1cdbd2cSJim Jagielski DEF_INFO_4( IMAGEPOSITION, IMAGEPOSITION, IMAGEPOSITION, FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 338*b1cdbd2cSJim Jagielski DEF_INFO_3( SCALEIMAGE, SCALEIMAGE, SCALEIMAGE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 339*b1cdbd2cSJim Jagielski DEF_INFO_4( SCALE_MODE, SCALEIMAGE, SCALEIMAGE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE, ENUM ), 340*b1cdbd2cSJim Jagielski DEF_INFO_2( DEFAULT_SELECT_SEQ,DEFAULT_SELECT_SEQ, DEFAULT_SELECT_SEQ,FORM_VISIBLE, COMPOSEABLE ), 341*b1cdbd2cSJim Jagielski DEF_INFO_2( SELECTEDITEMS, SELECTEDITEMS, SELECTEDITEMS, DIALOG_VISIBLE, COMPOSEABLE ), 342*b1cdbd2cSJim Jagielski DEF_INFO_3( ECHO_CHAR, ECHO_CHAR, ECHO_CHAR, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 343*b1cdbd2cSJim Jagielski DEF_INFO_3( HIDEINACTIVESELECTION, HIDEINACTIVESELECTION, HIDEINACTIVESELECTION, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 344*b1cdbd2cSJim Jagielski DEF_INFO_3( TRISTATE, TRISTATE, TRISTATE, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 345*b1cdbd2cSJim Jagielski DEF_INFO_2( HASNAVIGATION, NAVIGATION, NAVIGATIONBAR, FORM_VISIBLE, COMPOSEABLE ), 346*b1cdbd2cSJim Jagielski DEF_INFO_2( RECORDMARKER, RECORDMARKER, RECORDMARKER, FORM_VISIBLE, COMPOSEABLE ), 347*b1cdbd2cSJim Jagielski DEF_INFO_3( TAG, TAG, TAG, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 348*b1cdbd2cSJim Jagielski DEF_INFO_3( HELPTEXT, HELPTEXT, HELPTEXT, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 349*b1cdbd2cSJim Jagielski DEF_INFO_3( HELPURL, HELPURL, HELPURL, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ), 350*b1cdbd2cSJim Jagielski DEF_INFO_3( SELECTION_TYPE, SELECTION_TYPE, SELECTION_TYPE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ), 351*b1cdbd2cSJim Jagielski DEF_INFO_2( ROOT_DISPLAYED, ROOT_DISPLAYED, ROOT_DISPLAYED, DIALOG_VISIBLE, COMPOSEABLE ), 352*b1cdbd2cSJim Jagielski DEF_INFO_2( SHOWS_HANDLES, SHOWS_HANDLES, SHOWS_HANDLES, DIALOG_VISIBLE, COMPOSEABLE ), 353*b1cdbd2cSJim Jagielski DEF_INFO_2( SHOWS_ROOT_HANDLES, SHOWS_ROOT_HANDLES, SHOWS_ROOT_HANDLES, DIALOG_VISIBLE, COMPOSEABLE ), 354*b1cdbd2cSJim Jagielski DEF_INFO_2( EDITABLE, EDITABLE, EDITABLE, DIALOG_VISIBLE, COMPOSEABLE ), 355*b1cdbd2cSJim Jagielski DEF_INFO_2( INVOKES_STOP_NOT_EDITING, INVOKES_STOP_NOT_EDITING, INVOKES_STOP_NOT_EDITING, DIALOG_VISIBLE, COMPOSEABLE ), 356*b1cdbd2cSJim Jagielski DEF_INFO_2( DECORATION, DECORATION, DECORATION, DIALOG_VISIBLE, COMPOSEABLE ), 357*b1cdbd2cSJim Jagielski DEF_INFO_2( NOLABEL, NOLABEL, NOLABEL, DIALOG_VISIBLE, COMPOSEABLE ) 358*b1cdbd2cSJim Jagielski }; 359*b1cdbd2cSJim Jagielski 360*b1cdbd2cSJim Jagielski s_pPropertyInfos = aPropertyInfos; 361*b1cdbd2cSJim Jagielski s_nCount = sizeof(aPropertyInfos) / sizeof(OPropertyInfoImpl); 362*b1cdbd2cSJim Jagielski 363*b1cdbd2cSJim Jagielski // sort 364*b1cdbd2cSJim Jagielski ::std::sort( s_pPropertyInfos, s_pPropertyInfos + s_nCount, PropertyInfoLessByName() ); 365*b1cdbd2cSJim Jagielski 366*b1cdbd2cSJim Jagielski #if OSL_DEBUG_LEVEL > 0 367*b1cdbd2cSJim Jagielski for ( const OPropertyInfoImpl* pCheck = s_pPropertyInfos; pCheck != s_pPropertyInfos + s_nCount - 1; ++pCheck ) 368*b1cdbd2cSJim Jagielski { 369*b1cdbd2cSJim Jagielski OSL_ENSURE( pCheck->sName != ( pCheck + 1 )->sName, "OPropertyInfoService::getPropertyInfo: duplicate entry in the table!" ); 370*b1cdbd2cSJim Jagielski } 371*b1cdbd2cSJim Jagielski #endif 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski return s_pPropertyInfos; 374*b1cdbd2cSJim Jagielski } 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyId(const String & _rName) const377*b1cdbd2cSJim Jagielski sal_Int32 OPropertyInfoService::getPropertyId(const String& _rName) const 378*b1cdbd2cSJim Jagielski { 379*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = getPropertyInfo(_rName); 380*b1cdbd2cSJim Jagielski return pInfo ? pInfo->nId : -1; 381*b1cdbd2cSJim Jagielski } 382*b1cdbd2cSJim Jagielski 383*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyName(sal_Int32 _nPropId)384*b1cdbd2cSJim Jagielski String OPropertyInfoService::getPropertyName( sal_Int32 _nPropId ) 385*b1cdbd2cSJim Jagielski { 386*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = getPropertyInfo(_nPropId); 387*b1cdbd2cSJim Jagielski return pInfo ? pInfo->sName : String(); 388*b1cdbd2cSJim Jagielski } 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyTranslation(sal_Int32 _nId) const391*b1cdbd2cSJim Jagielski String OPropertyInfoService::getPropertyTranslation(sal_Int32 _nId) const 392*b1cdbd2cSJim Jagielski { 393*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 394*b1cdbd2cSJim Jagielski return (pInfo) ? pInfo->sTranslation : String(); 395*b1cdbd2cSJim Jagielski } 396*b1cdbd2cSJim Jagielski 397*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyHelpId(sal_Int32 _nId) const398*b1cdbd2cSJim Jagielski rtl::OString OPropertyInfoService::getPropertyHelpId(sal_Int32 _nId) const 399*b1cdbd2cSJim Jagielski { 400*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 401*b1cdbd2cSJim Jagielski return (pInfo) ? pInfo->sHelpId : rtl::OString(); 402*b1cdbd2cSJim Jagielski } 403*b1cdbd2cSJim Jagielski 404*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyPos(sal_Int32 _nId) const405*b1cdbd2cSJim Jagielski sal_Int16 OPropertyInfoService::getPropertyPos(sal_Int32 _nId) const 406*b1cdbd2cSJim Jagielski { 407*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 408*b1cdbd2cSJim Jagielski return (pInfo) ? pInfo->nPos : 0xFFFF; 409*b1cdbd2cSJim Jagielski } 410*b1cdbd2cSJim Jagielski 411*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyUIFlags(sal_Int32 _nId) const412*b1cdbd2cSJim Jagielski sal_uInt32 OPropertyInfoService::getPropertyUIFlags(sal_Int32 _nId) const 413*b1cdbd2cSJim Jagielski { 414*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 415*b1cdbd2cSJim Jagielski return (pInfo) ? pInfo->nUIFlags : 0; 416*b1cdbd2cSJim Jagielski } 417*b1cdbd2cSJim Jagielski 418*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyEnumRepresentations(sal_Int32 _nId) const419*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString > OPropertyInfoService::getPropertyEnumRepresentations(sal_Int32 _nId) const 420*b1cdbd2cSJim Jagielski { 421*b1cdbd2cSJim Jagielski OSL_ENSURE( ( ( getPropertyUIFlags( _nId ) & PROP_FLAG_ENUM ) != 0 ) || ( _nId == PROPERTY_ID_TARGET_FRAME ), 422*b1cdbd2cSJim Jagielski "OPropertyInfoService::getPropertyEnumRepresentations: this is no enum property!" ); 423*b1cdbd2cSJim Jagielski 424*b1cdbd2cSJim Jagielski sal_Int16 nStringItemsResId = 0; 425*b1cdbd2cSJim Jagielski switch ( _nId ) 426*b1cdbd2cSJim Jagielski { 427*b1cdbd2cSJim Jagielski case PROPERTY_ID_IMAGEPOSITION: 428*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_IMAGE_POSITION; 429*b1cdbd2cSJim Jagielski break; 430*b1cdbd2cSJim Jagielski case PROPERTY_ID_BORDER: 431*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_BORDER_TYPE; 432*b1cdbd2cSJim Jagielski break; 433*b1cdbd2cSJim Jagielski case PROPERTY_ID_ICONSIZE: 434*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_ICONSIZE_TYPE; 435*b1cdbd2cSJim Jagielski break; 436*b1cdbd2cSJim Jagielski case PROPERTY_ID_COMMANDTYPE: 437*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_COMMAND_TYPE; 438*b1cdbd2cSJim Jagielski break; 439*b1cdbd2cSJim Jagielski case PROPERTY_ID_LISTSOURCETYPE: 440*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_LISTSOURCE_TYPE; 441*b1cdbd2cSJim Jagielski break; 442*b1cdbd2cSJim Jagielski case PROPERTY_ID_ALIGN: 443*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_ALIGNMENT; 444*b1cdbd2cSJim Jagielski break; 445*b1cdbd2cSJim Jagielski case PROPERTY_ID_VERTICAL_ALIGN: 446*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_VERTICAL_ALIGN; 447*b1cdbd2cSJim Jagielski break; 448*b1cdbd2cSJim Jagielski case PROPERTY_ID_BUTTONTYPE: 449*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_BUTTONTYPE; 450*b1cdbd2cSJim Jagielski break; 451*b1cdbd2cSJim Jagielski case PROPERTY_ID_PUSHBUTTONTYPE: 452*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_PUSHBUTTONTYPE; 453*b1cdbd2cSJim Jagielski break; 454*b1cdbd2cSJim Jagielski case PROPERTY_ID_SUBMIT_METHOD: 455*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SUBMIT_METHOD; 456*b1cdbd2cSJim Jagielski break; 457*b1cdbd2cSJim Jagielski case PROPERTY_ID_SUBMIT_ENCODING: 458*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SUBMIT_ENCODING; 459*b1cdbd2cSJim Jagielski break; 460*b1cdbd2cSJim Jagielski case PROPERTY_ID_DATEFORMAT: 461*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_DATEFORMAT_LIST; 462*b1cdbd2cSJim Jagielski break; 463*b1cdbd2cSJim Jagielski case PROPERTY_ID_TIMEFORMAT: 464*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_TIMEFORMAT_LIST; 465*b1cdbd2cSJim Jagielski break; 466*b1cdbd2cSJim Jagielski case PROPERTY_ID_DEFAULT_STATE: 467*b1cdbd2cSJim Jagielski case PROPERTY_ID_STATE: 468*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_CHECKED; 469*b1cdbd2cSJim Jagielski break; 470*b1cdbd2cSJim Jagielski case PROPERTY_ID_CYCLE: 471*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_CYCLE; 472*b1cdbd2cSJim Jagielski break; 473*b1cdbd2cSJim Jagielski case PROPERTY_ID_NAVIGATION: 474*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_NAVIGATION; 475*b1cdbd2cSJim Jagielski break; 476*b1cdbd2cSJim Jagielski case PROPERTY_ID_TARGET_FRAME: 477*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SUBMIT_TARGET; 478*b1cdbd2cSJim Jagielski break; 479*b1cdbd2cSJim Jagielski case PROPERTY_ID_ORIENTATION: 480*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_ORIENTATION; 481*b1cdbd2cSJim Jagielski break; 482*b1cdbd2cSJim Jagielski case PROPERTY_ID_CELL_EXCHANGE_TYPE: 483*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_CELL_EXCHANGE_TYPE; 484*b1cdbd2cSJim Jagielski break; 485*b1cdbd2cSJim Jagielski case PROPERTY_ID_SHOW_SCROLLBARS: 486*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SCROLLBARS; 487*b1cdbd2cSJim Jagielski break; 488*b1cdbd2cSJim Jagielski case PROPERTY_ID_VISUALEFFECT: 489*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_VISUALEFFECT; 490*b1cdbd2cSJim Jagielski break; 491*b1cdbd2cSJim Jagielski case PROPERTY_ID_TEXTTYPE: 492*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_TEXTTYPE; 493*b1cdbd2cSJim Jagielski break; 494*b1cdbd2cSJim Jagielski case PROPERTY_ID_LINEEND_FORMAT: 495*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_LINEEND_FORMAT; 496*b1cdbd2cSJim Jagielski break; 497*b1cdbd2cSJim Jagielski case PROPERTY_ID_XSD_WHITESPACES: 498*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_WHITESPACE_HANDLING; 499*b1cdbd2cSJim Jagielski break; 500*b1cdbd2cSJim Jagielski case PROPERTY_ID_SELECTION_TYPE: 501*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SELECTION_TYPE; 502*b1cdbd2cSJim Jagielski break; 503*b1cdbd2cSJim Jagielski case PROPERTY_ID_SCALE_MODE: 504*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SCALE_MODE; 505*b1cdbd2cSJim Jagielski break; 506*b1cdbd2cSJim Jagielski case PROPERTY_ID_WRITING_MODE: 507*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_WRITING_MODE; 508*b1cdbd2cSJim Jagielski break; 509*b1cdbd2cSJim Jagielski case PROPERTY_ID_WHEEL_BEHAVIOR: 510*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_WHEEL_BEHAVIOR; 511*b1cdbd2cSJim Jagielski break; 512*b1cdbd2cSJim Jagielski case PROPERTY_ID_TEXT_ANCHOR_TYPE: 513*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_TEXT_ANCHOR_TYPE; 514*b1cdbd2cSJim Jagielski break; 515*b1cdbd2cSJim Jagielski case PROPERTY_ID_SHEET_ANCHOR_TYPE: 516*b1cdbd2cSJim Jagielski nStringItemsResId = RID_RSC_ENUM_SHEET_ANCHOR_TYPE; 517*b1cdbd2cSJim Jagielski break; 518*b1cdbd2cSJim Jagielski default: 519*b1cdbd2cSJim Jagielski OSL_ENSURE( sal_False, "OPropertyInfoService::getPropertyEnumRepresentations: unknown enum property!" ); 520*b1cdbd2cSJim Jagielski break; 521*b1cdbd2cSJim Jagielski } 522*b1cdbd2cSJim Jagielski 523*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString > aReturn; 524*b1cdbd2cSJim Jagielski 525*b1cdbd2cSJim Jagielski if ( nStringItemsResId ) 526*b1cdbd2cSJim Jagielski { 527*b1cdbd2cSJim Jagielski PcrRes aResId( nStringItemsResId ); 528*b1cdbd2cSJim Jagielski ::svt::OLocalResourceAccess aEnumStrings( aResId, RSC_RESOURCE ); 529*b1cdbd2cSJim Jagielski 530*b1cdbd2cSJim Jagielski sal_Int16 i = 1; 531*b1cdbd2cSJim Jagielski PcrRes aLocalId( i ); 532*b1cdbd2cSJim Jagielski while ( aEnumStrings.IsAvailableRes( aLocalId.SetRT( RSC_STRING ) ) ) 533*b1cdbd2cSJim Jagielski { 534*b1cdbd2cSJim Jagielski aReturn.push_back( String( aLocalId ) ); 535*b1cdbd2cSJim Jagielski aLocalId = PcrRes( ++i ); 536*b1cdbd2cSJim Jagielski } 537*b1cdbd2cSJim Jagielski } 538*b1cdbd2cSJim Jagielski 539*b1cdbd2cSJim Jagielski return aReturn; 540*b1cdbd2cSJim Jagielski } 541*b1cdbd2cSJim Jagielski 542*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ isComposeable(const::rtl::OUString & _rPropertyName) const543*b1cdbd2cSJim Jagielski sal_Bool OPropertyInfoService::isComposeable( const ::rtl::OUString& _rPropertyName ) const 544*b1cdbd2cSJim Jagielski { 545*b1cdbd2cSJim Jagielski sal_Int32 nId = getPropertyId( _rPropertyName ); 546*b1cdbd2cSJim Jagielski if ( nId == -1 ) 547*b1cdbd2cSJim Jagielski return sal_False; 548*b1cdbd2cSJim Jagielski 549*b1cdbd2cSJim Jagielski sal_uInt32 nFlags = getPropertyUIFlags( nId ); 550*b1cdbd2cSJim Jagielski return ( nFlags & PROP_FLAG_COMPOSEABLE ) != 0; 551*b1cdbd2cSJim Jagielski } 552*b1cdbd2cSJim Jagielski 553*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyInfo(const String & _rName)554*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo(const String& _rName) 555*b1cdbd2cSJim Jagielski { 556*b1cdbd2cSJim Jagielski // intialisierung 557*b1cdbd2cSJim Jagielski if(!s_pPropertyInfos) 558*b1cdbd2cSJim Jagielski getPropertyInfo(); 559*b1cdbd2cSJim Jagielski OPropertyInfoImpl aSearch(_rName, 0L, String(), 0, "", 0); 560*b1cdbd2cSJim Jagielski 561*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* pInfo = ::std::lower_bound( 562*b1cdbd2cSJim Jagielski s_pPropertyInfos, s_pPropertyInfos + s_nCount, aSearch, PropertyInfoLessByName() ); 563*b1cdbd2cSJim Jagielski 564*b1cdbd2cSJim Jagielski if ( pInfo == s_pPropertyInfos + s_nCount ) 565*b1cdbd2cSJim Jagielski return NULL; 566*b1cdbd2cSJim Jagielski 567*b1cdbd2cSJim Jagielski if ( pInfo->sName != _rName ) 568*b1cdbd2cSJim Jagielski return NULL; 569*b1cdbd2cSJim Jagielski 570*b1cdbd2cSJim Jagielski return pInfo; 571*b1cdbd2cSJim Jagielski } 572*b1cdbd2cSJim Jagielski 573*b1cdbd2cSJim Jagielski 574*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ getPropertyInfo(sal_Int32 _nId)575*b1cdbd2cSJim Jagielski const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo(sal_Int32 _nId) 576*b1cdbd2cSJim Jagielski { 577*b1cdbd2cSJim Jagielski // intialisierung 578*b1cdbd2cSJim Jagielski if(!s_pPropertyInfos) 579*b1cdbd2cSJim Jagielski getPropertyInfo(); 580*b1cdbd2cSJim Jagielski 581*b1cdbd2cSJim Jagielski // TODO: a real structure which allows quick access by name as well as by id 582*b1cdbd2cSJim Jagielski for (sal_uInt16 i = 0; i < s_nCount; i++) 583*b1cdbd2cSJim Jagielski if (s_pPropertyInfos[i].nId == _nId) 584*b1cdbd2cSJim Jagielski return &s_pPropertyInfos[i]; 585*b1cdbd2cSJim Jagielski 586*b1cdbd2cSJim Jagielski return NULL; 587*b1cdbd2cSJim Jagielski } 588*b1cdbd2cSJim Jagielski 589*b1cdbd2cSJim Jagielski //==================================================================== 590*b1cdbd2cSJim Jagielski //= DefaultEnumRepresentation 591*b1cdbd2cSJim Jagielski //==================================================================== DBG_NAME(DefaultEnumRepresentation)592*b1cdbd2cSJim Jagielski DBG_NAME( DefaultEnumRepresentation ) 593*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- 594*b1cdbd2cSJim Jagielski DefaultEnumRepresentation::DefaultEnumRepresentation( const IPropertyInfoService& _rInfo, const Type& _rType, sal_Int32 _nPropertyId ) 595*b1cdbd2cSJim Jagielski :m_refCount( 0 ) 596*b1cdbd2cSJim Jagielski ,m_rMetaData( _rInfo ) 597*b1cdbd2cSJim Jagielski ,m_aType( _rType ) 598*b1cdbd2cSJim Jagielski ,m_nPropertyId( _nPropertyId ) 599*b1cdbd2cSJim Jagielski { 600*b1cdbd2cSJim Jagielski DBG_CTOR( DefaultEnumRepresentation, NULL ); 601*b1cdbd2cSJim Jagielski } 602*b1cdbd2cSJim Jagielski 603*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- ~DefaultEnumRepresentation()604*b1cdbd2cSJim Jagielski DefaultEnumRepresentation::~DefaultEnumRepresentation() 605*b1cdbd2cSJim Jagielski { 606*b1cdbd2cSJim Jagielski DBG_DTOR( DefaultEnumRepresentation, NULL ); 607*b1cdbd2cSJim Jagielski } 608*b1cdbd2cSJim Jagielski 609*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getDescriptions() const610*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString > SAL_CALL DefaultEnumRepresentation::getDescriptions() const 611*b1cdbd2cSJim Jagielski { 612*b1cdbd2cSJim Jagielski return m_rMetaData.getPropertyEnumRepresentations( m_nPropertyId ); 613*b1cdbd2cSJim Jagielski } 614*b1cdbd2cSJim Jagielski 615*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getValueFromDescription(const::rtl::OUString & _rDescription,Any & _out_rValue) const616*b1cdbd2cSJim Jagielski void SAL_CALL DefaultEnumRepresentation::getValueFromDescription( const ::rtl::OUString& _rDescription, Any& _out_rValue ) const 617*b1cdbd2cSJim Jagielski { 618*b1cdbd2cSJim Jagielski sal_uInt32 nPropertyUIFlags = m_rMetaData.getPropertyUIFlags( m_nPropertyId ); 619*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString > aEnumStrings = m_rMetaData.getPropertyEnumRepresentations( m_nPropertyId ); 620*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString >::const_iterator pos = ::std::find( aEnumStrings.begin(), aEnumStrings.end(), _rDescription ); 621*b1cdbd2cSJim Jagielski if ( pos != aEnumStrings.end() ) 622*b1cdbd2cSJim Jagielski { 623*b1cdbd2cSJim Jagielski sal_Int32 nPos = pos - aEnumStrings.begin(); 624*b1cdbd2cSJim Jagielski if ( ( nPropertyUIFlags & PROP_FLAG_ENUM_ONE ) == PROP_FLAG_ENUM_ONE ) 625*b1cdbd2cSJim Jagielski // enum value starting with 1 626*b1cdbd2cSJim Jagielski ++nPos; 627*b1cdbd2cSJim Jagielski 628*b1cdbd2cSJim Jagielski switch ( m_aType.getTypeClass() ) 629*b1cdbd2cSJim Jagielski { 630*b1cdbd2cSJim Jagielski case TypeClass_ENUM: 631*b1cdbd2cSJim Jagielski _out_rValue = ::cppu::int2enum( nPos, m_aType ); 632*b1cdbd2cSJim Jagielski break; 633*b1cdbd2cSJim Jagielski 634*b1cdbd2cSJim Jagielski case TypeClass_SHORT: 635*b1cdbd2cSJim Jagielski _out_rValue <<= (sal_Int16)nPos; 636*b1cdbd2cSJim Jagielski break; 637*b1cdbd2cSJim Jagielski 638*b1cdbd2cSJim Jagielski case TypeClass_UNSIGNED_SHORT: 639*b1cdbd2cSJim Jagielski _out_rValue <<= (sal_uInt16)nPos; 640*b1cdbd2cSJim Jagielski break; 641*b1cdbd2cSJim Jagielski 642*b1cdbd2cSJim Jagielski case TypeClass_UNSIGNED_LONG: 643*b1cdbd2cSJim Jagielski _out_rValue <<= (sal_uInt32)nPos; 644*b1cdbd2cSJim Jagielski break; 645*b1cdbd2cSJim Jagielski 646*b1cdbd2cSJim Jagielski default: 647*b1cdbd2cSJim Jagielski _out_rValue <<= (sal_Int32)nPos; 648*b1cdbd2cSJim Jagielski break; 649*b1cdbd2cSJim Jagielski } 650*b1cdbd2cSJim Jagielski } 651*b1cdbd2cSJim Jagielski else 652*b1cdbd2cSJim Jagielski { 653*b1cdbd2cSJim Jagielski DBG_ERROR( "DefaultEnumRepresentation::getValueFromDescription: could not translate the enum string!" ); 654*b1cdbd2cSJim Jagielski _out_rValue.clear(); 655*b1cdbd2cSJim Jagielski } 656*b1cdbd2cSJim Jagielski } 657*b1cdbd2cSJim Jagielski 658*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getDescriptionForValue(const Any & _rEnumValue) const659*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL DefaultEnumRepresentation::getDescriptionForValue( const Any& _rEnumValue ) const 660*b1cdbd2cSJim Jagielski { 661*b1cdbd2cSJim Jagielski ::rtl::OUString sReturn; 662*b1cdbd2cSJim Jagielski sal_Int32 nIntValue = -1; 663*b1cdbd2cSJim Jagielski OSL_VERIFY( ::cppu::enum2int( nIntValue, _rEnumValue ) ); 664*b1cdbd2cSJim Jagielski 665*b1cdbd2cSJim Jagielski sal_uInt32 nUIFlags = m_rMetaData.getPropertyUIFlags( m_nPropertyId ); 666*b1cdbd2cSJim Jagielski if ( ( nUIFlags & PROP_FLAG_ENUM_ONE ) == PROP_FLAG_ENUM_ONE ) 667*b1cdbd2cSJim Jagielski // enum value starting with 1 668*b1cdbd2cSJim Jagielski --nIntValue; 669*b1cdbd2cSJim Jagielski 670*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString > aEnumStrings = m_rMetaData.getPropertyEnumRepresentations( m_nPropertyId ); 671*b1cdbd2cSJim Jagielski if ( ( nIntValue >= 0 ) && ( nIntValue < (sal_Int32)aEnumStrings.size() ) ) 672*b1cdbd2cSJim Jagielski { 673*b1cdbd2cSJim Jagielski sReturn = aEnumStrings[ nIntValue ]; 674*b1cdbd2cSJim Jagielski } 675*b1cdbd2cSJim Jagielski else 676*b1cdbd2cSJim Jagielski { 677*b1cdbd2cSJim Jagielski DBG_ERROR( "DefaultEnumRepresentation::getDescriptionForValue: could not translate an enum value" ); 678*b1cdbd2cSJim Jagielski } 679*b1cdbd2cSJim Jagielski return sReturn; 680*b1cdbd2cSJim Jagielski } 681*b1cdbd2cSJim Jagielski 682*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- acquire()683*b1cdbd2cSJim Jagielski oslInterlockedCount SAL_CALL DefaultEnumRepresentation::acquire() 684*b1cdbd2cSJim Jagielski { 685*b1cdbd2cSJim Jagielski return osl_incrementInterlockedCount( &m_refCount ); 686*b1cdbd2cSJim Jagielski } 687*b1cdbd2cSJim Jagielski 688*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- release()689*b1cdbd2cSJim Jagielski oslInterlockedCount SAL_CALL DefaultEnumRepresentation::release() 690*b1cdbd2cSJim Jagielski { 691*b1cdbd2cSJim Jagielski if ( 0 == osl_decrementInterlockedCount( &m_refCount ) ) 692*b1cdbd2cSJim Jagielski { 693*b1cdbd2cSJim Jagielski delete this; 694*b1cdbd2cSJim Jagielski return 0; 695*b1cdbd2cSJim Jagielski } 696*b1cdbd2cSJim Jagielski return m_refCount; 697*b1cdbd2cSJim Jagielski } 698*b1cdbd2cSJim Jagielski 699*b1cdbd2cSJim Jagielski //............................................................................ 700*b1cdbd2cSJim Jagielski } // namespace pcr 701*b1cdbd2cSJim Jagielski //............................................................................ 702*b1cdbd2cSJim Jagielski 703