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