xref: /aoo41x/main/svx/inc/svx/xit.hxx (revision c7be74b1)
13334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
33334a7e6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
43334a7e6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
53334a7e6SAndrew Rist  * distributed with this work for additional information
63334a7e6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
73334a7e6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
83334a7e6SAndrew Rist  * "License"); you may not use this file except in compliance
93334a7e6SAndrew Rist  * with the License.  You may obtain a copy of the License at
103334a7e6SAndrew Rist  *
113334a7e6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
123334a7e6SAndrew Rist  *
133334a7e6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
143334a7e6SAndrew Rist  * software distributed under the License is distributed on an
153334a7e6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
163334a7e6SAndrew Rist  * KIND, either express or implied.  See the License for the
173334a7e6SAndrew Rist  * specific language governing permissions and limitations
183334a7e6SAndrew Rist  * under the License.
193334a7e6SAndrew Rist  *
203334a7e6SAndrew Rist  *************************************************************/
213334a7e6SAndrew Rist 
223334a7e6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SVX_XIT_HXX
25cdf0e10cSrcweir #define _SVX_XIT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svl/stritem.hxx>
28cdf0e10cSrcweir #include <svx/xdef.hxx>
29cdf0e10cSrcweir #include "svx/svxdllapi.h"
30cdf0e10cSrcweir 
31cdf0e10cSrcweir /************************************************************************/
32cdf0e10cSrcweir 
33*97e8a929SArmin Le Grand class XDashList;
34*97e8a929SArmin Le Grand class XLineEndList;
35*97e8a929SArmin Le Grand class XHatchList;
36*97e8a929SArmin Le Grand class XBitmapList;
37*97e8a929SArmin Le Grand class XGradientList;
38cdf0e10cSrcweir class SfxItemPool;
39cdf0e10cSrcweir class NameOrIndex;
40cdf0e10cSrcweir class XPropertyList;
41cdf0e10cSrcweir 
42cdf0e10cSrcweir typedef sal_Bool (*SvxCompareValueFunc)( const NameOrIndex* p1, const NameOrIndex* p2 );
43cdf0e10cSrcweir 
44cdf0e10cSrcweir //-------------------
45cdf0e10cSrcweir // class NameOrIndex
46cdf0e10cSrcweir //-------------------
47cdf0e10cSrcweir class SVX_DLLPUBLIC NameOrIndex : public SfxStringItem
48cdf0e10cSrcweir {
49cdf0e10cSrcweir 	sal_Int32    nPalIndex;
50cdf0e10cSrcweir 
51cdf0e10cSrcweir protected:
Detach()52cdf0e10cSrcweir 	void    Detach()    { nPalIndex = -1; }
53cdf0e10cSrcweir 
54cdf0e10cSrcweir public:
55cdf0e10cSrcweir 			TYPEINFO();
NameOrIndex()56cdf0e10cSrcweir 			NameOrIndex() { nPalIndex = -1; }
57cdf0e10cSrcweir 			NameOrIndex(sal_uInt16 nWhich, sal_Int32 nIndex);
58cdf0e10cSrcweir 			NameOrIndex(sal_uInt16 nWhich,
59cdf0e10cSrcweir 						const String& rName= String());
60cdf0e10cSrcweir 			NameOrIndex(sal_uInt16 nWhich, SvStream& rIn);
61cdf0e10cSrcweir 			NameOrIndex(const NameOrIndex& rNameOrIndex);
~NameOrIndex()62cdf0e10cSrcweir 		   ~NameOrIndex() {};
63cdf0e10cSrcweir 
64cdf0e10cSrcweir 	virtual int          operator==(const SfxPoolItem& rItem) const;
65cdf0e10cSrcweir 	virtual SfxPoolItem* Clone(SfxItemPool* pPool = 0) const;
66cdf0e10cSrcweir 	virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nVer) const;
67cdf0e10cSrcweir 	virtual SvStream&    Store(SvStream& rOut, sal_uInt16 nItemVersion ) const;
68cdf0e10cSrcweir 
GetName() const69cdf0e10cSrcweir 			String       GetName() const              { return GetValue();   }
SetName(const String & rName)70cdf0e10cSrcweir 			void         SetName(const String& rName) { SetValue(rName);     }
GetIndex() const71cdf0e10cSrcweir 			sal_Int32        GetIndex() const             { return nPalIndex;    }
SetIndex(sal_Int32 nIndex)72cdf0e10cSrcweir 			void         SetIndex(sal_Int32 nIndex)        { nPalIndex = nIndex;  }
IsIndex() const73cdf0e10cSrcweir 			sal_Bool         IsIndex() const          { return (nPalIndex >= 0); }
74cdf0e10cSrcweir 
75cdf0e10cSrcweir 	/** this static checks if the given NameOrIndex item has a unique name for its value.
76cdf0e10cSrcweir 		The returned String is a unique name for an item with this value in both given pools.
77cdf0e10cSrcweir 		Argument pPool2 can be null.
78cdf0e10cSrcweir 		If returned string equals NameOrIndex->GetName(), the name was already unique.
79cdf0e10cSrcweir 	*/
80cdf0e10cSrcweir 	static String CheckNamedItem( const NameOrIndex* pCheckItem, const sal_uInt16 nWhich, const SfxItemPool* pPool1, const SfxItemPool* pPool2, SvxCompareValueFunc pCompareValueFunc, sal_uInt16 nPrefixResId, XPropertyList* pDefaults = NULL );
81cdf0e10cSrcweir };
82cdf0e10cSrcweir 
83cdf0e10cSrcweir #endif
84