xref: /AOO41X/main/sw/source/core/unocore/unosett.cxx (revision e1390266ac3390ed01f5e7bc5d6890c477f08573)
1efeef26fSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3efeef26fSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4efeef26fSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5efeef26fSAndrew Rist  * distributed with this work for additional information
6efeef26fSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7efeef26fSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8efeef26fSAndrew Rist  * "License"); you may not use this file except in compliance
9efeef26fSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11efeef26fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13efeef26fSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14efeef26fSAndrew Rist  * software distributed under the License is distributed on an
15efeef26fSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16efeef26fSAndrew Rist  * KIND, either express or implied.  See the License for the
17efeef26fSAndrew Rist  * specific language governing permissions and limitations
18efeef26fSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20efeef26fSAndrew Rist  *************************************************************/
21efeef26fSAndrew Rist 
22efeef26fSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sw.hxx"
26cdf0e10cSrcweir 
27efc6b937SArrigo Marchiori #include <sfx2/docfile.hxx>
28efc6b937SArrigo Marchiori #include <sfx2/frame.hxx>
29efc6b937SArrigo Marchiori #include <sfx2/linkmgr.hxx>
30cdf0e10cSrcweir #include <svx/svxids.hrc>
31cdf0e10cSrcweir #include <editeng/memberids.hrc>
32cdf0e10cSrcweir #include <swtypes.hxx>
33cdf0e10cSrcweir #include <cmdid.h>
34cdf0e10cSrcweir #include <hintids.hxx>
35cdf0e10cSrcweir #include "poolfmt.hrc"
36cdf0e10cSrcweir #include "poolfmt.hxx"
37cdf0e10cSrcweir #include <fmtcol.hxx>
38cdf0e10cSrcweir #include <unomap.hxx>
39cdf0e10cSrcweir #include <unostyle.hxx>
40cdf0e10cSrcweir #include <unosett.hxx>
41cdf0e10cSrcweir #include <unoprnms.hxx>
42cdf0e10cSrcweir #include <ftninfo.hxx>
43cdf0e10cSrcweir #include <doc.hxx>
44cdf0e10cSrcweir #include <pagedesc.hxx>
45cdf0e10cSrcweir #include <charfmt.hxx>
46cdf0e10cSrcweir #include <lineinfo.hxx>
47cdf0e10cSrcweir #include <docsh.hxx>
48cdf0e10cSrcweir #include <docary.hxx>
49cdf0e10cSrcweir #include <docstyle.hxx>
50cdf0e10cSrcweir #include <fmtclds.hxx>
51cdf0e10cSrcweir #include <editeng/brshitem.hxx>
52cdf0e10cSrcweir #include <com/sun/star/text/XFootnotesSettingsSupplier.hpp>
53cdf0e10cSrcweir #include <com/sun/star/text/XFootnote.hpp>
54cdf0e10cSrcweir #include <com/sun/star/text/XFootnotesSupplier.hpp>
55cdf0e10cSrcweir #include <com/sun/star/text/XEndnotesSupplier.hpp>
56cdf0e10cSrcweir #include <com/sun/star/text/XEndnotesSettingsSupplier.hpp>
57cdf0e10cSrcweir #include <com/sun/star/text/FootnoteNumbering.hpp>
58cdf0e10cSrcweir #include <com/sun/star/text/HoriOrientation.hpp>
59cdf0e10cSrcweir #include <com/sun/star/style/LineNumberPosition.hpp>
60cdf0e10cSrcweir #include <com/sun/star/awt/XBitmap.hpp>
61cdf0e10cSrcweir #include <com/sun/star/beans/PropertyAttribute.hpp>
62cdf0e10cSrcweir #include <com/sun/star/style/VerticalAlignment.hpp>
63cdf0e10cSrcweir #include <vcl/font.hxx>
64cdf0e10cSrcweir #include <editeng/flstitem.hxx>
65cdf0e10cSrcweir #include <vcl/metric.hxx>
66cdf0e10cSrcweir #include <svtools/ctrltool.hxx>
67cdf0e10cSrcweir #include <vos/mutex.hxx>
68cdf0e10cSrcweir #include <vcl/svapp.hxx>
69cdf0e10cSrcweir #include <toolkit/helper/vclunohelper.hxx>
70cdf0e10cSrcweir #include <editeng/unofdesc.hxx>
71cdf0e10cSrcweir #include <fmtornt.hxx>
72cdf0e10cSrcweir #include <SwStyleNameMapper.hxx>
73cdf0e10cSrcweir // --> OD 2008-01-15 #newlistlevelattrs#
74cdf0e10cSrcweir #include <com/sun/star/text/PositionAndSpaceMode.hpp>
75cdf0e10cSrcweir #include <com/sun/star/text/LabelFollow.hpp>
76cdf0e10cSrcweir // <--
77cdf0e10cSrcweir #include <numrule.hxx>
78cdf0e10cSrcweir 
79cdf0e10cSrcweir using ::rtl::OUString;
80cdf0e10cSrcweir using namespace ::com::sun::star;
81cdf0e10cSrcweir using namespace ::com::sun::star::uno;
82cdf0e10cSrcweir using namespace ::com::sun::star::lang;
83cdf0e10cSrcweir using namespace ::com::sun::star::beans;
84cdf0e10cSrcweir using namespace ::com::sun::star::text;
85cdf0e10cSrcweir using namespace ::com::sun::star::style;
86cdf0e10cSrcweir 
87cdf0e10cSrcweir struct PropValData
88cdf0e10cSrcweir {
89cdf0e10cSrcweir 	uno::Any 		aVal;
90cdf0e10cSrcweir 	OUString			sPropName;
PropValDataPropValData91cdf0e10cSrcweir 	PropValData(void* pVal, const char* cPropName, uno::Type aType ) :
92cdf0e10cSrcweir 		aVal(pVal, aType),
93cdf0e10cSrcweir 		sPropName(OUString::createFromAscii(cPropName))
94cdf0e10cSrcweir 		{}
PropValDataPropValData95cdf0e10cSrcweir 	PropValData(const uno::Any& rVal, const OUString& rPropName) :
96cdf0e10cSrcweir 		aVal(rVal),
97cdf0e10cSrcweir 		sPropName(rPropName)
98cdf0e10cSrcweir 		{}
99cdf0e10cSrcweir };
100cdf0e10cSrcweir 
101cdf0e10cSrcweir typedef PropValData* PropValDataPtr;
102cdf0e10cSrcweir SV_DECL_PTRARR(PropValDataArr, PropValDataPtr, 5, 5 )
SV_IMPL_PTRARR(PropValDataArr,PropValDataPtr) const103cdf0e10cSrcweir SV_IMPL_PTRARR(PropValDataArr, PropValDataPtr)
104cdf0e10cSrcweir 
105cdf0e10cSrcweir 
106cdf0e10cSrcweir #define WID_PREFIX						0
107cdf0e10cSrcweir #define WID_SUFFIX  					1
108cdf0e10cSrcweir #define WID_NUMBERING_TYPE              2
109cdf0e10cSrcweir #define WID_START_AT                    3
110cdf0e10cSrcweir #define WID_FOOTNOTE_COUNTING 			4
111cdf0e10cSrcweir #define WID_PARAGRAPH_STYLE             5
112cdf0e10cSrcweir #define WID_PAGE_STYLE                  6
113cdf0e10cSrcweir #define WID_CHARACTER_STYLE             7
114cdf0e10cSrcweir #define WID_POSITION_END_OF_DOC         8
115cdf0e10cSrcweir #define WID_END_NOTICE                  9
116cdf0e10cSrcweir #define WID_BEGIN_NOTICE                10
117cdf0e10cSrcweir #define WID_ANCHOR_CHARACTER_STYLE		11
118cdf0e10cSrcweir 
119cdf0e10cSrcweir const SfxItemPropertySet* GetFootnoteSet()
120cdf0e10cSrcweir {
121cdf0e10cSrcweir     static SfxItemPropertyMapEntry aFootnoteMap_Impl[] =
122cdf0e10cSrcweir 	{
123cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_ANCHOR_CHAR_STYLE_NAME),WID_ANCHOR_CHARACTER_STYLE, &::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
124cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_BEGIN_NOTICE),  		WID_BEGIN_NOTICE, 		&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
125cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_CHAR_STYLE_NAME),  		WID_CHARACTER_STYLE, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
126cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_END_NOTICE),  			WID_END_NOTICE ,  		&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
127cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_FOOTNOTE_COUNTING), 	WID_FOOTNOTE_COUNTING, 	&::getCppuType((const sal_Int16*)0), PROPERTY_NONE,  	0},
128cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_NUMBERING_TYPE),		WID_NUMBERING_TYPE, 	&::getCppuType((const sal_Int16*)0), PROPERTY_NONE,     	0},
129cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_PAGE_STYLE_NAME),  		WID_PAGE_STYLE, 		&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
130cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_PARA_STYLE_NAME),  		WID_PARAGRAPH_STYLE, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
131cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_POSITION_END_OF_DOC), 	WID_POSITION_END_OF_DOC,&::getBooleanCppuType(), PROPERTY_NONE,     	0},
132cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_PREFIX),				WID_PREFIX, 			&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
133cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_START_AT),  			WID_START_AT , 			&::getCppuType((const sal_Int16*)0), PROPERTY_NONE,     	0},
134cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_SUFFIX),  				WID_SUFFIX, 			&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
135cdf0e10cSrcweir 		{0,0,0,0,0,0}
136cdf0e10cSrcweir 	};
137cdf0e10cSrcweir     static SfxItemPropertySet aFootnoteSet_Impl(aFootnoteMap_Impl);
138cdf0e10cSrcweir 	return &aFootnoteSet_Impl;
139cdf0e10cSrcweir }
GetEndnoteSet()140cdf0e10cSrcweir const SfxItemPropertySet* GetEndnoteSet()
141cdf0e10cSrcweir {
142cdf0e10cSrcweir     static SfxItemPropertyMapEntry aEndnoteMap_Impl[] =
143cdf0e10cSrcweir 	{
144cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_ANCHOR_CHAR_STYLE_NAME),WID_ANCHOR_CHARACTER_STYLE, &::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
145cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_CHAR_STYLE_NAME),  		WID_CHARACTER_STYLE, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
146cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_NUMBERING_TYPE),		WID_NUMBERING_TYPE, 	&::getCppuType((const sal_Int16*)0), PROPERTY_NONE,     	0},
147cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_PAGE_STYLE_NAME),  		WID_PAGE_STYLE, 		&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
148cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_PARA_STYLE_NAME),  		WID_PARAGRAPH_STYLE, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
149cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_PREFIX),				WID_PREFIX, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
150cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_START_AT),  			WID_START_AT , 			&::getCppuType((const sal_Int16*)0), PROPERTY_NONE,     	0},
151cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_SUFFIX),  				WID_SUFFIX, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
152cdf0e10cSrcweir 		{0,0,0,0,0,0}
153cdf0e10cSrcweir 	};
154cdf0e10cSrcweir     static SfxItemPropertySet aEndnoteSet_Impl(aEndnoteMap_Impl);
155cdf0e10cSrcweir 	return &aEndnoteSet_Impl;
156cdf0e10cSrcweir }
GetNumberingRulesSet()157cdf0e10cSrcweir const SfxItemPropertySet* GetNumberingRulesSet()
158cdf0e10cSrcweir {
159cdf0e10cSrcweir     static SfxItemPropertyMapEntry aNumberingRulesMap_Impl[] =
160cdf0e10cSrcweir 	{
161cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_IS_ABSOLUTE_MARGINS),		WID_IS_ABS_MARGINS,	&::getBooleanCppuType(), 			PROPERTY_NONE,     0},
162cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_IS_AUTOMATIC),  			WID_IS_AUTOMATIC,	&::getBooleanCppuType(), 			PROPERTY_NONE,     0},
163cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_IS_CONTINUOUS_NUMBERING),  	WID_CONTINUOUS, 	&::getBooleanCppuType(), 			PROPERTY_NONE,     0},
164cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_NAME),  					WID_RULE_NAME	, 	&::getCppuType((const OUString*)0), PropertyAttribute::READONLY,     0},
165cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_NUMBERING_IS_OUTLINE),		WID_IS_OUTLINE,	&::getBooleanCppuType(), 			PROPERTY_NONE,     0},
166cdf0e10cSrcweir         { SW_PROP_NAME(UNO_NAME_DEFAULT_LIST_ID),           WID_DEFAULT_LIST_ID, &::getCppuType((const OUString*)0), PropertyAttribute::READONLY, 0},
167cdf0e10cSrcweir 		{0,0,0,0,0,0}
168cdf0e10cSrcweir 	};
169cdf0e10cSrcweir 	static SfxItemPropertySet  aNumberingRulesSet_Impl( aNumberingRulesMap_Impl );
170cdf0e10cSrcweir     return &aNumberingRulesSet_Impl;
171cdf0e10cSrcweir }
172cdf0e10cSrcweir #define WID_NUM_ON						0
173cdf0e10cSrcweir #define WID_SEPARATOR_INTERVAL          1
174cdf0e10cSrcweir #define WID_NUMBERING_TYPE              2
175cdf0e10cSrcweir #define WID_NUMBER_POSITION             3
176cdf0e10cSrcweir #define WID_DISTANCE                    4
177cdf0e10cSrcweir #define WID_INTERVAL                    5
178cdf0e10cSrcweir #define WID_SEPARATOR_TEXT              6
179cdf0e10cSrcweir //#define WID_CHARACTER_STYLE             7
180cdf0e10cSrcweir #define WID_COUNT_EMPTY_LINES           8
181cdf0e10cSrcweir #define WID_COUNT_LINES_IN_FRAMES       9
182cdf0e10cSrcweir #define WID_RESTART_AT_EACH_PAGE		10
183cdf0e10cSrcweir 
GetLineNumberingSet()184cdf0e10cSrcweir const SfxItemPropertySet* GetLineNumberingSet()
185cdf0e10cSrcweir {
186cdf0e10cSrcweir     static SfxItemPropertyMapEntry aLineNumberingMap_Impl[] =
187cdf0e10cSrcweir 	{
188cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_CHAR_STYLE_NAME),         WID_CHARACTER_STYLE,    &::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
189cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_COUNT_EMPTY_LINES),		  WID_COUNT_EMPTY_LINES , &::getBooleanCppuType(),PROPERTY_NONE,     0},
190cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_COUNT_LINES_IN_FRAMES),   WID_COUNT_LINES_IN_FRAMES, &::getBooleanCppuType(),PROPERTY_NONE,     0},
191cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_DISTANCE       ),         WID_DISTANCE       ,    &::getCppuType((const sal_Int32*)0),PROPERTY_NONE,     0},
192cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_IS_ON), 					WID_NUM_ON, 			&::getBooleanCppuType()  ,  		PROPERTY_NONE,     0},
193cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_INTERVAL  ),              WID_INTERVAL  ,    	&::getCppuType((const sal_Int16*)0),PROPERTY_NONE,     0},
194cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_SEPARATOR_TEXT ),         WID_SEPARATOR_TEXT, 	&::getCppuType((const OUString*)0), PROPERTY_NONE,     0},
195cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_NUMBER_POSITION),         WID_NUMBER_POSITION,    &::getCppuType((const sal_Int16*)0),PROPERTY_NONE,     0},
196cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_NUMBERING_TYPE),          WID_NUMBERING_TYPE ,    &::getCppuType((const sal_Int16*)0),PROPERTY_NONE,     0},
197cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_RESTART_AT_EACH_PAGE), 	  WID_RESTART_AT_EACH_PAGE, &::getBooleanCppuType()  ,  		PROPERTY_NONE,     0},
198cdf0e10cSrcweir 		{ SW_PROP_NAME(UNO_NAME_SEPARATOR_INTERVAL), 	  WID_SEPARATOR_INTERVAL, &::getCppuType((const sal_Int16*)0),PROPERTY_NONE,     0},
199cdf0e10cSrcweir 		{0,0,0,0,0,0}
200cdf0e10cSrcweir 	};
201cdf0e10cSrcweir     static SfxItemPropertySet aLineNumberingSet_Impl(aLineNumberingMap_Impl);
202cdf0e10cSrcweir 	return &aLineNumberingSet_Impl;
203cdf0e10cSrcweir }
204cdf0e10cSrcweir 
205cdf0e10cSrcweir /* -----------------05.05.98 08:30-------------------
206cdf0e10cSrcweir  *
207cdf0e10cSrcweir  * --------------------------------------------------*/
lcl_getCharFmt(SwDoc * pDoc,const uno::Any & aValue)208cdf0e10cSrcweir SwCharFmt* lcl_getCharFmt(SwDoc* pDoc, const uno::Any& aValue)
209cdf0e10cSrcweir {
210cdf0e10cSrcweir 	SwCharFmt* pRet = 0;
211cdf0e10cSrcweir 	String sStandard(SW_RES(STR_POOLCOLL_STANDARD));
212cdf0e10cSrcweir 	OUString uTmp;
213cdf0e10cSrcweir 	aValue >>= uTmp;
214cdf0e10cSrcweir 	String sCharFmt;
215cdf0e10cSrcweir 	SwStyleNameMapper::FillUIName(uTmp, sCharFmt, nsSwGetPoolIdFromName::GET_POOLID_CHRFMT, sal_True);
216cdf0e10cSrcweir 	if(sStandard != sCharFmt)
217cdf0e10cSrcweir 	{
218cdf0e10cSrcweir 		pRet = pDoc->FindCharFmtByName( sCharFmt );
219cdf0e10cSrcweir 	}
220cdf0e10cSrcweir 	if(!pRet)
221cdf0e10cSrcweir 	{
222cdf0e10cSrcweir 		sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName(sCharFmt, nsSwGetPoolIdFromName::GET_POOLID_CHRFMT);
223cdf0e10cSrcweir 		if(USHRT_MAX != nId)
224cdf0e10cSrcweir 			pRet = pDoc->GetCharFmtFromPool( nId );
225cdf0e10cSrcweir 	}
226cdf0e10cSrcweir 	return pRet;
227cdf0e10cSrcweir }
228cdf0e10cSrcweir /* -----------------05.05.98 08:30-------------------
229cdf0e10cSrcweir  *
230cdf0e10cSrcweir  * --------------------------------------------------*/
lcl_GetParaStyle(SwDoc * pDoc,const uno::Any & aValue)231cdf0e10cSrcweir SwTxtFmtColl* lcl_GetParaStyle(SwDoc* pDoc, const uno::Any& aValue)
232cdf0e10cSrcweir {
233cdf0e10cSrcweir 	OUString uTmp;
234cdf0e10cSrcweir 	aValue >>= uTmp;
235cdf0e10cSrcweir 	String sParaStyle;
236cdf0e10cSrcweir 	SwStyleNameMapper::FillUIName(uTmp, sParaStyle, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, sal_True );
237cdf0e10cSrcweir 	SwTxtFmtColl* pRet = pDoc->FindTxtFmtCollByName( sParaStyle );
238cdf0e10cSrcweir 	if( !pRet  )
239cdf0e10cSrcweir 	{
240cdf0e10cSrcweir 		sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName( sParaStyle, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
241cdf0e10cSrcweir 		if( USHRT_MAX != nId  )
242cdf0e10cSrcweir 			pRet = pDoc->GetTxtCollFromPool( nId );
243cdf0e10cSrcweir 	}
244cdf0e10cSrcweir 	return pRet;
245cdf0e10cSrcweir }
246cdf0e10cSrcweir /* -----------------05.05.98 08:30-------------------
247cdf0e10cSrcweir  *
248cdf0e10cSrcweir  * --------------------------------------------------*/
lcl_GetPageDesc(SwDoc * pDoc,const uno::Any & aValue)249cdf0e10cSrcweir SwPageDesc* lcl_GetPageDesc(SwDoc* pDoc, const uno::Any& aValue)
250cdf0e10cSrcweir {
251cdf0e10cSrcweir 	SwPageDesc* pRet = 0;
252cdf0e10cSrcweir 	sal_uInt16 nCount = pDoc->GetPageDescCnt();
253cdf0e10cSrcweir 	OUString uTmp;
254cdf0e10cSrcweir 	aValue >>= uTmp;
255cdf0e10cSrcweir 	String sPageDesc;
256cdf0e10cSrcweir 	SwStyleNameMapper::FillUIName(uTmp, sPageDesc, nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC, sal_True );
257cdf0e10cSrcweir 	for( sal_uInt16 i = 0; i < nCount; i++)
258cdf0e10cSrcweir 	{
259cdf0e10cSrcweir 		const SwPageDesc& rDesc = const_cast<const SwDoc *>(pDoc)
260cdf0e10cSrcweir             ->GetPageDesc( i );
261cdf0e10cSrcweir 		if(rDesc.GetName() == sPageDesc)
262cdf0e10cSrcweir 		{
263cdf0e10cSrcweir 			pRet = (SwPageDesc*)&rDesc;
264cdf0e10cSrcweir 			break;
265cdf0e10cSrcweir 		}
266cdf0e10cSrcweir 	}
267cdf0e10cSrcweir 	if(!pRet)
268cdf0e10cSrcweir 	{
269cdf0e10cSrcweir 		sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName(sPageDesc, nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC);
270cdf0e10cSrcweir 		if(USHRT_MAX != nId)
271cdf0e10cSrcweir 			pRet = pDoc->GetPageDescFromPool( nId );
272cdf0e10cSrcweir 	}
273cdf0e10cSrcweir 	return pRet;
274cdf0e10cSrcweir }
275cdf0e10cSrcweir /******************************************************************************
276cdf0e10cSrcweir  *
277cdf0e10cSrcweir  ******************************************************************************/
278cdf0e10cSrcweir // Numerierung
279cdf0e10cSrcweir const unsigned short aSvxToUnoAdjust[] =
280cdf0e10cSrcweir {
281cdf0e10cSrcweir     text::HoriOrientation::LEFT,    //3
282cdf0e10cSrcweir     text::HoriOrientation::RIGHT,  //1
283cdf0e10cSrcweir 	USHRT_MAX,
284cdf0e10cSrcweir     text::HoriOrientation::CENTER, //2
285cdf0e10cSrcweir 	USHRT_MAX,
286cdf0e10cSrcweir 	USHRT_MAX
287cdf0e10cSrcweir };
288cdf0e10cSrcweir 
289cdf0e10cSrcweir const unsigned short aUnoToSvxAdjust[] =
290cdf0e10cSrcweir {
291cdf0e10cSrcweir 	USHRT_MAX,
292cdf0e10cSrcweir 	SVX_ADJUST_RIGHT,       // 1
293cdf0e10cSrcweir 	SVX_ADJUST_CENTER,      // 3
294cdf0e10cSrcweir 	SVX_ADJUST_LEFT,		// 0
295cdf0e10cSrcweir 	USHRT_MAX,
296cdf0e10cSrcweir 	USHRT_MAX
297cdf0e10cSrcweir };
298cdf0e10cSrcweir 
299cdf0e10cSrcweir /******************************************************************
300cdf0e10cSrcweir  * SwXFootnoteProperties
301cdf0e10cSrcweir  ******************************************************************/
302cdf0e10cSrcweir /* -----------------------------06.04.00 11:43--------------------------------
303cdf0e10cSrcweir 
304cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getImplementationName(void)305cdf0e10cSrcweir OUString SwXFootnoteProperties::getImplementationName(void) throw( RuntimeException )
306cdf0e10cSrcweir {
307cdf0e10cSrcweir 	return C2U("SwXFootnoteProperties");
308cdf0e10cSrcweir }
309cdf0e10cSrcweir /* -----------------------------06.04.00 11:43--------------------------------
310cdf0e10cSrcweir 
311cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)312cdf0e10cSrcweir sal_Bool SwXFootnoteProperties::supportsService(const OUString& rServiceName) throw( RuntimeException )
313cdf0e10cSrcweir {
314cdf0e10cSrcweir 	return C2U("com.sun.star.text.FootnoteSettings") == rServiceName;
315cdf0e10cSrcweir }
316cdf0e10cSrcweir /* -----------------------------06.04.00 11:43--------------------------------
317cdf0e10cSrcweir 
318cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)319cdf0e10cSrcweir Sequence< OUString > SwXFootnoteProperties::getSupportedServiceNames(void) throw( RuntimeException )
320cdf0e10cSrcweir {
321cdf0e10cSrcweir 	Sequence< OUString > aRet(1);
322cdf0e10cSrcweir 	OUString* pArray = aRet.getArray();
323cdf0e10cSrcweir 	pArray[0] = C2U("com.sun.star.text.FootnoteSettings");
324cdf0e10cSrcweir 	return aRet;
325cdf0e10cSrcweir }
326cdf0e10cSrcweir /*-- 14.12.98 14:03:20---------------------------------------------------
327cdf0e10cSrcweir 
328cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwXFootnoteProperties(SwDoc * pDc)329cdf0e10cSrcweir SwXFootnoteProperties::SwXFootnoteProperties(SwDoc* pDc) :
330cdf0e10cSrcweir 	pDoc(pDc),
331cdf0e10cSrcweir     m_pPropertySet(GetFootnoteSet())
332cdf0e10cSrcweir {
333cdf0e10cSrcweir }
334cdf0e10cSrcweir /*-- 14.12.98 14:03:20---------------------------------------------------
335cdf0e10cSrcweir 
336cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwXFootnoteProperties()337cdf0e10cSrcweir SwXFootnoteProperties::~SwXFootnoteProperties()
338cdf0e10cSrcweir {
339cdf0e10cSrcweir 
340cdf0e10cSrcweir }
341cdf0e10cSrcweir /*-- 14.12.98 14:03:20---------------------------------------------------
342cdf0e10cSrcweir 
343cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertySetInfo(void)344cdf0e10cSrcweir uno::Reference< beans::XPropertySetInfo >  SwXFootnoteProperties::getPropertySetInfo(void)
345cdf0e10cSrcweir 																throw( uno::RuntimeException )
346cdf0e10cSrcweir {
347cdf0e10cSrcweir     static uno::Reference< beans::XPropertySetInfo >  aRef = m_pPropertySet->getPropertySetInfo();
348cdf0e10cSrcweir 	return aRef;
349cdf0e10cSrcweir }
350cdf0e10cSrcweir /*-- 14.12.98 14:03:20---------------------------------------------------
351cdf0e10cSrcweir 
352cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setPropertyValue(const OUString & rPropertyName,const uno::Any & aValue)353cdf0e10cSrcweir void SwXFootnoteProperties::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
354cdf0e10cSrcweir 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
355cdf0e10cSrcweir {
356cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
357cdf0e10cSrcweir 	if(pDoc)
358cdf0e10cSrcweir 	{
359cdf0e10cSrcweir         const SfxItemPropertySimpleEntry*  pEntry = m_pPropertySet->getPropertyMap()->getByName( rPropertyName );
360cdf0e10cSrcweir         if(pEntry)
361cdf0e10cSrcweir 		{
362cdf0e10cSrcweir             if ( pEntry->nFlags & PropertyAttribute::READONLY)
363cdf0e10cSrcweir                 throw PropertyVetoException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
364cdf0e10cSrcweir 			SwFtnInfo aFtnInfo(pDoc->GetFtnInfo());
365cdf0e10cSrcweir             switch(pEntry->nWID)
366cdf0e10cSrcweir 			{
367cdf0e10cSrcweir 				case WID_PREFIX:
368cdf0e10cSrcweir 				{
369cdf0e10cSrcweir 					OUString uTmp;
370cdf0e10cSrcweir 					aValue >>= uTmp;
371cdf0e10cSrcweir 					aFtnInfo.SetPrefix(uTmp);
372cdf0e10cSrcweir 				}
373cdf0e10cSrcweir 				break;
374cdf0e10cSrcweir 				case WID_SUFFIX:
375cdf0e10cSrcweir 				{
376cdf0e10cSrcweir 					OUString uTmp;
377cdf0e10cSrcweir 					aValue >>= uTmp;
378cdf0e10cSrcweir 					aFtnInfo.SetSuffix(uTmp);
379cdf0e10cSrcweir 				}
380cdf0e10cSrcweir 				break;
381cdf0e10cSrcweir 				case  WID_NUMBERING_TYPE :
382cdf0e10cSrcweir 				{
383cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
384cdf0e10cSrcweir 					aValue >>= nTmp;
385cdf0e10cSrcweir 					if(nTmp >= 0 &&
386cdf0e10cSrcweir 						(nTmp <= SVX_NUM_ARABIC ||
387cdf0e10cSrcweir                             nTmp > SVX_NUM_BITMAP))
388cdf0e10cSrcweir 						aFtnInfo.aFmt.SetNumberingType(nTmp);
389cdf0e10cSrcweir 					else
390cdf0e10cSrcweir 						throw lang::IllegalArgumentException();
391cdf0e10cSrcweir 				}
392cdf0e10cSrcweir 				break;
393cdf0e10cSrcweir 				case  WID_START_AT:
394cdf0e10cSrcweir 				{
395cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
396cdf0e10cSrcweir 					aValue >>= nTmp;
397cdf0e10cSrcweir 					aFtnInfo.nFtnOffset = nTmp;
398cdf0e10cSrcweir 				}
399cdf0e10cSrcweir 				break;
400cdf0e10cSrcweir 				case  WID_FOOTNOTE_COUNTING  :
401cdf0e10cSrcweir 				{
402cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
403cdf0e10cSrcweir 					aValue >>= nTmp;
404cdf0e10cSrcweir 					switch(nTmp)
405cdf0e10cSrcweir 					{
406cdf0e10cSrcweir 						case  FootnoteNumbering::PER_PAGE:
407cdf0e10cSrcweir 							aFtnInfo.eNum = FTNNUM_PAGE;
408cdf0e10cSrcweir 						break;
409cdf0e10cSrcweir 						case  FootnoteNumbering::PER_CHAPTER:
410cdf0e10cSrcweir 							aFtnInfo.eNum = FTNNUM_CHAPTER;
411cdf0e10cSrcweir 						break;
412cdf0e10cSrcweir 						case  FootnoteNumbering::PER_DOCUMENT:
413cdf0e10cSrcweir 							aFtnInfo.eNum = FTNNUM_DOC;
414cdf0e10cSrcweir 						break;
415cdf0e10cSrcweir 					}
416cdf0e10cSrcweir 				}
417cdf0e10cSrcweir 				break;
418cdf0e10cSrcweir 				case  WID_PARAGRAPH_STYLE    :
419cdf0e10cSrcweir 				{
420cdf0e10cSrcweir 					SwTxtFmtColl* pColl = lcl_GetParaStyle(pDoc, aValue);
421cdf0e10cSrcweir 					if(pColl)
422cdf0e10cSrcweir 						aFtnInfo.SetFtnTxtColl(*pColl);
423cdf0e10cSrcweir 				}
424cdf0e10cSrcweir 				break;
425cdf0e10cSrcweir 				case  WID_PAGE_STYLE :
426cdf0e10cSrcweir 				{
427cdf0e10cSrcweir 					SwPageDesc* pDesc = lcl_GetPageDesc(pDoc, aValue);
428cdf0e10cSrcweir 					if(pDesc)
429cdf0e10cSrcweir 						aFtnInfo.ChgPageDesc( pDesc );
430cdf0e10cSrcweir 				}
431cdf0e10cSrcweir 				break;
432cdf0e10cSrcweir 				case WID_ANCHOR_CHARACTER_STYLE:
433cdf0e10cSrcweir 				case  WID_CHARACTER_STYLE    :
434cdf0e10cSrcweir 				{
435cdf0e10cSrcweir 					SwCharFmt* pFmt = lcl_getCharFmt(pDoc, aValue);
436cdf0e10cSrcweir 					if(pFmt)
437cdf0e10cSrcweir 					{
438cdf0e10cSrcweir                         if(pEntry->nWID == WID_ANCHOR_CHARACTER_STYLE)
439cdf0e10cSrcweir 							aFtnInfo.SetAnchorCharFmt(pFmt);
440cdf0e10cSrcweir 						else
441cdf0e10cSrcweir 							aFtnInfo.SetCharFmt(pFmt);
442cdf0e10cSrcweir 					}
443cdf0e10cSrcweir 				}
444cdf0e10cSrcweir 				break;
445cdf0e10cSrcweir 				case  WID_POSITION_END_OF_DOC:
446cdf0e10cSrcweir 				{
447cdf0e10cSrcweir 					sal_Bool bVal = *(sal_Bool*)aValue.getValue();
448cdf0e10cSrcweir 					aFtnInfo.ePos = bVal ? FTNPOS_CHAPTER : FTNPOS_PAGE;
449cdf0e10cSrcweir 				}
450cdf0e10cSrcweir 				break;
451cdf0e10cSrcweir 				case  WID_END_NOTICE         :
452cdf0e10cSrcweir 				{
453cdf0e10cSrcweir 					OUString uTmp;
454cdf0e10cSrcweir 					aValue >>= uTmp;
455cdf0e10cSrcweir 					aFtnInfo.aQuoVadis = String(uTmp);
456cdf0e10cSrcweir 				}
457cdf0e10cSrcweir 				break;
458cdf0e10cSrcweir 				case  WID_BEGIN_NOTICE       :
459cdf0e10cSrcweir 				{
460cdf0e10cSrcweir 					OUString uTmp;
461cdf0e10cSrcweir 					aValue >>= uTmp;
462cdf0e10cSrcweir 					aFtnInfo.aErgoSum = String(uTmp);
463cdf0e10cSrcweir 				}
464cdf0e10cSrcweir 				break;
465cdf0e10cSrcweir 			}
466cdf0e10cSrcweir 			pDoc->SetFtnInfo(aFtnInfo);
467cdf0e10cSrcweir 		}
468cdf0e10cSrcweir 		else
469cdf0e10cSrcweir 	        throw beans::UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
470cdf0e10cSrcweir 	}
471cdf0e10cSrcweir 	else
472cdf0e10cSrcweir 		throw uno::RuntimeException();
473cdf0e10cSrcweir }
474cdf0e10cSrcweir /*-- 14.12.98 14:03:21---------------------------------------------------
475cdf0e10cSrcweir 
476cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertyValue(const OUString & rPropertyName)477cdf0e10cSrcweir uno::Any SwXFootnoteProperties::getPropertyValue(const OUString& rPropertyName)
478cdf0e10cSrcweir 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
479cdf0e10cSrcweir {
480cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
481cdf0e10cSrcweir 	uno::Any aRet;
482cdf0e10cSrcweir 	if(pDoc)
483cdf0e10cSrcweir 	{
484cdf0e10cSrcweir         const SfxItemPropertySimpleEntry*  pEntry = m_pPropertySet->getPropertyMap()->getByName( rPropertyName );
485cdf0e10cSrcweir         if(pEntry)
486cdf0e10cSrcweir 		{
487cdf0e10cSrcweir 			const SwFtnInfo& rFtnInfo = pDoc->GetFtnInfo();
488cdf0e10cSrcweir             switch(pEntry->nWID)
489cdf0e10cSrcweir 			{
490cdf0e10cSrcweir 				case WID_PREFIX:
491cdf0e10cSrcweir 				{
492cdf0e10cSrcweir 					aRet <<= OUString(rFtnInfo.GetPrefix());
493cdf0e10cSrcweir 				}
494cdf0e10cSrcweir 				break;
495cdf0e10cSrcweir 				case WID_SUFFIX:
496cdf0e10cSrcweir 				{
497cdf0e10cSrcweir 					aRet <<= OUString(rFtnInfo.GetSuffix());
498cdf0e10cSrcweir 				}
499cdf0e10cSrcweir 				break;
500cdf0e10cSrcweir 				case  WID_NUMBERING_TYPE :
501cdf0e10cSrcweir 				{
502cdf0e10cSrcweir 					aRet <<= rFtnInfo.aFmt.GetNumberingType();
503cdf0e10cSrcweir 				}
504cdf0e10cSrcweir 				break;
505cdf0e10cSrcweir 				case  WID_START_AT:
506cdf0e10cSrcweir 					aRet <<= (sal_Int16)rFtnInfo.nFtnOffset;
507cdf0e10cSrcweir 				break;
508cdf0e10cSrcweir 				case  WID_FOOTNOTE_COUNTING  :
509cdf0e10cSrcweir 				{
510cdf0e10cSrcweir 					sal_Int16 nRet = 0;
511cdf0e10cSrcweir 					switch(rFtnInfo.eNum)
512cdf0e10cSrcweir 					{
513cdf0e10cSrcweir 						case  FTNNUM_PAGE:
514cdf0e10cSrcweir 							nRet = FootnoteNumbering::PER_PAGE;
515cdf0e10cSrcweir 						break;
516cdf0e10cSrcweir 						case  FTNNUM_CHAPTER:
517cdf0e10cSrcweir 							nRet = FootnoteNumbering::PER_CHAPTER;
518cdf0e10cSrcweir 						break;
519cdf0e10cSrcweir 						case  FTNNUM_DOC:
520cdf0e10cSrcweir 							nRet = FootnoteNumbering::PER_DOCUMENT;
521cdf0e10cSrcweir 						break;
522cdf0e10cSrcweir 					}
523cdf0e10cSrcweir 					aRet <<= nRet;
524cdf0e10cSrcweir 				}
525cdf0e10cSrcweir 				break;
526cdf0e10cSrcweir 				case  WID_PARAGRAPH_STYLE    :
527cdf0e10cSrcweir 				{
528cdf0e10cSrcweir 					SwTxtFmtColl* pColl = rFtnInfo.GetFtnTxtColl();
529cdf0e10cSrcweir 					String aString;
530cdf0e10cSrcweir 					if(pColl)
531cdf0e10cSrcweir 						aString = String ( pColl->GetName() );
532cdf0e10cSrcweir 					SwStyleNameMapper::FillProgName(aString, aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, sal_True);
533cdf0e10cSrcweir 					aRet <<= OUString ( aString );
534cdf0e10cSrcweir 				}
535cdf0e10cSrcweir 				break;
536cdf0e10cSrcweir 				case  WID_PAGE_STYLE :
537cdf0e10cSrcweir 				{
538cdf0e10cSrcweir 					String aString;
539cdf0e10cSrcweir 					if( rFtnInfo.KnowsPageDesc() )
540cdf0e10cSrcweir 					{
541cdf0e10cSrcweir 						SwStyleNameMapper::FillProgName(
542cdf0e10cSrcweir 								rFtnInfo.GetPageDesc( *pDoc )->GetName(),
543cdf0e10cSrcweir 								aString,
544cdf0e10cSrcweir 								nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC,
545cdf0e10cSrcweir 								sal_True);
546cdf0e10cSrcweir 					}
547cdf0e10cSrcweir 					aRet <<= OUString ( aString );
548cdf0e10cSrcweir 				}
549cdf0e10cSrcweir 				break;
550cdf0e10cSrcweir 				case WID_ANCHOR_CHARACTER_STYLE:
551cdf0e10cSrcweir 				case WID_CHARACTER_STYLE:
552cdf0e10cSrcweir 				{
553cdf0e10cSrcweir 					String aString;
554cdf0e10cSrcweir 					const SwCharFmt* pCharFmt = 0;
555cdf0e10cSrcweir                     if( pEntry->nWID == WID_ANCHOR_CHARACTER_STYLE )
556cdf0e10cSrcweir 					{
557cdf0e10cSrcweir 						if( rFtnInfo.GetAnchorCharFmtDep()->GetRegisteredIn() )
558cdf0e10cSrcweir 							pCharFmt = rFtnInfo.GetAnchorCharFmt(*pDoc);
559cdf0e10cSrcweir 					}
560cdf0e10cSrcweir 					else
561cdf0e10cSrcweir 					{
562cdf0e10cSrcweir 						if( rFtnInfo.GetCharFmtDep()->GetRegisteredIn() )
563cdf0e10cSrcweir 							pCharFmt = rFtnInfo.GetCharFmt(*pDoc);
564cdf0e10cSrcweir 					}
565cdf0e10cSrcweir 					if( pCharFmt )
566cdf0e10cSrcweir 					{
567cdf0e10cSrcweir 						SwStyleNameMapper::FillProgName(
568cdf0e10cSrcweir 								pCharFmt->GetName(),
569cdf0e10cSrcweir 								aString,
570cdf0e10cSrcweir 								nsSwGetPoolIdFromName::GET_POOLID_CHRFMT,
571cdf0e10cSrcweir 								sal_True);
572cdf0e10cSrcweir 					}
573cdf0e10cSrcweir 					aRet <<= OUString ( aString );
574cdf0e10cSrcweir 				}
575cdf0e10cSrcweir 				break;
576cdf0e10cSrcweir 				case  WID_POSITION_END_OF_DOC:
577cdf0e10cSrcweir 				{
578cdf0e10cSrcweir 					sal_Bool bTemp = FTNPOS_CHAPTER == rFtnInfo.ePos;
579cdf0e10cSrcweir 					aRet.setValue(&bTemp, ::getCppuBooleanType());
580cdf0e10cSrcweir 				}
581cdf0e10cSrcweir 				break;
582cdf0e10cSrcweir 				case  WID_END_NOTICE         :
583cdf0e10cSrcweir 					aRet <<= OUString(rFtnInfo.aQuoVadis);
584cdf0e10cSrcweir 				break;
585cdf0e10cSrcweir 				case  WID_BEGIN_NOTICE       :
586cdf0e10cSrcweir 					aRet <<= OUString(rFtnInfo.aErgoSum);
587cdf0e10cSrcweir 				break;
588cdf0e10cSrcweir 			}
589cdf0e10cSrcweir 		}
590cdf0e10cSrcweir 		else
591cdf0e10cSrcweir 	        throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
592cdf0e10cSrcweir 	}
593cdf0e10cSrcweir 	else
594cdf0e10cSrcweir 		throw uno::RuntimeException();
595cdf0e10cSrcweir 	return aRet;
596cdf0e10cSrcweir }
597cdf0e10cSrcweir /*-- 14.12.98 14:03:21---------------------------------------------------
598cdf0e10cSrcweir 
599cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addPropertyChangeListener(const OUString &,const uno::Reference<beans::XPropertyChangeListener> &)600cdf0e10cSrcweir void SwXFootnoteProperties::addPropertyChangeListener(
601cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/)
602cdf0e10cSrcweir 		throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
603cdf0e10cSrcweir {
604cdf0e10cSrcweir 	DBG_WARNING("not implemented");
605cdf0e10cSrcweir }
606cdf0e10cSrcweir /*-- 14.12.98 14:03:21---------------------------------------------------
607cdf0e10cSrcweir 
608cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removePropertyChangeListener(const OUString &,const uno::Reference<beans::XPropertyChangeListener> &)609cdf0e10cSrcweir void SwXFootnoteProperties::removePropertyChangeListener(
610cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/)
611cdf0e10cSrcweir 		throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
612cdf0e10cSrcweir {
613cdf0e10cSrcweir 	DBG_WARNING("not implemented");
614cdf0e10cSrcweir }
615cdf0e10cSrcweir /*-- 14.12.98 14:03:21---------------------------------------------------
616cdf0e10cSrcweir 
617cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addVetoableChangeListener(const OUString &,const uno::Reference<beans::XVetoableChangeListener> &)618cdf0e10cSrcweir void SwXFootnoteProperties::addVetoableChangeListener(
619cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/)
620cdf0e10cSrcweir 		throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
621cdf0e10cSrcweir {
622cdf0e10cSrcweir 	DBG_WARNING("not implemented");
623cdf0e10cSrcweir }
624cdf0e10cSrcweir /*-- 14.12.98 14:03:22---------------------------------------------------
625cdf0e10cSrcweir 
626cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removeVetoableChangeListener(const OUString &,const uno::Reference<beans::XVetoableChangeListener> &)627cdf0e10cSrcweir void SwXFootnoteProperties::removeVetoableChangeListener(
628cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/)
629cdf0e10cSrcweir 		throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
630cdf0e10cSrcweir {
631cdf0e10cSrcweir 	DBG_WARNING("not implemented");
632cdf0e10cSrcweir }
633cdf0e10cSrcweir 
634cdf0e10cSrcweir /******************************************************************
635cdf0e10cSrcweir  * SwXEndnoteProperties
636cdf0e10cSrcweir  ******************************************************************/
637cdf0e10cSrcweir /* -----------------------------06.04.00 11:45--------------------------------
638cdf0e10cSrcweir 
639cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getImplementationName(void)640cdf0e10cSrcweir OUString SwXEndnoteProperties::getImplementationName(void) throw( RuntimeException )
641cdf0e10cSrcweir {
642cdf0e10cSrcweir 	return C2U("SwXEndnoteProperties");
643cdf0e10cSrcweir }
644cdf0e10cSrcweir /* -----------------------------06.04.00 11:45--------------------------------
645cdf0e10cSrcweir 
646cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)647cdf0e10cSrcweir sal_Bool SwXEndnoteProperties::supportsService(const OUString& rServiceName) throw( RuntimeException )
648cdf0e10cSrcweir {
649cdf0e10cSrcweir 	return C2U("com.sun.star.text.FootnoteSettings") == rServiceName;
650cdf0e10cSrcweir }
651cdf0e10cSrcweir /* -----------------------------06.04.00 11:45--------------------------------
652cdf0e10cSrcweir 
653cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)654cdf0e10cSrcweir Sequence< OUString > SwXEndnoteProperties::getSupportedServiceNames(void) throw( RuntimeException )
655cdf0e10cSrcweir {
656cdf0e10cSrcweir 	Sequence< OUString > aRet(1);
657cdf0e10cSrcweir 	OUString* pArray = aRet.getArray();
658cdf0e10cSrcweir 	pArray[0] = C2U("com.sun.star.text.FootnoteSettings");
659cdf0e10cSrcweir 	return aRet;
660cdf0e10cSrcweir }
661cdf0e10cSrcweir /*-- 14.12.98 14:27:39---------------------------------------------------
662cdf0e10cSrcweir 
663cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwXEndnoteProperties(SwDoc * pDc)664cdf0e10cSrcweir SwXEndnoteProperties::SwXEndnoteProperties(SwDoc* pDc) :
665cdf0e10cSrcweir 	pDoc(pDc),
666cdf0e10cSrcweir     m_pPropertySet(GetEndnoteSet())
667cdf0e10cSrcweir {
668cdf0e10cSrcweir 
669cdf0e10cSrcweir }
670cdf0e10cSrcweir /*-- 14.12.98 14:27:39---------------------------------------------------
671cdf0e10cSrcweir 
672cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwXEndnoteProperties()673cdf0e10cSrcweir SwXEndnoteProperties::~SwXEndnoteProperties()
674cdf0e10cSrcweir {
675cdf0e10cSrcweir 
676cdf0e10cSrcweir }
677cdf0e10cSrcweir /*-- 14.12.98 14:27:40---------------------------------------------------
678cdf0e10cSrcweir 
679cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertySetInfo(void)680cdf0e10cSrcweir uno::Reference< beans::XPropertySetInfo >  SwXEndnoteProperties::getPropertySetInfo(void) throw( uno::RuntimeException )
681cdf0e10cSrcweir {
682cdf0e10cSrcweir     static uno::Reference< beans::XPropertySetInfo >  aRef = m_pPropertySet->getPropertySetInfo();
683cdf0e10cSrcweir 	return aRef;
684cdf0e10cSrcweir }
685cdf0e10cSrcweir /*-- 14.12.98 14:27:40---------------------------------------------------
686cdf0e10cSrcweir 
687cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setPropertyValue(const OUString & rPropertyName,const uno::Any & aValue)688cdf0e10cSrcweir void SwXEndnoteProperties::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
689cdf0e10cSrcweir 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
690cdf0e10cSrcweir 		lang::WrappedTargetException, uno::RuntimeException )
691cdf0e10cSrcweir {
692cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
693cdf0e10cSrcweir 	if(pDoc)
694cdf0e10cSrcweir 	{
695cdf0e10cSrcweir         const SfxItemPropertySimpleEntry*  pEntry = m_pPropertySet->getPropertyMap()->getByName( rPropertyName );
696cdf0e10cSrcweir         if(pEntry)
697cdf0e10cSrcweir 		{
698cdf0e10cSrcweir             if ( pEntry->nFlags & PropertyAttribute::READONLY)
699cdf0e10cSrcweir                 throw PropertyVetoException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
700cdf0e10cSrcweir 			SwEndNoteInfo aEndInfo(pDoc->GetEndNoteInfo());
701cdf0e10cSrcweir             switch(pEntry->nWID)
702cdf0e10cSrcweir 			{
703cdf0e10cSrcweir 				case WID_PREFIX:
704cdf0e10cSrcweir 				{
705cdf0e10cSrcweir 					OUString uTmp;
706cdf0e10cSrcweir 					aValue >>= uTmp;
707cdf0e10cSrcweir 					aEndInfo.SetPrefix(uTmp);
708cdf0e10cSrcweir 				}
709cdf0e10cSrcweir 				break;
710cdf0e10cSrcweir 				case WID_SUFFIX:
711cdf0e10cSrcweir 				{
712cdf0e10cSrcweir 					OUString uTmp;
713cdf0e10cSrcweir 					aValue >>= uTmp;
714cdf0e10cSrcweir 					aEndInfo.SetSuffix(uTmp);
715cdf0e10cSrcweir 				}
716cdf0e10cSrcweir 				break;
717cdf0e10cSrcweir 				case  WID_NUMBERING_TYPE :
718cdf0e10cSrcweir 				{
719cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
720cdf0e10cSrcweir 					aValue >>= nTmp;
721cdf0e10cSrcweir 					aEndInfo.aFmt.SetNumberingType(nTmp);
722cdf0e10cSrcweir 				}
723cdf0e10cSrcweir 				break;
724cdf0e10cSrcweir 				case  WID_START_AT:
725cdf0e10cSrcweir 				{
726cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
727cdf0e10cSrcweir 					aValue >>= nTmp;
728cdf0e10cSrcweir 					aEndInfo.nFtnOffset = nTmp;
729cdf0e10cSrcweir 				}
730cdf0e10cSrcweir 				break;
731cdf0e10cSrcweir 				case  WID_PARAGRAPH_STYLE    :
732cdf0e10cSrcweir 				{
733cdf0e10cSrcweir 					SwTxtFmtColl* pColl = lcl_GetParaStyle(pDoc, aValue);
734cdf0e10cSrcweir 					if(pColl)
735cdf0e10cSrcweir 						aEndInfo.SetFtnTxtColl(*pColl);
736cdf0e10cSrcweir 				}
737cdf0e10cSrcweir 				break;
738cdf0e10cSrcweir 				case  WID_PAGE_STYLE :
739cdf0e10cSrcweir 				{
740cdf0e10cSrcweir 					SwPageDesc* pDesc = lcl_GetPageDesc(pDoc, aValue);
741cdf0e10cSrcweir 					if(pDesc)
742cdf0e10cSrcweir 						aEndInfo.ChgPageDesc( pDesc );
743cdf0e10cSrcweir 				}
744cdf0e10cSrcweir 				break;
745cdf0e10cSrcweir 				case WID_ANCHOR_CHARACTER_STYLE:
746cdf0e10cSrcweir 				case  WID_CHARACTER_STYLE    :
747cdf0e10cSrcweir 				{
748cdf0e10cSrcweir 					SwCharFmt* pFmt = lcl_getCharFmt(pDoc, aValue);
749cdf0e10cSrcweir 					if(pFmt)
750cdf0e10cSrcweir 					{
751cdf0e10cSrcweir                         if(pEntry->nWID == WID_ANCHOR_CHARACTER_STYLE)
752cdf0e10cSrcweir 							aEndInfo.SetAnchorCharFmt(pFmt);
753cdf0e10cSrcweir 						else
754cdf0e10cSrcweir 							aEndInfo.SetCharFmt(pFmt);
755cdf0e10cSrcweir 					}
756cdf0e10cSrcweir 				}
757cdf0e10cSrcweir 				break;
758cdf0e10cSrcweir 			}
759cdf0e10cSrcweir 			pDoc->SetEndNoteInfo(aEndInfo);
760cdf0e10cSrcweir 		}
761cdf0e10cSrcweir 		else
762cdf0e10cSrcweir 	        throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
763cdf0e10cSrcweir 	}
764cdf0e10cSrcweir }
765cdf0e10cSrcweir /*-- 14.12.98 14:27:41---------------------------------------------------
766cdf0e10cSrcweir 
767cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertyValue(const OUString & rPropertyName)768cdf0e10cSrcweir uno::Any SwXEndnoteProperties::getPropertyValue(const OUString& rPropertyName)
769cdf0e10cSrcweir 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
770cdf0e10cSrcweir {
771cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
772cdf0e10cSrcweir 	uno::Any aRet;
773cdf0e10cSrcweir 	if(pDoc)
774cdf0e10cSrcweir 	{
775cdf0e10cSrcweir         const SfxItemPropertySimpleEntry*  pEntry = m_pPropertySet->getPropertyMap()->getByName( rPropertyName );
776cdf0e10cSrcweir         if(pEntry)
777cdf0e10cSrcweir 		{
778cdf0e10cSrcweir 			const SwEndNoteInfo& rEndInfo = pDoc->GetEndNoteInfo();
779cdf0e10cSrcweir             switch(pEntry->nWID)
780cdf0e10cSrcweir 			{
781cdf0e10cSrcweir 				case WID_PREFIX:
782cdf0e10cSrcweir 					aRet <<= OUString(rEndInfo.GetPrefix());
783cdf0e10cSrcweir 				break;
784cdf0e10cSrcweir 				case WID_SUFFIX:
785cdf0e10cSrcweir 					aRet <<= OUString(rEndInfo.GetSuffix());
786cdf0e10cSrcweir 				break;
787cdf0e10cSrcweir 				case  WID_NUMBERING_TYPE :
788cdf0e10cSrcweir 					aRet <<= rEndInfo.aFmt.GetNumberingType();
789cdf0e10cSrcweir 				break;
790cdf0e10cSrcweir 				case  WID_START_AT:
791cdf0e10cSrcweir 					aRet <<= (sal_Int16)rEndInfo.nFtnOffset;
792cdf0e10cSrcweir 				break;
793cdf0e10cSrcweir 				case  WID_PARAGRAPH_STYLE    :
794cdf0e10cSrcweir 				{
795cdf0e10cSrcweir 					SwTxtFmtColl* pColl = rEndInfo.GetFtnTxtColl();
796cdf0e10cSrcweir 					String aString;
797cdf0e10cSrcweir 					if(pColl)
798cdf0e10cSrcweir 						aString = pColl->GetName();
799cdf0e10cSrcweir 					SwStyleNameMapper::FillProgName(
800cdf0e10cSrcweir 							aString,
801cdf0e10cSrcweir 							aString,
802cdf0e10cSrcweir 							nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,
803cdf0e10cSrcweir 							sal_True);
804cdf0e10cSrcweir 					aRet <<= OUString ( aString );
805cdf0e10cSrcweir 
806cdf0e10cSrcweir 				}
807cdf0e10cSrcweir 				break;
808cdf0e10cSrcweir 				case  WID_PAGE_STYLE :
809cdf0e10cSrcweir 				{
810cdf0e10cSrcweir 					String aString;
811cdf0e10cSrcweir 					if( rEndInfo.KnowsPageDesc() )
812cdf0e10cSrcweir 					{
813cdf0e10cSrcweir 						SwStyleNameMapper::FillProgName(
814cdf0e10cSrcweir 							rEndInfo.GetPageDesc( *pDoc )->GetName(),
815cdf0e10cSrcweir 							aString,
816cdf0e10cSrcweir 							nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC,
817cdf0e10cSrcweir 							sal_True );
818cdf0e10cSrcweir 					}
819cdf0e10cSrcweir 					aRet <<= OUString ( aString );
820cdf0e10cSrcweir 				}
821cdf0e10cSrcweir 				break;
822cdf0e10cSrcweir 				case WID_ANCHOR_CHARACTER_STYLE:
823cdf0e10cSrcweir 				case WID_CHARACTER_STYLE:
824cdf0e10cSrcweir 				{
825cdf0e10cSrcweir 					String aString;
826cdf0e10cSrcweir 					const SwCharFmt* pCharFmt = 0;
827cdf0e10cSrcweir                     if( pEntry->nWID == WID_ANCHOR_CHARACTER_STYLE )
828cdf0e10cSrcweir 					{
829cdf0e10cSrcweir 						if( rEndInfo.GetAnchorCharFmtDep()->GetRegisteredIn() )
830cdf0e10cSrcweir 							pCharFmt = rEndInfo.GetAnchorCharFmt(*pDoc);
831cdf0e10cSrcweir 					}
832cdf0e10cSrcweir 					else
833cdf0e10cSrcweir 					{
834cdf0e10cSrcweir 						if( rEndInfo.GetCharFmtDep()->GetRegisteredIn() )
835cdf0e10cSrcweir 							pCharFmt = rEndInfo.GetCharFmt(*pDoc);
836cdf0e10cSrcweir 					}
837cdf0e10cSrcweir 					if( pCharFmt )
838cdf0e10cSrcweir 					{
839cdf0e10cSrcweir 						SwStyleNameMapper::FillProgName(
840cdf0e10cSrcweir 								pCharFmt->GetName(),
841cdf0e10cSrcweir 								aString,
842cdf0e10cSrcweir 								nsSwGetPoolIdFromName::GET_POOLID_CHRFMT,
843cdf0e10cSrcweir 								sal_True );
844cdf0e10cSrcweir 					}
845cdf0e10cSrcweir 					aRet <<= OUString ( aString );
846cdf0e10cSrcweir 				}
847cdf0e10cSrcweir 				break;
848cdf0e10cSrcweir 			}
849cdf0e10cSrcweir 		}
850cdf0e10cSrcweir 		else
851cdf0e10cSrcweir  	       throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
852cdf0e10cSrcweir 	}
853cdf0e10cSrcweir 	return aRet;
854cdf0e10cSrcweir }
855cdf0e10cSrcweir /*-- 14.12.98 14:27:41---------------------------------------------------
856cdf0e10cSrcweir 
857cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addPropertyChangeListener(const OUString &,const uno::Reference<beans::XPropertyChangeListener> &)858cdf0e10cSrcweir void SwXEndnoteProperties::addPropertyChangeListener(
859cdf0e10cSrcweir 	const OUString& /*PropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
860cdf0e10cSrcweir {
861cdf0e10cSrcweir 	DBG_WARNING("not implemented");
862cdf0e10cSrcweir }
863cdf0e10cSrcweir /*-- 14.12.98 14:27:41---------------------------------------------------
864cdf0e10cSrcweir 
865cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removePropertyChangeListener(const OUString &,const uno::Reference<beans::XPropertyChangeListener> &)866cdf0e10cSrcweir void SwXEndnoteProperties::removePropertyChangeListener(const OUString& /*PropertyName*/,
867cdf0e10cSrcweir 		const uno:: Reference< beans::XPropertyChangeListener > & /*xListener*/)
868cdf0e10cSrcweir 		throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
869cdf0e10cSrcweir {
870cdf0e10cSrcweir 	DBG_WARNING("not implemented");
871cdf0e10cSrcweir }
872cdf0e10cSrcweir /*-- 14.12.98 14:27:41---------------------------------------------------
873cdf0e10cSrcweir 
874cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addVetoableChangeListener(const OUString &,const uno::Reference<beans::XVetoableChangeListener> &)875cdf0e10cSrcweir void SwXEndnoteProperties::addVetoableChangeListener(const OUString& /*PropertyName*/,
876cdf0e10cSrcweir 	const uno:: Reference< beans::XVetoableChangeListener > & /*xListener*/)
877cdf0e10cSrcweir 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
878cdf0e10cSrcweir {
879cdf0e10cSrcweir 	DBG_WARNING("not implemented");
880cdf0e10cSrcweir }
881cdf0e10cSrcweir /*-- 14.12.98 14:27:42---------------------------------------------------
882cdf0e10cSrcweir 
883cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removeVetoableChangeListener(const OUString &,const uno::Reference<beans::XVetoableChangeListener> &)884cdf0e10cSrcweir void SwXEndnoteProperties::removeVetoableChangeListener(const OUString& /*PropertyName*/, const uno:: Reference< beans::XVetoableChangeListener > & /*xListener*/)
885cdf0e10cSrcweir 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
886cdf0e10cSrcweir {
887cdf0e10cSrcweir 	DBG_WARNING("not implemented");
888cdf0e10cSrcweir }
889cdf0e10cSrcweir /******************************************************************
890cdf0e10cSrcweir  * SwXLineNumberingProperties
891cdf0e10cSrcweir  ******************************************************************/
892cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
893cdf0e10cSrcweir 
894cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getImplementationName(void)895cdf0e10cSrcweir OUString SwXLineNumberingProperties::getImplementationName(void) throw( RuntimeException )
896cdf0e10cSrcweir {
897cdf0e10cSrcweir 	return C2U("SwXLineNumberingProperties");
898cdf0e10cSrcweir }
899cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
900cdf0e10cSrcweir 
901cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)902cdf0e10cSrcweir sal_Bool SwXLineNumberingProperties::supportsService(const OUString& rServiceName) throw( RuntimeException )
903cdf0e10cSrcweir {
904cdf0e10cSrcweir 	return C2U("com.sun.star.text.LineNumberingProperties") == rServiceName;
905cdf0e10cSrcweir }
906cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
907cdf0e10cSrcweir 
908cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)909cdf0e10cSrcweir Sequence< OUString > SwXLineNumberingProperties::getSupportedServiceNames(void) throw( RuntimeException )
910cdf0e10cSrcweir {
911cdf0e10cSrcweir 	Sequence< OUString > aRet(1);
912cdf0e10cSrcweir 	OUString* pArray = aRet.getArray();
913cdf0e10cSrcweir 	pArray[0] = C2U("com.sun.star.text.LineNumberingProperties");
914cdf0e10cSrcweir 	return aRet;
915cdf0e10cSrcweir }
916cdf0e10cSrcweir /*-- 14.12.98 14:33:36---------------------------------------------------
917cdf0e10cSrcweir 
918cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwXLineNumberingProperties(SwDoc * pDc)919cdf0e10cSrcweir SwXLineNumberingProperties::SwXLineNumberingProperties(SwDoc* pDc) :
920cdf0e10cSrcweir 	pDoc(pDc),
921cdf0e10cSrcweir     m_pPropertySet(GetLineNumberingSet())
922cdf0e10cSrcweir {
923cdf0e10cSrcweir 
924cdf0e10cSrcweir }
925cdf0e10cSrcweir /*-- 14.12.98 14:33:37---------------------------------------------------
926cdf0e10cSrcweir 
927cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwXLineNumberingProperties()928cdf0e10cSrcweir SwXLineNumberingProperties::~SwXLineNumberingProperties()
929cdf0e10cSrcweir {
930cdf0e10cSrcweir 
931cdf0e10cSrcweir }
932cdf0e10cSrcweir /*-- 14.12.98 14:33:37---------------------------------------------------
933cdf0e10cSrcweir 
934cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertySetInfo(void)935cdf0e10cSrcweir uno::Reference< beans::XPropertySetInfo >  SwXLineNumberingProperties::getPropertySetInfo(void) throw( uno::RuntimeException )
936cdf0e10cSrcweir {
937cdf0e10cSrcweir     static uno::Reference< beans::XPropertySetInfo >  aRef = m_pPropertySet->getPropertySetInfo();
938cdf0e10cSrcweir 	return aRef;
939cdf0e10cSrcweir }
940cdf0e10cSrcweir /*-- 14.12.98 14:33:37---------------------------------------------------
941cdf0e10cSrcweir 
942cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setPropertyValue(const OUString & rPropertyName,const Any & aValue)943cdf0e10cSrcweir void SwXLineNumberingProperties::setPropertyValue(
944cdf0e10cSrcweir 	const OUString& rPropertyName, const Any& aValue)
945cdf0e10cSrcweir 		throw( UnknownPropertyException, PropertyVetoException,
946cdf0e10cSrcweir 				IllegalArgumentException, WrappedTargetException, RuntimeException )
947cdf0e10cSrcweir {
948cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
949cdf0e10cSrcweir 	if(pDoc)
950cdf0e10cSrcweir 	{
951cdf0e10cSrcweir         const SfxItemPropertySimpleEntry*  pEntry = m_pPropertySet->getPropertyMap()->getByName( rPropertyName );
952cdf0e10cSrcweir         if(pEntry)
953cdf0e10cSrcweir 		{
954cdf0e10cSrcweir             if ( pEntry->nFlags & PropertyAttribute::READONLY)
955cdf0e10cSrcweir                 throw PropertyVetoException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
956cdf0e10cSrcweir 			SwLineNumberInfo  aInfo(pDoc->GetLineNumberInfo());
957cdf0e10cSrcweir             switch(pEntry->nWID)
958cdf0e10cSrcweir 			{
959cdf0e10cSrcweir 				case WID_NUM_ON:
960cdf0e10cSrcweir 				{
961cdf0e10cSrcweir 					sal_Bool bVal = *(sal_Bool*)aValue.getValue();
962cdf0e10cSrcweir 					aInfo.SetPaintLineNumbers(bVal);
963cdf0e10cSrcweir 				}
964cdf0e10cSrcweir 				break;
965cdf0e10cSrcweir 				case WID_CHARACTER_STYLE :
966cdf0e10cSrcweir 				{
967cdf0e10cSrcweir 					SwCharFmt* pFmt = lcl_getCharFmt(pDoc, aValue);
968cdf0e10cSrcweir 					if(pFmt)
969cdf0e10cSrcweir 						aInfo.SetCharFmt(pFmt);
970cdf0e10cSrcweir 				}
971cdf0e10cSrcweir 				break;
972cdf0e10cSrcweir 				case WID_NUMBERING_TYPE  :
973cdf0e10cSrcweir 				{
974cdf0e10cSrcweir 					SvxNumberType aNumType(aInfo.GetNumType());
975cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
976cdf0e10cSrcweir 					aValue >>= nTmp;
977cdf0e10cSrcweir 					aNumType.SetNumberingType(nTmp);
978cdf0e10cSrcweir 					aInfo.SetNumType(aNumType);
979cdf0e10cSrcweir 				}
980cdf0e10cSrcweir 				break;
981cdf0e10cSrcweir 				case WID_NUMBER_POSITION :
982cdf0e10cSrcweir 				{
983cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
984cdf0e10cSrcweir 					aValue >>= nTmp;
985cdf0e10cSrcweir 					switch(nTmp)
986cdf0e10cSrcweir 					{
987cdf0e10cSrcweir 						case  style::LineNumberPosition::LEFT:
988cdf0e10cSrcweir 							 aInfo.SetPos(LINENUMBER_POS_LEFT); ;
989cdf0e10cSrcweir 						break;
990cdf0e10cSrcweir 						case style::LineNumberPosition::RIGHT :
991cdf0e10cSrcweir 							 aInfo.SetPos(LINENUMBER_POS_RIGHT);       ;
992cdf0e10cSrcweir 						break;
993cdf0e10cSrcweir 						case  style::LineNumberPosition::INSIDE:
994cdf0e10cSrcweir 							aInfo.SetPos(LINENUMBER_POS_INSIDE);      ;
995cdf0e10cSrcweir 						break;
996cdf0e10cSrcweir 						case  style::LineNumberPosition::OUTSIDE:
997cdf0e10cSrcweir 							aInfo.SetPos(LINENUMBER_POS_OUTSIDE);
998cdf0e10cSrcweir 						break;
999cdf0e10cSrcweir 					}
1000cdf0e10cSrcweir 				}
1001cdf0e10cSrcweir 				break;
1002cdf0e10cSrcweir 				case WID_DISTANCE        :
1003cdf0e10cSrcweir 				{
1004cdf0e10cSrcweir 					sal_Int32 nVal = 0;
1005cdf0e10cSrcweir 					aValue >>= nVal;
1006cdf0e10cSrcweir                     sal_Int32 nTmp = MM100_TO_TWIP(nVal);
1007cdf0e10cSrcweir                     if (nTmp > USHRT_MAX)
1008cdf0e10cSrcweir                         nTmp = USHRT_MAX;
1009cdf0e10cSrcweir                     aInfo.SetPosFromLeft( static_cast< sal_uInt16 >(nTmp) );
1010cdf0e10cSrcweir 				}
1011cdf0e10cSrcweir 				break;
1012cdf0e10cSrcweir 				case WID_INTERVAL   :
1013cdf0e10cSrcweir 				{
1014cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
1015cdf0e10cSrcweir                     aValue >>= nTmp;
1016cdf0e10cSrcweir                     if( nTmp > 0)
1017cdf0e10cSrcweir 					    aInfo.SetCountBy(nTmp);
1018cdf0e10cSrcweir 				}
1019cdf0e10cSrcweir 				break;
1020cdf0e10cSrcweir 				case WID_SEPARATOR_TEXT  :
1021cdf0e10cSrcweir 				{
1022cdf0e10cSrcweir 					OUString uTmp;
1023cdf0e10cSrcweir 					aValue >>= uTmp;
1024cdf0e10cSrcweir 					aInfo.SetDivider(uTmp);
1025cdf0e10cSrcweir 				}
1026cdf0e10cSrcweir 				break;
1027cdf0e10cSrcweir 				case WID_SEPARATOR_INTERVAL:
1028cdf0e10cSrcweir 				{
1029cdf0e10cSrcweir 					sal_Int16 nTmp = 0;
1030cdf0e10cSrcweir 					aValue >>= nTmp;
1031cdf0e10cSrcweir                     if( nTmp >= 0)
1032cdf0e10cSrcweir 					    aInfo.SetDividerCountBy(nTmp);
1033cdf0e10cSrcweir 				}
1034cdf0e10cSrcweir 				break;
1035cdf0e10cSrcweir 				case WID_COUNT_EMPTY_LINES :
1036cdf0e10cSrcweir 				{
1037cdf0e10cSrcweir 					sal_Bool bVal = *(sal_Bool*)aValue.getValue();
1038cdf0e10cSrcweir 					aInfo.SetCountBlankLines(bVal);
1039cdf0e10cSrcweir 				}
1040cdf0e10cSrcweir 				break;
1041cdf0e10cSrcweir 				case WID_COUNT_LINES_IN_FRAMES :
1042cdf0e10cSrcweir 				{
1043cdf0e10cSrcweir 					sal_Bool bVal = *(sal_Bool*)aValue.getValue();
1044cdf0e10cSrcweir 					aInfo.SetCountInFlys(bVal);
1045cdf0e10cSrcweir 				}
1046cdf0e10cSrcweir 				break;
1047cdf0e10cSrcweir 				case WID_RESTART_AT_EACH_PAGE :
1048cdf0e10cSrcweir 				{
1049cdf0e10cSrcweir 					sal_Bool bVal = *(sal_Bool*)aValue.getValue();
1050cdf0e10cSrcweir 					aInfo.SetRestartEachPage(bVal);
1051cdf0e10cSrcweir 				}
1052cdf0e10cSrcweir 				break;
1053cdf0e10cSrcweir 			}
1054cdf0e10cSrcweir 			pDoc->SetLineNumberInfo(aInfo);
1055cdf0e10cSrcweir 		}
1056cdf0e10cSrcweir 		else
1057cdf0e10cSrcweir 	        throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
1058cdf0e10cSrcweir 	}
1059cdf0e10cSrcweir 	else
1060cdf0e10cSrcweir 		throw uno::RuntimeException();
1061cdf0e10cSrcweir }
1062cdf0e10cSrcweir /*-- 14.12.98 14:33:38---------------------------------------------------
1063cdf0e10cSrcweir 
1064cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertyValue(const OUString & rPropertyName)1065cdf0e10cSrcweir Any SwXLineNumberingProperties::getPropertyValue(const OUString& rPropertyName)
1066cdf0e10cSrcweir 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
1067cdf0e10cSrcweir {
1068cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
1069cdf0e10cSrcweir 	Any aRet;
1070cdf0e10cSrcweir 	if(pDoc)
1071cdf0e10cSrcweir 	{
1072cdf0e10cSrcweir         const SfxItemPropertySimpleEntry*  pEntry = m_pPropertySet->getPropertyMap()->getByName( rPropertyName );
1073cdf0e10cSrcweir         if(pEntry)
1074cdf0e10cSrcweir 		{
1075cdf0e10cSrcweir 			const SwLineNumberInfo& rInfo = pDoc->GetLineNumberInfo();
1076cdf0e10cSrcweir             switch(pEntry->nWID)
1077cdf0e10cSrcweir 			{
1078cdf0e10cSrcweir 				case WID_NUM_ON:
1079cdf0e10cSrcweir 				{
1080cdf0e10cSrcweir 					sal_Bool bTemp = rInfo.IsPaintLineNumbers();
1081cdf0e10cSrcweir 					aRet.setValue(&bTemp, ::getCppuBooleanType());
1082cdf0e10cSrcweir 				}
1083cdf0e10cSrcweir 				break;
1084cdf0e10cSrcweir 				case WID_CHARACTER_STYLE :
1085cdf0e10cSrcweir                 {
1086cdf0e10cSrcweir                     String aString;
1087cdf0e10cSrcweir                     // return empty string if no char format is set
1088cdf0e10cSrcweir                     // otherwise it would be created here
1089cdf0e10cSrcweir                     if(rInfo.HasCharFormat())
1090cdf0e10cSrcweir                     {
1091cdf0e10cSrcweir                         SwStyleNameMapper::FillProgName(
1092cdf0e10cSrcweir                                     rInfo.GetCharFmt(*pDoc)->GetName(),
1093cdf0e10cSrcweir 									aString,
1094cdf0e10cSrcweir                                     nsSwGetPoolIdFromName::GET_POOLID_CHRFMT,
1095cdf0e10cSrcweir 									sal_True);
1096cdf0e10cSrcweir                     }
1097cdf0e10cSrcweir                     aRet <<= OUString ( aString );
1098cdf0e10cSrcweir                 }
1099cdf0e10cSrcweir                 break;
1100cdf0e10cSrcweir 				case WID_NUMBERING_TYPE  :
1101cdf0e10cSrcweir 					aRet <<= rInfo.GetNumType().GetNumberingType();
1102cdf0e10cSrcweir 				break;
1103cdf0e10cSrcweir 				case WID_NUMBER_POSITION :
1104cdf0e10cSrcweir 				{
1105cdf0e10cSrcweir 					sal_Int16 nRet = 0;
1106cdf0e10cSrcweir 					switch(rInfo.GetPos())
1107cdf0e10cSrcweir 					{
1108cdf0e10cSrcweir 						case  LINENUMBER_POS_LEFT:
1109cdf0e10cSrcweir 							nRet = style::LineNumberPosition::LEFT;
1110cdf0e10cSrcweir 						break;
1111cdf0e10cSrcweir 						case LINENUMBER_POS_RIGHT :
1112cdf0e10cSrcweir 							nRet = style::LineNumberPosition::RIGHT      ;
1113cdf0e10cSrcweir 						break;
1114cdf0e10cSrcweir 						case  LINENUMBER_POS_INSIDE:
1115cdf0e10cSrcweir 							nRet = style::LineNumberPosition::INSIDE     ;
1116cdf0e10cSrcweir 						break;
1117cdf0e10cSrcweir 						case LINENUMBER_POS_OUTSIDE :
1118cdf0e10cSrcweir 							nRet = style::LineNumberPosition::OUTSIDE    ;
1119cdf0e10cSrcweir 						break;
1120cdf0e10cSrcweir 					}
1121cdf0e10cSrcweir 					aRet <<= nRet;
1122cdf0e10cSrcweir 				}
1123cdf0e10cSrcweir 				break;
1124cdf0e10cSrcweir 				case WID_DISTANCE        :
1125cdf0e10cSrcweir 				{
1126cdf0e10cSrcweir 					sal_uInt32 nPos = rInfo.GetPosFromLeft();
1127cdf0e10cSrcweir 					if(USHRT_MAX == nPos)
1128cdf0e10cSrcweir 						nPos = 0;
1129cdf0e10cSrcweir 					aRet <<= static_cast < sal_Int32 >(TWIP_TO_MM100_UNSIGNED(nPos));
1130cdf0e10cSrcweir 				}
1131cdf0e10cSrcweir 				break;
1132cdf0e10cSrcweir 				case WID_INTERVAL   :
1133cdf0e10cSrcweir 					aRet <<= (sal_Int16)rInfo.GetCountBy();
1134cdf0e10cSrcweir 				break;
1135cdf0e10cSrcweir 				case WID_SEPARATOR_TEXT  :
1136cdf0e10cSrcweir 					aRet <<= OUString(rInfo.GetDivider());
1137cdf0e10cSrcweir 				break;
1138cdf0e10cSrcweir 				case WID_SEPARATOR_INTERVAL:
1139cdf0e10cSrcweir 					aRet <<= (sal_Int16)rInfo.GetDividerCountBy();
1140cdf0e10cSrcweir 				break;
1141cdf0e10cSrcweir 				case WID_COUNT_EMPTY_LINES :
1142cdf0e10cSrcweir 				{
1143cdf0e10cSrcweir 					sal_Bool bTemp = rInfo.IsCountBlankLines();
1144cdf0e10cSrcweir 					aRet.setValue(&bTemp, ::getCppuBooleanType());
1145cdf0e10cSrcweir 				}
1146cdf0e10cSrcweir 				break;
1147cdf0e10cSrcweir 				case WID_COUNT_LINES_IN_FRAMES :
1148cdf0e10cSrcweir 				{
1149cdf0e10cSrcweir 					sal_Bool bTemp = rInfo.IsCountInFlys();
1150cdf0e10cSrcweir 					aRet.setValue(&bTemp, ::getCppuBooleanType());
1151cdf0e10cSrcweir 				}
1152cdf0e10cSrcweir 				break;
1153cdf0e10cSrcweir 				case WID_RESTART_AT_EACH_PAGE :
1154cdf0e10cSrcweir 				{
1155cdf0e10cSrcweir 					sal_Bool bTemp = rInfo.IsRestartEachPage();
1156cdf0e10cSrcweir 					aRet.setValue(&bTemp, ::getCppuBooleanType());
1157cdf0e10cSrcweir 				}
1158cdf0e10cSrcweir 				break;
1159cdf0e10cSrcweir 			}
1160cdf0e10cSrcweir 		}
1161cdf0e10cSrcweir 		else
1162cdf0e10cSrcweir 	        throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
1163cdf0e10cSrcweir 	}
1164cdf0e10cSrcweir 	else
1165cdf0e10cSrcweir 		throw uno::RuntimeException();
1166cdf0e10cSrcweir 	return aRet;
1167cdf0e10cSrcweir }
1168cdf0e10cSrcweir /*-- 14.12.98 14:33:38---------------------------------------------------
1169cdf0e10cSrcweir 
1170cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addPropertyChangeListener(const OUString &,const uno::Reference<beans::XPropertyChangeListener> &)1171cdf0e10cSrcweir void SwXLineNumberingProperties::addPropertyChangeListener(const OUString& /*rPropertyName*/, const uno:: Reference< beans::XPropertyChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
1172cdf0e10cSrcweir {
1173cdf0e10cSrcweir DBG_WARNING("not implemented");
1174cdf0e10cSrcweir }
1175cdf0e10cSrcweir /*-- 14.12.98 14:33:38---------------------------------------------------
1176cdf0e10cSrcweir 
1177cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removePropertyChangeListener(const OUString &,const uno::Reference<beans::XPropertyChangeListener> &)1178cdf0e10cSrcweir void SwXLineNumberingProperties::removePropertyChangeListener(const OUString& /*rPropertyName*/, const uno:: Reference< beans::XPropertyChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
1179cdf0e10cSrcweir {
1180cdf0e10cSrcweir DBG_WARNING("not implemented");
1181cdf0e10cSrcweir }
1182cdf0e10cSrcweir /*-- 14.12.98 14:33:39---------------------------------------------------
1183cdf0e10cSrcweir 
1184cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addVetoableChangeListener(const OUString &,const uno::Reference<beans::XVetoableChangeListener> &)1185cdf0e10cSrcweir void SwXLineNumberingProperties::addVetoableChangeListener(const OUString& /*rPropertyName*/, const uno:: Reference< beans::XVetoableChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
1186cdf0e10cSrcweir {
1187cdf0e10cSrcweir DBG_WARNING("not implemented");
1188cdf0e10cSrcweir }
1189cdf0e10cSrcweir /*-- 14.12.98 14:33:39---------------------------------------------------
1190cdf0e10cSrcweir 
1191cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removeVetoableChangeListener(const OUString &,const uno::Reference<beans::XVetoableChangeListener> &)1192cdf0e10cSrcweir void SwXLineNumberingProperties::removeVetoableChangeListener(const OUString& /*rPropertyName*/, const uno:: Reference< beans::XVetoableChangeListener > & /*xListener*/)
1193cdf0e10cSrcweir 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
1194cdf0e10cSrcweir {
1195cdf0e10cSrcweir DBG_WARNING("not implemented");
1196cdf0e10cSrcweir }
1197cdf0e10cSrcweir /******************************************************************
1198cdf0e10cSrcweir  * SwXNumberingRules
1199cdf0e10cSrcweir  ******************************************************************/
1200cdf0e10cSrcweir String	SwXNumberingRules::sInvalidStyle(String::CreateFromAscii("__XXX___invalid"));
1201cdf0e10cSrcweir 
GetInvalidStyle()1202cdf0e10cSrcweir const String&	SwXNumberingRules::GetInvalidStyle()
1203cdf0e10cSrcweir {
1204cdf0e10cSrcweir 	return sInvalidStyle;
1205cdf0e10cSrcweir }
1206cdf0e10cSrcweir /* -----------------------------10.03.00 17:05--------------------------------
1207cdf0e10cSrcweir 
1208cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getUnoTunnelId()1209cdf0e10cSrcweir const uno::Sequence< sal_Int8 > & SwXNumberingRules::getUnoTunnelId()
1210cdf0e10cSrcweir {
1211cdf0e10cSrcweir     static uno::Sequence< sal_Int8 > aSeq = ::CreateUnoTunnelId();
1212cdf0e10cSrcweir 	return aSeq;
1213cdf0e10cSrcweir }
1214cdf0e10cSrcweir /* -----------------------------10.03.00 17:05--------------------------------
1215cdf0e10cSrcweir 
1216cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
1217cdf0e10cSrcweir // return implementation specific data
getSomething(const uno::Sequence<sal_Int8> & rId)1218cdf0e10cSrcweir sal_Int64 SwXNumberingRules::getSomething( const uno::Sequence< sal_Int8 > & rId ) throw(uno::RuntimeException)
1219cdf0e10cSrcweir {
1220cdf0e10cSrcweir     if( rId.getLength() == 16
1221cdf0e10cSrcweir         && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
1222cdf0e10cSrcweir 										rId.getConstArray(), 16 ) )
1223cdf0e10cSrcweir 	{
1224cdf0e10cSrcweir 		return sal::static_int_cast< sal_Int64 >( reinterpret_cast< sal_IntPtr >(this) );
1225cdf0e10cSrcweir 	}
1226cdf0e10cSrcweir 	return 0;
1227cdf0e10cSrcweir }
1228cdf0e10cSrcweir 
1229cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
1230cdf0e10cSrcweir 
1231cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getImplementationName(void)1232cdf0e10cSrcweir OUString SwXNumberingRules::getImplementationName(void) throw( RuntimeException )
1233cdf0e10cSrcweir {
1234cdf0e10cSrcweir 	return C2U("SwXNumberingRules");
1235cdf0e10cSrcweir }
1236cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
1237cdf0e10cSrcweir 
1238cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)1239cdf0e10cSrcweir sal_Bool SwXNumberingRules::supportsService(const OUString& rServiceName) throw( RuntimeException )
1240cdf0e10cSrcweir {
1241cdf0e10cSrcweir 	return C2U("com.sun.star.text.NumberingRules") == rServiceName;
1242cdf0e10cSrcweir }
1243cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
1244cdf0e10cSrcweir 
1245cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)1246cdf0e10cSrcweir Sequence< OUString > SwXNumberingRules::getSupportedServiceNames(void) throw( RuntimeException )
1247cdf0e10cSrcweir {
1248cdf0e10cSrcweir 	Sequence< OUString > aRet(1);
1249cdf0e10cSrcweir 	OUString* pArray = aRet.getArray();
1250cdf0e10cSrcweir 	pArray[0] = C2U("com.sun.star.text.NumberingRules");
1251cdf0e10cSrcweir 	return aRet;
1252cdf0e10cSrcweir }
1253cdf0e10cSrcweir 
1254cdf0e10cSrcweir /*-- 14.12.98 14:57:57---------------------------------------------------
1255cdf0e10cSrcweir 
1256cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwXNumberingRules(const SwNumRule & rRule)1257cdf0e10cSrcweir SwXNumberingRules::SwXNumberingRules(const SwNumRule& rRule) :
1258cdf0e10cSrcweir 	pDoc(0),
1259cdf0e10cSrcweir 	pDocShell(0),
1260cdf0e10cSrcweir 	pNumRule(new SwNumRule(rRule)),
1261cdf0e10cSrcweir     m_pPropertySet(GetNumberingRulesSet()),
1262cdf0e10cSrcweir 	bOwnNumRuleCreated(sal_True)
1263cdf0e10cSrcweir {
1264cdf0e10cSrcweir 	sal_uInt16 i;
1265cdf0e10cSrcweir 
1266cdf0e10cSrcweir 	//erstmal das Doc organisieren; es haengt an den gesetzten Zeichenvorlagen - wenn
1267cdf0e10cSrcweir 	// keine gesetzt sind, muss es auch ohne gehen
1268cdf0e10cSrcweir 	for( i = 0; i < MAXLEVEL; i++)
1269cdf0e10cSrcweir 	{
1270cdf0e10cSrcweir 		SwNumFmt rFmt(pNumRule->Get(i));
1271cdf0e10cSrcweir 		SwCharFmt* pCharFmt = rFmt.GetCharFmt();
1272cdf0e10cSrcweir 		if(pCharFmt)
1273cdf0e10cSrcweir 		{
1274cdf0e10cSrcweir 			pDoc = pCharFmt->GetDoc();
1275cdf0e10cSrcweir 			break;
1276cdf0e10cSrcweir 		}
1277cdf0e10cSrcweir 	}
1278cdf0e10cSrcweir 	if(pDoc)
1279cdf0e10cSrcweir 		pDoc->GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
1280cdf0e10cSrcweir 	for(i = 0; i < MAXLEVEL; i++)
1281cdf0e10cSrcweir 	{
1282cdf0e10cSrcweir 		sNewCharStyleNames[i] = SwXNumberingRules::GetInvalidStyle();
1283cdf0e10cSrcweir 		sNewBulletFontNames[i] = SwXNumberingRules::GetInvalidStyle();
1284cdf0e10cSrcweir 	}
1285cdf0e10cSrcweir }
1286cdf0e10cSrcweir /* -----------------22.02.99 16:35-------------------
1287cdf0e10cSrcweir  *
1288cdf0e10cSrcweir  * --------------------------------------------------*/
SwXNumberingRules(SwDocShell & rDocSh)1289cdf0e10cSrcweir SwXNumberingRules::SwXNumberingRules(SwDocShell& rDocSh) :
1290cdf0e10cSrcweir 	pDoc(0),
1291cdf0e10cSrcweir 	pDocShell(&rDocSh),
1292cdf0e10cSrcweir 	pNumRule(0),
1293cdf0e10cSrcweir     m_pPropertySet(GetNumberingRulesSet()),
1294cdf0e10cSrcweir 	bOwnNumRuleCreated(sal_False)
1295cdf0e10cSrcweir {
1296cdf0e10cSrcweir 	pDocShell->GetDoc()->GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
1297cdf0e10cSrcweir }
1298cdf0e10cSrcweir /* -----------------------------24.08.00 11:36--------------------------------
1299cdf0e10cSrcweir 
1300cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
SwXNumberingRules(SwDoc & rDoc)1301cdf0e10cSrcweir SwXNumberingRules::SwXNumberingRules(SwDoc& rDoc) :
1302cdf0e10cSrcweir 	pDoc(&rDoc),
1303cdf0e10cSrcweir 	pDocShell(0),
1304cdf0e10cSrcweir 	pNumRule(0),
1305cdf0e10cSrcweir     m_pPropertySet(GetNumberingRulesSet()),
1306cdf0e10cSrcweir 	bOwnNumRuleCreated(sal_False)
1307cdf0e10cSrcweir {
1308cdf0e10cSrcweir 	rDoc.GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
1309cdf0e10cSrcweir 	sCreatedNumRuleName = rDoc.GetUniqueNumRuleName();
1310cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1
1311cdf0e10cSrcweir 	sal_uInt16 nIndex =
1312cdf0e10cSrcweir #endif
1313cdf0e10cSrcweir     // --> OD 2008-02-11 #newlistlevelattrs#
1314cdf0e10cSrcweir     rDoc.MakeNumRule( sCreatedNumRuleName, 0, sal_False,
1315cdf0e10cSrcweir                       // --> OD 2008-06-06 #i89178#
1316cdf0e10cSrcweir                       numfunc::GetDefaultPositionAndSpaceMode() );
1317cdf0e10cSrcweir                       // <--
1318cdf0e10cSrcweir     // <--
1319cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1
1320cdf0e10cSrcweir     (void)nIndex;
1321cdf0e10cSrcweir #endif
1322cdf0e10cSrcweir }
1323cdf0e10cSrcweir /*-- 14.12.98 14:57:57---------------------------------------------------
1324cdf0e10cSrcweir 
1325cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwXNumberingRules()1326cdf0e10cSrcweir SwXNumberingRules::~SwXNumberingRules()
1327cdf0e10cSrcweir {
1328cdf0e10cSrcweir     vos::OGuard aGuard(Application::GetSolarMutex());
1329cdf0e10cSrcweir     if(pDoc && sCreatedNumRuleName.Len())
1330cdf0e10cSrcweir 		pDoc->DelNumRule( sCreatedNumRuleName );
1331cdf0e10cSrcweir 	if( pNumRule && bOwnNumRuleCreated )
1332cdf0e10cSrcweir 		delete pNumRule;
1333cdf0e10cSrcweir }
1334cdf0e10cSrcweir /*-- 14.12.98 14:57:58---------------------------------------------------
1335cdf0e10cSrcweir 
1336cdf0e10cSrcweir   -----------------------------------------------------------------------*/
replaceByIndex(sal_Int32 nIndex,const uno::Any & rElement)1337cdf0e10cSrcweir void SwXNumberingRules::replaceByIndex(sal_Int32 nIndex, const uno::Any& rElement)
1338cdf0e10cSrcweir 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException,
1339cdf0e10cSrcweir  				 lang::WrappedTargetException, uno::RuntimeException)
1340cdf0e10cSrcweir {
1341cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
1342cdf0e10cSrcweir     if(nIndex < 0 || MAXLEVEL <= nIndex)
1343cdf0e10cSrcweir 		throw lang::IndexOutOfBoundsException();
1344cdf0e10cSrcweir 
1345cdf0e10cSrcweir 	if(rElement.getValueType().getTypeClass() != uno::TypeClass_SEQUENCE)
1346cdf0e10cSrcweir 		throw lang::IllegalArgumentException();
1347cdf0e10cSrcweir 	const uno::Sequence<beans::PropertyValue>& rProperties =
1348cdf0e10cSrcweir 					*(const uno::Sequence<beans::PropertyValue>*)rElement.getValue();
1349cdf0e10cSrcweir 	SwNumRule* pRule = 0;
1350cdf0e10cSrcweir 	if(pNumRule)
1351cdf0e10cSrcweir 		SwXNumberingRules::SetNumberingRuleByIndex( *pNumRule,
1352cdf0e10cSrcweir 							rProperties, nIndex);
1353cdf0e10cSrcweir 	else if(pDocShell)
1354cdf0e10cSrcweir 	{
1355cdf0e10cSrcweir         // --> OD 2008-04-21 #i87650# - correction of cws swwarnings:
1356cdf0e10cSrcweir         // Do not set member <pNumRule>
1357cdf0e10cSrcweir //        pNumRule = pDocShell->GetDoc()->GetOutlineNumRule();
1358cdf0e10cSrcweir //        SwNumRule aNumRule(*pNumRule);
1359cdf0e10cSrcweir         SwNumRule aNumRule( *(pDocShell->GetDoc()->GetOutlineNumRule()) );
1360cdf0e10cSrcweir         // <--
1361cdf0e10cSrcweir 		SwXNumberingRules::SetNumberingRuleByIndex( aNumRule,
1362cdf0e10cSrcweir 							rProperties, nIndex);
1363cdf0e10cSrcweir 		//hier noch die Zeichenformate bei Bedarf setzen
1364cdf0e10cSrcweir 		const SwCharFmts* pFmts = pDocShell->GetDoc()->GetCharFmts();
1365cdf0e10cSrcweir 		sal_uInt16 nChCount = pFmts->Count();
1366cdf0e10cSrcweir 		for(sal_uInt16 i = 0; i < MAXLEVEL;i++)
1367cdf0e10cSrcweir 		{
1368cdf0e10cSrcweir 			SwNumFmt aFmt(aNumRule.Get( i ));
1369cdf0e10cSrcweir 			if(sNewCharStyleNames[i].Len() &&
1370cdf0e10cSrcweir 				!sNewCharStyleNames[i].EqualsAscii(SW_PROP_NAME_STR(UNO_NAME_CHARACTER_FORMAT_NONE)) &&
1371cdf0e10cSrcweir 				   (!aFmt.GetCharFmt() ||
1372cdf0e10cSrcweir 					aFmt.GetCharFmt()->GetName()!= sNewCharStyleNames[i] ))
1373cdf0e10cSrcweir 			{
1374cdf0e10cSrcweir 				SwCharFmt* pCharFmt = 0;
1375cdf0e10cSrcweir 				for(sal_uInt16 j = 0; j< nChCount; j++)
1376cdf0e10cSrcweir 				{
1377cdf0e10cSrcweir 					SwCharFmt* pTmp = (*pFmts)[j];
1378cdf0e10cSrcweir 					if(pTmp->GetName() == sNewCharStyleNames[i])
1379cdf0e10cSrcweir 					{
1380cdf0e10cSrcweir 						pCharFmt = pTmp;
1381cdf0e10cSrcweir 						break;
1382cdf0e10cSrcweir 					}
1383cdf0e10cSrcweir 				}
1384cdf0e10cSrcweir 				if(!pCharFmt)
1385cdf0e10cSrcweir 				{
1386cdf0e10cSrcweir 					SfxStyleSheetBase* pBase;
1387cdf0e10cSrcweir 					pBase = pDocShell->GetStyleSheetPool()->Find(sNewCharStyleNames[i],
1388cdf0e10cSrcweir 																	SFX_STYLE_FAMILY_CHAR);
1389cdf0e10cSrcweir 					if(!pBase)
1390cdf0e10cSrcweir 						pBase = &pDocShell->GetStyleSheetPool()->Make(sNewCharStyleNames[i], SFX_STYLE_FAMILY_CHAR);
1391cdf0e10cSrcweir 					pCharFmt = ((SwDocStyleSheet*)pBase)->GetCharFmt();
1392cdf0e10cSrcweir 
1393cdf0e10cSrcweir 				}
1394cdf0e10cSrcweir 				aFmt.SetCharFmt( pCharFmt );
1395cdf0e10cSrcweir 				aNumRule.Set( i, aFmt );
1396cdf0e10cSrcweir 			}
1397cdf0e10cSrcweir 		}
1398cdf0e10cSrcweir 		pDocShell->GetDoc()->SetOutlineNumRule( aNumRule );
1399cdf0e10cSrcweir 	}
1400cdf0e10cSrcweir 	else if(!pNumRule && pDoc && sCreatedNumRuleName.Len() &&
1401cdf0e10cSrcweir 		0 != (pRule = pDoc->FindNumRulePtr( sCreatedNumRuleName )))
1402cdf0e10cSrcweir 	{
1403cdf0e10cSrcweir 		SwXNumberingRules::SetNumberingRuleByIndex( *pRule,
1404cdf0e10cSrcweir 							rProperties, nIndex);
1405cdf0e10cSrcweir 
1406cdf0e10cSrcweir 		pRule->Validate();
1407cdf0e10cSrcweir 	}
1408cdf0e10cSrcweir 	else
1409cdf0e10cSrcweir 		throw uno::RuntimeException();
1410cdf0e10cSrcweir 
1411cdf0e10cSrcweir }
1412cdf0e10cSrcweir /*-- 14.12.98 14:57:58---------------------------------------------------
1413cdf0e10cSrcweir 
1414cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getCount(void)1415cdf0e10cSrcweir sal_Int32 SwXNumberingRules::getCount(void) throw( uno::RuntimeException )
1416cdf0e10cSrcweir {
1417cdf0e10cSrcweir 	return MAXLEVEL;
1418cdf0e10cSrcweir }
1419cdf0e10cSrcweir /*-- 14.12.98 14:57:58---------------------------------------------------
1420cdf0e10cSrcweir 
1421cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getByIndex(sal_Int32 nIndex)1422cdf0e10cSrcweir uno::Any SwXNumberingRules::getByIndex(sal_Int32 nIndex)
1423cdf0e10cSrcweir 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
1424cdf0e10cSrcweir 			uno::RuntimeException )
1425cdf0e10cSrcweir {
1426cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
1427cdf0e10cSrcweir     if(nIndex < 0 || MAXLEVEL <= nIndex)
1428cdf0e10cSrcweir 		throw lang::IndexOutOfBoundsException();
1429cdf0e10cSrcweir 
1430cdf0e10cSrcweir 	uno::Any aVal;
1431cdf0e10cSrcweir 	const SwNumRule* pRule = pNumRule;
1432cdf0e10cSrcweir 	if(!pRule && pDoc && sCreatedNumRuleName.Len())
1433cdf0e10cSrcweir 		pRule = pDoc->FindNumRulePtr( sCreatedNumRuleName );
1434cdf0e10cSrcweir 	if(pRule)
1435cdf0e10cSrcweir 	{
1436cdf0e10cSrcweir 		uno::Sequence<beans::PropertyValue> aRet = GetNumberingRuleByIndex(
1437cdf0e10cSrcweir 										*pRule, nIndex);
1438cdf0e10cSrcweir 		aVal.setValue(&aRet, ::getCppuType((uno::Sequence<beans::PropertyValue>*)0));
1439cdf0e10cSrcweir 
1440cdf0e10cSrcweir 	}
1441cdf0e10cSrcweir 	else if(pDocShell)
1442cdf0e10cSrcweir 	{
1443cdf0e10cSrcweir 		uno::Sequence<beans::PropertyValue> aRet = GetNumberingRuleByIndex(
1444cdf0e10cSrcweir 				*pDocShell->GetDoc()->GetOutlineNumRule(), nIndex);
1445cdf0e10cSrcweir 		aVal.setValue(&aRet, ::getCppuType((uno::Sequence<beans::PropertyValue>*)0));
1446cdf0e10cSrcweir 	}
1447cdf0e10cSrcweir 	else
1448cdf0e10cSrcweir 		throw uno::RuntimeException();
1449cdf0e10cSrcweir 	return aVal;
1450cdf0e10cSrcweir }
1451cdf0e10cSrcweir /*-- 14.12.98 14:57:59---------------------------------------------------
1452cdf0e10cSrcweir 
1453cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getElementType(void)1454cdf0e10cSrcweir uno::Type SwXNumberingRules::getElementType(void)
1455cdf0e10cSrcweir 	throw( uno::RuntimeException )
1456cdf0e10cSrcweir {
1457cdf0e10cSrcweir 	return ::getCppuType((uno::Sequence<beans::PropertyValue>*)0);
1458cdf0e10cSrcweir }
1459cdf0e10cSrcweir /*-- 14.12.98 14:57:59---------------------------------------------------
1460cdf0e10cSrcweir 
1461cdf0e10cSrcweir   -----------------------------------------------------------------------*/
hasElements(void)1462cdf0e10cSrcweir sal_Bool SwXNumberingRules::hasElements(void) throw( uno::RuntimeException )
1463cdf0e10cSrcweir {
1464cdf0e10cSrcweir 	return sal_True;
1465cdf0e10cSrcweir }
1466cdf0e10cSrcweir /*-- 14.12.98 14:57:59---------------------------------------------------
1467cdf0e10cSrcweir 
1468cdf0e10cSrcweir   -----------------------------------------------------------------------*/
GetNumberingRuleByIndex(const SwNumRule & rNumRule,sal_Int32 nIndex) const1469cdf0e10cSrcweir uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetNumberingRuleByIndex(
1470cdf0e10cSrcweir 				const SwNumRule& rNumRule, sal_Int32 nIndex) const
1471cdf0e10cSrcweir {
1472cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
1473cdf0e10cSrcweir 	DBG_ASSERT( 0 <= nIndex && nIndex < MAXLEVEL, "index out of range" );
1474cdf0e10cSrcweir 
1475cdf0e10cSrcweir 	const SwNumFmt& rFmt = rNumRule.Get( (sal_uInt16)nIndex );
1476cdf0e10cSrcweir 
1477cdf0e10cSrcweir 	sal_Bool bChapterNum = pDocShell != 0;
1478cdf0e10cSrcweir 
1479cdf0e10cSrcweir 	PropValDataArr	aPropertyValues;
1480cdf0e10cSrcweir 	//fill all properties into the array
1481cdf0e10cSrcweir 
1482cdf0e10cSrcweir 	//adjust
1483cdf0e10cSrcweir 	SvxAdjust eAdj = rFmt.GetNumAdjust();
1484cdf0e10cSrcweir 	sal_Int16 nINT16 = aSvxToUnoAdjust[(sal_uInt16)eAdj];
1485cdf0e10cSrcweir 	PropValData* pData = new PropValData((void*)&nINT16, "Adjust", ::getCppuType((const sal_Int16*)0) );
1486cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1487cdf0e10cSrcweir 
1488cdf0e10cSrcweir 	//parentnumbering
1489cdf0e10cSrcweir 	nINT16 = rFmt.GetIncludeUpperLevels();
1490cdf0e10cSrcweir 	pData = new PropValData((void*)&nINT16, "ParentNumbering", ::getCppuType((const sal_Int16*)0));
1491cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1492cdf0e10cSrcweir 
1493cdf0e10cSrcweir 	//prefix
1494cdf0e10cSrcweir 	OUString aUString = rFmt.GetPrefix();
1495cdf0e10cSrcweir 	pData = new PropValData((void*)&aUString, "Prefix", ::getCppuType((const OUString*)0));
1496cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1497cdf0e10cSrcweir 
1498cdf0e10cSrcweir 	//suffix
1499cdf0e10cSrcweir 	aUString = rFmt.GetSuffix();
1500cdf0e10cSrcweir 	pData = new PropValData((void*)&aUString, "Suffix", ::getCppuType((const OUString*)0));
1501cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1502cdf0e10cSrcweir 
1503cdf0e10cSrcweir 	//char style name
1504cdf0e10cSrcweir 	SwCharFmt* pCharFmt = rFmt.GetCharFmt();
1505cdf0e10cSrcweir 	String CharStyleName;
1506cdf0e10cSrcweir 	if(pCharFmt)
1507cdf0e10cSrcweir 		CharStyleName = pCharFmt->GetName();
1508cdf0e10cSrcweir 	//egal ob ein Style vorhanden ist oder nicht ueberschreibt der Array-Eintrag diesen String
1509cdf0e10cSrcweir 	if(sNewCharStyleNames[(sal_uInt16)nIndex].Len() &&
1510cdf0e10cSrcweir 		SwXNumberingRules::sInvalidStyle != sNewCharStyleNames[(sal_uInt16)nIndex])
1511cdf0e10cSrcweir 		CharStyleName = sNewCharStyleNames[(sal_uInt16)nIndex];
1512cdf0e10cSrcweir 
1513cdf0e10cSrcweir 	String aString;
1514cdf0e10cSrcweir 	SwStyleNameMapper::FillProgName( CharStyleName, aString, nsSwGetPoolIdFromName::GET_POOLID_CHRFMT, sal_True );
1515cdf0e10cSrcweir 	aUString = aString;
1516cdf0e10cSrcweir 	pData = new PropValData((void*)&aUString, "CharStyleName", ::getCppuType((const OUString*)0));
1517cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1518cdf0e10cSrcweir 
1519cdf0e10cSrcweir 	//startvalue
1520cdf0e10cSrcweir 	nINT16 = rFmt.GetStart();
1521cdf0e10cSrcweir 	pData = new PropValData((void*)&nINT16, "StartWith", ::getCppuType((const sal_Int16*)0));
1522cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1523cdf0e10cSrcweir 
1524cdf0e10cSrcweir     // --> OD 2008-01-23 #newlistlevelattrs#
1525cdf0e10cSrcweir     if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1526cdf0e10cSrcweir     {
1527cdf0e10cSrcweir         //leftmargin
1528cdf0e10cSrcweir         sal_Int32 nINT32 = TWIP_TO_MM100(rFmt.GetAbsLSpace());
1529cdf0e10cSrcweir         pData = new PropValData((void*)&nINT32, SW_PROP_NAME_STR(UNO_NAME_LEFT_MARGIN), ::getCppuType((const sal_Int32*)0));
1530cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1531cdf0e10cSrcweir 
1532cdf0e10cSrcweir         //chartextoffset
1533cdf0e10cSrcweir         nINT32 = TWIP_TO_MM100(rFmt.GetCharTextDistance());
1534cdf0e10cSrcweir         pData = new PropValData((void*)&nINT32, SW_PROP_NAME_STR(UNO_NAME_SYMBOL_TEXT_DISTANCE), ::getCppuType((const sal_Int32*)0));
1535cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1536cdf0e10cSrcweir 
1537cdf0e10cSrcweir         //firstlineoffset
1538cdf0e10cSrcweir         nINT32 = TWIP_TO_MM100(rFmt.GetFirstLineOffset());
1539cdf0e10cSrcweir         pData = new PropValData((void*)&nINT32, SW_PROP_NAME_STR(UNO_NAME_FIRST_LINE_OFFSET), ::getCppuType((const sal_Int32*)0));
1540cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1541cdf0e10cSrcweir     }
1542cdf0e10cSrcweir     // <--
1543cdf0e10cSrcweir 
1544cdf0e10cSrcweir     // --> OD 2008-01-15 #newlistlevelattrs#
1545cdf0e10cSrcweir     // PositionAndSpaceMode
1546cdf0e10cSrcweir     nINT16 = PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION;
1547cdf0e10cSrcweir     if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
1548cdf0e10cSrcweir     {
1549cdf0e10cSrcweir         nINT16 = PositionAndSpaceMode::LABEL_ALIGNMENT;
1550cdf0e10cSrcweir     }
1551cdf0e10cSrcweir     pData = new PropValData( (void*)&nINT16,
1552cdf0e10cSrcweir                              SW_PROP_NAME_STR(UNO_NAME_POSITION_AND_SPACE_MODE),
1553cdf0e10cSrcweir                              ::getCppuType((const sal_Int16*)0) );
1554cdf0e10cSrcweir     aPropertyValues.Insert(pData, aPropertyValues.Count());
1555cdf0e10cSrcweir 
1556cdf0e10cSrcweir     if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
1557cdf0e10cSrcweir     {
1558cdf0e10cSrcweir         // LabelFollowedBy
1559cdf0e10cSrcweir         nINT16 = LabelFollow::LISTTAB;
1560cdf0e10cSrcweir         if ( rFmt.GetLabelFollowedBy() == SvxNumberFormat::SPACE )
1561cdf0e10cSrcweir         {
1562cdf0e10cSrcweir             nINT16 = LabelFollow::SPACE;
1563cdf0e10cSrcweir         }
1564cdf0e10cSrcweir         else if ( rFmt.GetLabelFollowedBy() == SvxNumberFormat::NOTHING )
1565cdf0e10cSrcweir         {
1566cdf0e10cSrcweir             nINT16 = LabelFollow::NOTHING;
1567cdf0e10cSrcweir         }
1568cdf0e10cSrcweir         pData = new PropValData( (void*)&nINT16,
1569cdf0e10cSrcweir                                  SW_PROP_NAME_STR(UNO_NAME_LABEL_FOLLOWED_BY),
1570cdf0e10cSrcweir                                  ::getCppuType((const sal_Int16*)0) );
1571cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1572cdf0e10cSrcweir 
1573cdf0e10cSrcweir         // ListtabStopPosition
1574cdf0e10cSrcweir         sal_Int32 nINT32 = TWIP_TO_MM100(rFmt.GetListtabPos());
1575cdf0e10cSrcweir         pData = new PropValData( (void*)&nINT32,
1576cdf0e10cSrcweir                                  SW_PROP_NAME_STR(UNO_NAME_LISTTAB_STOP_POSITION),
1577cdf0e10cSrcweir                                  ::getCppuType((const sal_Int32*)0));
1578cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1579cdf0e10cSrcweir 
1580cdf0e10cSrcweir         // FirstLineIndent
1581cdf0e10cSrcweir         nINT32 = TWIP_TO_MM100(rFmt.GetFirstLineIndent());
1582cdf0e10cSrcweir         pData = new PropValData( (void*)&nINT32,
1583cdf0e10cSrcweir                                  SW_PROP_NAME_STR(UNO_NAME_FIRST_LINE_INDENT),
1584cdf0e10cSrcweir                                  ::getCppuType((const sal_Int32*)0));
1585cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1586cdf0e10cSrcweir 
1587cdf0e10cSrcweir         // IndentAt
1588cdf0e10cSrcweir         nINT32 = TWIP_TO_MM100(rFmt.GetIndentAt());
1589cdf0e10cSrcweir         pData = new PropValData( (void*)&nINT32,
1590cdf0e10cSrcweir                                  SW_PROP_NAME_STR(UNO_NAME_INDENT_AT),
1591cdf0e10cSrcweir                                  ::getCppuType((const sal_Int32*)0));
1592cdf0e10cSrcweir         aPropertyValues.Insert(pData, aPropertyValues.Count());
1593cdf0e10cSrcweir     }
1594cdf0e10cSrcweir     // <--
1595cdf0e10cSrcweir 
1596cdf0e10cSrcweir     //numberingtype
1597cdf0e10cSrcweir 	nINT16 = rFmt.GetNumberingType();
1598cdf0e10cSrcweir 	pData = new PropValData((void*)&nINT16, "NumberingType", ::getCppuType((const sal_Int16*)0));
1599cdf0e10cSrcweir 	aPropertyValues.Insert(pData, aPropertyValues.Count());
1600cdf0e10cSrcweir 
1601cdf0e10cSrcweir 	if(!bChapterNum)
1602cdf0e10cSrcweir 	{
1603cdf0e10cSrcweir 		if(SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType())
1604cdf0e10cSrcweir 		{
1605cdf0e10cSrcweir 			//BulletId
1606cdf0e10cSrcweir 			nINT16 = rFmt.GetBulletChar();
1607cdf0e10cSrcweir 			pData = new PropValData((void*)&nINT16, "BulletId", ::getCppuType((const sal_Int16*)0));
1608cdf0e10cSrcweir 			aPropertyValues.Insert(pData, aPropertyValues.Count());
1609cdf0e10cSrcweir 
1610cdf0e10cSrcweir 			const Font* pFont = rFmt.GetBulletFont();
1611cdf0e10cSrcweir 
1612cdf0e10cSrcweir 			//BulletChar
1613cdf0e10cSrcweir 			aUString = OUString(rFmt.GetBulletChar());
1614cdf0e10cSrcweir 			pData = new PropValData((void*)&aUString, "BulletChar", ::getCppuType((const OUString*)0));
1615cdf0e10cSrcweir 			aPropertyValues.Insert(pData, aPropertyValues.Count());
1616cdf0e10cSrcweir 
1617cdf0e10cSrcweir 			//BulletFontName
1618cdf0e10cSrcweir 			String sBulletFontName;
1619cdf0e10cSrcweir 			if(pFont)
1620cdf0e10cSrcweir 				sBulletFontName = pFont->GetStyleName();
1621cdf0e10cSrcweir 			aUString = sBulletFontName;
1622cdf0e10cSrcweir 			pData = new PropValData((void*)&aUString, "BulletFontName", ::getCppuType((const OUString*)0));
1623cdf0e10cSrcweir 			aPropertyValues.Insert(pData, aPropertyValues.Count());
1624cdf0e10cSrcweir 
1625cdf0e10cSrcweir 			//BulletFont
1626cdf0e10cSrcweir 			if(pFont)
1627cdf0e10cSrcweir 			{
1628cdf0e10cSrcweir 			 	awt::FontDescriptor aDesc;
1629cdf0e10cSrcweir 				SvxUnoFontDescriptor::ConvertFromFont( *pFont, aDesc );
1630cdf0e10cSrcweir 				pData = new PropValData((void*)&aDesc, SW_PROP_NAME_STR(UNO_NAME_BULLET_FONT), ::getCppuType((const awt::FontDescriptor*)0));
1631cdf0e10cSrcweir 				aPropertyValues.Insert(pData, aPropertyValues.Count());
1632cdf0e10cSrcweir 			}
1633cdf0e10cSrcweir 		}
1634cdf0e10cSrcweir 		if(SVX_NUM_BITMAP == rFmt.GetNumberingType())
1635cdf0e10cSrcweir 		{
1636cdf0e10cSrcweir 			//GraphicURL
1637cdf0e10cSrcweir 			const SvxBrushItem* pBrush = rFmt.GetBrush();
1638cdf0e10cSrcweir 			if(pBrush)
1639cdf0e10cSrcweir 			{
1640cdf0e10cSrcweir 				Any aAny;
1641cdf0e10cSrcweir 				pBrush->QueryValue( aAny, MID_GRAPHIC_URL );
1642cdf0e10cSrcweir 				aAny >>= aUString;
1643cdf0e10cSrcweir 			}
1644cdf0e10cSrcweir 			else
1645cdf0e10cSrcweir 				aUString = aEmptyStr;
1646cdf0e10cSrcweir 			pData = new PropValData((void*)&aUString, SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_URL), ::getCppuType((const OUString*)0));
1647cdf0e10cSrcweir 			aPropertyValues.Insert(pData, aPropertyValues.Count());
1648cdf0e10cSrcweir 
1649cdf0e10cSrcweir 			//graphicbitmap
1650cdf0e10cSrcweir 			const Graphic* pGraphic = 0;
1651cdf0e10cSrcweir 			if(pBrush )
1652cdf0e10cSrcweir 				pGraphic = pBrush->GetGraphic();
1653cdf0e10cSrcweir 			if(pGraphic)
1654cdf0e10cSrcweir 			{
1655cdf0e10cSrcweir 				uno::Reference<awt::XBitmap> xBmp = VCLUnoHelper::CreateBitmap( pGraphic->GetBitmapEx() );
1656cdf0e10cSrcweir 				pData = new PropValData((void*)&xBmp, SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_BITMAP),
1657cdf0e10cSrcweir 								::getCppuType((const uno::Reference<awt::XBitmap>*)0));
1658cdf0e10cSrcweir 				aPropertyValues.Insert(pData, aPropertyValues.Count());
1659cdf0e10cSrcweir 			}
1660cdf0e10cSrcweir 		 	Size aSize = rFmt.GetGraphicSize();
1661cdf0e10cSrcweir             // --> OD 2010-05-04 #i101131# - applying patch from CMC
1662cdf0e10cSrcweir             // adjust conversion due to type mismatch between <Size> and <awt::Size>
1663cdf0e10cSrcweir //            aSize.Width() = TWIP_TO_MM100( aSize.Width() );
1664cdf0e10cSrcweir //            aSize.Height() = TWIP_TO_MM100( aSize.Height() );
1665cdf0e10cSrcweir //            pData = new PropValData((void*)&aSize, SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_SIZE), ::getCppuType((const awt::Size*)0));
1666cdf0e10cSrcweir             awt::Size aAwtSize(TWIP_TO_MM100(aSize.Width()), TWIP_TO_MM100(aSize.Height()));
1667cdf0e10cSrcweir             pData = new PropValData((void*)&aAwtSize, SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_SIZE), ::getCppuType((const awt::Size*)0));
1668cdf0e10cSrcweir             // <--
1669cdf0e10cSrcweir 			aPropertyValues.Insert(pData, aPropertyValues.Count());
1670cdf0e10cSrcweir 
1671cdf0e10cSrcweir 			const SwFmtVertOrient* pOrient = rFmt.GetGraphicOrientation();
1672cdf0e10cSrcweir 			if(pOrient)
1673cdf0e10cSrcweir 			{
1674cdf0e10cSrcweir 				pData = new PropValData((void*)0, SW_PROP_NAME_STR(UNO_NAME_VERT_ORIENT), ::getCppuType((const sal_Int16*)0));
1675cdf0e10cSrcweir 				((const SfxPoolItem*)pOrient)->QueryValue(pData->aVal, MID_VERTORIENT_ORIENT);
1676cdf0e10cSrcweir 				aPropertyValues.Insert(pData, aPropertyValues.Count());
1677cdf0e10cSrcweir 			}
1678cdf0e10cSrcweir 		}
1679cdf0e10cSrcweir 
1680cdf0e10cSrcweir 	}
1681cdf0e10cSrcweir 	else
1682cdf0e10cSrcweir 	{
1683cdf0e10cSrcweir 		//Vorlagenname
1684cdf0e10cSrcweir 		String sValue(SW_RES(STR_POOLCOLL_HEADLINE1 + nIndex));
1685cdf0e10cSrcweir 		const SwTxtFmtColls* pColls = pDocShell->GetDoc()->GetTxtFmtColls();
1686cdf0e10cSrcweir 		const sal_uInt16 nCount = pColls->Count();
1687cdf0e10cSrcweir 		for(sal_uInt16 i = 0; i < nCount;++i)
1688cdf0e10cSrcweir 		{
1689cdf0e10cSrcweir 			SwTxtFmtColl &rTxtColl = *pColls->operator[](i);
1690cdf0e10cSrcweir 			if(rTxtColl.IsDefault())
1691cdf0e10cSrcweir 				continue;
1692cdf0e10cSrcweir 
1693cdf0e10cSrcweir 			//sal_Int8 nOutLevel = rTxtColl.GetOutlineLevel();		//#outline level,zhaojianwei
1694cdf0e10cSrcweir             const sal_Int16 nOutLevel = rTxtColl.IsAssignedToListLevelOfOutlineStyle()
1695cdf0e10cSrcweir                                         ? static_cast<sal_Int16>(rTxtColl.GetAssignedOutlineStyleLevel())
1696cdf0e10cSrcweir                                         : MAXLEVEL;					//<-end,zhaojianwei
1697cdf0e10cSrcweir             if ( nOutLevel == nIndex )
1698cdf0e10cSrcweir 			{
1699cdf0e10cSrcweir 				sValue = rTxtColl.GetName();
1700cdf0e10cSrcweir 				break; // the style for the level in question has been found
1701cdf0e10cSrcweir 			}
1702cdf0e10cSrcweir 			else if( sValue==rTxtColl.GetName() )
1703cdf0e10cSrcweir 			{
1704cdf0e10cSrcweir 				// if the default for the level is existing, but its
1705cdf0e10cSrcweir 				// level is different, then it cannot be the default.
1706cdf0e10cSrcweir 				sValue.Erase();
1707cdf0e10cSrcweir 			}
1708cdf0e10cSrcweir 		}
1709cdf0e10cSrcweir 		String aName;
1710cdf0e10cSrcweir 		SwStyleNameMapper::FillProgName(sValue, aName, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, sal_True);
1711cdf0e10cSrcweir 		aUString = aName;
1712cdf0e10cSrcweir 
1713cdf0e10cSrcweir 		pData = new PropValData((void*)&aUString, SW_PROP_NAME_STR(UNO_NAME_HEADING_STYLE_NAME), ::getCppuType((const OUString*)0));
1714cdf0e10cSrcweir 		aPropertyValues.Insert(pData, aPropertyValues.Count());
1715cdf0e10cSrcweir 	}
1716cdf0e10cSrcweir 
1717cdf0e10cSrcweir 	uno::Sequence<beans::PropertyValue> aSeq(aPropertyValues.Count());
1718cdf0e10cSrcweir 	beans::PropertyValue* pArray = aSeq.getArray();
1719cdf0e10cSrcweir 
1720cdf0e10cSrcweir 	for(sal_uInt16 i = 0; i < aPropertyValues.Count(); i++)
1721cdf0e10cSrcweir 	{
1722cdf0e10cSrcweir 		pData = aPropertyValues.GetObject(i);
1723cdf0e10cSrcweir 		pArray[i].Value = pData->aVal;
1724cdf0e10cSrcweir 		pArray[i].Name = pData->sPropName;
1725cdf0e10cSrcweir 		pArray[i].Handle = -1;
1726cdf0e10cSrcweir 	}
1727cdf0e10cSrcweir 	aPropertyValues.DeleteAndDestroy(0, aPropertyValues.Count());
1728cdf0e10cSrcweir 	return aSeq;
1729cdf0e10cSrcweir }
1730cdf0e10cSrcweir /*-- 14.12.98 14:57:59---------------------------------------------------
1731cdf0e10cSrcweir 
1732cdf0e10cSrcweir   -----------------------------------------------------------------------*/
lcl_FindProperty(const char * cName,PropValDataArr & rPropertyValues)1733cdf0e10cSrcweir PropValData* lcl_FindProperty(const char* cName, PropValDataArr&	rPropertyValues)
1734cdf0e10cSrcweir {
1735cdf0e10cSrcweir 	OUString sCmp = C2U(cName);
1736cdf0e10cSrcweir 	for(sal_uInt16 i = 0; i < rPropertyValues.Count(); i++)
1737cdf0e10cSrcweir 	{
1738cdf0e10cSrcweir 		PropValData* pTemp = rPropertyValues.GetObject(i);
1739cdf0e10cSrcweir 		if(sCmp == pTemp->sPropName)
1740cdf0e10cSrcweir 			return pTemp;
1741cdf0e10cSrcweir 	}
1742cdf0e10cSrcweir 	return 0;
1743cdf0e10cSrcweir }
1744cdf0e10cSrcweir //-----------------------------------------------------------------------
1745cdf0e10cSrcweir 
SetNumberingRuleByIndex(SwNumRule & rNumRule,const uno::Sequence<beans::PropertyValue> & rProperties,sal_Int32 nIndex)1746cdf0e10cSrcweir void SwXNumberingRules::SetNumberingRuleByIndex(
1747cdf0e10cSrcweir 			SwNumRule& rNumRule,
1748cdf0e10cSrcweir 			const uno::Sequence<beans::PropertyValue>& rProperties, sal_Int32 nIndex)
1749cdf0e10cSrcweir 	throw( uno::RuntimeException, lang::IllegalArgumentException )
1750cdf0e10cSrcweir {
1751cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
1752cdf0e10cSrcweir 	DBG_ASSERT( 0 <= nIndex && nIndex < MAXLEVEL, "index out of range" );
1753cdf0e10cSrcweir 
1754cdf0e10cSrcweir 	// the order of the names is important!
1755cdf0e10cSrcweir 	static const char* aNumPropertyNames[] =
1756cdf0e10cSrcweir 	{
1757cdf0e10cSrcweir 		"Adjust",  								//0
1758cdf0e10cSrcweir 		"ParentNumbering",                      //1
1759cdf0e10cSrcweir 		"Prefix",                               //2
1760cdf0e10cSrcweir 		"Suffix",                               //3
1761cdf0e10cSrcweir 		"CharStyleName",                        //4
1762cdf0e10cSrcweir 		"StartWith",                            //5
1763cdf0e10cSrcweir 		SW_PROP_NAME_STR(UNO_NAME_LEFT_MARGIN),                   //6
1764cdf0e10cSrcweir 		SW_PROP_NAME_STR(UNO_NAME_SYMBOL_TEXT_DISTANCE),          //7
1765cdf0e10cSrcweir 		SW_PROP_NAME_STR(UNO_NAME_FIRST_LINE_OFFSET),             //8
1766cdf0e10cSrcweir         // --> OD 2008-01-15 #newlistlevelattrs#
1767cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_POSITION_AND_SPACE_MODE), //9
1768cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_LABEL_FOLLOWED_BY),       //10
1769cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_LISTTAB_STOP_POSITION),   //11
1770cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_FIRST_LINE_INDENT),       //12
1771cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_INDENT_AT),               //13
1772cdf0e10cSrcweir         // <--
1773cdf0e10cSrcweir         "NumberingType",                        //14
1774cdf0e10cSrcweir         "BulletId",                             //15
1775cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_BULLET_FONT), //16
1776cdf0e10cSrcweir         "BulletFontName",                       //17
1777cdf0e10cSrcweir         "BulletChar",                           //18
1778cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_URL),    //19
1779cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_BITMAP), //20
1780cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_GRAPHIC_SIZE),   //21
1781cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_VERT_ORIENT),    //22
1782cdf0e10cSrcweir         SW_PROP_NAME_STR(UNO_NAME_HEADING_STYLE_NAME) //23
1783cdf0e10cSrcweir 	};
1784cdf0e10cSrcweir     // --> OD 2008-01-15 #newlistlevelattrs#
1785cdf0e10cSrcweir     const sal_uInt16 nPropNameCount = 24;
1786cdf0e10cSrcweir     const sal_uInt16 nNotInChapter = 15;
1787cdf0e10cSrcweir     // <--
1788cdf0e10cSrcweir 
1789cdf0e10cSrcweir 	const beans::PropertyValue* pPropArray = rProperties.getConstArray();
1790cdf0e10cSrcweir     PropValDataArr aPropertyValues;
1791cdf0e10cSrcweir 	sal_Bool bExcept = sal_False;
1792cdf0e10cSrcweir 	for(int i = 0; i < rProperties.getLength() && !bExcept; i++)
1793cdf0e10cSrcweir 	{
1794cdf0e10cSrcweir 		const beans::PropertyValue& rProp = pPropArray[i];
1795cdf0e10cSrcweir 		bExcept = sal_True;
1796cdf0e10cSrcweir 		for(sal_uInt16 j = 0; j < (pDocShell ? nPropNameCount : nPropNameCount - 1); j++)
1797cdf0e10cSrcweir 		{
1798cdf0e10cSrcweir 			//some values not in chapter numbering
1799cdf0e10cSrcweir 			if(pDocShell && j == nNotInChapter)
1800cdf0e10cSrcweir 				j = nPropNameCount - 1;
1801cdf0e10cSrcweir 			if(COMPARE_EQUAL == rProp.Name.compareToAscii(aNumPropertyNames[j]))
1802cdf0e10cSrcweir 			{
1803cdf0e10cSrcweir 				bExcept = sal_False;
1804cdf0e10cSrcweir 				break;
1805cdf0e10cSrcweir 			}
1806cdf0e10cSrcweir 		}
1807cdf0e10cSrcweir 		if(bExcept &&
1808cdf0e10cSrcweir 			(rProp.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("BulletRelSize")) ||
1809cdf0e10cSrcweir 			 rProp.Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("BulletColor")) ) )
1810cdf0e10cSrcweir         {
1811cdf0e10cSrcweir 			bExcept = sal_False;
1812cdf0e10cSrcweir         }
1813cdf0e10cSrcweir 		PropValData* pData = new PropValData(rProp.Value, rProp.Name );
1814cdf0e10cSrcweir 		aPropertyValues.Insert(pData, aPropertyValues.Count());
1815cdf0e10cSrcweir 	}
1816cdf0e10cSrcweir 
1817cdf0e10cSrcweir     SwNumFmt aFmt(rNumRule.Get( (sal_uInt16)nIndex ));
1818cdf0e10cSrcweir     sal_Bool bWrongArg = sal_False;
1819cdf0e10cSrcweir 	if(!bExcept)
1820cdf0e10cSrcweir    	{
1821cdf0e10cSrcweir 		SvxBrushItem* pSetBrush = 0;
1822cdf0e10cSrcweir 		Size* pSetSize = 0;
1823cdf0e10cSrcweir 		SwFmtVertOrient* pSetVOrient = 0;
1824cdf0e10cSrcweir         sal_Bool bCharStyleNameSet = sal_False;
1825cdf0e10cSrcweir 
1826cdf0e10cSrcweir 		for(sal_uInt16 i = 0; i < nPropNameCount && !bExcept && !bWrongArg; i++)
1827cdf0e10cSrcweir 		{
1828cdf0e10cSrcweir 			PropValData* pData = lcl_FindProperty(aNumPropertyNames[i], aPropertyValues);
1829cdf0e10cSrcweir 			if(!pData)
1830cdf0e10cSrcweir 				continue;
1831cdf0e10cSrcweir 			switch(i)
1832cdf0e10cSrcweir 			{
1833cdf0e10cSrcweir 				case 0: //"Adjust"
1834cdf0e10cSrcweir 				{
1835cdf0e10cSrcweir 					sal_Int16 nValue = 0;
1836cdf0e10cSrcweir 					pData->aVal >>= nValue;
1837cdf0e10cSrcweir 					if(nValue > 0 &&
1838cdf0e10cSrcweir                         nValue <= text::HoriOrientation::LEFT &&
1839cdf0e10cSrcweir 							USHRT_MAX != aUnoToSvxAdjust[nValue])
1840cdf0e10cSrcweir 					{
1841cdf0e10cSrcweir 						aFmt.SetNumAdjust((SvxAdjust)aUnoToSvxAdjust[nValue]);
1842cdf0e10cSrcweir 					}
1843cdf0e10cSrcweir 					else
1844cdf0e10cSrcweir 						bWrongArg = sal_True;
1845cdf0e10cSrcweir 				}
1846cdf0e10cSrcweir 				break;
1847cdf0e10cSrcweir 				case 1: //"ParentNumbering",
1848cdf0e10cSrcweir 				{
1849cdf0e10cSrcweir 					sal_Int16 nSet = 0;
1850cdf0e10cSrcweir 					pData->aVal >>= nSet;
1851cdf0e10cSrcweir 					if(nSet >= 0 && MAXLEVEL >= nSet)
1852cdf0e10cSrcweir                         aFmt.SetIncludeUpperLevels( static_cast< sal_uInt8 >(nSet) );
1853cdf0e10cSrcweir 				}
1854cdf0e10cSrcweir 				break;
1855cdf0e10cSrcweir 				case 2: //"Prefix",
1856cdf0e10cSrcweir 				{
1857cdf0e10cSrcweir 					OUString uTmp;
1858cdf0e10cSrcweir 					pData->aVal >>= uTmp;
1859cdf0e10cSrcweir 					aFmt.SetPrefix(uTmp);
1860cdf0e10cSrcweir 				}
1861cdf0e10cSrcweir 				break;
1862cdf0e10cSrcweir 				case 3: //"Suffix",
1863cdf0e10cSrcweir 				{
1864cdf0e10cSrcweir 					OUString uTmp;
1865cdf0e10cSrcweir 					pData->aVal >>= uTmp;
1866cdf0e10cSrcweir 					aFmt.SetSuffix(uTmp);
1867cdf0e10cSrcweir 				}
1868cdf0e10cSrcweir 				break;
1869cdf0e10cSrcweir 				case 4: //"CharStyleName",
1870cdf0e10cSrcweir 				{
1871cdf0e10cSrcweir                     bCharStyleNameSet = sal_True;
1872cdf0e10cSrcweir                     OUString uTmp;
1873cdf0e10cSrcweir 					pData->aVal >>= uTmp;
1874cdf0e10cSrcweir 					String sCharFmtName;
1875cdf0e10cSrcweir 					SwStyleNameMapper::FillUIName( uTmp, sCharFmtName, nsSwGetPoolIdFromName::GET_POOLID_CHRFMT, sal_True );
1876cdf0e10cSrcweir 					if(sCharFmtName.EqualsAscii(SW_PROP_NAME_STR(UNO_NAME_CHARACTER_FORMAT_NONE)))
1877cdf0e10cSrcweir 					{
1878cdf0e10cSrcweir 						sNewCharStyleNames[(sal_uInt16)nIndex] = SwXNumberingRules::GetInvalidStyle();
1879cdf0e10cSrcweir 						aFmt.SetCharFmt(0);
1880cdf0e10cSrcweir 					}
1881cdf0e10cSrcweir 					else if(pDocShell || pDoc)
1882cdf0e10cSrcweir 					{
1883cdf0e10cSrcweir 						SwDoc* pLocalDoc = pDoc ? pDoc : pDocShell->GetDoc();
1884cdf0e10cSrcweir 						const SwCharFmts* pFmts = pLocalDoc->GetCharFmts();
1885cdf0e10cSrcweir 						sal_uInt16 nChCount = pFmts->Count();
1886cdf0e10cSrcweir 
1887cdf0e10cSrcweir 						SwCharFmt* pCharFmt = 0;
1888cdf0e10cSrcweir 						if(sCharFmtName.Len())
1889cdf0e10cSrcweir 						{
1890cdf0e10cSrcweir 							for(sal_uInt16 j = 0; j< nChCount; j++)
1891cdf0e10cSrcweir 							{
1892cdf0e10cSrcweir 								SwCharFmt* pTmp = (*pFmts)[j];
1893cdf0e10cSrcweir 								if(pTmp->GetName() == sCharFmtName)
1894cdf0e10cSrcweir 								{
1895cdf0e10cSrcweir 									pCharFmt = pTmp;
1896cdf0e10cSrcweir 									break;
1897cdf0e10cSrcweir 								}
1898cdf0e10cSrcweir 							}
1899cdf0e10cSrcweir 							if(!pCharFmt)
1900cdf0e10cSrcweir 							{
1901cdf0e10cSrcweir 
1902cdf0e10cSrcweir 								SfxStyleSheetBase* pBase;
1903cdf0e10cSrcweir 								SfxStyleSheetBasePool* pPool = pLocalDoc->GetDocShell()->GetStyleSheetPool();
1904cdf0e10cSrcweir 								pBase = ((SfxStyleSheetBasePool*)pPool)->Find(sCharFmtName, SFX_STYLE_FAMILY_CHAR);
1905cdf0e10cSrcweir 								if(!pBase)
1906cdf0e10cSrcweir 									pBase = &pPool->Make(sCharFmtName, SFX_STYLE_FAMILY_CHAR);
1907cdf0e10cSrcweir 								pCharFmt = ((SwDocStyleSheet*)pBase)->GetCharFmt();
1908cdf0e10cSrcweir 							}
1909cdf0e10cSrcweir 						}
1910cdf0e10cSrcweir 						aFmt.SetCharFmt( pCharFmt );
1911cdf0e10cSrcweir 						// os 2005-08-22 #i51842#
1912cdf0e10cSrcweir 						// If the character format has been found it's name should not be in the
1913cdf0e10cSrcweir 						// char style names array
1914cdf0e10cSrcweir                         //sNewCharStyleNames[(sal_uInt16)nIndex] = sCharFmtName;
1915cdf0e10cSrcweir 						sNewCharStyleNames[(sal_uInt16)nIndex].Erase();
1916cdf0e10cSrcweir  					}
1917cdf0e10cSrcweir 					else
1918cdf0e10cSrcweir 						sNewCharStyleNames[(sal_uInt16)nIndex] = sCharFmtName;
1919cdf0e10cSrcweir 				}
1920cdf0e10cSrcweir 				break;
1921cdf0e10cSrcweir 				case 5: //"StartWith",
1922cdf0e10cSrcweir 				{
1923cdf0e10cSrcweir 					sal_Int16 nVal = 0;
1924cdf0e10cSrcweir 					pData->aVal >>= nVal;
1925cdf0e10cSrcweir 					aFmt.SetStart(nVal);
1926cdf0e10cSrcweir 				}
1927cdf0e10cSrcweir 				break;
1928cdf0e10cSrcweir 				case 6: //UNO_NAME_LEFT_MARGIN,
1929cdf0e10cSrcweir 				{
1930cdf0e10cSrcweir 					sal_Int32 nValue = 0;
1931cdf0e10cSrcweir 					pData->aVal >>= nValue;
1932cdf0e10cSrcweir                     // #i23727# nValue can be negative
1933cdf0e10cSrcweir                     aFmt.SetAbsLSpace((sal_uInt16) MM100_TO_TWIP(nValue));
1934cdf0e10cSrcweir 				}
1935cdf0e10cSrcweir 				break;
1936cdf0e10cSrcweir 				case 7: //UNO_NAME_SYMBOL_TEXT_DISTANCE,
1937cdf0e10cSrcweir 				{
1938cdf0e10cSrcweir 					sal_Int32 nValue = 0;
1939cdf0e10cSrcweir 					pData->aVal >>= nValue;
1940cdf0e10cSrcweir 					if(nValue >= 0)
1941cdf0e10cSrcweir 						aFmt.SetCharTextDistance((sal_uInt16) MM100_TO_TWIP(nValue));
1942cdf0e10cSrcweir 					else
1943cdf0e10cSrcweir 						bWrongArg = sal_True;
1944cdf0e10cSrcweir 				}
1945cdf0e10cSrcweir 				break;
1946cdf0e10cSrcweir 				case 8: //UNO_NAME_FIRST_LINE_OFFSET,
1947cdf0e10cSrcweir 				{
1948cdf0e10cSrcweir 					sal_Int32 nValue = 0;
1949cdf0e10cSrcweir 					pData->aVal >>= nValue;
1950cdf0e10cSrcweir                     // #i23727# nValue can be positive
1951cdf0e10cSrcweir                     nValue = MM100_TO_TWIP(nValue);
1952cdf0e10cSrcweir                     aFmt.SetFirstLineOffset((short)nValue);
1953cdf0e10cSrcweir 				}
1954cdf0e10cSrcweir 				break;
1955cdf0e10cSrcweir                 // --> OD 2008-01-15 #newlistlevelattrs#
1956cdf0e10cSrcweir                 case 9: // UNO_NAME_POSITION_AND_SPACE_MODE
1957cdf0e10cSrcweir                 {
1958cdf0e10cSrcweir                     sal_Int16 nValue = 0;
1959cdf0e10cSrcweir                     pData->aVal >>= nValue;
1960cdf0e10cSrcweir                     if ( nValue == 0 )
1961cdf0e10cSrcweir                     {
1962cdf0e10cSrcweir                         aFmt.SetPositionAndSpaceMode( SvxNumberFormat::LABEL_WIDTH_AND_POSITION );
1963cdf0e10cSrcweir                     }
1964cdf0e10cSrcweir                     else if ( nValue == 1 )
1965cdf0e10cSrcweir                     {
1966cdf0e10cSrcweir                         aFmt.SetPositionAndSpaceMode( SvxNumberFormat::LABEL_ALIGNMENT );
1967cdf0e10cSrcweir                     }
1968cdf0e10cSrcweir                     else
1969cdf0e10cSrcweir                     {
1970cdf0e10cSrcweir                         bWrongArg = sal_True;
1971cdf0e10cSrcweir                     }
1972cdf0e10cSrcweir                 }
1973cdf0e10cSrcweir                 break;
1974cdf0e10cSrcweir                 case 10: // UNO_NAME_LABEL_FOLLOWED_BY
1975cdf0e10cSrcweir                 {
1976cdf0e10cSrcweir                     sal_Int16 nValue = 0;
1977cdf0e10cSrcweir                     pData->aVal >>= nValue;
1978cdf0e10cSrcweir                     if ( nValue == 0 )
1979cdf0e10cSrcweir                     {
1980cdf0e10cSrcweir                         aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1981cdf0e10cSrcweir                     }
1982cdf0e10cSrcweir                     else if ( nValue == 1 )
1983cdf0e10cSrcweir                     {
1984cdf0e10cSrcweir                         aFmt.SetLabelFollowedBy( SvxNumberFormat::SPACE );
1985cdf0e10cSrcweir                     }
1986cdf0e10cSrcweir                     else if ( nValue == 2 )
1987cdf0e10cSrcweir                     {
1988cdf0e10cSrcweir                         aFmt.SetLabelFollowedBy( SvxNumberFormat::NOTHING );
1989cdf0e10cSrcweir                     }
1990cdf0e10cSrcweir                     else
1991cdf0e10cSrcweir                     {
1992cdf0e10cSrcweir                         bWrongArg = sal_True;
1993cdf0e10cSrcweir                     }
1994cdf0e10cSrcweir                 }
1995cdf0e10cSrcweir                 break;
1996cdf0e10cSrcweir                 case 11: // UNO_NAME_LISTTAB_STOP_POSITION
1997cdf0e10cSrcweir                 {
1998cdf0e10cSrcweir                     sal_Int32 nValue = 0;
1999cdf0e10cSrcweir                     pData->aVal >>= nValue;
2000cdf0e10cSrcweir                     nValue = MM100_TO_TWIP(nValue);
2001cdf0e10cSrcweir                     if ( nValue >= 0 )
2002cdf0e10cSrcweir                     {
2003cdf0e10cSrcweir                         aFmt.SetListtabPos( nValue );
2004cdf0e10cSrcweir                     }
2005cdf0e10cSrcweir                     else
2006cdf0e10cSrcweir                     {
2007cdf0e10cSrcweir                         bWrongArg = sal_True;
2008cdf0e10cSrcweir                     }
2009cdf0e10cSrcweir                 }
2010cdf0e10cSrcweir                 break;
2011cdf0e10cSrcweir                 case 12: // UNO_NAME_FIRST_LINE_INDENT
2012cdf0e10cSrcweir                 {
2013cdf0e10cSrcweir                     sal_Int32 nValue = 0;
2014cdf0e10cSrcweir                     pData->aVal >>= nValue;
2015cdf0e10cSrcweir                     nValue = MM100_TO_TWIP(nValue);
2016cdf0e10cSrcweir                     aFmt.SetFirstLineIndent( nValue );
2017cdf0e10cSrcweir                 }
2018cdf0e10cSrcweir                 break;
2019cdf0e10cSrcweir                 case 13: // UNO_NAME_INDENT_AT
2020cdf0e10cSrcweir                 {
2021cdf0e10cSrcweir                     sal_Int32 nValue = 0;
2022cdf0e10cSrcweir                     pData->aVal >>= nValue;
2023cdf0e10cSrcweir                     nValue = MM100_TO_TWIP(nValue);
2024cdf0e10cSrcweir                     aFmt.SetIndentAt( nValue );
2025cdf0e10cSrcweir                 }
2026cdf0e10cSrcweir                 break;
2027cdf0e10cSrcweir                 // <--
2028cdf0e10cSrcweir                 case 14: //"NumberingType"
2029cdf0e10cSrcweir 				{
2030cdf0e10cSrcweir 					sal_Int16 nSet = 0;
2031cdf0e10cSrcweir 					pData->aVal >>= nSet;
2032cdf0e10cSrcweir                     if(nSet >= 0)
2033cdf0e10cSrcweir 						aFmt.SetNumberingType(nSet);
2034cdf0e10cSrcweir 					else
2035cdf0e10cSrcweir 						bWrongArg = sal_True;
2036cdf0e10cSrcweir 				}
2037cdf0e10cSrcweir 				break;
2038cdf0e10cSrcweir                 case 15: //"BulletId",
2039cdf0e10cSrcweir 				{
2040cdf0e10cSrcweir                     sal_Int16 nSet = 0;
2041cdf0e10cSrcweir                     if( pData->aVal >>= nSet )
2042cdf0e10cSrcweir 						aFmt.SetBulletChar(nSet);
2043cdf0e10cSrcweir 					else
2044cdf0e10cSrcweir 						bWrongArg = sal_True;
2045cdf0e10cSrcweir 				}
2046cdf0e10cSrcweir 				break;
2047cdf0e10cSrcweir                 case 16: //UNO_NAME_BULLET_FONT,
2048cdf0e10cSrcweir 				{
2049cdf0e10cSrcweir 				 	awt::FontDescriptor* pDesc =  (awt::FontDescriptor*)pData->aVal.getValue();
2050cdf0e10cSrcweir 					if(pDesc)
2051cdf0e10cSrcweir 					{
2052cdf0e10cSrcweir                         // --> OD 2008-09-11 #i93725#
2053cdf0e10cSrcweir                         // do not accept "empty" font
2054cdf0e10cSrcweir                         if ( pDesc->Name.getLength() > 0 )
2055cdf0e10cSrcweir                         {
2056cdf0e10cSrcweir                             Font aFont;
2057cdf0e10cSrcweir                             SvxUnoFontDescriptor::ConvertToFont( *pDesc, aFont );
2058cdf0e10cSrcweir                             aFmt.SetBulletFont(&aFont);
2059cdf0e10cSrcweir                         }
2060cdf0e10cSrcweir                         // <--
2061cdf0e10cSrcweir 					}
2062cdf0e10cSrcweir 					else
2063cdf0e10cSrcweir 						bWrongArg = sal_True;
2064cdf0e10cSrcweir 				}
2065cdf0e10cSrcweir 				break;
2066cdf0e10cSrcweir                 case 17: //"BulletFontName",
2067cdf0e10cSrcweir 				{
2068cdf0e10cSrcweir 					OUString uTmp;
2069cdf0e10cSrcweir 					pData->aVal >>= uTmp;
2070cdf0e10cSrcweir 					String sBulletFontName(uTmp);
2071cdf0e10cSrcweir                     SwDocShell* pLclDocShell = pDocShell ? pDocShell : pDoc ? pDoc->GetDocShell() : 0;
2072cdf0e10cSrcweir                     if( sBulletFontName.Len() && pLclDocShell )
2073cdf0e10cSrcweir                     {
2074cdf0e10cSrcweir                         const SvxFontListItem* pFontListItem =
2075cdf0e10cSrcweir                                 (const SvxFontListItem* )pLclDocShell
2076cdf0e10cSrcweir                                                     ->GetItem( SID_ATTR_CHAR_FONTLIST );
2077cdf0e10cSrcweir                         const FontList*  pList = pFontListItem->GetFontList();
2078cdf0e10cSrcweir                         FontInfo aInfo = pList->Get(
2079cdf0e10cSrcweir                             sBulletFontName, WEIGHT_NORMAL, ITALIC_NONE);
2080cdf0e10cSrcweir                         Font aFont(aInfo);
2081cdf0e10cSrcweir                         aFmt.SetBulletFont(&aFont);
2082cdf0e10cSrcweir                     }
2083cdf0e10cSrcweir                     else
2084cdf0e10cSrcweir                         sNewBulletFontNames[(sal_uInt16)nIndex] = sBulletFontName;
2085cdf0e10cSrcweir 				}
2086cdf0e10cSrcweir 				break;
2087cdf0e10cSrcweir                 case 18: //"BulletChar",
2088cdf0e10cSrcweir 				{
2089cdf0e10cSrcweir 					OUString aChar;
2090cdf0e10cSrcweir 					pData->aVal >>= aChar;
2091cdf0e10cSrcweir 					if(aChar.getLength() == 1)
2092cdf0e10cSrcweir 					{
2093cdf0e10cSrcweir 						aFmt.SetBulletChar(aChar.toChar());
2094cdf0e10cSrcweir 					}
2095cdf0e10cSrcweir 					else
2096cdf0e10cSrcweir 						bWrongArg = sal_True;
2097cdf0e10cSrcweir 				}
2098cdf0e10cSrcweir 				break;
2099cdf0e10cSrcweir                 case 19: //UNO_NAME_GRAPHIC_URL,
2100cdf0e10cSrcweir 				{
2101cdf0e10cSrcweir 					OUString sBrushURL;
2102cdf0e10cSrcweir 					pData->aVal >>= sBrushURL;
2103efc6b937SArrigo Marchiori 					// We could have pDoc, but not pDocShell, or vice-versa
2104efc6b937SArrigo Marchiori 					SwDoc* myDoc = pDoc;
2105efc6b937SArrigo Marchiori 					SwDocShell* myDocShell = pDocShell;
2106efc6b937SArrigo Marchiori 					if ( myDoc && ( myDocShell == NULL ) ) {
2107efc6b937SArrigo Marchiori 						myDocShell = myDoc->GetDocShell();
2108efc6b937SArrigo Marchiori 					} else if ( ( myDoc == NULL ) && myDocShell ) {
2109efc6b937SArrigo Marchiori 						myDoc = myDocShell->GetDoc();
2110efc6b937SArrigo Marchiori 					}
2111efc6b937SArrigo Marchiori 					if ( myDoc && myDocShell ) {
2112efc6b937SArrigo Marchiori 						// The following access to the window is copied from SwDoc::UpdateLinks()
2113efc6b937SArrigo Marchiori 						SfxMedium* pMedium = myDocShell->GetMedium();
2114efc6b937SArrigo Marchiori 						SfxFrame* pFrm = pMedium ? pMedium->GetLoadTargetFrame() : 0;
2115efc6b937SArrigo Marchiori 						sfx2::LinkManager& pLinkMgr = myDoc->GetLinkManager();
2116*e1390266SArrigo Marchiori 						if ( pLinkMgr.urlIsVendor( sBrushURL ) ) {
2117*e1390266SArrigo Marchiori 							break; // Stop here
2118*e1390266SArrigo Marchiori 						}
2119efc6b937SArrigo Marchiori 						if ( !pLinkMgr.urlIsSafe( sBrushURL ) ) {
2120efc6b937SArrigo Marchiori 							Window* pDlgParent = 0;
2121efc6b937SArrigo Marchiori 							if ( pFrm )
2122efc6b937SArrigo Marchiori 								pDlgParent = &pFrm->GetWindow();
2123efc6b937SArrigo Marchiori 							if ( !pDlgParent )
2124efc6b937SArrigo Marchiori 								pDlgParent = myDocShell->GetDialogParent( pMedium );
2125efc6b937SArrigo Marchiori 							if ( pDlgParent )
2126efc6b937SArrigo Marchiori 								if ( !pLinkMgr.GetUserAllowsLinkUpdate( pDlgParent )) {
2127efc6b937SArrigo Marchiori 									break; // Stop here
2128efc6b937SArrigo Marchiori 								}
2129efc6b937SArrigo Marchiori 						}
2130efc6b937SArrigo Marchiori 					}
2131cdf0e10cSrcweir 					if(!pSetBrush)
2132cdf0e10cSrcweir 					{
2133cdf0e10cSrcweir 						const SvxBrushItem* pOrigBrush = aFmt.GetBrush();
2134cdf0e10cSrcweir 						if(pOrigBrush)
2135cdf0e10cSrcweir 						{
2136cdf0e10cSrcweir                             pSetBrush = new SvxBrushItem(*pOrigBrush);
2137cdf0e10cSrcweir 						}
2138cdf0e10cSrcweir 						else
2139cdf0e10cSrcweir                             pSetBrush = new SvxBrushItem(aEmptyStr, aEmptyStr, GPOS_AREA, RES_BACKGROUND);
2140cdf0e10cSrcweir 					}
2141cdf0e10cSrcweir 					pSetBrush->PutValue( pData->aVal, MID_GRAPHIC_URL );
2142cdf0e10cSrcweir 				}
2143cdf0e10cSrcweir 				break;
2144cdf0e10cSrcweir                 case 20: //UNO_NAME_GRAPHIC_BITMAP,
2145cdf0e10cSrcweir 				{
2146cdf0e10cSrcweir 					uno::Reference< awt::XBitmap >* pBitmap = (uno::Reference< awt::XBitmap > *)pData->aVal.getValue();
2147cdf0e10cSrcweir 					if(pBitmap)
2148cdf0e10cSrcweir 					{
2149cdf0e10cSrcweir 						if(!pSetBrush)
2150cdf0e10cSrcweir 						{
2151cdf0e10cSrcweir 							const SvxBrushItem* pOrigBrush = aFmt.GetBrush();
2152cdf0e10cSrcweir 							if(pOrigBrush)
2153cdf0e10cSrcweir 							{
2154cdf0e10cSrcweir                                 pSetBrush = new SvxBrushItem(*pOrigBrush);
2155cdf0e10cSrcweir 							}
2156cdf0e10cSrcweir 							else
2157cdf0e10cSrcweir                                 pSetBrush = new SvxBrushItem(aEmptyStr, aEmptyStr, GPOS_AREA, RES_BACKGROUND);
2158cdf0e10cSrcweir 						}
2159cdf0e10cSrcweir 
2160cdf0e10cSrcweir 						BitmapEx aBmp = VCLUnoHelper::GetBitmap( *pBitmap );
2161cdf0e10cSrcweir 						Graphic aNewGr(aBmp);
2162cdf0e10cSrcweir 						pSetBrush->SetGraphic( aNewGr );
2163cdf0e10cSrcweir 					}
2164cdf0e10cSrcweir 					else
2165cdf0e10cSrcweir 						bWrongArg = sal_True;
2166cdf0e10cSrcweir 				}
2167cdf0e10cSrcweir 				break;
2168cdf0e10cSrcweir                 case 21: //UNO_NAME_GRAPHIC_SIZE,
2169cdf0e10cSrcweir 				{
2170cdf0e10cSrcweir 					if(!pSetSize)
2171cdf0e10cSrcweir 						pSetSize = new Size;
2172cdf0e10cSrcweir 					if(pData->aVal.getValueType() == ::getCppuType((awt::Size*)0))
2173cdf0e10cSrcweir 					{
2174cdf0e10cSrcweir 				 		awt::Size* pSize =  (awt::Size*)pData->aVal.getValue();
2175cdf0e10cSrcweir 						pSize->Width = MM100_TO_TWIP(pSize->Width);
2176cdf0e10cSrcweir 						pSize->Height = MM100_TO_TWIP(pSize->Height);
2177cdf0e10cSrcweir 						pSetSize->Width() = pSize->Width;
2178cdf0e10cSrcweir 						pSetSize->Height() = pSize->Height;
2179cdf0e10cSrcweir 					}
2180cdf0e10cSrcweir 					else
2181cdf0e10cSrcweir 						bWrongArg = sal_True;
2182cdf0e10cSrcweir 				}
2183cdf0e10cSrcweir 				break;
2184cdf0e10cSrcweir                 case 22: //VertOrient
2185cdf0e10cSrcweir 				{
2186cdf0e10cSrcweir 					if(!pSetVOrient)
2187cdf0e10cSrcweir 					{
2188cdf0e10cSrcweir 						if(aFmt.GetGraphicOrientation())
2189cdf0e10cSrcweir 							pSetVOrient = (SwFmtVertOrient*)aFmt.GetGraphicOrientation()->Clone();
2190cdf0e10cSrcweir 						else
2191cdf0e10cSrcweir 							pSetVOrient = new SwFmtVertOrient;
2192cdf0e10cSrcweir 					}
2193cdf0e10cSrcweir 					((SfxPoolItem*)pSetVOrient)->PutValue(pData->aVal, MID_VERTORIENT_ORIENT);
2194cdf0e10cSrcweir 				}
2195cdf0e10cSrcweir 				break;
2196cdf0e10cSrcweir                 case 23: //"HeadingStyleName"
2197cdf0e10cSrcweir                 {
2198cdf0e10cSrcweir                     OUString uTmp;
2199cdf0e10cSrcweir                     pData->aVal >>= uTmp;
2200cdf0e10cSrcweir                     String sStyleName;
2201cdf0e10cSrcweir                     SwStyleNameMapper::FillUIName( uTmp, sStyleName, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, sal_True );
2202cdf0e10cSrcweir                     const SwTxtFmtColls* pColls = pDocShell->GetDoc()->GetTxtFmtColls();
2203cdf0e10cSrcweir                     const sal_uInt16 nCount = pColls->Count();
2204cdf0e10cSrcweir                     for ( sal_uInt16 k = 0; k < nCount; ++k )
2205cdf0e10cSrcweir                     {
2206cdf0e10cSrcweir                         SwTxtFmtColl &rTxtColl = *( ( *pColls )[k] );
2207cdf0e10cSrcweir                         if ( rTxtColl.IsDefault() )
2208cdf0e10cSrcweir                             continue;
2209808c4840SOliver-Rainer Wittmann                         if ( rTxtColl.IsAssignedToListLevelOfOutlineStyle()
2210808c4840SOliver-Rainer Wittmann                              && rTxtColl.GetAssignedOutlineStyleLevel() == nIndex
2211808c4840SOliver-Rainer Wittmann                              && rTxtColl.GetName() != sStyleName )
2212cdf0e10cSrcweir                         {
2213cdf0e10cSrcweir                             rTxtColl.DeleteAssignmentToListLevelOfOutlineStyle();
2214cdf0e10cSrcweir                         }
2215cdf0e10cSrcweir                         else if ( rTxtColl.GetName() == sStyleName )
2216cdf0e10cSrcweir                         {
2217cdf0e10cSrcweir                             rTxtColl.AssignToListLevelOfOutlineStyle( nIndex );
2218808c4840SOliver-Rainer Wittmann                         }
2219cdf0e10cSrcweir                     }
2220cdf0e10cSrcweir                 }
2221cdf0e10cSrcweir                 break;
2222cdf0e10cSrcweir                 case 24: // BulletRelSize - unsupported - only available in Impress
2223cdf0e10cSrcweir                 break;
2224cdf0e10cSrcweir             }
2225cdf0e10cSrcweir         }
2226cdf0e10cSrcweir 		if(!bExcept && !bWrongArg && (pSetBrush || pSetSize || pSetVOrient))
2227cdf0e10cSrcweir 		{
2228cdf0e10cSrcweir 			if(!pSetBrush && aFmt.GetBrush())
2229cdf0e10cSrcweir                 pSetBrush = new SvxBrushItem(*aFmt.GetBrush());
2230cdf0e10cSrcweir 
2231cdf0e10cSrcweir 			if(pSetBrush)
2232cdf0e10cSrcweir 			{
2233cdf0e10cSrcweir 				if(!pSetVOrient && aFmt.GetGraphicOrientation())
2234cdf0e10cSrcweir 					pSetVOrient = new SwFmtVertOrient(*aFmt.GetGraphicOrientation());
2235cdf0e10cSrcweir 
2236cdf0e10cSrcweir 				if(!pSetSize)
2237cdf0e10cSrcweir 				{
2238cdf0e10cSrcweir 					pSetSize = new Size(aFmt.GetGraphicSize());
2239cdf0e10cSrcweir 					if(!pSetSize->Width() || !pSetSize->Height())
2240cdf0e10cSrcweir 					{
2241cdf0e10cSrcweir 						const Graphic* pGraphic = pSetBrush->GetGraphic();
2242cdf0e10cSrcweir 						if(pGraphic)
2243cdf0e10cSrcweir 							*pSetSize = ::GetGraphicSizeTwip(*pGraphic, 0);
2244cdf0e10cSrcweir 					}
2245cdf0e10cSrcweir 				}
2246cdf0e10cSrcweir                 sal_Int16 eOrient = pSetVOrient ?
2247cdf0e10cSrcweir                     (sal_Int16)pSetVOrient->GetVertOrient() : text::VertOrientation::NONE;
2248cdf0e10cSrcweir                 aFmt.SetGraphicBrush( pSetBrush, pSetSize, text::VertOrientation::NONE == eOrient ? 0 : &eOrient );
2249cdf0e10cSrcweir 			}
2250cdf0e10cSrcweir 		}
2251cdf0e10cSrcweir         if((!bCharStyleNameSet || !sNewCharStyleNames[(sal_uInt16)nIndex].Len()) &&
2252cdf0e10cSrcweir                 aFmt.GetNumberingType() == NumberingType::BITMAP && !aFmt.GetCharFmt()
2253cdf0e10cSrcweir                     && SwXNumberingRules::GetInvalidStyle() != sNewCharStyleNames[(sal_uInt16)nIndex])
2254cdf0e10cSrcweir         {
2255cdf0e10cSrcweir 			SwStyleNameMapper::FillProgName ( RES_POOLCHR_BUL_LEVEL, sNewCharStyleNames[(sal_uInt16)nIndex] );
2256cdf0e10cSrcweir         }
2257cdf0e10cSrcweir 		delete pSetBrush;
2258cdf0e10cSrcweir 		delete pSetSize;
2259cdf0e10cSrcweir 		delete pSetVOrient;
2260cdf0e10cSrcweir   	}
2261cdf0e10cSrcweir 	aPropertyValues.DeleteAndDestroy(0, aPropertyValues.Count());
2262cdf0e10cSrcweir 
2263cdf0e10cSrcweir 	if(bWrongArg)
2264cdf0e10cSrcweir 		throw lang::IllegalArgumentException();
2265cdf0e10cSrcweir 	else if(bExcept)
2266cdf0e10cSrcweir 		throw uno::RuntimeException();
2267cdf0e10cSrcweir 	rNumRule.Set( (sal_uInt16)nIndex, aFmt );
2268cdf0e10cSrcweir 
2269cdf0e10cSrcweir }
2270cdf0e10cSrcweir /*-- 19.07.00 07:49:17---------------------------------------------------
2271cdf0e10cSrcweir 
2272cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertySetInfo()2273cdf0e10cSrcweir uno::Reference< XPropertySetInfo > SwXNumberingRules::getPropertySetInfo()
2274cdf0e10cSrcweir 	throw(RuntimeException)
2275cdf0e10cSrcweir {
2276cdf0e10cSrcweir     static uno::Reference< beans::XPropertySetInfo >  aRef = m_pPropertySet->getPropertySetInfo();
2277cdf0e10cSrcweir 	return aRef;
2278cdf0e10cSrcweir }
2279cdf0e10cSrcweir /*-- 19.07.00 07:49:17---------------------------------------------------
2280cdf0e10cSrcweir 
2281cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setPropertyValue(const OUString & rPropertyName,const Any & rValue)2282cdf0e10cSrcweir void SwXNumberingRules::setPropertyValue( const OUString& rPropertyName, const Any& rValue )
2283cdf0e10cSrcweir 	throw(UnknownPropertyException, PropertyVetoException,
2284cdf0e10cSrcweir 		IllegalArgumentException, WrappedTargetException, RuntimeException)
2285cdf0e10cSrcweir {
2286cdf0e10cSrcweir 	Any aRet;
2287cdf0e10cSrcweir 	SwNumRule* pDocRule = 0;
2288cdf0e10cSrcweir 	SwNumRule* pCreatedRule = 0;
2289cdf0e10cSrcweir 	if(!pNumRule)
2290cdf0e10cSrcweir 	{
2291cdf0e10cSrcweir 		if(!pNumRule && pDocShell)
2292cdf0e10cSrcweir 		{
2293cdf0e10cSrcweir 			pDocRule = new SwNumRule(*pDocShell->GetDoc()->GetOutlineNumRule());
2294cdf0e10cSrcweir 		}
2295cdf0e10cSrcweir 		else if(pDoc && sCreatedNumRuleName.Len())
2296cdf0e10cSrcweir 		{
2297cdf0e10cSrcweir 			pCreatedRule = pDoc->FindNumRulePtr( sCreatedNumRuleName);
2298cdf0e10cSrcweir 		}
2299cdf0e10cSrcweir 
2300cdf0e10cSrcweir 	}
2301cdf0e10cSrcweir 	if(!pNumRule && !pDocRule && !pCreatedRule)
2302cdf0e10cSrcweir 		throw RuntimeException();
2303cdf0e10cSrcweir 
2304cdf0e10cSrcweir 
2305cdf0e10cSrcweir 	if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_AUTOMATIC)))
2306cdf0e10cSrcweir 	{
2307cdf0e10cSrcweir 		sal_Bool bVal = *(sal_Bool*)rValue.getValue();
2308cdf0e10cSrcweir 		if(!pCreatedRule)
2309cdf0e10cSrcweir 			pDocRule ? pDocRule->SetAutoRule(bVal) : pNumRule->SetAutoRule(bVal);
2310cdf0e10cSrcweir 	}
2311cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_CONTINUOUS_NUMBERING)))
2312cdf0e10cSrcweir 	{
2313cdf0e10cSrcweir 		sal_Bool bVal = *(sal_Bool*)rValue.getValue();
2314cdf0e10cSrcweir 		pDocRule ? pDocRule->SetContinusNum(bVal) :
2315cdf0e10cSrcweir 			pCreatedRule ? pCreatedRule->SetContinusNum(bVal) : pNumRule->SetContinusNum(bVal);
2316cdf0e10cSrcweir 	}
2317cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_NAME)))
2318cdf0e10cSrcweir 	{
2319cdf0e10cSrcweir 		delete pDocRule;
2320cdf0e10cSrcweir 		throw IllegalArgumentException();
2321cdf0e10cSrcweir 	}
2322cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_ABSOLUTE_MARGINS)))
2323cdf0e10cSrcweir 	{
2324cdf0e10cSrcweir 		sal_Bool bVal = *(sal_Bool*)rValue.getValue();
2325cdf0e10cSrcweir 		pDocRule ? pDocRule->SetAbsSpaces(bVal) :
2326cdf0e10cSrcweir 			pCreatedRule ? pCreatedRule->SetAbsSpaces(bVal) : pNumRule->SetAbsSpaces(bVal);
2327cdf0e10cSrcweir 	}
2328cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_NUMBERING_IS_OUTLINE)))
2329cdf0e10cSrcweir 	{
2330cdf0e10cSrcweir 		sal_Bool bVal = *(sal_Bool*)rValue.getValue();
2331cdf0e10cSrcweir         SwNumRuleType eNumRuleType = bVal ? OUTLINE_RULE : NUM_RULE;
2332cdf0e10cSrcweir 		pDocRule ? pDocRule->SetRuleType(eNumRuleType) :
2333cdf0e10cSrcweir 			pCreatedRule ? pCreatedRule->SetRuleType(eNumRuleType) : pNumRule->SetRuleType(eNumRuleType);
2334cdf0e10cSrcweir 	}
2335cdf0e10cSrcweir     // --> OD 2008-04-23 #refactorlists#
2336cdf0e10cSrcweir     else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_DEFAULT_LIST_ID)))
2337cdf0e10cSrcweir     {
2338cdf0e10cSrcweir         delete pDocRule;
2339cdf0e10cSrcweir         throw IllegalArgumentException();
2340cdf0e10cSrcweir     }
2341cdf0e10cSrcweir     // <--
2342cdf0e10cSrcweir 	else
2343cdf0e10cSrcweir 		throw UnknownPropertyException();
2344cdf0e10cSrcweir 
2345cdf0e10cSrcweir 	if(pDocRule)
2346cdf0e10cSrcweir 	{
2347cdf0e10cSrcweir 		pDocShell->GetDoc()->SetOutlineNumRule(*pDocRule);
2348cdf0e10cSrcweir 		delete pDocRule;
2349cdf0e10cSrcweir 	}
2350cdf0e10cSrcweir 	else if(pCreatedRule)
2351cdf0e10cSrcweir 	{
2352cdf0e10cSrcweir         pCreatedRule->Validate();
2353cdf0e10cSrcweir 	}
2354cdf0e10cSrcweir }
2355cdf0e10cSrcweir /*-- 19.07.00 07:49:18---------------------------------------------------
2356cdf0e10cSrcweir 
2357cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertyValue(const OUString & rPropertyName)2358cdf0e10cSrcweir Any SwXNumberingRules::getPropertyValue( const OUString& rPropertyName )
2359cdf0e10cSrcweir 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2360cdf0e10cSrcweir {
2361cdf0e10cSrcweir 	Any aRet;
2362cdf0e10cSrcweir 	const SwNumRule* pRule = pNumRule;
2363cdf0e10cSrcweir 	if(!pRule && pDocShell)
2364cdf0e10cSrcweir 		pRule = pDocShell->GetDoc()->GetOutlineNumRule();
2365cdf0e10cSrcweir 	else if(pDoc && sCreatedNumRuleName.Len())
2366cdf0e10cSrcweir 		pRule = pDoc->FindNumRulePtr( sCreatedNumRuleName );
2367cdf0e10cSrcweir 	if(!pRule)
2368cdf0e10cSrcweir 		throw RuntimeException();
2369cdf0e10cSrcweir 
2370cdf0e10cSrcweir 	if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_AUTOMATIC)))
2371cdf0e10cSrcweir 	{
2372cdf0e10cSrcweir 		sal_Bool bVal = pRule->IsAutoRule();
2373cdf0e10cSrcweir 		aRet.setValue(&bVal, ::getBooleanCppuType());
2374cdf0e10cSrcweir 	}
2375cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_CONTINUOUS_NUMBERING)))
2376cdf0e10cSrcweir 	{
2377cdf0e10cSrcweir 		sal_Bool bVal = pRule->IsContinusNum();
2378cdf0e10cSrcweir 		aRet.setValue(&bVal, ::getBooleanCppuType());
2379cdf0e10cSrcweir 	}
2380cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_NAME)))
2381cdf0e10cSrcweir 		aRet <<= OUString(pRule->GetName());
2382cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_ABSOLUTE_MARGINS)))
2383cdf0e10cSrcweir 	{
2384cdf0e10cSrcweir 		sal_Bool bVal = pRule->IsAbsSpaces();
2385cdf0e10cSrcweir 		aRet.setValue(&bVal, ::getBooleanCppuType());
2386cdf0e10cSrcweir 	}
2387cdf0e10cSrcweir 	else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_NUMBERING_IS_OUTLINE)))
2388cdf0e10cSrcweir 	{
2389cdf0e10cSrcweir 		sal_Bool bVal = pRule->IsOutlineRule();
2390cdf0e10cSrcweir 		aRet.setValue(&bVal, ::getBooleanCppuType());
2391cdf0e10cSrcweir 	}
2392cdf0e10cSrcweir     // --> OD 2008-04-23 #refactorlists#
2393cdf0e10cSrcweir     else if(rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_DEFAULT_LIST_ID)))
2394cdf0e10cSrcweir     {
2395cdf0e10cSrcweir         ASSERT( pRule->GetDefaultListId().Len() != 0,
2396cdf0e10cSrcweir                 "<SwXNumberingRules::getPropertyValue(..)> - no default list id found. Serious defect -> please inform OD." );
2397cdf0e10cSrcweir         aRet <<= OUString(pRule->GetDefaultListId());
2398cdf0e10cSrcweir     }
2399cdf0e10cSrcweir     // <--
2400cdf0e10cSrcweir 	else
2401cdf0e10cSrcweir 		throw UnknownPropertyException();
2402cdf0e10cSrcweir 	return aRet;
2403cdf0e10cSrcweir }
2404cdf0e10cSrcweir /*-- 19.07.00 07:49:18---------------------------------------------------
2405cdf0e10cSrcweir 
2406cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addPropertyChangeListener(const OUString &,const uno::Reference<XPropertyChangeListener> &)2407cdf0e10cSrcweir void SwXNumberingRules::addPropertyChangeListener(
2408cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XPropertyChangeListener >& /*xListener*/ )
2409cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2410cdf0e10cSrcweir {
2411cdf0e10cSrcweir }
2412cdf0e10cSrcweir /*-- 19.07.00 07:49:18---------------------------------------------------
2413cdf0e10cSrcweir 
2414cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removePropertyChangeListener(const OUString &,const uno::Reference<XPropertyChangeListener> &)2415cdf0e10cSrcweir void SwXNumberingRules::removePropertyChangeListener(
2416cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XPropertyChangeListener >& /*xListener*/ )
2417cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2418cdf0e10cSrcweir {
2419cdf0e10cSrcweir }
2420cdf0e10cSrcweir /*-- 19.07.00 07:49:18---------------------------------------------------
2421cdf0e10cSrcweir 
2422cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addVetoableChangeListener(const OUString &,const uno::Reference<XVetoableChangeListener> &)2423cdf0e10cSrcweir void SwXNumberingRules::addVetoableChangeListener(
2424cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XVetoableChangeListener >& /*xListener*/ )
2425cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2426cdf0e10cSrcweir {
2427cdf0e10cSrcweir }
2428cdf0e10cSrcweir /*-- 19.07.00 07:49:18---------------------------------------------------
2429cdf0e10cSrcweir 
2430cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removeVetoableChangeListener(const OUString &,const uno::Reference<XVetoableChangeListener> &)2431cdf0e10cSrcweir void SwXNumberingRules::removeVetoableChangeListener(
2432cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XVetoableChangeListener >& /*xListener*/ )
2433cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2434cdf0e10cSrcweir {
2435cdf0e10cSrcweir }
2436cdf0e10cSrcweir /* -----------------------------17.10.00 14:23--------------------------------
2437cdf0e10cSrcweir 
2438cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getName()2439cdf0e10cSrcweir OUString SwXNumberingRules::getName() throw( RuntimeException )
2440cdf0e10cSrcweir {
2441cdf0e10cSrcweir 	String aString;
2442cdf0e10cSrcweir 	if(pNumRule)
2443cdf0e10cSrcweir 	{
2444cdf0e10cSrcweir 		SwStyleNameMapper::FillProgName(pNumRule->GetName(), aString, nsSwGetPoolIdFromName::GET_POOLID_NUMRULE, sal_True );
2445cdf0e10cSrcweir 		return OUString ( aString );
2446cdf0e10cSrcweir 	}
2447cdf0e10cSrcweir     // --> OD 2005-10-25 #126347# - consider chapter numbering <SwXNumberingRules>
2448cdf0e10cSrcweir     else if ( pDocShell )
2449cdf0e10cSrcweir     {
2450cdf0e10cSrcweir         SwStyleNameMapper::FillProgName( pDocShell->GetDoc()->GetOutlineNumRule()->GetName(),
2451cdf0e10cSrcweir                                          aString, nsSwGetPoolIdFromName::GET_POOLID_NUMRULE, sal_True );
2452cdf0e10cSrcweir         return OUString ( aString );
2453cdf0e10cSrcweir     }
2454cdf0e10cSrcweir     // <--
2455cdf0e10cSrcweir 	else
2456cdf0e10cSrcweir 		return sCreatedNumRuleName;
2457cdf0e10cSrcweir }
2458cdf0e10cSrcweir /* -----------------------------17.10.00 14:23--------------------------------
2459cdf0e10cSrcweir 
2460cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
setName(const OUString &)2461cdf0e10cSrcweir void SwXNumberingRules::setName(const OUString& /*rName*/) throw( RuntimeException )
2462cdf0e10cSrcweir {
2463cdf0e10cSrcweir 	RuntimeException aExcept;
2464cdf0e10cSrcweir 	aExcept.Message = C2U("readonly");
2465cdf0e10cSrcweir 	throw aExcept;
2466cdf0e10cSrcweir }
2467cdf0e10cSrcweir /*-- 14.12.98 14:58:00---------------------------------------------------
2468cdf0e10cSrcweir 
2469cdf0e10cSrcweir   -----------------------------------------------------------------------*/
Modify(const SfxPoolItem * pOld,const SfxPoolItem * pNew)2470cdf0e10cSrcweir void SwXNumberingRules::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
2471cdf0e10cSrcweir {
2472cdf0e10cSrcweir 	ClientModify(this, pOld, pNew);
2473cdf0e10cSrcweir 	if(!GetRegisteredIn())
2474cdf0e10cSrcweir 	{
2475cdf0e10cSrcweir 		if(bOwnNumRuleCreated)
2476cdf0e10cSrcweir 			delete pNumRule;
2477cdf0e10cSrcweir 		pNumRule = 0;
2478cdf0e10cSrcweir 		pDoc = 0;
2479cdf0e10cSrcweir 	}
2480cdf0e10cSrcweir }
2481cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
2482cdf0e10cSrcweir 
2483cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getImplementationName(void)2484cdf0e10cSrcweir OUString SwXChapterNumbering::getImplementationName(void) throw( RuntimeException )
2485cdf0e10cSrcweir {
2486cdf0e10cSrcweir 	return C2U("SwXChapterNumbering");
2487cdf0e10cSrcweir }
2488cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
2489cdf0e10cSrcweir 
2490cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)2491cdf0e10cSrcweir sal_Bool SwXChapterNumbering::supportsService(const OUString& rServiceName) throw( RuntimeException )
2492cdf0e10cSrcweir {
2493cdf0e10cSrcweir 	String sServiceName(rServiceName);
2494cdf0e10cSrcweir 	return sServiceName.EqualsAscii("com.sun.star.text.ChapterNumbering") ||
2495cdf0e10cSrcweir 			sServiceName.EqualsAscii("com.sun.star.text.NumberingRules");
2496cdf0e10cSrcweir }
2497cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
2498cdf0e10cSrcweir 
2499cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)2500cdf0e10cSrcweir Sequence< OUString > SwXChapterNumbering::getSupportedServiceNames(void) throw( RuntimeException )
2501cdf0e10cSrcweir {
2502cdf0e10cSrcweir 	Sequence< OUString > aRet(2);
2503cdf0e10cSrcweir 	OUString* pArray = aRet.getArray();
2504cdf0e10cSrcweir 	pArray[0] = C2U("com.sun.star.text.ChapterNumbering");
2505cdf0e10cSrcweir 	pArray[1] = C2U("com.sun.star.text.NumberingRules");
2506cdf0e10cSrcweir 	return aRet;
2507cdf0e10cSrcweir }
2508cdf0e10cSrcweir /* -----------------22.02.99 16:33-------------------
2509cdf0e10cSrcweir  *
2510cdf0e10cSrcweir  * --------------------------------------------------*/
SwXChapterNumbering(SwDocShell & rDocSh)2511cdf0e10cSrcweir SwXChapterNumbering::SwXChapterNumbering(SwDocShell& rDocSh) :
2512cdf0e10cSrcweir 	SwXNumberingRules(rDocSh)
2513cdf0e10cSrcweir {
2514cdf0e10cSrcweir }
2515cdf0e10cSrcweir /* -----------------22.02.99 16:33-------------------
2516cdf0e10cSrcweir  *
2517cdf0e10cSrcweir  * --------------------------------------------------*/
~SwXChapterNumbering()2518cdf0e10cSrcweir SwXChapterNumbering::~SwXChapterNumbering()
2519cdf0e10cSrcweir {
2520cdf0e10cSrcweir }
2521cdf0e10cSrcweir 
2522cdf0e10cSrcweir /******************************************************************
2523cdf0e10cSrcweir  * SwXTextColumns
2524cdf0e10cSrcweir  ******************************************************************/
2525cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
2526cdf0e10cSrcweir 
2527cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getImplementationName(void)2528cdf0e10cSrcweir OUString SwXTextColumns::getImplementationName(void) throw( RuntimeException )
2529cdf0e10cSrcweir {
2530cdf0e10cSrcweir 	return C2U("SwXTextColumns");
2531cdf0e10cSrcweir }
2532cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
2533cdf0e10cSrcweir 
2534cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)2535cdf0e10cSrcweir sal_Bool SwXTextColumns::supportsService(const OUString& rServiceName) throw( RuntimeException )
2536cdf0e10cSrcweir {
2537cdf0e10cSrcweir 	return C2U("com.sun.star.text.TextColumns") == rServiceName;
2538cdf0e10cSrcweir }
2539cdf0e10cSrcweir /* -----------------------------06.04.00 11:47--------------------------------
2540cdf0e10cSrcweir 
2541cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)2542cdf0e10cSrcweir Sequence< OUString > SwXTextColumns::getSupportedServiceNames(void) throw( RuntimeException )
2543cdf0e10cSrcweir {
2544cdf0e10cSrcweir 	Sequence< OUString > aRet(1);
2545cdf0e10cSrcweir 	OUString* pArray = aRet.getArray();
2546cdf0e10cSrcweir 	pArray[0] = C2U("com.sun.star.text.TextColumns");
2547cdf0e10cSrcweir 	return aRet;
2548cdf0e10cSrcweir }
2549cdf0e10cSrcweir /* -----------------------------24.10.00 16:45--------------------------------
2550cdf0e10cSrcweir 
2551cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
SwXTextColumns(sal_uInt16 nColCount)2552cdf0e10cSrcweir SwXTextColumns::SwXTextColumns(sal_uInt16 nColCount) :
2553cdf0e10cSrcweir 	nReference(0),
2554cdf0e10cSrcweir     bIsAutomaticWidth(sal_True),
2555cdf0e10cSrcweir     nAutoDistance(0),
2556cdf0e10cSrcweir     m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_COLUMS)),
2557cdf0e10cSrcweir 	nSepLineWidth(0),
2558cdf0e10cSrcweir 	nSepLineColor(0), //black
2559cdf0e10cSrcweir 	nSepLineHeightRelative(100),//full height
2560cdf0e10cSrcweir 	nSepLineVertAlign(style::VerticalAlignment_MIDDLE),
2561cdf0e10cSrcweir 	bSepLineIsOn(sal_False)
2562cdf0e10cSrcweir {
2563cdf0e10cSrcweir 	if(nColCount)
2564cdf0e10cSrcweir 		setColumnCount(nColCount);
2565cdf0e10cSrcweir }
2566cdf0e10cSrcweir /*-- 16.12.98 14:06:53---------------------------------------------------
2567cdf0e10cSrcweir 
2568cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwXTextColumns(const SwFmtCol & rFmtCol)2569cdf0e10cSrcweir SwXTextColumns::SwXTextColumns(const SwFmtCol& rFmtCol) :
2570cdf0e10cSrcweir 	nReference(0),
2571cdf0e10cSrcweir 	aTextColumns(rFmtCol.GetNumCols()),
2572cdf0e10cSrcweir     bIsAutomaticWidth(rFmtCol.IsOrtho()),
2573cdf0e10cSrcweir     m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_COLUMS))
2574cdf0e10cSrcweir {
2575cdf0e10cSrcweir     sal_uInt16 nItemGutterWidth = rFmtCol.GetGutterWidth();
2576cdf0e10cSrcweir     nAutoDistance = bIsAutomaticWidth ?
2577cdf0e10cSrcweir                         USHRT_MAX == nItemGutterWidth ? DEF_GUTTER_WIDTH : (sal_Int32)nItemGutterWidth
2578cdf0e10cSrcweir                         : 0;
2579cdf0e10cSrcweir     nAutoDistance = TWIP_TO_MM100(nAutoDistance);
2580cdf0e10cSrcweir 
2581cdf0e10cSrcweir     TextColumn* pColumns = aTextColumns.getArray();
2582cdf0e10cSrcweir 	const SwColumns& rCols = rFmtCol.GetColumns();
2583cdf0e10cSrcweir 	for(sal_uInt16 i = 0; i < aTextColumns.getLength(); i++)
2584cdf0e10cSrcweir 	{
2585cdf0e10cSrcweir 		SwColumn* pCol = rCols[i];
2586cdf0e10cSrcweir 
2587cdf0e10cSrcweir 		pColumns[i].Width = pCol->GetWishWidth();
2588cdf0e10cSrcweir 		nReference += pColumns[i].Width;
2589cdf0e10cSrcweir 		pColumns[i].LeftMargin = 	TWIP_TO_MM100_UNSIGNED(pCol->GetLeft ());
2590cdf0e10cSrcweir 		pColumns[i].RightMargin = 	TWIP_TO_MM100_UNSIGNED(pCol->GetRight());
2591cdf0e10cSrcweir 	}
2592cdf0e10cSrcweir 	if(!aTextColumns.getLength())
2593cdf0e10cSrcweir 		nReference = USHRT_MAX;
2594cdf0e10cSrcweir 
2595cdf0e10cSrcweir 	nSepLineWidth = rFmtCol.GetLineWidth();
2596cdf0e10cSrcweir 	nSepLineColor = rFmtCol.GetLineColor().GetColor();
2597cdf0e10cSrcweir 	nSepLineHeightRelative = rFmtCol.GetLineHeight();
2598cdf0e10cSrcweir 	bSepLineIsOn = rFmtCol.GetLineAdj() != COLADJ_NONE;
2599cdf0e10cSrcweir 	switch(rFmtCol.GetLineAdj())
2600cdf0e10cSrcweir 	{
2601cdf0e10cSrcweir 		case COLADJ_TOP: 	nSepLineVertAlign = style::VerticalAlignment_TOP; 	break;
2602cdf0e10cSrcweir 		case COLADJ_BOTTOM: nSepLineVertAlign = style::VerticalAlignment_BOTTOM;	break;
2603cdf0e10cSrcweir 		case COLADJ_CENTER:
2604cdf0e10cSrcweir 		case COLADJ_NONE:	nSepLineVertAlign = style::VerticalAlignment_MIDDLE;
2605cdf0e10cSrcweir 	}
2606cdf0e10cSrcweir }
2607cdf0e10cSrcweir /*-- 16.12.98 14:06:54---------------------------------------------------
2608cdf0e10cSrcweir 
2609cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwXTextColumns()2610cdf0e10cSrcweir SwXTextColumns::~SwXTextColumns()
2611cdf0e10cSrcweir {
2612cdf0e10cSrcweir 
2613cdf0e10cSrcweir }
2614cdf0e10cSrcweir /*-- 16.12.98 14:06:54---------------------------------------------------
2615cdf0e10cSrcweir 
2616cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getReferenceValue(void)2617cdf0e10cSrcweir sal_Int32 SwXTextColumns::getReferenceValue(void) throw( uno::RuntimeException )
2618cdf0e10cSrcweir {
2619cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
2620cdf0e10cSrcweir 	return nReference;
2621cdf0e10cSrcweir }
2622cdf0e10cSrcweir /*-- 16.12.98 14:06:55---------------------------------------------------
2623cdf0e10cSrcweir 
2624cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getColumnCount(void)2625cdf0e10cSrcweir sal_Int16 SwXTextColumns::getColumnCount(void) throw( uno::RuntimeException )
2626cdf0e10cSrcweir {
2627cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
2628cdf0e10cSrcweir     return static_cast< sal_Int16>( aTextColumns.getLength() );
2629cdf0e10cSrcweir }
2630cdf0e10cSrcweir /*-- 16.12.98 14:06:55---------------------------------------------------
2631cdf0e10cSrcweir 
2632cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setColumnCount(sal_Int16 nColumns)2633cdf0e10cSrcweir void SwXTextColumns::setColumnCount(sal_Int16 nColumns) throw( uno::RuntimeException )
2634cdf0e10cSrcweir {
2635cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
2636cdf0e10cSrcweir 	if(nColumns <= 0)
2637cdf0e10cSrcweir 		throw uno::RuntimeException();
2638cdf0e10cSrcweir     bIsAutomaticWidth = sal_True;
2639cdf0e10cSrcweir     aTextColumns.realloc(nColumns);
2640cdf0e10cSrcweir  	TextColumn* pCols = aTextColumns.getArray();
2641cdf0e10cSrcweir 	nReference = USHRT_MAX;
2642cdf0e10cSrcweir     sal_Int32 nWidth = nReference / nColumns;
2643cdf0e10cSrcweir     sal_Int32 nDiff = nReference - nWidth * nColumns;
2644cdf0e10cSrcweir     sal_Int32 nDist = nAutoDistance / 2;
2645cdf0e10cSrcweir     for(sal_Int16 i = 0; i < nColumns; i++)
2646cdf0e10cSrcweir 	{
2647cdf0e10cSrcweir 		pCols[i].Width = nWidth;
2648cdf0e10cSrcweir         pCols[i].LeftMargin = i == 0 ? 0 : nDist;
2649cdf0e10cSrcweir         pCols[i].RightMargin = i == nColumns - 1 ? 0 : nDist;
2650cdf0e10cSrcweir 	}
2651cdf0e10cSrcweir 	pCols[nColumns - 1].Width += nDiff;
2652cdf0e10cSrcweir }
2653cdf0e10cSrcweir /*-- 16.12.98 14:06:55---------------------------------------------------
2654cdf0e10cSrcweir 
2655cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getColumns(void)2656cdf0e10cSrcweir uno::Sequence< TextColumn > SwXTextColumns::getColumns(void) throw( uno::RuntimeException )
2657cdf0e10cSrcweir {
2658cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
2659cdf0e10cSrcweir 	return aTextColumns;
2660cdf0e10cSrcweir }
2661cdf0e10cSrcweir /*-- 16.12.98 14:06:56---------------------------------------------------
2662cdf0e10cSrcweir 
2663cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setColumns(const uno::Sequence<TextColumn> & rColumns)2664cdf0e10cSrcweir void SwXTextColumns::setColumns(const uno::Sequence< TextColumn >& rColumns)
2665cdf0e10cSrcweir 			throw( uno::RuntimeException )
2666cdf0e10cSrcweir {
2667cdf0e10cSrcweir 	vos::OGuard aGuard(Application::GetSolarMutex());
2668cdf0e10cSrcweir     sal_Int32 nReferenceTemp = 0;
2669cdf0e10cSrcweir 	const TextColumn* prCols = rColumns.getConstArray();
2670cdf0e10cSrcweir 	for(long i = 0; i < rColumns.getLength(); i++)
2671cdf0e10cSrcweir 	{
2672cdf0e10cSrcweir 		nReferenceTemp += prCols[i].Width;
2673cdf0e10cSrcweir 	}
2674cdf0e10cSrcweir     bIsAutomaticWidth = sal_False;
2675cdf0e10cSrcweir 	nReference = !nReferenceTemp ? USHRT_MAX : nReferenceTemp;
2676cdf0e10cSrcweir 	aTextColumns = rColumns;
2677cdf0e10cSrcweir }
2678cdf0e10cSrcweir /*-- 25.10.00 10:15:39---------------------------------------------------
2679cdf0e10cSrcweir 
2680cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertySetInfo()2681cdf0e10cSrcweir uno::Reference< XPropertySetInfo > SwXTextColumns::getPropertySetInfo(  ) throw(RuntimeException)
2682cdf0e10cSrcweir {
2683cdf0e10cSrcweir     static uno::Reference< beans::XPropertySetInfo >  aRef = m_pPropSet->getPropertySetInfo();
2684cdf0e10cSrcweir 	return aRef;
2685cdf0e10cSrcweir }
2686cdf0e10cSrcweir /*-- 25.10.00 10:15:39---------------------------------------------------
2687cdf0e10cSrcweir 
2688cdf0e10cSrcweir   -----------------------------------------------------------------------*/
setPropertyValue(const OUString & rPropertyName,const Any & aValue)2689cdf0e10cSrcweir void SwXTextColumns::setPropertyValue( const OUString& rPropertyName, const Any& aValue )
2690cdf0e10cSrcweir 		throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException,
2691cdf0e10cSrcweir 			WrappedTargetException, RuntimeException)
2692cdf0e10cSrcweir {
2693cdf0e10cSrcweir     const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap()->getByName( rPropertyName );
2694cdf0e10cSrcweir     if (!pEntry)
2695cdf0e10cSrcweir         throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
2696cdf0e10cSrcweir     if ( pEntry->nFlags & PropertyAttribute::READONLY)
2697cdf0e10cSrcweir         throw PropertyVetoException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
2698cdf0e10cSrcweir 
2699cdf0e10cSrcweir     switch(pEntry->nWID)
2700cdf0e10cSrcweir 	{
2701cdf0e10cSrcweir 		case WID_TXTCOL_LINE_WIDTH:
2702cdf0e10cSrcweir 		{
2703cdf0e10cSrcweir 			sal_Int32 nTmp = 0;
2704cdf0e10cSrcweir 			aValue >>= nTmp;
2705cdf0e10cSrcweir 			if(nTmp < 0)
2706cdf0e10cSrcweir 				throw IllegalArgumentException();
2707cdf0e10cSrcweir 			nSepLineWidth = MM100_TO_TWIP(nTmp);
2708cdf0e10cSrcweir 		}
2709cdf0e10cSrcweir 		break;
2710cdf0e10cSrcweir 		case WID_TXTCOL_LINE_COLOR:
2711cdf0e10cSrcweir 			aValue >>= nSepLineColor;
2712cdf0e10cSrcweir 		break;
2713cdf0e10cSrcweir 		case WID_TXTCOL_LINE_REL_HGT:
2714cdf0e10cSrcweir 		{
2715cdf0e10cSrcweir 			sal_Int8 nTmp = 0;
2716cdf0e10cSrcweir 			aValue >>= nTmp;
2717cdf0e10cSrcweir 			if(nTmp < 0)
2718cdf0e10cSrcweir 				throw IllegalArgumentException();
2719cdf0e10cSrcweir 			nSepLineHeightRelative = nTmp;
2720cdf0e10cSrcweir 		}
2721cdf0e10cSrcweir 		break;
2722cdf0e10cSrcweir 		case WID_TXTCOL_LINE_ALIGN:
2723cdf0e10cSrcweir 		{
2724cdf0e10cSrcweir 			style::VerticalAlignment eAlign;
2725cdf0e10cSrcweir 			if(!(aValue >>= eAlign) )
2726cdf0e10cSrcweir 			{
2727cdf0e10cSrcweir 				sal_Int8 nTmp = 0;
2728cdf0e10cSrcweir 				if (! ( aValue >>= nTmp ) )
2729cdf0e10cSrcweir 					throw IllegalArgumentException();
2730cdf0e10cSrcweir 				else
2731cdf0e10cSrcweir                     nSepLineVertAlign = nTmp;
2732cdf0e10cSrcweir 			}
2733cdf0e10cSrcweir 			else
2734cdf0e10cSrcweir                 nSepLineVertAlign = static_cast< sal_Int8 >(eAlign);
2735cdf0e10cSrcweir 		}
2736cdf0e10cSrcweir 		break;
2737cdf0e10cSrcweir 		case WID_TXTCOL_LINE_IS_ON:
2738cdf0e10cSrcweir 			bSepLineIsOn = *(sal_Bool*)aValue.getValue();
2739cdf0e10cSrcweir 		break;
2740cdf0e10cSrcweir         case WID_TXTCOL_AUTO_DISTANCE:
2741cdf0e10cSrcweir         {
2742cdf0e10cSrcweir             sal_Int32 nTmp = 0;
2743cdf0e10cSrcweir             aValue >>= nTmp;
2744cdf0e10cSrcweir             if(nTmp < 0 || nTmp >= nReference)
2745cdf0e10cSrcweir                 throw IllegalArgumentException();
2746cdf0e10cSrcweir             nAutoDistance = nTmp;
2747cdf0e10cSrcweir             sal_Int32 nColumns = aTextColumns.getLength();
2748cdf0e10cSrcweir             TextColumn* pCols = aTextColumns.getArray();
2749cdf0e10cSrcweir             sal_Int32 nDist = nAutoDistance / 2;
2750cdf0e10cSrcweir             for(sal_Int32 i = 0; i < nColumns; i++)
2751cdf0e10cSrcweir             {
2752cdf0e10cSrcweir                 pCols[i].LeftMargin = i == 0 ? 0 : nDist;
2753cdf0e10cSrcweir                 pCols[i].RightMargin = i == nColumns - 1 ? 0 : nDist;
2754cdf0e10cSrcweir             }
2755cdf0e10cSrcweir         }
2756cdf0e10cSrcweir         break;
2757cdf0e10cSrcweir 	}
2758cdf0e10cSrcweir }
2759cdf0e10cSrcweir /*-- 25.10.00 10:15:40---------------------------------------------------
2760cdf0e10cSrcweir 
2761cdf0e10cSrcweir   -----------------------------------------------------------------------*/
getPropertyValue(const OUString & rPropertyName)2762cdf0e10cSrcweir Any SwXTextColumns::getPropertyValue( const OUString& rPropertyName )
2763cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2764cdf0e10cSrcweir {
2765cdf0e10cSrcweir     const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap()->getByName( rPropertyName );
2766cdf0e10cSrcweir     if (!pEntry)
2767cdf0e10cSrcweir         throw UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
2768cdf0e10cSrcweir 
2769cdf0e10cSrcweir 	Any aRet;
2770cdf0e10cSrcweir     switch(pEntry->nWID)
2771cdf0e10cSrcweir 	{
2772cdf0e10cSrcweir 		case WID_TXTCOL_LINE_WIDTH:
2773cdf0e10cSrcweir 			aRet <<= static_cast < sal_Int32 >(TWIP_TO_MM100(nSepLineWidth));
2774cdf0e10cSrcweir 		break;
2775cdf0e10cSrcweir 		case WID_TXTCOL_LINE_COLOR:
2776cdf0e10cSrcweir 			aRet <<= nSepLineColor;
2777cdf0e10cSrcweir 		break;
2778cdf0e10cSrcweir 		case WID_TXTCOL_LINE_REL_HGT:
2779cdf0e10cSrcweir 			aRet <<= nSepLineHeightRelative;
2780cdf0e10cSrcweir 		break;
2781cdf0e10cSrcweir 		case WID_TXTCOL_LINE_ALIGN:
2782cdf0e10cSrcweir 			aRet <<= (style::VerticalAlignment)nSepLineVertAlign;
2783cdf0e10cSrcweir 		break;
2784cdf0e10cSrcweir 		case WID_TXTCOL_LINE_IS_ON:
2785cdf0e10cSrcweir 			aRet.setValue(&bSepLineIsOn, ::getBooleanCppuType());
2786cdf0e10cSrcweir 		break;
2787cdf0e10cSrcweir         case WID_TXTCOL_IS_AUTOMATIC :
2788cdf0e10cSrcweir             aRet.setValue(&bIsAutomaticWidth, ::getBooleanCppuType());
2789cdf0e10cSrcweir         break;
2790cdf0e10cSrcweir         case WID_TXTCOL_AUTO_DISTANCE:
2791cdf0e10cSrcweir             aRet <<= nAutoDistance;
2792cdf0e10cSrcweir         break;
2793cdf0e10cSrcweir     }
2794cdf0e10cSrcweir 	return aRet;
2795cdf0e10cSrcweir }
2796cdf0e10cSrcweir /*-- 25.10.00 10:15:40---------------------------------------------------
2797cdf0e10cSrcweir 
2798cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addPropertyChangeListener(const OUString &,const uno::Reference<XPropertyChangeListener> &)2799cdf0e10cSrcweir void SwXTextColumns::addPropertyChangeListener(
2800cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XPropertyChangeListener >& /*xListener*/ )
2801cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2802cdf0e10cSrcweir {
2803cdf0e10cSrcweir }
2804cdf0e10cSrcweir /*-- 25.10.00 10:15:40---------------------------------------------------
2805cdf0e10cSrcweir 
2806cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removePropertyChangeListener(const OUString &,const uno::Reference<XPropertyChangeListener> &)2807cdf0e10cSrcweir void SwXTextColumns::removePropertyChangeListener(
2808cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XPropertyChangeListener >& /*xListener*/ )
2809cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2810cdf0e10cSrcweir {
2811cdf0e10cSrcweir }
2812cdf0e10cSrcweir /*-- 25.10.00 10:15:40---------------------------------------------------
2813cdf0e10cSrcweir 
2814cdf0e10cSrcweir   -----------------------------------------------------------------------*/
addVetoableChangeListener(const OUString &,const uno::Reference<XVetoableChangeListener> &)2815cdf0e10cSrcweir void SwXTextColumns::addVetoableChangeListener(
2816cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XVetoableChangeListener >& /*xListener*/ )
2817cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2818cdf0e10cSrcweir {
2819cdf0e10cSrcweir }
2820cdf0e10cSrcweir /*-- 25.10.00 10:15:40---------------------------------------------------
2821cdf0e10cSrcweir 
2822cdf0e10cSrcweir   -----------------------------------------------------------------------*/
removeVetoableChangeListener(const OUString &,const uno::Reference<XVetoableChangeListener> &)2823cdf0e10cSrcweir void SwXTextColumns::removeVetoableChangeListener(
2824cdf0e10cSrcweir 	const OUString& /*rPropertyName*/, const uno::Reference< XVetoableChangeListener >& /*xListener*/ )
2825cdf0e10cSrcweir 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
2826cdf0e10cSrcweir {
2827cdf0e10cSrcweir }
2828cdf0e10cSrcweir /* -----------------------------25.10.00 11:04--------------------------------
2829cdf0e10cSrcweir 
2830cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getUnoTunnelId()2831cdf0e10cSrcweir const uno::Sequence< sal_Int8 > & SwXTextColumns::getUnoTunnelId()
2832cdf0e10cSrcweir {
2833cdf0e10cSrcweir     static uno::Sequence< sal_Int8 > aSeq = ::CreateUnoTunnelId();
2834cdf0e10cSrcweir 	return aSeq;
2835cdf0e10cSrcweir }
2836cdf0e10cSrcweir /* -----------------------------10.03.00 18:04--------------------------------
2837cdf0e10cSrcweir 
2838cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
getSomething(const uno::Sequence<sal_Int8> & rId)2839cdf0e10cSrcweir sal_Int64 SAL_CALL SwXTextColumns::getSomething( const uno::Sequence< sal_Int8 >& rId )
2840cdf0e10cSrcweir 	throw(uno::RuntimeException)
2841cdf0e10cSrcweir {
2842cdf0e10cSrcweir     if( rId.getLength() == 16
2843cdf0e10cSrcweir         && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
2844cdf0e10cSrcweir 										rId.getConstArray(), 16 ) )
2845cdf0e10cSrcweir     {
2846cdf0e10cSrcweir 		return sal::static_int_cast< sal_Int64 >( reinterpret_cast< sal_IntPtr >(this) );
2847cdf0e10cSrcweir     }
2848cdf0e10cSrcweir 	return 0;
2849cdf0e10cSrcweir }
2850cdf0e10cSrcweir 
2851