xref: /aoo4110/main/svx/inc/svx/xit.hxx (revision b1cdbd2c)
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 _SVX_XIT_HXX
25*b1cdbd2cSJim Jagielski #define _SVX_XIT_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <svl/stritem.hxx>
28*b1cdbd2cSJim Jagielski #include <svx/xdef.hxx>
29*b1cdbd2cSJim Jagielski #include "svx/svxdllapi.h"
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski /************************************************************************/
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski class XDashList;
34*b1cdbd2cSJim Jagielski class XLineEndList;
35*b1cdbd2cSJim Jagielski class XHatchList;
36*b1cdbd2cSJim Jagielski class XBitmapList;
37*b1cdbd2cSJim Jagielski class XGradientList;
38*b1cdbd2cSJim Jagielski class SfxItemPool;
39*b1cdbd2cSJim Jagielski class NameOrIndex;
40*b1cdbd2cSJim Jagielski class XPropertyList;
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski typedef sal_Bool (*SvxCompareValueFunc)( const NameOrIndex* p1, const NameOrIndex* p2 );
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski //-------------------
45*b1cdbd2cSJim Jagielski // class NameOrIndex
46*b1cdbd2cSJim Jagielski //-------------------
47*b1cdbd2cSJim Jagielski class SVX_DLLPUBLIC NameOrIndex : public SfxStringItem
48*b1cdbd2cSJim Jagielski {
49*b1cdbd2cSJim Jagielski 	sal_Int32    nPalIndex;
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski protected:
Detach()52*b1cdbd2cSJim Jagielski 	void    Detach()    { nPalIndex = -1; }
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski public:
55*b1cdbd2cSJim Jagielski 			TYPEINFO();
NameOrIndex()56*b1cdbd2cSJim Jagielski 			NameOrIndex() { nPalIndex = -1; }
57*b1cdbd2cSJim Jagielski 			NameOrIndex(sal_uInt16 nWhich, sal_Int32 nIndex);
58*b1cdbd2cSJim Jagielski 			NameOrIndex(sal_uInt16 nWhich,
59*b1cdbd2cSJim Jagielski 						const String& rName= String());
60*b1cdbd2cSJim Jagielski 			NameOrIndex(sal_uInt16 nWhich, SvStream& rIn);
61*b1cdbd2cSJim Jagielski 			NameOrIndex(const NameOrIndex& rNameOrIndex);
~NameOrIndex()62*b1cdbd2cSJim Jagielski 		   ~NameOrIndex() {};
63*b1cdbd2cSJim Jagielski 
64*b1cdbd2cSJim Jagielski 	virtual int          operator==(const SfxPoolItem& rItem) const;
65*b1cdbd2cSJim Jagielski 	virtual SfxPoolItem* Clone(SfxItemPool* pPool = 0) const;
66*b1cdbd2cSJim Jagielski 	virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nVer) const;
67*b1cdbd2cSJim Jagielski 	virtual SvStream&    Store(SvStream& rOut, sal_uInt16 nItemVersion ) const;
68*b1cdbd2cSJim Jagielski 
GetName() const69*b1cdbd2cSJim Jagielski 			String       GetName() const              { return GetValue();   }
SetName(const String & rName)70*b1cdbd2cSJim Jagielski 			void         SetName(const String& rName) { SetValue(rName);     }
GetIndex() const71*b1cdbd2cSJim Jagielski 			sal_Int32        GetIndex() const             { return nPalIndex;    }
SetIndex(sal_Int32 nIndex)72*b1cdbd2cSJim Jagielski 			void         SetIndex(sal_Int32 nIndex)        { nPalIndex = nIndex;  }
IsIndex() const73*b1cdbd2cSJim Jagielski 			sal_Bool         IsIndex() const          { return (nPalIndex >= 0); }
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski 	/** this static checks if the given NameOrIndex item has a unique name for its value.
76*b1cdbd2cSJim Jagielski 		The returned String is a unique name for an item with this value in both given pools.
77*b1cdbd2cSJim Jagielski 		Argument pPool2 can be null.
78*b1cdbd2cSJim Jagielski 		If returned string equals NameOrIndex->GetName(), the name was already unique.
79*b1cdbd2cSJim Jagielski 	*/
80*b1cdbd2cSJim Jagielski 	static String CheckNamedItem( const NameOrIndex* pCheckItem, const sal_uInt16 nWhich, const SfxItemPool* pPool1, const SfxItemPool* pPool2, SvxCompareValueFunc pCompareValueFunc, sal_uInt16 nPrefixResId, XPropertyList* pDefaults = NULL );
81*b1cdbd2cSJim Jagielski };
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski #endif
84