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 #ifndef PROPERTYSTORAGE_HXX 25 *b1cdbd2cSJim Jagielski #define PROPERTYSTORAGE_HXX 26 *b1cdbd2cSJim Jagielski 27 *b1cdbd2cSJim Jagielski /** === begin UNO includes === **/ 28 *b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Any.hxx> 29 *b1cdbd2cSJim Jagielski /** === end UNO includes === **/ 30 *b1cdbd2cSJim Jagielski 31 *b1cdbd2cSJim Jagielski #include <tools/solar.h> 32 *b1cdbd2cSJim Jagielski 33 *b1cdbd2cSJim Jagielski #include <boost/shared_ptr.hpp> 34 *b1cdbd2cSJim Jagielski #include <map> 35 *b1cdbd2cSJim Jagielski 36 *b1cdbd2cSJim Jagielski class SfxItemSet; 37 *b1cdbd2cSJim Jagielski 38 *b1cdbd2cSJim Jagielski //........................................................................ 39 *b1cdbd2cSJim Jagielski namespace dbaui 40 *b1cdbd2cSJim Jagielski { 41 *b1cdbd2cSJim Jagielski //........................................................................ 42 *b1cdbd2cSJim Jagielski 43 *b1cdbd2cSJim Jagielski //==================================================================== 44 *b1cdbd2cSJim Jagielski //= PropertyStorage 45 *b1cdbd2cSJim Jagielski //==================================================================== 46 *b1cdbd2cSJim Jagielski class SAL_NO_VTABLE PropertyStorage 47 *b1cdbd2cSJim Jagielski { 48 *b1cdbd2cSJim Jagielski public: 49 *b1cdbd2cSJim Jagielski virtual void getPropertyValue( ::com::sun::star::uno::Any& _out_rValue ) const = 0; 50 *b1cdbd2cSJim Jagielski virtual void setPropertyValue( const ::com::sun::star::uno::Any& _rValue ) = 0; 51 *b1cdbd2cSJim Jagielski 52 *b1cdbd2cSJim Jagielski virtual ~PropertyStorage(); 53 *b1cdbd2cSJim Jagielski }; 54 *b1cdbd2cSJim Jagielski 55 *b1cdbd2cSJim Jagielski typedef ::boost::shared_ptr< PropertyStorage > PPropertyStorage; 56 *b1cdbd2cSJim Jagielski typedef ::std::map< sal_Int32, PPropertyStorage > PropertyValues; 57 *b1cdbd2cSJim Jagielski 58 *b1cdbd2cSJim Jagielski //==================================================================== 59 *b1cdbd2cSJim Jagielski //= SetItemPropertyStorage 60 *b1cdbd2cSJim Jagielski //==================================================================== 61 *b1cdbd2cSJim Jagielski typedef sal_uInt16 ItemId; 62 *b1cdbd2cSJim Jagielski 63 *b1cdbd2cSJim Jagielski /** a PropertyStorage implementation which stores the value in an item set 64 *b1cdbd2cSJim Jagielski */ 65 *b1cdbd2cSJim Jagielski class SetItemPropertyStorage : public PropertyStorage 66 *b1cdbd2cSJim Jagielski { 67 *b1cdbd2cSJim Jagielski public: SetItemPropertyStorage(SfxItemSet & _rItemSet,const ItemId _nItemID)68 *b1cdbd2cSJim Jagielski SetItemPropertyStorage( SfxItemSet& _rItemSet, const ItemId _nItemID ) 69 *b1cdbd2cSJim Jagielski :m_rItemSet( _rItemSet ) 70 *b1cdbd2cSJim Jagielski ,m_nItemID( _nItemID ) 71 *b1cdbd2cSJim Jagielski { 72 *b1cdbd2cSJim Jagielski } 73 *b1cdbd2cSJim Jagielski ~SetItemPropertyStorage()74 *b1cdbd2cSJim Jagielski virtual ~SetItemPropertyStorage() 75 *b1cdbd2cSJim Jagielski { 76 *b1cdbd2cSJim Jagielski } 77 *b1cdbd2cSJim Jagielski 78 *b1cdbd2cSJim Jagielski virtual void getPropertyValue( ::com::sun::star::uno::Any& _out_rValue ) const; 79 *b1cdbd2cSJim Jagielski virtual void setPropertyValue( const ::com::sun::star::uno::Any& _rValue ); 80 *b1cdbd2cSJim Jagielski 81 *b1cdbd2cSJim Jagielski private: 82 *b1cdbd2cSJim Jagielski SfxItemSet& m_rItemSet; 83 *b1cdbd2cSJim Jagielski const ItemId m_nItemID; 84 *b1cdbd2cSJim Jagielski }; 85 *b1cdbd2cSJim Jagielski 86 *b1cdbd2cSJim Jagielski //........................................................................ 87 *b1cdbd2cSJim Jagielski } // namespace dbaui 88 *b1cdbd2cSJim Jagielski //........................................................................ 89 *b1cdbd2cSJim Jagielski 90 *b1cdbd2cSJim Jagielski #endif // PROPERTYSTORAGE_HXX 91