1*9e0e4191SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*9e0e4191SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*9e0e4191SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*9e0e4191SAndrew Rist * distributed with this work for additional information 6*9e0e4191SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*9e0e4191SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*9e0e4191SAndrew Rist * "License"); you may not use this file except in compliance 9*9e0e4191SAndrew Rist * with the License. You may obtain a copy of the License at 10*9e0e4191SAndrew Rist * 11*9e0e4191SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*9e0e4191SAndrew Rist * 13*9e0e4191SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*9e0e4191SAndrew Rist * software distributed under the License is distributed on an 15*9e0e4191SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*9e0e4191SAndrew Rist * KIND, either express or implied. See the License for the 17*9e0e4191SAndrew Rist * specific language governing permissions and limitations 18*9e0e4191SAndrew Rist * under the License. 19*9e0e4191SAndrew Rist * 20*9e0e4191SAndrew Rist *************************************************************/ 21*9e0e4191SAndrew Rist 22*9e0e4191SAndrew Rist 23cdf0e10cSrcweir #include "precompiled_reportdesign.hxx" 24cdf0e10cSrcweir #include "metadata.hxx" 25cdf0e10cSrcweir #include <svtools/localresaccess.hxx> 26cdf0e10cSrcweir #include "com/sun/star/inspection/XPropertyHandler.hpp" 27cdf0e10cSrcweir #include <tools/debug.hxx> 28cdf0e10cSrcweir #include <comphelper/extract.hxx> 29cdf0e10cSrcweir #ifndef RTPUI_REPORTDESIGN_HELPID_HRC 30cdf0e10cSrcweir #include "helpids.hrc" 31cdf0e10cSrcweir #endif 32cdf0e10cSrcweir #ifndef _RPTUI_DLGRESID_HRC 33cdf0e10cSrcweir #include "RptResId.hrc" 34cdf0e10cSrcweir #endif 35cdf0e10cSrcweir #ifndef REPORTDESIGN_SHARED_UISTRINGS_HRC 36cdf0e10cSrcweir #include "uistrings.hrc" 37cdf0e10cSrcweir #endif 38cdf0e10cSrcweir 39cdf0e10cSrcweir #include <functional> 40cdf0e10cSrcweir #include <algorithm> 41cdf0e10cSrcweir 42cdf0e10cSrcweir //............................................................................ 43cdf0e10cSrcweir namespace rptui 44cdf0e10cSrcweir { 45cdf0e10cSrcweir //............................................................................ 46cdf0e10cSrcweir 47cdf0e10cSrcweir using namespace ::com::sun::star::uno; 48cdf0e10cSrcweir using namespace ::com::sun::star; 49cdf0e10cSrcweir 50cdf0e10cSrcweir //======================================================================== 51cdf0e10cSrcweir //= OPropertyInfoImpl 52cdf0e10cSrcweir //======================================================================== 53cdf0e10cSrcweir struct OPropertyInfoImpl 54cdf0e10cSrcweir { 55cdf0e10cSrcweir String sName; 56cdf0e10cSrcweir String sTranslation; 57cdf0e10cSrcweir rtl::OString sHelpId; 58cdf0e10cSrcweir sal_Int32 nId; 59cdf0e10cSrcweir sal_uInt16 nPos; 60cdf0e10cSrcweir sal_uInt32 nUIFlags; 61cdf0e10cSrcweir 62cdf0e10cSrcweir OPropertyInfoImpl( 63cdf0e10cSrcweir const ::rtl::OUString& rName, 64cdf0e10cSrcweir sal_Int32 _nId, 65cdf0e10cSrcweir const String& aTranslation, 66cdf0e10cSrcweir sal_uInt16 nPosId, 67cdf0e10cSrcweir const rtl::OString& _sHelpId, 68cdf0e10cSrcweir sal_uInt32 _nUIFlags); 69cdf0e10cSrcweir }; 70cdf0e10cSrcweir 71cdf0e10cSrcweir //------------------------------------------------------------------------ OPropertyInfoImpl(const::rtl::OUString & _rName,sal_Int32 _nId,const String & aString,sal_uInt16 nP,const rtl::OString & sHid,sal_uInt32 _nUIFlags)72cdf0e10cSrcweir OPropertyInfoImpl::OPropertyInfoImpl(const ::rtl::OUString& _rName, sal_Int32 _nId, 73cdf0e10cSrcweir const String& aString, sal_uInt16 nP, const rtl::OString& sHid, sal_uInt32 _nUIFlags) 74cdf0e10cSrcweir :sName(_rName) 75cdf0e10cSrcweir ,sTranslation(aString) 76cdf0e10cSrcweir ,sHelpId(sHid) 77cdf0e10cSrcweir ,nId(_nId) 78cdf0e10cSrcweir ,nPos(nP) 79cdf0e10cSrcweir ,nUIFlags(_nUIFlags) 80cdf0e10cSrcweir { 81cdf0e10cSrcweir } 82cdf0e10cSrcweir 83cdf0e10cSrcweir //------------------------------------------------------------------------ 84cdf0e10cSrcweir // Vergleichen von PropertyInfo 85cdf0e10cSrcweir struct PropertyInfoLessByName : public ::std::binary_function< OPropertyInfoImpl, OPropertyInfoImpl, bool > 86cdf0e10cSrcweir { operator ()rptui::PropertyInfoLessByName87cdf0e10cSrcweir bool operator()( const OPropertyInfoImpl& _lhs, const OPropertyInfoImpl& _rhs ) 88cdf0e10cSrcweir { 89cdf0e10cSrcweir return _lhs.sName < _rhs.sName; 90cdf0e10cSrcweir } 91cdf0e10cSrcweir }; 92cdf0e10cSrcweir 93cdf0e10cSrcweir //======================================================================== 94cdf0e10cSrcweir //= OPropertyInfoService 95cdf0e10cSrcweir //======================================================================== 96cdf0e10cSrcweir #define DEF_INFO( ident, uinameres, helpid, flags ) \ 97cdf0e10cSrcweir OPropertyInfoImpl( PROPERTY_##ident, PROPERTY_ID_##ident, \ 98cdf0e10cSrcweir String( ModuleRes( RID_STR_##uinameres ) ), nPos++, HID_RPT_PROP_##helpid, flags ) 99cdf0e10cSrcweir 100cdf0e10cSrcweir #define DEF_INFO_1( ident, uinameres, helpid, flag1 ) \ 101cdf0e10cSrcweir DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 ) 102cdf0e10cSrcweir 103cdf0e10cSrcweir #define DEF_INFO_2( ident, uinameres, helpid, flag1, flag2 ) \ 104cdf0e10cSrcweir DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 ) 105cdf0e10cSrcweir 106cdf0e10cSrcweir #define DEF_INFO_3( ident, uinameres, helpid, flag1, flag2, flag3 ) \ 107cdf0e10cSrcweir DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 ) 108cdf0e10cSrcweir 109cdf0e10cSrcweir #define DEF_INFO_4( ident, uinameres, helpid, flag1, flag2, flag3, flag4 ) \ 110cdf0e10cSrcweir DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 | PROP_FLAG_##flag4 ) 111cdf0e10cSrcweir 112cdf0e10cSrcweir #define DEF_INFO_5( ident, uinameres, helpid, flag1, flag2, flag3, flag4, flag5 ) \ 113cdf0e10cSrcweir DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 | PROP_FLAG_##flag4 | PROP_FLAG_##flag5 ) 114cdf0e10cSrcweir 115cdf0e10cSrcweir sal_uInt16 OPropertyInfoService::s_nCount = 0; 116cdf0e10cSrcweir OPropertyInfoImpl* OPropertyInfoService::s_pPropertyInfos = NULL; 117cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyInfo()118cdf0e10cSrcweir const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo() 119cdf0e10cSrcweir { 120cdf0e10cSrcweir if ( s_pPropertyInfos ) 121cdf0e10cSrcweir return s_pPropertyInfos; 122cdf0e10cSrcweir 123cdf0e10cSrcweir OModuleClient aResourceAccess; 124cdf0e10cSrcweir // this ensures that we have our resource file loaded 125cdf0e10cSrcweir 126cdf0e10cSrcweir sal_uInt16 nPos = 1; 127cdf0e10cSrcweir static OPropertyInfoImpl aPropertyInfos[] = 128cdf0e10cSrcweir { 129cdf0e10cSrcweir /* 130cdf0e10cSrcweir DEF_INFO_?( propname and id, resoure id, help id, flags ), 131cdf0e10cSrcweir */ 132cdf0e10cSrcweir DEF_INFO_1( FORCENEWPAGE, FORCENEWPAGE, FORCENEWPAGE, COMPOSEABLE ) 133cdf0e10cSrcweir ,DEF_INFO_1( NEWROWORCOL, NEWROWORCOL, NEWROWORCOL, COMPOSEABLE ) 134cdf0e10cSrcweir ,DEF_INFO_1( KEEPTOGETHER, KEEPTOGETHER, KEEPTOGETHER, COMPOSEABLE ) 135cdf0e10cSrcweir ,DEF_INFO_1( CANGROW, CANGROW, CANGROW, COMPOSEABLE ) 136cdf0e10cSrcweir ,DEF_INFO_1( CANSHRINK, CANSHRINK, CANSHRINK, COMPOSEABLE ) 137cdf0e10cSrcweir ,DEF_INFO_1( REPEATSECTION, REPEATSECTION, REPEATSECTION, COMPOSEABLE ) 138cdf0e10cSrcweir ,DEF_INFO_1( PRINTREPEATEDVALUES, PRINTREPEATEDVALUES, PRINTREPEATEDVALUES, COMPOSEABLE ) 139cdf0e10cSrcweir ,DEF_INFO_1( CONDITIONALPRINTEXPRESSION, CONDITIONALPRINTEXPRESSION, CONDITIONALPRINTEXPRESSION, COMPOSEABLE ) 140cdf0e10cSrcweir ,DEF_INFO_1( STARTNEWCOLUMN, STARTNEWCOLUMN, STARTNEWCOLUMN, COMPOSEABLE ) 141cdf0e10cSrcweir ,DEF_INFO_1( RESETPAGENUMBER, RESETPAGENUMBER, RESETPAGENUMBER, COMPOSEABLE ) 142cdf0e10cSrcweir ,DEF_INFO_1( PRINTWHENGROUPCHANGE, PRINTWHENGROUPCHANGE, PRINTWHENGROUPCHANGE, COMPOSEABLE ) 143cdf0e10cSrcweir ,DEF_INFO_1( VISIBLE, VISIBLE, VISIBLE, COMPOSEABLE ) 144cdf0e10cSrcweir ,DEF_INFO_1( GROUPKEEPTOGETHER, GROUPKEEPTOGETHER, GROUPKEEPTOGETHER, COMPOSEABLE ) 145cdf0e10cSrcweir ,DEF_INFO_1( PAGEHEADEROPTION, PAGEHEADEROPTION, PAGEHEADEROPTION, COMPOSEABLE ) 146cdf0e10cSrcweir ,DEF_INFO_1( PAGEFOOTEROPTION, PAGEFOOTEROPTION, PAGEFOOTEROPTION, COMPOSEABLE ) 147cdf0e10cSrcweir ,DEF_INFO_1( POSITIONX, POSITIONX, RPT_POSITIONX, COMPOSEABLE ) 148cdf0e10cSrcweir ,DEF_INFO_1( POSITIONY, POSITIONY, RPT_POSITIONY, COMPOSEABLE ) 149cdf0e10cSrcweir ,DEF_INFO_1( WIDTH, WIDTH, RPT_WIDTH, COMPOSEABLE ) 150cdf0e10cSrcweir ,DEF_INFO_1( HEIGHT, HEIGHT, RPT_HEIGHT, COMPOSEABLE ) 151cdf0e10cSrcweir ,DEF_INFO_1( FONT, FONT, RPT_FONT, COMPOSEABLE ) 152cdf0e10cSrcweir ,DEF_INFO_1( PREEVALUATED, PREEVALUATED, PREEVALUATED, COMPOSEABLE ) 153cdf0e10cSrcweir ,DEF_INFO_1( DEEPTRAVERSING, DEEPTRAVERSING, DEEPTRAVERSING, COMPOSEABLE ) 154cdf0e10cSrcweir ,DEF_INFO_1( FORMULA, FORMULA, FORMULA, COMPOSEABLE ) 155cdf0e10cSrcweir ,DEF_INFO_1( INITIALFORMULA, INITIALFORMULA, INITIALFORMULA, COMPOSEABLE ) 156cdf0e10cSrcweir ,DEF_INFO_2( TYPE, TYPE, TYPE, COMPOSEABLE,DATA_PROPERTY ) 157cdf0e10cSrcweir ,DEF_INFO_2( DATAFIELD, DATAFIELD, DATAFIELD, COMPOSEABLE,DATA_PROPERTY ) 158cdf0e10cSrcweir ,DEF_INFO_2( FORMULALIST, FORMULALIST, FORMULALIST, COMPOSEABLE,DATA_PROPERTY ) 159cdf0e10cSrcweir ,DEF_INFO_2( SCOPE, SCOPE, SCOPE, COMPOSEABLE,DATA_PROPERTY ) 160cdf0e10cSrcweir ,DEF_INFO_1( PRESERVEIRI, PRESERVEIRI, PRESERVEIRI, COMPOSEABLE ) 161cdf0e10cSrcweir ,DEF_INFO_1( BACKCOLOR, BACKCOLOR, BACKCOLOR, COMPOSEABLE ) 162cdf0e10cSrcweir ,DEF_INFO_1( CONTROLBACKGROUND, BACKCOLOR, BACKCOLOR, COMPOSEABLE ) 163cdf0e10cSrcweir ,DEF_INFO_1( BACKTRANSPARENT, BACKTRANSPARENT, BACKTRANSPARENT, COMPOSEABLE ) 164cdf0e10cSrcweir ,DEF_INFO_1( CONTROLBACKGROUNDTRANSPARENT, CONTROLBACKGROUNDTRANSPARENT 165cdf0e10cSrcweir ,CONTROLBACKGROUNDTRANSPARENT, COMPOSEABLE ) 166cdf0e10cSrcweir ,DEF_INFO_1( CHARTTYPE, CHARTTYPE, CHARTTYPE, COMPOSEABLE ) 167cdf0e10cSrcweir ,DEF_INFO_1( PREVIEW_COUNT, PREVIEW_COUNT, PREVIEW_COUNT, COMPOSEABLE ) 168cdf0e10cSrcweir ,DEF_INFO_2( MASTERFIELDS, MASTERFIELDS, MASTERFIELDS, COMPOSEABLE,DATA_PROPERTY ) 169cdf0e10cSrcweir ,DEF_INFO_2( DETAILFIELDS, DETAILFIELDS, DETAILFIELDS, COMPOSEABLE,DATA_PROPERTY) 170cdf0e10cSrcweir ,DEF_INFO_1( AREA, AREA, AREA, COMPOSEABLE ) 171cdf0e10cSrcweir ,DEF_INFO_2( MIMETYPE, MIMETYPE, MIMETYPE, COMPOSEABLE,DATA_PROPERTY ) 172cdf0e10cSrcweir ,DEF_INFO_1( PARAADJUST, PARAADJUST, PARAADJUST, COMPOSEABLE ) 173cdf0e10cSrcweir ,DEF_INFO_1( VERTICALALIGN, VERTICALALIGN, VERTICALALIGN, COMPOSEABLE ) 174cdf0e10cSrcweir }; 175cdf0e10cSrcweir 176cdf0e10cSrcweir s_pPropertyInfos = aPropertyInfos; 177cdf0e10cSrcweir s_nCount = sizeof(aPropertyInfos) / sizeof(OPropertyInfoImpl); 178cdf0e10cSrcweir 179cdf0e10cSrcweir ::std::sort( aPropertyInfos, aPropertyInfos + s_nCount, PropertyInfoLessByName() ); 180cdf0e10cSrcweir 181cdf0e10cSrcweir return s_pPropertyInfos; 182cdf0e10cSrcweir } 183cdf0e10cSrcweir 184cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyId(const String & _rName) const185cdf0e10cSrcweir sal_Int32 OPropertyInfoService::getPropertyId(const String& _rName) const 186cdf0e10cSrcweir { 187cdf0e10cSrcweir const OPropertyInfoImpl* pInfo = getPropertyInfo(_rName); 188cdf0e10cSrcweir return pInfo ? pInfo->nId : -1; 189cdf0e10cSrcweir } 190cdf0e10cSrcweir 191cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyTranslation(sal_Int32 _nId) const192cdf0e10cSrcweir String OPropertyInfoService::getPropertyTranslation(sal_Int32 _nId) const 193cdf0e10cSrcweir { 194cdf0e10cSrcweir const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 195cdf0e10cSrcweir return (pInfo) ? pInfo->sTranslation : String(); 196cdf0e10cSrcweir } 197cdf0e10cSrcweir 198cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyHelpId(sal_Int32 _nId) const199cdf0e10cSrcweir rtl::OString OPropertyInfoService::getPropertyHelpId(sal_Int32 _nId) const 200cdf0e10cSrcweir { 201cdf0e10cSrcweir const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 202cdf0e10cSrcweir return (pInfo) ? pInfo->sHelpId : rtl::OString(); 203cdf0e10cSrcweir } 204cdf0e10cSrcweir 205cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyUIFlags(sal_Int32 _nId) const206cdf0e10cSrcweir sal_uInt32 OPropertyInfoService::getPropertyUIFlags(sal_Int32 _nId) const 207cdf0e10cSrcweir { 208cdf0e10cSrcweir const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId); 209cdf0e10cSrcweir return (pInfo) ? pInfo->nUIFlags : 0; 210cdf0e10cSrcweir } 211cdf0e10cSrcweir 212cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyInfo(const String & _rName)213cdf0e10cSrcweir const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo(const String& _rName) 214cdf0e10cSrcweir { 215cdf0e10cSrcweir // intialisierung 216cdf0e10cSrcweir if(!s_pPropertyInfos) 217cdf0e10cSrcweir getPropertyInfo(); 218cdf0e10cSrcweir OPropertyInfoImpl aSearch(_rName, 0L, String(), 0, "", 0); 219cdf0e10cSrcweir 220cdf0e10cSrcweir const OPropertyInfoImpl* pPropInfo = ::std::lower_bound( 221cdf0e10cSrcweir s_pPropertyInfos, s_pPropertyInfos + s_nCount, aSearch, PropertyInfoLessByName() ); 222cdf0e10cSrcweir 223cdf0e10cSrcweir if ( ( pPropInfo < s_pPropertyInfos + s_nCount ) && pPropInfo->sName == _rName ) 224cdf0e10cSrcweir return pPropInfo; 225cdf0e10cSrcweir 226cdf0e10cSrcweir return NULL; 227cdf0e10cSrcweir } 228cdf0e10cSrcweir 229cdf0e10cSrcweir 230cdf0e10cSrcweir //------------------------------------------------------------------------ getPropertyInfo(sal_Int32 _nId)231cdf0e10cSrcweir const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo(sal_Int32 _nId) 232cdf0e10cSrcweir { 233cdf0e10cSrcweir // intialisierung 234cdf0e10cSrcweir if(!s_pPropertyInfos) 235cdf0e10cSrcweir getPropertyInfo(); 236cdf0e10cSrcweir 237cdf0e10cSrcweir // TODO: a real structure which allows quick access by name as well as by id 238cdf0e10cSrcweir for (sal_uInt16 i = 0; i < s_nCount; i++) 239cdf0e10cSrcweir if (s_pPropertyInfos[i].nId == _nId) 240cdf0e10cSrcweir return &s_pPropertyInfos[i]; 241cdf0e10cSrcweir 242cdf0e10cSrcweir return NULL; 243cdf0e10cSrcweir } 244cdf0e10cSrcweir 245cdf0e10cSrcweir //------------------------------------------------------------------------ isComposable(const::rtl::OUString & _rPropertyName,const::com::sun::star::uno::Reference<::com::sun::star::inspection::XPropertyHandler> & _rxFormComponentHandler)246cdf0e10cSrcweir bool OPropertyInfoService::isComposable( const ::rtl::OUString& _rPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyHandler >& _rxFormComponentHandler ) 247cdf0e10cSrcweir { 248cdf0e10cSrcweir sal_Int32 nId = getPropertyId( _rPropertyName ); 249cdf0e10cSrcweir if ( nId != -1 ) 250cdf0e10cSrcweir { 251cdf0e10cSrcweir sal_uInt32 nFlags = getPropertyUIFlags( nId ); 252cdf0e10cSrcweir return ( nFlags & PROP_FLAG_COMPOSEABLE ) != 0; 253cdf0e10cSrcweir } 254cdf0e10cSrcweir 255cdf0e10cSrcweir return _rxFormComponentHandler->isComposable( _rPropertyName ); 256cdf0e10cSrcweir } 257cdf0e10cSrcweir 258cdf0e10cSrcweir //------------------------------------------------------------------------ getExcludeProperties(::std::vector<beans::Property> & _rExcludeProperties,const::com::sun::star::uno::Reference<::com::sun::star::inspection::XPropertyHandler> & _xFormComponentHandler)259cdf0e10cSrcweir void OPropertyInfoService::getExcludeProperties(::std::vector< beans::Property >& _rExcludeProperties,const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyHandler >& _xFormComponentHandler) 260cdf0e10cSrcweir { 261cdf0e10cSrcweir uno::Sequence< beans::Property > aProps = _xFormComponentHandler->getSupportedProperties(); 262cdf0e10cSrcweir static const ::rtl::OUString pExcludeProperties[] = 263cdf0e10cSrcweir { 264cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Enabled")), 265cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Printable")), 266cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("WordBreak")), 267cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MultiLine")), 268cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Tag")), 269cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HelpText")), 270cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HelpURL")), 271cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MaxTextLen")), 272cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ReadOnly")), 273cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Tabstop")), 274cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TabIndex")), 275cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ValueMin")), 276cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ValueMax")), 277cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Spin")), 278cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SpinValue")), 279cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SpinValueMin")), 280cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SpinValueMax")), 281cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultSpinValue")), 282cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SpinIncrement")), 283cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Repeat")), 284cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RepeatDelay")), 285cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlLabel")), /// TODO: has to be checked 286cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LabelControl")), 287cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")), // comment this out if you want to have title feature for charts 288cdf0e10cSrcweir PROPERTY_MAXTEXTLEN, 289cdf0e10cSrcweir PROPERTY_EFFECTIVEDEFAULT, 290cdf0e10cSrcweir PROPERTY_EFFECTIVEMAX, 291cdf0e10cSrcweir PROPERTY_EFFECTIVEMIN, 292cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HideInactiveSelection")), 293cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SubmitAction")), 294cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("InputRequired")), 295cdf0e10cSrcweir ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VerticalAlign")), 296cdf0e10cSrcweir PROPERTY_ALIGN, 297cdf0e10cSrcweir PROPERTY_EMPTY_IS_NULL, 298cdf0e10cSrcweir PROPERTY_FILTERPROPOSAL 299cdf0e10cSrcweir ,PROPERTY_POSITIONX 300cdf0e10cSrcweir ,PROPERTY_POSITIONY 301cdf0e10cSrcweir ,PROPERTY_WIDTH 302cdf0e10cSrcweir ,PROPERTY_HEIGHT 303cdf0e10cSrcweir ,PROPERTY_FONT 304cdf0e10cSrcweir ,PROPERTY_LABEL 305cdf0e10cSrcweir ,PROPERTY_LINECOLOR 306cdf0e10cSrcweir ,PROPERTY_BORDER 307cdf0e10cSrcweir ,PROPERTY_BORDERCOLOR 308cdf0e10cSrcweir ,PROPERTY_BACKTRANSPARENT 309cdf0e10cSrcweir ,PROPERTY_CONTROLBACKGROUND 310cdf0e10cSrcweir ,PROPERTY_BACKGROUNDCOLOR 311cdf0e10cSrcweir ,PROPERTY_CONTROLBACKGROUNDTRANSPARENT 312cdf0e10cSrcweir ,PROPERTY_FORMULALIST 313cdf0e10cSrcweir ,PROPERTY_SCOPE 314cdf0e10cSrcweir ,PROPERTY_TYPE 315cdf0e10cSrcweir ,PROPERTY_DATASOURCENAME 316cdf0e10cSrcweir ,PROPERTY_VERTICALALIGN 317cdf0e10cSrcweir }; 318cdf0e10cSrcweir 319cdf0e10cSrcweir beans::Property* pPropsIter = aProps.getArray(); 320cdf0e10cSrcweir beans::Property* pPropsEnd = pPropsIter + aProps.getLength(); 321cdf0e10cSrcweir for (; pPropsIter != pPropsEnd; ++pPropsIter) 322cdf0e10cSrcweir { 323cdf0e10cSrcweir size_t nPos = 0; 324cdf0e10cSrcweir for (; nPos < sizeof(pExcludeProperties)/sizeof(pExcludeProperties[0]) && pExcludeProperties[nPos] != pPropsIter->Name;++nPos ) 325cdf0e10cSrcweir ; 326cdf0e10cSrcweir if ( nPos == sizeof(pExcludeProperties)/sizeof(pExcludeProperties[0]) ) 327cdf0e10cSrcweir _rExcludeProperties.push_back(*pPropsIter); 328cdf0e10cSrcweir } 329cdf0e10cSrcweir } 330cdf0e10cSrcweir 331cdf0e10cSrcweir 332cdf0e10cSrcweir //............................................................................ 333cdf0e10cSrcweir } // namespace pcr 334cdf0e10cSrcweir //............................................................................ 335cdf0e10cSrcweir 336