xref: /aoo41x/main/sw/source/core/doc/poolfmt.cxx (revision ac591d86)
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
10efeef26fSAndrew Rist  *
11efeef26fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12efeef26fSAndrew Rist  *
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.
19efeef26fSAndrew Rist  *
20efeef26fSAndrew Rist  *************************************************************/
21efeef26fSAndrew Rist 
22efeef26fSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sw.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <hintids.hxx>
28cdf0e10cSrcweir #include <i18npool/mslangid.hxx>
29cdf0e10cSrcweir #include <unotools/localedatawrapper.hxx>
30cdf0e10cSrcweir #include <editeng/paperinf.hxx>
31cdf0e10cSrcweir #include <editeng/wghtitem.hxx>
32cdf0e10cSrcweir #include <editeng/fontitem.hxx>
33cdf0e10cSrcweir #include <editeng/fhgtitem.hxx>
34cdf0e10cSrcweir #include <editeng/tstpitem.hxx>
35cdf0e10cSrcweir #include <editeng/lrspitem.hxx>
36cdf0e10cSrcweir #include <editeng/ulspitem.hxx>
37cdf0e10cSrcweir #include <editeng/adjitem.hxx>
38cdf0e10cSrcweir #include <editeng/postitem.hxx>
39cdf0e10cSrcweir #include <editeng/keepitem.hxx>
40cdf0e10cSrcweir #include <editeng/opaqitem.hxx>
41cdf0e10cSrcweir #include <editeng/boxitem.hxx>
42cdf0e10cSrcweir #include <editeng/cmapitem.hxx>
43cdf0e10cSrcweir #include <editeng/udlnitem.hxx>
44cdf0e10cSrcweir #include <editeng/colritem.hxx>
45cdf0e10cSrcweir #include <editeng/protitem.hxx>
46cdf0e10cSrcweir #include <editeng/escpitem.hxx>
47cdf0e10cSrcweir #include <editeng/langitem.hxx>
48cdf0e10cSrcweir #include <editeng/charrotateitem.hxx>
49cdf0e10cSrcweir #include <editeng/frmdiritem.hxx>
50cdf0e10cSrcweir #include <editeng/emphitem.hxx>
51cdf0e10cSrcweir #include <editeng/scriptspaceitem.hxx>
52cdf0e10cSrcweir #include <viewopt.hxx>
53cdf0e10cSrcweir #include <doc.hxx>
54cdf0e10cSrcweir #include <IDocumentUndoRedo.hxx>
55cdf0e10cSrcweir #include <fmtanchr.hxx>
56cdf0e10cSrcweir #include <fmtornt.hxx>
57cdf0e10cSrcweir #include <fmtsrnd.hxx>
58cdf0e10cSrcweir #include <fmtfsize.hxx>
59cdf0e10cSrcweir #include <poolfmt.hxx>
60cdf0e10cSrcweir #include <paratr.hxx>
61cdf0e10cSrcweir #include <pagedesc.hxx>
62cdf0e10cSrcweir #include <frmtool.hxx>
63cdf0e10cSrcweir #include <charfmt.hxx>
64cdf0e10cSrcweir #include <docary.hxx>
65cdf0e10cSrcweir #include <fmtcol.hxx>
66cdf0e10cSrcweir #include <ndtxt.hxx>
67cdf0e10cSrcweir #include <fmtline.hxx>
68cdf0e10cSrcweir #include <poolfmt.hrc>
69cdf0e10cSrcweir #include <GetMetricVal.hxx>
70cdf0e10cSrcweir #include <numrule.hxx>
71cdf0e10cSrcweir 
72cdf0e10cSrcweir 
73cdf0e10cSrcweir using namespace ::com::sun::star;
74cdf0e10cSrcweir 
75cdf0e10cSrcweir const sal_uInt16 PT_3	=  3 * 20;		//  3 pt
76cdf0e10cSrcweir const sal_uInt16 PT_6	=  6 * 20;		//  6 pt
77cdf0e10cSrcweir const sal_uInt16 PT_7	=  7 * 20;		//  6 pt
78cdf0e10cSrcweir const sal_uInt16 PT_8	=  8 * 20;		//  8 pt
79cdf0e10cSrcweir const sal_uInt16 PT_9	=  9 * 20;		//  9 pt
80cdf0e10cSrcweir const sal_uInt16 PT_10 	= 10 * 20;		// 10 pt
81cdf0e10cSrcweir const sal_uInt16 PT_11 	= 11 * 20;		// 11 pt
82cdf0e10cSrcweir const sal_uInt16 PT_12 	= 12 * 20;		// 12 pt
83cdf0e10cSrcweir const sal_uInt16 PT_14	= 14 * 20;		// 14 pt
84cdf0e10cSrcweir const sal_uInt16 PT_16	= 16 * 20;		// 16 pt
85cdf0e10cSrcweir const sal_uInt16 PT_18	= 18 * 20;		// 18 pt
86cdf0e10cSrcweir const sal_uInt16 PT_22	= 22 * 20;		// 22 pt
87cdf0e10cSrcweir const sal_uInt16 PT_24	= 24 * 20;		// 22 pt
88cdf0e10cSrcweir 
89cdf0e10cSrcweir 
90cdf0e10cSrcweir //const sal_uInt16 HTML_PARSPACE = ((CM_05 * 7) / 10);
91cdf0e10cSrcweir #define HTML_PARSPACE 	GetMetricVal( CM_05 )
92cdf0e10cSrcweir 
93cdf0e10cSrcweir static const sal_Char __FAR_DATA sKomma[] = ", ";
94cdf0e10cSrcweir 
95cdf0e10cSrcweir static const sal_uInt16 aHeadlineSizes[ 2 * MAXLEVEL ] = {
96cdf0e10cSrcweir //	PT_16, PT_14, PT_14, PT_12, PT_12, 			// normal
97cdf0e10cSrcweir //JP 10.12.96: jetzt soll alles prozentual sein:
98cdf0e10cSrcweir 	115, 100, 100, 85, 85,
99cdf0e10cSrcweir 	75,   75,  75, 75, 75,	// normal
100cdf0e10cSrcweir //	PT_22, PT_16, PT_12, PT_11, PT_9			// HTML-Mode
101cdf0e10cSrcweir 	PT_24, PT_18, PT_14, PT_12, PT_10,
102cdf0e10cSrcweir 	PT_7, PT_7, PT_7, PT_7, PT_7 			// HTML-Mode
103cdf0e10cSrcweir };
104cdf0e10cSrcweir 
lcl_GetRightMargin(SwDoc & rDoc)105cdf0e10cSrcweir long lcl_GetRightMargin( SwDoc& rDoc )
106cdf0e10cSrcweir {
107cdf0e10cSrcweir 	// sorge dafuer, dass die Druckereinstellungen in die Standard-
108cdf0e10cSrcweir 	// Seitenvorlage uebernommen wurden.
109cdf0e10cSrcweir     const SwFrmFmt& rPgDscFmt =
110cdf0e10cSrcweir             const_cast<const SwDoc *>(&rDoc)->GetPageDesc( 0 ).GetMaster();
111cdf0e10cSrcweir     const SvxLRSpaceItem& rLR = rPgDscFmt.GetLRSpace();
112cdf0e10cSrcweir     const long nLeft = rLR.GetLeft();
113cdf0e10cSrcweir     const long nRight = rLR.GetRight();
114cdf0e10cSrcweir     const long nWidth = rPgDscFmt.GetFrmSize().GetWidth();
115cdf0e10cSrcweir     return nWidth - nLeft - nRight;
116cdf0e10cSrcweir }
117cdf0e10cSrcweir 
SetAllScriptItem(SfxItemSet & rSet,const SfxPoolItem & rItem)118cdf0e10cSrcweir void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem )
119cdf0e10cSrcweir {
120cdf0e10cSrcweir 	rSet.Put( rItem );
121cdf0e10cSrcweir 	sal_uInt16 nWhCJK = 0, nWhCTL = 0;
122cdf0e10cSrcweir 	switch( rItem.Which() )
123cdf0e10cSrcweir 	{
124cdf0e10cSrcweir 	case RES_CHRATR_FONTSIZE:
125cdf0e10cSrcweir 		nWhCJK = RES_CHRATR_CJK_FONTSIZE, nWhCTL = RES_CHRATR_CTL_FONTSIZE;
126cdf0e10cSrcweir 		break;
127cdf0e10cSrcweir 	case RES_CHRATR_FONT:
128cdf0e10cSrcweir 		nWhCJK = RES_CHRATR_CJK_FONT, nWhCTL = RES_CHRATR_CTL_FONT;
129cdf0e10cSrcweir 		break;
130cdf0e10cSrcweir 	case RES_CHRATR_LANGUAGE:
131cdf0e10cSrcweir 		nWhCJK = RES_CHRATR_CJK_LANGUAGE, nWhCTL = RES_CHRATR_CTL_LANGUAGE;
132cdf0e10cSrcweir 		break;
133cdf0e10cSrcweir 	case RES_CHRATR_POSTURE:
134cdf0e10cSrcweir 		nWhCJK = RES_CHRATR_CJK_POSTURE, nWhCTL = RES_CHRATR_CTL_POSTURE;
135cdf0e10cSrcweir 		break;
136cdf0e10cSrcweir 	case RES_CHRATR_WEIGHT:
137cdf0e10cSrcweir 		nWhCJK = RES_CHRATR_CJK_WEIGHT, nWhCTL = RES_CHRATR_CTL_WEIGHT;
138cdf0e10cSrcweir 		break;
139cdf0e10cSrcweir 	}
140cdf0e10cSrcweir 
141cdf0e10cSrcweir 	if( nWhCJK )
142cdf0e10cSrcweir 		rSet.Put( rItem, nWhCJK );
143cdf0e10cSrcweir 	if( nWhCTL )
144cdf0e10cSrcweir 		rSet.Put( rItem, nWhCTL );
145cdf0e10cSrcweir }
146cdf0e10cSrcweir 
lcl_SetDfltFont(sal_uInt16 nFntType,SfxItemSet & rSet)147cdf0e10cSrcweir void lcl_SetDfltFont( sal_uInt16 nFntType, SfxItemSet& rSet )
148cdf0e10cSrcweir {
149cdf0e10cSrcweir 	static struct {
150cdf0e10cSrcweir 		sal_uInt16 nResLngId;
151cdf0e10cSrcweir 		sal_uInt16 nResFntId;
152cdf0e10cSrcweir 	} aArr[ 3 ] = {
153cdf0e10cSrcweir 		{ RES_CHRATR_LANGUAGE, RES_CHRATR_FONT },
154cdf0e10cSrcweir 		{ RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CJK_FONT },
155cdf0e10cSrcweir 		{ RES_CHRATR_CTL_LANGUAGE, RES_CHRATR_CTL_FONT }
156cdf0e10cSrcweir 	};
157cdf0e10cSrcweir 	for( sal_uInt16 n = 0; n < 3; ++n )
158cdf0e10cSrcweir 	{
159cdf0e10cSrcweir 		sal_uInt16 nLng = ((SvxLanguageItem&)rSet.GetPool()->GetDefaultItem(
160cdf0e10cSrcweir 							aArr[n].nResLngId )).GetLanguage();
161cdf0e10cSrcweir 		Font aFnt( OutputDevice::GetDefaultFont( nFntType,
162cdf0e10cSrcweir 								nLng, DEFAULTFONT_FLAGS_ONLYONE ) );
163cdf0e10cSrcweir 
164cdf0e10cSrcweir 		rSet.Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(),
165cdf0e10cSrcweir 							aEmptyStr, aFnt.GetPitch(),
166cdf0e10cSrcweir 							aFnt.GetCharSet(), aArr[n].nResFntId ));
167cdf0e10cSrcweir 	}
168cdf0e10cSrcweir }
169cdf0e10cSrcweir 
lcl_SetDfltFont(sal_uInt16 nLatinFntType,sal_uInt16 nCJKFntType,sal_uInt16 nCTLFntType,SfxItemSet & rSet)170cdf0e10cSrcweir void lcl_SetDfltFont( sal_uInt16 nLatinFntType, sal_uInt16 nCJKFntType,
171cdf0e10cSrcweir 						sal_uInt16 nCTLFntType, SfxItemSet& rSet )
172cdf0e10cSrcweir {
173cdf0e10cSrcweir 	static struct {
174cdf0e10cSrcweir 		sal_uInt16 nResLngId;
175cdf0e10cSrcweir 		sal_uInt16 nResFntId;
176cdf0e10cSrcweir 		sal_uInt16 nFntType;
177cdf0e10cSrcweir 	} aArr[ 3 ] = {
178cdf0e10cSrcweir 		{ RES_CHRATR_LANGUAGE, RES_CHRATR_FONT, 0 },
179cdf0e10cSrcweir 		{ RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CJK_FONT, 0 },
180cdf0e10cSrcweir 		{ RES_CHRATR_CTL_LANGUAGE, RES_CHRATR_CTL_FONT, 0 }
181cdf0e10cSrcweir 	};
182cdf0e10cSrcweir 	aArr[0].nFntType = nLatinFntType;
183cdf0e10cSrcweir 	aArr[1].nFntType = nCJKFntType;
184cdf0e10cSrcweir 	aArr[2].nFntType = nCTLFntType;
185cdf0e10cSrcweir 
186cdf0e10cSrcweir 	for( sal_uInt16 n = 0; n < 3; ++n )
187cdf0e10cSrcweir 	{
188cdf0e10cSrcweir 		sal_uInt16 nLng = ((SvxLanguageItem&)rSet.GetPool()->GetDefaultItem(
189cdf0e10cSrcweir 							aArr[n].nResLngId )).GetLanguage();
190cdf0e10cSrcweir 		Font aFnt( OutputDevice::GetDefaultFont( aArr[n].nFntType,
191cdf0e10cSrcweir 								nLng, DEFAULTFONT_FLAGS_ONLYONE ) );
192cdf0e10cSrcweir 
193cdf0e10cSrcweir 		rSet.Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(),
194cdf0e10cSrcweir 							aEmptyStr, aFnt.GetPitch(),
195cdf0e10cSrcweir 							aFnt.GetCharSet(), aArr[n].nResFntId ));
196cdf0e10cSrcweir 	}
197cdf0e10cSrcweir }
198cdf0e10cSrcweir 
lcl_SetHeadline(SwDoc * pDoc,SwTxtFmtColl * pColl,SfxItemSet & rSet,sal_uInt16 nOutLvlBits,sal_uInt8 nLevel,sal_Bool bItalic)199cdf0e10cSrcweir void lcl_SetHeadline( SwDoc* pDoc, SwTxtFmtColl* pColl,
200cdf0e10cSrcweir 						SfxItemSet& rSet,
201cdf0e10cSrcweir 						sal_uInt16 nOutLvlBits, sal_uInt8 nLevel, sal_Bool bItalic )
202cdf0e10cSrcweir {
203cdf0e10cSrcweir     SetAllScriptItem( rSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
204cdf0e10cSrcweir     SvxFontHeightItem aHItem(240, 100, RES_CHRATR_FONTSIZE);
205cdf0e10cSrcweir     const bool bHTMLMode = pDoc->get(IDocumentSettingAccess::HTML_MODE);
206cdf0e10cSrcweir     if( bHTMLMode )
207cdf0e10cSrcweir 		aHItem.SetHeight( aHeadlineSizes[ MAXLEVEL + nLevel ] );
208cdf0e10cSrcweir 	else
209cdf0e10cSrcweir 		aHItem.SetHeight( PT_14, aHeadlineSizes[ nLevel ] );
210cdf0e10cSrcweir 	SetAllScriptItem( rSet, aHItem );
211cdf0e10cSrcweir 
212cdf0e10cSrcweir     if( bItalic && !bHTMLMode )
213cdf0e10cSrcweir         SetAllScriptItem( rSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE ) );
214cdf0e10cSrcweir 
215cdf0e10cSrcweir     if( bHTMLMode )
216cdf0e10cSrcweir 	{
217cdf0e10cSrcweir 		::lcl_SetDfltFont( DEFAULTFONT_LATIN_TEXT, DEFAULTFONT_CJK_TEXT,
218cdf0e10cSrcweir 							DEFAULTFONT_CTL_TEXT, rSet );
219cdf0e10cSrcweir 	}
220cdf0e10cSrcweir 
221cdf0e10cSrcweir 	if( pColl )
222cdf0e10cSrcweir 	{
223cdf0e10cSrcweir 		if( !( nOutLvlBits & ( 1 << nLevel )) )
224cdf0e10cSrcweir 		{
225cdf0e10cSrcweir 			//pColl->SetOutlineLevel( nLevel );			 //#outline level zhaojianwei
226cdf0e10cSrcweir 			pColl->AssignToListLevelOfOutlineStyle(nLevel);//<-end,zhaojianwei
227cdf0e10cSrcweir             if( !bHTMLMode )
228cdf0e10cSrcweir 			{
229cdf0e10cSrcweir                 SwNumRule * pOutlineRule = pDoc->GetOutlineNumRule();
230cdf0e10cSrcweir 				const SwNumFmt& rNFmt = pOutlineRule->Get( nLevel );
231cdf0e10cSrcweir                 // --> OD 2008-02-01 #newlistlevelattrs#
232cdf0e10cSrcweir                 if ( rNFmt.GetPositionAndSpaceMode() ==
233cdf0e10cSrcweir                                     SvxNumberFormat::LABEL_WIDTH_AND_POSITION &&
234cdf0e10cSrcweir                      ( rNFmt.GetAbsLSpace() || rNFmt.GetFirstLineOffset() ) )
235cdf0e10cSrcweir                 // <--
236cdf0e10cSrcweir 				{
237cdf0e10cSrcweir                     SvxLRSpaceItem aLR( (SvxLRSpaceItem&)pColl->GetFmtAttr( RES_LR_SPACE ) );
238cdf0e10cSrcweir 					aLR.SetTxtFirstLineOfstValue( rNFmt.GetFirstLineOffset() );
239cdf0e10cSrcweir 					aLR.SetTxtLeft( rNFmt.GetAbsLSpace() );
240cdf0e10cSrcweir                     pColl->SetFmtAttr( aLR );
241cdf0e10cSrcweir 				}
242cdf0e10cSrcweir 
243cdf0e10cSrcweir                 // --> OD 2006-11-20 #i71764#
244cdf0e10cSrcweir                 // Check on document setting OUTLINE_LEVEL_YIELDS_OUTLINE_RULE no longer needed.
245cdf0e10cSrcweir                 // All paragraph styles, which are assigned to a level of the
246cdf0e10cSrcweir                 // outline style has to have the outline style set as its list style.
247cdf0e10cSrcweir                 {
248cdf0e10cSrcweir                     SwNumRuleItem aItem(pOutlineRule->GetName());
249cdf0e10cSrcweir 
250cdf0e10cSrcweir                     pColl->SetFmtAttr(aItem);
251cdf0e10cSrcweir                 }
252cdf0e10cSrcweir                 // <--
253cdf0e10cSrcweir 			}
254cdf0e10cSrcweir 		}
255cdf0e10cSrcweir 		pColl->SetNextTxtFmtColl( *pDoc->GetTxtCollFromPool(
256cdf0e10cSrcweir 										RES_POOLCOLL_TEXT ));
257cdf0e10cSrcweir 	}
258cdf0e10cSrcweir }
259cdf0e10cSrcweir 
260cdf0e10cSrcweir 
261cdf0e10cSrcweir 
lcl_SetRegister(SwDoc * pDoc,SfxItemSet & rSet,sal_uInt16 nFact,sal_Bool bHeader,sal_Bool bTab)262cdf0e10cSrcweir void lcl_SetRegister( SwDoc* pDoc, SfxItemSet& rSet, sal_uInt16 nFact,
263cdf0e10cSrcweir 						sal_Bool bHeader, sal_Bool bTab )
264cdf0e10cSrcweir {
265cdf0e10cSrcweir     SvxLRSpaceItem aLR( RES_LR_SPACE );
266cdf0e10cSrcweir 	sal_uInt16 nLeft = nFact ? GetMetricVal( CM_05 ) * nFact : 0;
267cdf0e10cSrcweir 	aLR.SetTxtLeft( nLeft );
268cdf0e10cSrcweir 
269cdf0e10cSrcweir 	rSet.Put( aLR );
270cdf0e10cSrcweir 	if( bHeader )
271cdf0e10cSrcweir 	{
272cdf0e10cSrcweir         SetAllScriptItem( rSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
273cdf0e10cSrcweir         SetAllScriptItem( rSet, SvxFontHeightItem( PT_16, 100, RES_CHRATR_FONTSIZE ) );
274cdf0e10cSrcweir 	}
275cdf0e10cSrcweir 	if( bTab )
276cdf0e10cSrcweir 	{
277cdf0e10cSrcweir 		long nRightMargin = lcl_GetRightMargin( *pDoc );
278cdf0e10cSrcweir         SvxTabStopItem aTStops( 0, 0, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
279cdf0e10cSrcweir 		aTStops.Insert( SvxTabStop( nRightMargin - nLeft,
280cdf0e10cSrcweir 									SVX_TAB_ADJUST_RIGHT,
281cdf0e10cSrcweir 									cDfltDecimalChar, '.' ));
282cdf0e10cSrcweir 		rSet.Put( aTStops );
283cdf0e10cSrcweir 	}
284cdf0e10cSrcweir }
285cdf0e10cSrcweir 
286cdf0e10cSrcweir 
287cdf0e10cSrcweir 
lcl_SetNumBul(SwDoc * pDoc,SwTxtFmtColl * pColl,SfxItemSet & rSet,sal_uInt16 nNxt,SwTwips nEZ,SwTwips nLeft,SwTwips nUpper,SwTwips nLower)288cdf0e10cSrcweir void lcl_SetNumBul( SwDoc* pDoc, SwTxtFmtColl* pColl,
289cdf0e10cSrcweir 						SfxItemSet& rSet,
290cdf0e10cSrcweir 						sal_uInt16 nNxt, SwTwips nEZ, SwTwips nLeft,
291cdf0e10cSrcweir 						SwTwips nUpper, SwTwips nLower )
292cdf0e10cSrcweir {
293cdf0e10cSrcweir 
294cdf0e10cSrcweir     SvxLRSpaceItem aLR( RES_LR_SPACE ); SvxULSpaceItem aUL( RES_UL_SPACE );
295cdf0e10cSrcweir 	aLR.SetTxtFirstLineOfst( sal_uInt16(nEZ) ); aLR.SetTxtLeft( sal_uInt16(nLeft) );
296cdf0e10cSrcweir 	aUL.SetUpper( sal_uInt16(nUpper) ); aUL.SetLower( sal_uInt16(nLower) );
297cdf0e10cSrcweir 	rSet.Put( aLR );
298cdf0e10cSrcweir 	rSet.Put( aUL );
299cdf0e10cSrcweir 
300cdf0e10cSrcweir 	if( !pColl )
301cdf0e10cSrcweir 		pColl->SetNextTxtFmtColl( *pDoc->GetTxtCollFromPool( nNxt ));
302cdf0e10cSrcweir }
303cdf0e10cSrcweir 
304cdf0e10cSrcweir 
305cdf0e10cSrcweir 
306cdf0e10cSrcweir // Gebe die "Auto-Collection" mit der Id zurueck. Existiert
307cdf0e10cSrcweir // sie noch nicht, dann erzeuge sie
308cdf0e10cSrcweir // Ist der String-Pointer definiert, dann erfrage nur die
309cdf0e10cSrcweir // Beschreibung der Attribute, !! es legt keine Vorlage an !!
310cdf0e10cSrcweir 
GetDefaultFrameDirection(sal_uLong nLanguage)311cdf0e10cSrcweir SvxFrameDirection GetDefaultFrameDirection(sal_uLong nLanguage)
312cdf0e10cSrcweir {
313cdf0e10cSrcweir     SvxFrameDirection eResult = (MsLangId::isRightToLeft( static_cast<LanguageType>(nLanguage)) ?
314cdf0e10cSrcweir             FRMDIR_HORI_RIGHT_TOP : FRMDIR_HORI_LEFT_TOP);
315cdf0e10cSrcweir     return eResult;
316cdf0e10cSrcweir }
317cdf0e10cSrcweir 
GetTxtCollFromPool(sal_uInt16 nId,bool bRegardLanguage)318cdf0e10cSrcweir SwTxtFmtColl* SwDoc::GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage )
319cdf0e10cSrcweir {
320cdf0e10cSrcweir 	ASSERT(
321cdf0e10cSrcweir 		(RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END) ||
322cdf0e10cSrcweir 		(RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END) ||
323cdf0e10cSrcweir 		(RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END) ||
324cdf0e10cSrcweir 		(RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END) ||
325cdf0e10cSrcweir 		(RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END) ||
326cdf0e10cSrcweir 		(RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END),
327cdf0e10cSrcweir 			"Falsche AutoFormat-Id" );
328cdf0e10cSrcweir 
329cdf0e10cSrcweir     SwTxtFmtColl* pNewColl;
330cdf0e10cSrcweir 	sal_uInt16 nOutLvlBits = 0;
331cdf0e10cSrcweir 	for( sal_uInt16 n = 0; n < pTxtFmtCollTbl->Count(); ++n )
332cdf0e10cSrcweir 	{
333cdf0e10cSrcweir 		if( nId == ( pNewColl = (*pTxtFmtCollTbl)[ n ] )->GetPoolFmtId() )
334cdf0e10cSrcweir 		{
335cdf0e10cSrcweir             return pNewColl;
336cdf0e10cSrcweir 		}
337cdf0e10cSrcweir         //if( pNewColl->GetOutlineLevel() < MAXLEVEL )			//#outline level,zhaojianwei
338cdf0e10cSrcweir 		//nOutLvlBits |= ( 1 << pNewColl->GetOutlineLevel() );
339cdf0e10cSrcweir 		if( pNewColl->IsAssignedToListLevelOfOutlineStyle())
340cdf0e10cSrcweir 			nOutLvlBits |= ( 1 << pNewColl->GetAssignedOutlineStyleLevel() );//<-end,zhaojianwei
341cdf0e10cSrcweir 	}
342cdf0e10cSrcweir 
343cdf0e10cSrcweir 	// bis hierher nicht gefunden -> neu anlegen
344cdf0e10cSrcweir 	sal_uInt16 nResId = 0;
345cdf0e10cSrcweir 	if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END )
346cdf0e10cSrcweir 		nResId = RC_POOLCOLL_TEXT_BEGIN - RES_POOLCOLL_TEXT_BEGIN;
347cdf0e10cSrcweir 	else if (RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END)
348cdf0e10cSrcweir 		nResId = RC_POOLCOLL_LISTS_BEGIN - RES_POOLCOLL_LISTS_BEGIN;
349cdf0e10cSrcweir 	else if (RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END)
350cdf0e10cSrcweir 		nResId = RC_POOLCOLL_EXTRA_BEGIN - RES_POOLCOLL_EXTRA_BEGIN;
351cdf0e10cSrcweir 	else if (RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END)
352cdf0e10cSrcweir 		nResId = RC_POOLCOLL_REGISTER_BEGIN - RES_POOLCOLL_REGISTER_BEGIN;
353cdf0e10cSrcweir 	else if (RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END)
354cdf0e10cSrcweir 		nResId = RC_POOLCOLL_DOC_BEGIN - RES_POOLCOLL_DOC_BEGIN;
355cdf0e10cSrcweir 	else if (RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END)
356cdf0e10cSrcweir 		nResId = RC_POOLCOLL_HTML_BEGIN - RES_POOLCOLL_HTML_BEGIN;
357cdf0e10cSrcweir 
358cdf0e10cSrcweir 	ASSERT( nResId, "Ungueltige Pool-ID" );
359cdf0e10cSrcweir 	if( !nResId )
360cdf0e10cSrcweir         return GetTxtCollFromPool( RES_POOLCOLL_STANDARD );
361cdf0e10cSrcweir 
362cdf0e10cSrcweir 	ResId aResId( nResId + nId, *pSwResMgr );
363cdf0e10cSrcweir 	String aNm( aResId );
364cdf0e10cSrcweir 
365cdf0e10cSrcweir 	// ein Set fuer alle zusetzenden Attribute
366cdf0e10cSrcweir 	SwAttrSet aSet( GetAttrPool(), aTxtFmtCollSetRange );
367cdf0e10cSrcweir 	sal_uInt16 nParent = GetPoolParent( nId );
368cdf0e10cSrcweir 
369cdf0e10cSrcweir     {
370cdf0e10cSrcweir 
371cdf0e10cSrcweir //FEATURE::CONDCOLL
372cdf0e10cSrcweir 		if(::IsConditionalByPoolId( nId ))
373cdf0e10cSrcweir 			pNewColl = new SwConditionTxtFmtColl( GetAttrPool(), aNm, !nParent
374cdf0e10cSrcweir 												? pDfltTxtFmtColl
375cdf0e10cSrcweir 												: GetTxtCollFromPool( nParent ));
376cdf0e10cSrcweir 		else
377cdf0e10cSrcweir //FEATURE::CONDCOLL
378cdf0e10cSrcweir 		pNewColl = new SwTxtFmtColl( GetAttrPool(), aNm, !nParent
379cdf0e10cSrcweir 											? pDfltTxtFmtColl
380cdf0e10cSrcweir 											: GetTxtCollFromPool( nParent ));
381cdf0e10cSrcweir 		pNewColl->SetPoolFmtId( nId );
382cdf0e10cSrcweir 		pTxtFmtCollTbl->Insert( pNewColl, pTxtFmtCollTbl->Count() );
383cdf0e10cSrcweir 	}
384cdf0e10cSrcweir 
385cdf0e10cSrcweir 	switch( nId )
386cdf0e10cSrcweir 	{
387cdf0e10cSrcweir 	// allgemeine Inhaltsformen
388cdf0e10cSrcweir 	case RES_POOLCOLL_STANDARD:
389cdf0e10cSrcweir         /* #111214# koreans do not like SvxScriptItem(sal_True) */
390cdf0e10cSrcweir         if (bRegardLanguage)
391cdf0e10cSrcweir         {
392cdf0e10cSrcweir             sal_uLong nAppLanguage = GetAppLanguage();
393cdf0e10cSrcweir             if (GetDefaultFrameDirection(nAppLanguage) ==
394cdf0e10cSrcweir                 FRMDIR_HORI_RIGHT_TOP)
395cdf0e10cSrcweir             {
396cdf0e10cSrcweir                 SvxAdjustItem aAdjust(SVX_ADJUST_RIGHT, RES_PARATR_ADJUST );
397cdf0e10cSrcweir                 aSet.Put(aAdjust);
398cdf0e10cSrcweir             }
399cdf0e10cSrcweir             if (nAppLanguage == LANGUAGE_KOREAN)
400cdf0e10cSrcweir             {
401cdf0e10cSrcweir                 SvxScriptSpaceItem aScriptSpace(sal_False, RES_PARATR_SCRIPTSPACE);
402cdf0e10cSrcweir                 aSet.Put(aScriptSpace);
403cdf0e10cSrcweir             }
404cdf0e10cSrcweir         }
405cdf0e10cSrcweir 		break;
406cdf0e10cSrcweir 
407cdf0e10cSrcweir 	case RES_POOLCOLL_TEXT:					// Textkoerper
408cdf0e10cSrcweir 		{
409cdf0e10cSrcweir             SvxULSpaceItem aUL( 0, PT_6, RES_UL_SPACE );
410cdf0e10cSrcweir 			if( get(IDocumentSettingAccess::HTML_MODE) ) aUL.SetLower( HTML_PARSPACE );
411cdf0e10cSrcweir 			aSet.Put( aUL );
412cdf0e10cSrcweir 		}
413cdf0e10cSrcweir 		break;
414cdf0e10cSrcweir 	case RES_POOLCOLL_TEXT_IDENT:			// Textkoerper Einzug
415cdf0e10cSrcweir 		{
416cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
417cdf0e10cSrcweir 			aLR.SetTxtFirstLineOfst( GetMetricVal( CM_05 ));
418cdf0e10cSrcweir 			aSet.Put( aLR );
419cdf0e10cSrcweir 		}
420cdf0e10cSrcweir 		break;
421cdf0e10cSrcweir 	case RES_POOLCOLL_TEXT_NEGIDENT:		// Textkoerper neg. Einzug
422cdf0e10cSrcweir 		{
423cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
424cdf0e10cSrcweir 			aLR.SetTxtFirstLineOfst( -(short)GetMetricVal( CM_05 ));
425cdf0e10cSrcweir 			aLR.SetTxtLeft( GetMetricVal( CM_1 ));
426cdf0e10cSrcweir             SvxTabStopItem aTStops(RES_PARATR_TABSTOP);    aTStops.Insert( SvxTabStop( 0 ));
427cdf0e10cSrcweir 
428cdf0e10cSrcweir 			aSet.Put( aLR );
429cdf0e10cSrcweir 			aSet.Put( aTStops );
430cdf0e10cSrcweir 		}
431cdf0e10cSrcweir 		break;
432cdf0e10cSrcweir 	case RES_POOLCOLL_TEXT_MOVE:			// Textkoerper Einrueckung
433cdf0e10cSrcweir 		{
434cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
435cdf0e10cSrcweir 			aLR.SetTxtLeft( GetMetricVal( CM_05 ));
436cdf0e10cSrcweir 			aSet.Put( aLR );
437cdf0e10cSrcweir 		}
438cdf0e10cSrcweir 		break;
439cdf0e10cSrcweir 
440cdf0e10cSrcweir 	case RES_POOLCOLL_CONFRONTATION: 	// Textkoerper Gegenueberstellung
441cdf0e10cSrcweir 		{
442cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
443cdf0e10cSrcweir 			aLR.SetTxtFirstLineOfst( - short( GetMetricVal( CM_1 ) * 4 +
444cdf0e10cSrcweir 											  GetMetricVal( CM_05)) );
445cdf0e10cSrcweir 			aLR.SetTxtLeft( GetMetricVal( CM_1 ) * 5 );
446cdf0e10cSrcweir             SvxTabStopItem aTStops( RES_PARATR_TABSTOP );    aTStops.Insert( SvxTabStop( 0 ));
447cdf0e10cSrcweir 
448cdf0e10cSrcweir 			aSet.Put( aLR );
449cdf0e10cSrcweir 			aSet.Put( aTStops );
450cdf0e10cSrcweir 		}
451cdf0e10cSrcweir 		break;
452cdf0e10cSrcweir 	case RES_POOLCOLL_MARGINAL: 		// Textkoerper maginalie
453cdf0e10cSrcweir 		{
454cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
455cdf0e10cSrcweir 			aLR.SetTxtLeft( GetMetricVal( CM_1 ) * 4 );
456cdf0e10cSrcweir 			aSet.Put( aLR );
457cdf0e10cSrcweir 		}
458cdf0e10cSrcweir 		break;
459cdf0e10cSrcweir 
460cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE_BASE:			// Basis Ueberschrift
461cdf0e10cSrcweir 		{
462cdf0e10cSrcweir 			static const sal_uInt16 aFntInit[] = {
463cdf0e10cSrcweir 				DEFAULTFONT_LATIN_HEADING, 	RES_CHRATR_FONT,
464cdf0e10cSrcweir 								RES_CHRATR_LANGUAGE, LANGUAGE_ENGLISH_US,
465cdf0e10cSrcweir 				DEFAULTFONT_CJK_HEADING, 	RES_CHRATR_CJK_FONT,
466cdf0e10cSrcweir 								RES_CHRATR_CJK_LANGUAGE, LANGUAGE_ENGLISH_US,
467cdf0e10cSrcweir 				DEFAULTFONT_CTL_HEADING, 	RES_CHRATR_CTL_FONT,
468cdf0e10cSrcweir 								RES_CHRATR_CTL_LANGUAGE, LANGUAGE_ARABIC_SAUDI_ARABIA,
469cdf0e10cSrcweir 				0
470cdf0e10cSrcweir 			};
471cdf0e10cSrcweir 
472cdf0e10cSrcweir 			for( const sal_uInt16* pArr = aFntInit; *pArr; pArr += 4 )
473cdf0e10cSrcweir 			{
474cdf0e10cSrcweir 				sal_uInt16 nLng = ((SvxLanguageItem&)GetDefault( *(pArr+2) )).GetLanguage();
475cdf0e10cSrcweir 				if( LANGUAGE_DONTKNOW == nLng )
476cdf0e10cSrcweir 					nLng = *(pArr+3);
477cdf0e10cSrcweir 
478cdf0e10cSrcweir 				Font aFnt( OutputDevice::GetDefaultFont( *pArr,
479cdf0e10cSrcweir 										nLng, DEFAULTFONT_FLAGS_ONLYONE ) );
480cdf0e10cSrcweir 
481cdf0e10cSrcweir 				aSet.Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(),
482cdf0e10cSrcweir 										aEmptyStr, aFnt.GetPitch(),
483cdf0e10cSrcweir                                         aFnt.GetCharSet(), *(pArr+1) ));
484cdf0e10cSrcweir 			}
485cdf0e10cSrcweir 
486cdf0e10cSrcweir             SvxFontHeightItem aFntSize( PT_14, 100, RES_CHRATR_FONTSIZE );
487cdf0e10cSrcweir             SvxULSpaceItem aUL( PT_12, PT_6, RES_UL_SPACE );
488cdf0e10cSrcweir 			if( get(IDocumentSettingAccess::HTML_MODE) )
489cdf0e10cSrcweir 				aUL.SetLower( HTML_PARSPACE );
490cdf0e10cSrcweir             aSet.Put( SvxFmtKeepItem( sal_True, RES_KEEP ));
491cdf0e10cSrcweir 
492cdf0e10cSrcweir             pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool( RES_POOLCOLL_TEXT ));
493cdf0e10cSrcweir 
494cdf0e10cSrcweir 			aSet.Put( aUL );
495cdf0e10cSrcweir 			SetAllScriptItem( aSet, aFntSize );
496cdf0e10cSrcweir 		}
497cdf0e10cSrcweir 		break;
498cdf0e10cSrcweir 
499cdf0e10cSrcweir 	case RES_POOLCOLL_NUMBUL_BASE:			// Basis Numerierung/Aufzaehlung
500cdf0e10cSrcweir 		break;
501cdf0e10cSrcweir 
502cdf0e10cSrcweir 	case RES_POOLCOLL_GREETING:				// Grussformel
503cdf0e10cSrcweir 	case RES_POOLCOLL_REGISTER_BASE: 		// Basis Verzeichnisse
504cdf0e10cSrcweir 	case RES_POOLCOLL_SIGNATURE:			// Unterschrift
505cdf0e10cSrcweir 	case RES_POOLCOLL_TABLE:				// Tabelle-Inhalt
506cdf0e10cSrcweir 		{
507cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
508cdf0e10cSrcweir 			aSet.Put( aLN );
509cdf0e10cSrcweir 		}
510cdf0e10cSrcweir 		break;
511cdf0e10cSrcweir 
512cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE1:		// Ueberschrift 1
513cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 0, sal_False );
514cdf0e10cSrcweir 		break;
515cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE2:		// Ueberschrift 2
516cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 1, sal_True );
517cdf0e10cSrcweir 		break;
518cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE3:		// Ueberschrift 3
519cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 2, sal_False );
520cdf0e10cSrcweir 		break;
521cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE4:		// Ueberschrift 4
522cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 3, sal_True );
523cdf0e10cSrcweir 		break;
524cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE5:		// Ueberschrift 5
525cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 4, sal_False );
526cdf0e10cSrcweir 		break;
527cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE6:		// Ueberschrift 6
528cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 5, sal_False );
529cdf0e10cSrcweir 		break;
530cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE7:		// Ueberschrift 7
531cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 6, sal_False );
532cdf0e10cSrcweir 		break;
533cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE8:		// Ueberschrift 8
534cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 7, sal_False );
535cdf0e10cSrcweir 		break;
536cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE9:		// Ueberschrift 9
537cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 8, sal_False );
538cdf0e10cSrcweir 		break;
539cdf0e10cSrcweir 	case RES_POOLCOLL_HEADLINE10:		// Ueberschrift 10
540cdf0e10cSrcweir 		lcl_SetHeadline( this, pNewColl, aSet, nOutLvlBits, 9, sal_False );
541cdf0e10cSrcweir 		break;
542cdf0e10cSrcweir 
543cdf0e10cSrcweir 
544cdf0e10cSrcweir 	// Sonderbereiche:
545cdf0e10cSrcweir 	// Kopfzeilen
546cdf0e10cSrcweir 	case RES_POOLCOLL_HEADER:
547cdf0e10cSrcweir 	case RES_POOLCOLL_HEADERL:
548cdf0e10cSrcweir 	case RES_POOLCOLL_HEADERR:
549cdf0e10cSrcweir 	// Fusszeilen
550cdf0e10cSrcweir 	case RES_POOLCOLL_FOOTER:
551cdf0e10cSrcweir 	case RES_POOLCOLL_FOOTERL:
552cdf0e10cSrcweir 	case RES_POOLCOLL_FOOTERR:
553cdf0e10cSrcweir 		{
554cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
555cdf0e10cSrcweir 			aSet.Put( aLN );
556cdf0e10cSrcweir 
557cdf0e10cSrcweir 			long nRightMargin = lcl_GetRightMargin( *this );
558cdf0e10cSrcweir 
559cdf0e10cSrcweir             SvxTabStopItem aTStops( 0, 0, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
560cdf0e10cSrcweir 			aTStops.Insert( SvxTabStop( nRightMargin / 2, SVX_TAB_ADJUST_CENTER ) );
561cdf0e10cSrcweir 			aTStops.Insert( SvxTabStop( nRightMargin, SVX_TAB_ADJUST_RIGHT ) );
562cdf0e10cSrcweir 
563cdf0e10cSrcweir 			aSet.Put( aTStops );
564cdf0e10cSrcweir 		}
565cdf0e10cSrcweir 		break;
566cdf0e10cSrcweir 
567cdf0e10cSrcweir 	case RES_POOLCOLL_TABLE_HDLN:
568cdf0e10cSrcweir 		{
569cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
570cdf0e10cSrcweir             aSet.Put( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ) );
571cdf0e10cSrcweir             SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
572cdf0e10cSrcweir 			aSet.Put( aLN );
573cdf0e10cSrcweir 		}
574cdf0e10cSrcweir 		break;
575cdf0e10cSrcweir 
576cdf0e10cSrcweir 	case RES_POOLCOLL_FOOTNOTE:				// Fussnote
577cdf0e10cSrcweir 	case RES_POOLCOLL_ENDNOTE:
578cdf0e10cSrcweir 		{
579cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
580cdf0e10cSrcweir 			aLR.SetTxtFirstLineOfst( -(short)GetMetricVal( CM_05 ));
581cdf0e10cSrcweir 			aLR.SetTxtLeft( GetMetricVal( CM_05 ));
582cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem( PT_10, 100, RES_CHRATR_FONTSIZE ) );
583cdf0e10cSrcweir 			aSet.Put( aLR );
584cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
585cdf0e10cSrcweir 			aSet.Put( aLN );
586cdf0e10cSrcweir 		}
587cdf0e10cSrcweir 		break;
588cdf0e10cSrcweir 
589cdf0e10cSrcweir 	case RES_POOLCOLL_LABEL:				// Beschriftung-Basis
590cdf0e10cSrcweir 		{
591cdf0e10cSrcweir             SvxULSpaceItem aUL( RES_UL_SPACE ); aUL.SetUpper( PT_6 ); aUL.SetLower( PT_6 );
592cdf0e10cSrcweir 			aSet.Put( aUL );
593cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE ) );
594cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem( PT_10, 100, RES_CHRATR_FONTSIZE ) );
595cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
596cdf0e10cSrcweir 			aSet.Put( aLN );
597cdf0e10cSrcweir 		}
598cdf0e10cSrcweir 		break;
599cdf0e10cSrcweir 
600cdf0e10cSrcweir 	case RES_POOLCOLL_FRAME:				// Rahmen Inhalt
601cdf0e10cSrcweir 	case RES_POOLCOLL_LABEL_ABB:			// Beschriftung-Abbildung
602cdf0e10cSrcweir 	case RES_POOLCOLL_LABEL_TABLE:			// Beschriftung-Tabelle
603cdf0e10cSrcweir 	case RES_POOLCOLL_LABEL_FRAME:			// Beschriftung-Rahmen
604cdf0e10cSrcweir 	case RES_POOLCOLL_LABEL_DRAWING:		// Beschriftung-Zeichnung
605cdf0e10cSrcweir 		break;
606cdf0e10cSrcweir 
607cdf0e10cSrcweir 	case RES_POOLCOLL_JAKETADRESS:			// UmschlagAdresse
608cdf0e10cSrcweir 		{
609cdf0e10cSrcweir             SvxULSpaceItem aUL( RES_UL_SPACE ); aUL.SetLower( PT_3 );
610cdf0e10cSrcweir 			aSet.Put( aUL );
611cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
612cdf0e10cSrcweir 			aSet.Put( aLN );
613cdf0e10cSrcweir 		}
614cdf0e10cSrcweir 		break;
615cdf0e10cSrcweir 
616cdf0e10cSrcweir 	case RES_POOLCOLL_SENDADRESS:			// AbsenderAdresse
617cdf0e10cSrcweir 		{
618cdf0e10cSrcweir 			if( get(IDocumentSettingAccess::HTML_MODE) )
619cdf0e10cSrcweir                 SetAllScriptItem( aSet, SvxPostureItem(ITALIC_NORMAL, RES_CHRATR_POSTURE) );
620cdf0e10cSrcweir 			else
621cdf0e10cSrcweir 			{
622cdf0e10cSrcweir                 SvxULSpaceItem aUL( RES_UL_SPACE ); aUL.SetLower( PT_3 );
623cdf0e10cSrcweir 				aSet.Put( aUL );
624cdf0e10cSrcweir 			}
625cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
626cdf0e10cSrcweir 			aSet.Put( aLN );
627cdf0e10cSrcweir 		}
628cdf0e10cSrcweir 		break;
629cdf0e10cSrcweir 
630cdf0e10cSrcweir 	// Benutzer-Verzeichnisse:
631cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USERH:			// Header
632cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_True, sal_False );
633cdf0e10cSrcweir 		{
634cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
635cdf0e10cSrcweir 			aSet.Put( aLN );
636cdf0e10cSrcweir 		}
637cdf0e10cSrcweir 		break;
638cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER1:			// 1. Ebene
639cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_False, sal_True );
640cdf0e10cSrcweir 		break;
641cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER2:			// 2. Ebene
642cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 1, sal_False, sal_True );
643cdf0e10cSrcweir 		break;
644cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER3:			// 3. Ebene
645cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 2, sal_False, sal_True );
646cdf0e10cSrcweir 		break;
647cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER4:			// 4. Ebene
648cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 3, sal_False, sal_True );
649cdf0e10cSrcweir 		break;
650cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER5:			// 5. Ebene
651cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 4, sal_False, sal_True );
652cdf0e10cSrcweir 		break;
653cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER6:			// 6. Ebene
654cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 5, sal_False, sal_True );
655cdf0e10cSrcweir 		break;
656cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER7:			// 7. Ebene
657cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 6, sal_False, sal_True );
658cdf0e10cSrcweir 		break;
659cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER8:			// 8. Ebene
660cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 7, sal_False, sal_True );
661cdf0e10cSrcweir 		break;
662cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER9:			// 9. Ebene
663cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 8, sal_False, sal_True );
664cdf0e10cSrcweir 		break;
665cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_USER10:			// 10. Ebene
666cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 9, sal_False, sal_True );
667cdf0e10cSrcweir 		break;
668cdf0e10cSrcweir 
669cdf0e10cSrcweir 	// Index-Verzeichnisse
670cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_IDXH:			// Header
671cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_True, sal_False );
672cdf0e10cSrcweir 		{
673cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
674cdf0e10cSrcweir 			aSet.Put( aLN );
675cdf0e10cSrcweir 		}
676cdf0e10cSrcweir 		break;
677cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_IDX1:			// 1. Ebene
678cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_False, sal_False );
679cdf0e10cSrcweir 		break;
680cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_IDX2:			// 2. Ebene
681cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 1, sal_False, sal_False );
682cdf0e10cSrcweir 		break;
683cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_IDX3:			// 3. Ebene
684cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 2, sal_False, sal_False );
685cdf0e10cSrcweir 		break;
686cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_IDXBREAK:		// Trenner
687cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_False, sal_False );
688cdf0e10cSrcweir 		break;
689cdf0e10cSrcweir 
690cdf0e10cSrcweir 	// Inhalts-Verzeichnisse
691cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNTH:		// Header
692cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_True, sal_False );
693cdf0e10cSrcweir 		{
694cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
695cdf0e10cSrcweir 			aSet.Put( aLN );
696cdf0e10cSrcweir 		}
697cdf0e10cSrcweir 		break;
698cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT1:		// 1. Ebene
699cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_False, sal_True );
700cdf0e10cSrcweir 		break;
701cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT2:		// 2. Ebene
702cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 1, sal_False, sal_True );
703cdf0e10cSrcweir 		break;
704cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT3:		// 3. Ebene
705cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 2, sal_False, sal_True );
706cdf0e10cSrcweir 		break;
707cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT4:		// 4. Ebene
708cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 3, sal_False, sal_True );
709cdf0e10cSrcweir 		break;
710cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT5:		// 5. Ebene
711cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 4, sal_False, sal_True );
712cdf0e10cSrcweir 		break;
713cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT6:		// 6. Ebene
714cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 5, sal_False, sal_True );
715cdf0e10cSrcweir 		break;
716cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT7:		// 7. Ebene
717cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 6, sal_False, sal_True );
718cdf0e10cSrcweir 		break;
719cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT8:		// 8. Ebene
720cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 7, sal_False, sal_True );
721cdf0e10cSrcweir 		break;
722cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT9:		// 9. Ebene
723cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 8, sal_False, sal_True );
724cdf0e10cSrcweir 		break;
725cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_CNTNT10:		// 10. Ebene
726cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 9, sal_False, sal_True );
727cdf0e10cSrcweir 		break;
728cdf0e10cSrcweir 
729cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_ILLUSH:
730cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_OBJECTH:
731cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_TABLESH:
732cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_AUTHORITIESH:
733cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_True, sal_False );
734cdf0e10cSrcweir 		{
735cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
736cdf0e10cSrcweir 			aSet.Put( aLN );
737cdf0e10cSrcweir 		}
738cdf0e10cSrcweir 		break;
739cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_ILLUS1:
740cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_OBJECT1:
741cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_TABLES1:
742cdf0e10cSrcweir 	case RES_POOLCOLL_TOX_AUTHORITIES1:
743cdf0e10cSrcweir 		lcl_SetRegister( this, aSet, 0, sal_False, sal_True );
744cdf0e10cSrcweir 	break;
745cdf0e10cSrcweir 
746cdf0e10cSrcweir 
747cdf0e10cSrcweir 
748cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL1S:
749cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL1,
750cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 0 ),
751cdf0e10cSrcweir 						PT_12, PT_6 );
752cdf0e10cSrcweir 		break;
753cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL1:
754cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL1,
755cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 0 ),
756cdf0e10cSrcweir 						0, PT_6 );
757cdf0e10cSrcweir 		break;
758cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL1E:
759cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL1,
760cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 0 ),
761cdf0e10cSrcweir 						0, PT_12 );
762cdf0e10cSrcweir 		break;
763cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_NONUM1:
764cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM1,
765cdf0e10cSrcweir 						0, SwNumRule::GetNumIndent( 0 ), 0, PT_6 );
766cdf0e10cSrcweir 		break;
767cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL2S:
768cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL2,
769cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 1 ),
770cdf0e10cSrcweir 						PT_12, PT_6 );
771cdf0e10cSrcweir 		break;
772cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL2:
773cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL2,
774cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 1 ),
775cdf0e10cSrcweir 						0, PT_6 );
776cdf0e10cSrcweir 		break;
777cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL2E:
778cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL2,
779cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 1 ),
780cdf0e10cSrcweir 						0, PT_12 );
781cdf0e10cSrcweir 		break;
782cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_NONUM2:
783cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM2,
784cdf0e10cSrcweir 						0, SwNumRule::GetNumIndent( 1 ), 0, PT_6 );
785cdf0e10cSrcweir 		break;
786cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL3S:
787cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL3,
788cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 2 ),
789cdf0e10cSrcweir 						PT_12, PT_6 );
790cdf0e10cSrcweir 		break;
791cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL3:
792cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL3,
793cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 2 ),
794cdf0e10cSrcweir 						0, PT_6 );
795cdf0e10cSrcweir 		break;
796cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL3E:
797cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL3,
798cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 2 ),
799cdf0e10cSrcweir 						0, PT_12 );
800cdf0e10cSrcweir 		break;
801cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_NONUM3:
802cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM3,
803cdf0e10cSrcweir 						0, SwNumRule::GetNumIndent( 2 ), 0, PT_6 );
804cdf0e10cSrcweir 		break;
805cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL4S:
806cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL4,
807cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 3 ),
808cdf0e10cSrcweir 						PT_12, PT_6 );
809cdf0e10cSrcweir 		break;
810cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL4:
811cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL4,
812cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 3 ),
813cdf0e10cSrcweir 						0, PT_6 );
814cdf0e10cSrcweir 		break;
815cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL4E:
816cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL4,
817cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 3 ),
818cdf0e10cSrcweir 						0, PT_12 );
819cdf0e10cSrcweir 		break;
820cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_NONUM4:
821cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM4,
822cdf0e10cSrcweir 						0, SwNumRule::GetNumIndent( 3 ), 0, PT_6 );
823cdf0e10cSrcweir 		break;
824cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL5S:
825cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL5,
826cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 4 ),
827cdf0e10cSrcweir 						PT_12, PT_6 );
828cdf0e10cSrcweir 		break;
829cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL5:
830cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL5,
831cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 4 ),
832cdf0e10cSrcweir 						0, PT_6 );
833cdf0e10cSrcweir 		break;
834cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_LEVEL5E:
835cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL5,
836cdf0e10cSrcweir 						lNumFirstLineOffset, SwNumRule::GetNumIndent( 4 ),
837cdf0e10cSrcweir 						0, PT_12 );
838cdf0e10cSrcweir 		break;
839cdf0e10cSrcweir 	case RES_POOLCOLL_NUM_NONUM5:
840cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM5,
841cdf0e10cSrcweir 						0, SwNumRule::GetNumIndent( 4 ), 0, PT_6 );
842cdf0e10cSrcweir 		break;
843cdf0e10cSrcweir 
844cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL1S:
845cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL1,
846cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 0 ),
847cdf0e10cSrcweir 						PT_12, PT_6 );
848cdf0e10cSrcweir 		break;
849cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL1:
850cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL1,
851cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 0 ),
852cdf0e10cSrcweir 						0, PT_6 );
853cdf0e10cSrcweir 		break;
854cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL1E:
855cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL1,
856cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 0 ),
857cdf0e10cSrcweir 						0, PT_12 );
858cdf0e10cSrcweir 		break;
859cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_NONUM1:
860cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM1,
861cdf0e10cSrcweir 						0, SwNumRule::GetBullIndent( 0 ), 0, PT_6 );
862cdf0e10cSrcweir 		break;
863cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL2S:
864cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL2,
865cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 1 ),
866cdf0e10cSrcweir 						PT_12, PT_6 );
867cdf0e10cSrcweir 		break;
868cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL2:
869cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL2,
870cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 1 ),
871cdf0e10cSrcweir 						0, PT_6 );
872cdf0e10cSrcweir 		break;
873cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL2E:
874cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL2,
875cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 1 ),
876cdf0e10cSrcweir 						0, PT_12 );
877cdf0e10cSrcweir 		break;
878cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_NONUM2:
879cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM2,
880cdf0e10cSrcweir 						0, SwNumRule::GetBullIndent( 1 ), 0, PT_6 );
881cdf0e10cSrcweir 		break;
882cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL3S:
883cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL3,
884cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 2 ),
885cdf0e10cSrcweir 						PT_12, PT_6 );
886cdf0e10cSrcweir 		break;
887cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL3:
888cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL3,
889cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 2 ),
890cdf0e10cSrcweir 						0, PT_6 );
891cdf0e10cSrcweir 		break;
892cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL3E:
893cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL3,
894cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 2 ),
895cdf0e10cSrcweir 						0, PT_12 );
896cdf0e10cSrcweir 		break;
897cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_NONUM3:
898cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM3,
899cdf0e10cSrcweir 						0, SwNumRule::GetBullIndent( 2 ), 0, PT_6 );
900cdf0e10cSrcweir 		break;
901cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL4S:
902cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL4,
903cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 3 ),
904cdf0e10cSrcweir 						PT_12, PT_6 );
905cdf0e10cSrcweir 		break;
906cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL4:
907cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL4,
908cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 3 ),
909cdf0e10cSrcweir 						0, PT_6 );
910cdf0e10cSrcweir 		break;
911cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL4E:
912cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL4,
913cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 3 ),
914cdf0e10cSrcweir 						0, PT_12 );
915cdf0e10cSrcweir 		break;
916cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_NONUM4:
917cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM4,
918cdf0e10cSrcweir 						0, SwNumRule::GetBullIndent( 3 ), 0, PT_6 );
919cdf0e10cSrcweir 		break;
920cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL5S:
921cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL5,
922cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 4 ),
923cdf0e10cSrcweir 						PT_12, PT_6 );
924cdf0e10cSrcweir 		break;
925cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL5:
926cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL5,
927cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 4 ),
928cdf0e10cSrcweir 						0, PT_6 );
929cdf0e10cSrcweir 		break;
930cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_LEVEL5E:
931cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL5,
932cdf0e10cSrcweir 						lBullFirstLineOffset, SwNumRule::GetBullIndent( 4 ),
933cdf0e10cSrcweir 						0, PT_12 );
934cdf0e10cSrcweir 		break;
935cdf0e10cSrcweir 	case RES_POOLCOLL_BUL_NONUM5:
936cdf0e10cSrcweir 		lcl_SetNumBul( this, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM5,
937cdf0e10cSrcweir 						0, SwNumRule::GetBullIndent( 4 ), 0, PT_6 );
938cdf0e10cSrcweir 		break;
939cdf0e10cSrcweir 
940cdf0e10cSrcweir 	case RES_POOLCOLL_DOC_TITEL:	   		// Doc. Titel
941cdf0e10cSrcweir 		{
942cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
943cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem( PT_18, 100, RES_CHRATR_FONTSIZE ) );
944cdf0e10cSrcweir 
945cdf0e10cSrcweir             aSet.Put( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ) );
946cdf0e10cSrcweir 
947cdf0e10cSrcweir             pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
948cdf0e10cSrcweir 												RES_POOLCOLL_DOC_SUBTITEL ));
949cdf0e10cSrcweir 		}
950cdf0e10cSrcweir 		break;
951cdf0e10cSrcweir 
952cdf0e10cSrcweir 	case RES_POOLCOLL_DOC_SUBTITEL:			// Doc. UnterTitel
953cdf0e10cSrcweir 		{
954cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE ));
955cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem( PT_14, 100, RES_CHRATR_FONTSIZE ));
956cdf0e10cSrcweir 
957cdf0e10cSrcweir             aSet.Put( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ));
958cdf0e10cSrcweir 
959cdf0e10cSrcweir             pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
960cdf0e10cSrcweir 												RES_POOLCOLL_TEXT ));
961cdf0e10cSrcweir 		}
962cdf0e10cSrcweir 		break;
963cdf0e10cSrcweir 
964cdf0e10cSrcweir 	case RES_POOLCOLL_HTML_BLOCKQUOTE:
965cdf0e10cSrcweir 		{
966cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
967cdf0e10cSrcweir 			aLR.SetLeft( GetMetricVal( CM_1 ));
968cdf0e10cSrcweir 			aLR.SetRight( GetMetricVal( CM_1 ));
969cdf0e10cSrcweir 			aSet.Put( aLR );
970cdf0e10cSrcweir //          aSet.Put( SvxAdjustItem( SVX_ADJUST_BLOCK, RES_PARATR_ADJUST ) );
971cdf0e10cSrcweir             SvxULSpaceItem aUL( RES_UL_SPACE );
972cdf0e10cSrcweir             aUL = pNewColl->GetULSpace();
973cdf0e10cSrcweir 			aUL.SetLower( HTML_PARSPACE );
974cdf0e10cSrcweir 			aSet.Put( aUL);
975cdf0e10cSrcweir 		}
976cdf0e10cSrcweir 		break;
977cdf0e10cSrcweir 
978cdf0e10cSrcweir 	case RES_POOLCOLL_HTML_PRE:
979cdf0e10cSrcweir 		{
980cdf0e10cSrcweir 			::lcl_SetDfltFont( DEFAULTFONT_FIXED, aSet );
981cdf0e10cSrcweir 
982cdf0e10cSrcweir // WORKAROUND: PRE auf 10pt setzten
983cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem(PT_10, 100, RES_CHRATR_FONTSIZE) );
984cdf0e10cSrcweir // WORKAROUND: PRE auf 10pt setzten
985cdf0e10cSrcweir 
986cdf0e10cSrcweir 			// der untere Absatz-Abstand wird explizit gesetzt (macht
987cdf0e10cSrcweir 			// die harte Attributierung einfacher)
988cdf0e10cSrcweir             SvxULSpaceItem aULSpaceItem( RES_UL_SPACE );
989cdf0e10cSrcweir             aULSpaceItem = pNewColl->GetULSpace();
990cdf0e10cSrcweir 			aULSpaceItem.SetLower( 0 );
991cdf0e10cSrcweir 			aSet.Put( aULSpaceItem );
992cdf0e10cSrcweir 		}
993cdf0e10cSrcweir 		break;
994cdf0e10cSrcweir 
995cdf0e10cSrcweir 	case RES_POOLCOLL_HTML_HR:
996cdf0e10cSrcweir 		{
997cdf0e10cSrcweir             SvxBoxItem aBox( RES_BOX );
998cdf0e10cSrcweir 			Color aColor( COL_GRAY );
999cdf0e10cSrcweir 			SvxBorderLine aNew( &aColor, DEF_DOUBLE_LINE0_OUT,
1000cdf0e10cSrcweir 										 DEF_DOUBLE_LINE0_IN,
1001cdf0e10cSrcweir 										 DEF_DOUBLE_LINE0_DIST );
1002cdf0e10cSrcweir 			aBox.SetLine( &aNew, BOX_LINE_BOTTOM );
1003cdf0e10cSrcweir 
1004cdf0e10cSrcweir 			aSet.Put( aBox );
1005cdf0e10cSrcweir             aSet.Put( SwParaConnectBorderItem( sal_False ) );
1006cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem(120, 100, RES_CHRATR_FONTSIZE) );
1007cdf0e10cSrcweir 
1008cdf0e10cSrcweir             SvxULSpaceItem aUL( RES_UL_SPACE );
1009cdf0e10cSrcweir             {
1010cdf0e10cSrcweir 				pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
1011cdf0e10cSrcweir 												RES_POOLCOLL_TEXT ));
1012cdf0e10cSrcweir 				aUL = pNewColl->GetULSpace();
1013cdf0e10cSrcweir 			}
1014cdf0e10cSrcweir 			aUL.SetLower( HTML_PARSPACE );
1015cdf0e10cSrcweir 			aSet.Put( aUL);
1016cdf0e10cSrcweir 			SwFmtLineNumber aLN; aLN.SetCountLines( sal_False );
1017cdf0e10cSrcweir 			aSet.Put( aLN );
1018cdf0e10cSrcweir 		}
1019cdf0e10cSrcweir 		break;
1020cdf0e10cSrcweir 
1021cdf0e10cSrcweir 	case RES_POOLCOLL_HTML_DD:
1022cdf0e10cSrcweir 		{
1023cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
1024cdf0e10cSrcweir             aLR = pNewColl->GetLRSpace();
1025cdf0e10cSrcweir 			// es wird um 1cm eingerueckt. Die IDs liegen immer 2 auseinander!
1026cdf0e10cSrcweir 			aLR.SetLeft( GetMetricVal( CM_1 ));
1027cdf0e10cSrcweir 			aSet.Put( aLR );
1028cdf0e10cSrcweir 		}
1029cdf0e10cSrcweir 		break;
1030cdf0e10cSrcweir 	case RES_POOLCOLL_HTML_DT:
1031cdf0e10cSrcweir 		{
1032cdf0e10cSrcweir             SvxLRSpaceItem aLR( RES_LR_SPACE );
1033cdf0e10cSrcweir             {
1034cdf0e10cSrcweir 				pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
1035cdf0e10cSrcweir 													RES_POOLCOLL_HTML_DD ));
1036cdf0e10cSrcweir 				aLR = pNewColl->GetLRSpace();
1037cdf0e10cSrcweir 			}
1038cdf0e10cSrcweir 			// es wird um 0cm eingerueckt. Die IDs liegen immer 2 auseinander!
1039cdf0e10cSrcweir 			aLR.SetLeft( 0 );
1040cdf0e10cSrcweir 			aSet.Put( aLR );
1041cdf0e10cSrcweir 		}
1042cdf0e10cSrcweir 		break;
1043cdf0e10cSrcweir 	}
1044cdf0e10cSrcweir 
1045cdf0e10cSrcweir 	if( aSet.Count() )
1046cdf0e10cSrcweir 	{
1047cdf0e10cSrcweir         {
1048cdf0e10cSrcweir             pNewColl->SetFmtAttr( aSet );
1049cdf0e10cSrcweir 			// JP 31.08.95: erzeugen einer PoolVorlage ist keine Modifikation
1050cdf0e10cSrcweir 			//				(Bug: 18545)
1051cdf0e10cSrcweir 			// SetModified();
1052cdf0e10cSrcweir 		}
1053cdf0e10cSrcweir 	}
1054cdf0e10cSrcweir 	return pNewColl;
1055cdf0e10cSrcweir }
1056cdf0e10cSrcweir 
1057cdf0e10cSrcweir 
1058cdf0e10cSrcweir 
1059cdf0e10cSrcweir 	// pruefe, ob diese "Auto-Collection" in Dokument schon/noch
1060cdf0e10cSrcweir 	// benutzt wird
IsPoolTxtCollUsed(sal_uInt16 nId) const1061cdf0e10cSrcweir bool SwDoc::IsPoolTxtCollUsed( sal_uInt16 nId ) const
1062cdf0e10cSrcweir {
1063cdf0e10cSrcweir 	ASSERT(
1064cdf0e10cSrcweir 		(RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END) ||
1065cdf0e10cSrcweir 		(RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END) ||
1066cdf0e10cSrcweir 		(RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END) ||
1067cdf0e10cSrcweir 		(RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END) ||
1068cdf0e10cSrcweir 		(RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END) ||
1069cdf0e10cSrcweir 		(RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END),
1070cdf0e10cSrcweir 			"Falsche AutoFormat-Id" );
1071cdf0e10cSrcweir 
1072cdf0e10cSrcweir 	SwTxtFmtColl* pNewColl = 0;
1073cdf0e10cSrcweir 	sal_Bool bFnd = sal_False;
1074cdf0e10cSrcweir 	for( sal_uInt16 n = 0; !bFnd && n < pTxtFmtCollTbl->Count(); ++n )
1075cdf0e10cSrcweir     {
1076cdf0e10cSrcweir         pNewColl = (*pTxtFmtCollTbl)[ n ];
1077cdf0e10cSrcweir 		if( nId == pNewColl->GetPoolFmtId() )
1078cdf0e10cSrcweir 			bFnd = sal_True;
1079cdf0e10cSrcweir     }
1080cdf0e10cSrcweir 
1081cdf0e10cSrcweir 	if( !bFnd || !pNewColl->GetDepends() )
1082cdf0e10cSrcweir 		return sal_False;
1083cdf0e10cSrcweir 
1084cdf0e10cSrcweir     SwAutoFmtGetDocNode aGetHt( &GetNodes() );
1085cdf0e10cSrcweir 	return !pNewColl->GetInfo( aGetHt );
1086cdf0e10cSrcweir }
1087cdf0e10cSrcweir 
1088cdf0e10cSrcweir 	// Gebe das "Auto[matische]-Format" mit der Id zurueck. Existiert
1089cdf0e10cSrcweir 	// es noch nicht, dann erzeuge es
1090cdf0e10cSrcweir 
GetFmtFromPool(sal_uInt16 nId)1091cdf0e10cSrcweir SwFmt* SwDoc::GetFmtFromPool( sal_uInt16 nId )
1092cdf0e10cSrcweir {
1093cdf0e10cSrcweir     SwFmt *pNewFmt = 0;
1094cdf0e10cSrcweir     SwFmt *pDeriveFmt = 0;
1095cdf0e10cSrcweir 
1096cdf0e10cSrcweir     SvPtrarr* pArray[ 2 ];
1097cdf0e10cSrcweir 	sal_uInt16 nArrCnt = 1, nRCId = 0;
1098cdf0e10cSrcweir 	sal_uInt16* pWhichRange = 0;
1099cdf0e10cSrcweir 
1100cdf0e10cSrcweir 	switch( nId & (COLL_GET_RANGE_BITS + POOLGRP_NOCOLLID) )
1101cdf0e10cSrcweir 	{
1102cdf0e10cSrcweir 	case POOLGRP_CHARFMT:
1103cdf0e10cSrcweir 		{
1104cdf0e10cSrcweir 			pArray[0] = pCharFmtTbl;
1105cdf0e10cSrcweir 			pDeriveFmt = pDfltCharFmt;
1106cdf0e10cSrcweir 
1107cdf0e10cSrcweir 			if( nId > RES_POOLCHR_NORMAL_END )
1108cdf0e10cSrcweir 				nRCId = RC_POOLCHRFMT_HTML_BEGIN - RES_POOLCHR_HTML_BEGIN;
1109cdf0e10cSrcweir 			else
1110cdf0e10cSrcweir 				nRCId = RC_POOLCHRFMT_BEGIN - RES_POOLCHR_BEGIN;
1111cdf0e10cSrcweir 			pWhichRange =  aCharFmtSetRange;
1112cdf0e10cSrcweir 
1113cdf0e10cSrcweir 			// Fehlerfall: unbekanntes Format, aber CharFormat
1114cdf0e10cSrcweir 			//			-> returne das erste
1115cdf0e10cSrcweir 			if( RES_POOLCHR_BEGIN > nId || nId >= RES_POOLCHR_END )
1116cdf0e10cSrcweir 			{
1117cdf0e10cSrcweir 				ASSERT( !this, "ungueltige Id" );
1118cdf0e10cSrcweir 				nId = RES_POOLCHR_BEGIN;
1119cdf0e10cSrcweir 			}
1120cdf0e10cSrcweir 		}
1121cdf0e10cSrcweir 		break;
1122cdf0e10cSrcweir 	case POOLGRP_FRAMEFMT:
1123cdf0e10cSrcweir 		{
1124cdf0e10cSrcweir 			pArray[0] = pFrmFmtTbl;
1125cdf0e10cSrcweir 			pArray[1] = pSpzFrmFmtTbl;
1126cdf0e10cSrcweir 			pDeriveFmt = pDfltFrmFmt;
1127cdf0e10cSrcweir 			nArrCnt = 2;
1128cdf0e10cSrcweir 			nRCId = RC_POOLFRMFMT_BEGIN - RES_POOLFRM_BEGIN;
1129cdf0e10cSrcweir 			pWhichRange = aFrmFmtSetRange;
1130cdf0e10cSrcweir 
1131cdf0e10cSrcweir 			// Fehlerfall: unbekanntes Format, aber FrameFormat
1132cdf0e10cSrcweir 			//			-> returne das erste
1133cdf0e10cSrcweir 			if( RES_POOLFRM_BEGIN > nId || nId >= RES_POOLFRM_END )
1134cdf0e10cSrcweir 			{
1135cdf0e10cSrcweir 				ASSERT( !this, "ungueltige Id" );
1136cdf0e10cSrcweir 				nId = RES_POOLFRM_BEGIN;
1137cdf0e10cSrcweir 			}
1138cdf0e10cSrcweir 		}
1139cdf0e10cSrcweir 		break;
1140cdf0e10cSrcweir 
1141cdf0e10cSrcweir 	default:
1142cdf0e10cSrcweir 		// Fehlerfall, unbekanntes Format
1143cdf0e10cSrcweir 		ASSERT( nId, "ungueltige Id" );
1144cdf0e10cSrcweir 		return 0;
1145cdf0e10cSrcweir 	}
1146cdf0e10cSrcweir 	ASSERT( nRCId, "ungueltige Id" );
1147cdf0e10cSrcweir 
1148cdf0e10cSrcweir 	while( nArrCnt-- )
1149cdf0e10cSrcweir 		for( sal_uInt16 n = 0; n < (*pArray[nArrCnt]).Count(); ++n )
1150cdf0e10cSrcweir 			if( nId == ( pNewFmt = (SwFmt*)(*pArray[ nArrCnt ] )[ n ] )->
1151cdf0e10cSrcweir 					GetPoolFmtId() )
1152cdf0e10cSrcweir 			{
1153cdf0e10cSrcweir                 return pNewFmt;
1154cdf0e10cSrcweir 			}
1155cdf0e10cSrcweir 
1156cdf0e10cSrcweir 	ResId aResId( nRCId + nId, *pSwResMgr );
1157cdf0e10cSrcweir 	String aNm( aResId );
1158cdf0e10cSrcweir 	SwAttrSet aSet( GetAttrPool(), pWhichRange );
1159cdf0e10cSrcweir 
1160cdf0e10cSrcweir     {
1161cdf0e10cSrcweir 		sal_Bool bIsModified = IsModified();
1162cdf0e10cSrcweir 
1163cdf0e10cSrcweir         {
1164cdf0e10cSrcweir             ::sw::UndoGuard const undoGuard(GetIDocumentUndoRedo());
1165cdf0e10cSrcweir             switch (nId & (COLL_GET_RANGE_BITS + POOLGRP_NOCOLLID) )
1166cdf0e10cSrcweir             {
1167cdf0e10cSrcweir                 case POOLGRP_CHARFMT:
1168cdf0e10cSrcweir                     pNewFmt = _MakeCharFmt(aNm, pDeriveFmt, sal_False, sal_True);
1169cdf0e10cSrcweir                 break;
1170cdf0e10cSrcweir                 case POOLGRP_FRAMEFMT:
1171cdf0e10cSrcweir                     pNewFmt = _MakeFrmFmt(aNm, pDeriveFmt, sal_False, sal_True);
1172cdf0e10cSrcweir                 break;
1173cdf0e10cSrcweir                 default:
1174cdf0e10cSrcweir                 break;
1175cdf0e10cSrcweir             }
1176cdf0e10cSrcweir         }
1177cdf0e10cSrcweir 
1178cdf0e10cSrcweir 		if( !bIsModified )
1179cdf0e10cSrcweir 			ResetModified();
1180cdf0e10cSrcweir 		pNewFmt->SetPoolFmtId( nId );
1181cdf0e10cSrcweir 		pNewFmt->SetAuto( sal_False );		// kein Auto-Format
1182cdf0e10cSrcweir 	}
1183cdf0e10cSrcweir 
1184cdf0e10cSrcweir 	switch( nId )
1185cdf0e10cSrcweir 	{
1186cdf0e10cSrcweir 	case RES_POOLCHR_FOOTNOTE:				// Fussnote
1187cdf0e10cSrcweir 	case RES_POOLCHR_PAGENO:				// Seiten/Feld
1188cdf0e10cSrcweir 	case RES_POOLCHR_LABEL:					// Beschriftung
1189cdf0e10cSrcweir 	case RES_POOLCHR_DROPCAPS: 				// Initialien
1190cdf0e10cSrcweir 	case RES_POOLCHR_NUM_LEVEL:				// Aufzaehlungszeichen
1191cdf0e10cSrcweir 	case RES_POOLCHR_TOXJUMP:				// Verzeichnissprung
1192cdf0e10cSrcweir 	case RES_POOLCHR_ENDNOTE:				// Endnote
1193cdf0e10cSrcweir 	case RES_POOLCHR_LINENUM:				// Zeilennummerierung
1194cdf0e10cSrcweir 		break;
1195cdf0e10cSrcweir 
1196cdf0e10cSrcweir 	case RES_POOLCHR_ENDNOTE_ANCHOR:		// Endnotenanker
1197cdf0e10cSrcweir 	case RES_POOLCHR_FOOTNOTE_ANCHOR:		// Fussnotenanker
1198cdf0e10cSrcweir 		{
1199cdf0e10cSrcweir             aSet.Put( SvxEscapementItem( DFLT_ESC_AUTO_SUPER, 58, RES_CHRATR_ESCAPEMENT ) );
1200cdf0e10cSrcweir 		}
1201cdf0e10cSrcweir 		break;
1202cdf0e10cSrcweir 
1203cdf0e10cSrcweir 
1204cdf0e10cSrcweir 	case RES_POOLCHR_BUL_LEVEL:				// Aufzaehlungszeichen
1205cdf0e10cSrcweir 		{
1206cdf0e10cSrcweir             const Font& rBulletFont = numfunc::GetDefBulletFont();
1207cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontItem( rBulletFont.GetFamily(),
1208cdf0e10cSrcweir                       rBulletFont.GetName(), rBulletFont.GetStyleName(),
1209cdf0e10cSrcweir                         rBulletFont.GetPitch(), rBulletFont.GetCharSet(), RES_CHRATR_FONT ));
1210cdf0e10cSrcweir             // --> OD 2008-06-02 #i63395#
1211cdf0e10cSrcweir             // no font and no font size any more
1212cdf0e10cSrcweir //            SetAllScriptItem( aSet, SvxFontHeightItem( PT_9, 100, RES_CHRATR_FONTSIZE ));
1213cdf0e10cSrcweir             // <--
1214cdf0e10cSrcweir 		}
1215cdf0e10cSrcweir 		break;
1216cdf0e10cSrcweir 
1217cdf0e10cSrcweir 	case RES_POOLCHR_INET_NORMAL:
1218cdf0e10cSrcweir 		{
1219cdf0e10cSrcweir             Color aCol( COL_BLUE );
1220cdf0e10cSrcweir             aSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
1221cdf0e10cSrcweir             aSet.Put( SvxUnderlineItem( UNDERLINE_SINGLE, RES_CHRATR_UNDERLINE ) );
1222cdf0e10cSrcweir             // i40133: patch submitted by rail: set language to 'none' to prevent spell checking:
1223cdf0e10cSrcweir             aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_LANGUAGE ) );
1224cdf0e10cSrcweir             aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CJK_LANGUAGE ) );
1225cdf0e10cSrcweir             aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CTL_LANGUAGE ) );
1226cdf0e10cSrcweir         }
1227cdf0e10cSrcweir 		break;
1228cdf0e10cSrcweir 	case RES_POOLCHR_INET_VISIT:
1229cdf0e10cSrcweir 		{
1230cdf0e10cSrcweir             Color aCol( COL_RED );
1231cdf0e10cSrcweir             aSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
1232cdf0e10cSrcweir             aSet.Put( SvxUnderlineItem( UNDERLINE_SINGLE, RES_CHRATR_UNDERLINE ) );
1233cdf0e10cSrcweir             aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_LANGUAGE ) );
1234cdf0e10cSrcweir             aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CJK_LANGUAGE ) );
1235cdf0e10cSrcweir             aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CTL_LANGUAGE ) );
1236cdf0e10cSrcweir         }
1237cdf0e10cSrcweir 		break;
1238cdf0e10cSrcweir 	case RES_POOLCHR_JUMPEDIT:
1239cdf0e10cSrcweir 		{
1240cdf0e10cSrcweir             Color aCol( COL_CYAN );
1241cdf0e10cSrcweir             aSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
1242cdf0e10cSrcweir             aSet.Put( SvxUnderlineItem( UNDERLINE_DOTTED, RES_CHRATR_UNDERLINE ) );
1243cdf0e10cSrcweir             aSet.Put( SvxCaseMapItem( SVX_CASEMAP_KAPITAELCHEN, RES_CHRATR_CASEMAP ) );
1244cdf0e10cSrcweir 		}
1245cdf0e10cSrcweir 		break;
1246cdf0e10cSrcweir 
1247cdf0e10cSrcweir 	case RES_POOLCHR_RUBYTEXT:
1248cdf0e10cSrcweir 		{
1249cdf0e10cSrcweir 			long nH = ((SvxFontHeightItem*)GetDfltAttr(
1250cdf0e10cSrcweir 								RES_CHRATR_CJK_FONTSIZE ))->GetHeight() / 2;
1251cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxFontHeightItem( nH, 100, RES_CHRATR_FONTSIZE));
1252cdf0e10cSrcweir             aSet.Put(SvxUnderlineItem( UNDERLINE_NONE, RES_CHRATR_UNDERLINE ));
1253cdf0e10cSrcweir             aSet.Put(SvxEmphasisMarkItem( EMPHASISMARK_NONE, RES_CHRATR_EMPHASIS_MARK) );
1254cdf0e10cSrcweir 		}
1255cdf0e10cSrcweir 		break;
1256cdf0e10cSrcweir 
1257cdf0e10cSrcweir 	case RES_POOLCHR_HTML_EMPHASIS:
1258cdf0e10cSrcweir 	case RES_POOLCHR_HTML_CITIATION:
1259cdf0e10cSrcweir 	case RES_POOLCHR_HTML_VARIABLE:
1260cdf0e10cSrcweir 		{
1261cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE) );
1262cdf0e10cSrcweir 		}
1263cdf0e10cSrcweir 		break;
1264cdf0e10cSrcweir 
1265cdf0e10cSrcweir 	case RES_POOLCHR_IDX_MAIN_ENTRY:
1266cdf0e10cSrcweir 	case RES_POOLCHR_HTML_STRONG:
1267cdf0e10cSrcweir 		{
1268cdf0e10cSrcweir             SetAllScriptItem( aSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ));
1269cdf0e10cSrcweir 		}
1270cdf0e10cSrcweir 		break;
1271cdf0e10cSrcweir 
1272cdf0e10cSrcweir 	case RES_POOLCHR_HTML_CODE:
1273cdf0e10cSrcweir 	case RES_POOLCHR_HTML_SAMPLE:
1274cdf0e10cSrcweir 	case RES_POOLCHR_HTML_KEYBOARD:
1275cdf0e10cSrcweir 	case RES_POOLCHR_HTML_TELETYPE:
1276cdf0e10cSrcweir 		{
1277cdf0e10cSrcweir 			::lcl_SetDfltFont( DEFAULTFONT_FIXED, aSet );
1278cdf0e10cSrcweir 		}
1279cdf0e10cSrcweir 		break;
1280cdf0e10cSrcweir    case RES_POOLCHR_VERT_NUM:
1281cdf0e10cSrcweir             aSet.Put( SvxCharRotateItem( 900, sal_False, RES_CHRATR_ROTATE ) );
1282cdf0e10cSrcweir     break;
1283cdf0e10cSrcweir //nichts besonderes
1284cdf0e10cSrcweir //	case RES_POOLCHR_HTML_DEFINSTANCE:
1285cdf0e10cSrcweir //			break;
1286cdf0e10cSrcweir 
1287cdf0e10cSrcweir 
1288cdf0e10cSrcweir 	case RES_POOLFRM_FRAME:
1289cdf0e10cSrcweir 		{
1290cdf0e10cSrcweir             if ( get(IDocumentSettingAccess::HTML_MODE) )
1291cdf0e10cSrcweir 			{
1292cdf0e10cSrcweir                 aSet.Put( SwFmtAnchor( FLY_AS_CHAR ));
1293cdf0e10cSrcweir                 aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::LINE_CENTER, text::RelOrientation::PRINT_AREA ) );
1294cdf0e10cSrcweir 				aSet.Put( SwFmtSurround( SURROUND_NONE ) );
1295cdf0e10cSrcweir 			}
1296cdf0e10cSrcweir 			else
1297cdf0e10cSrcweir 			{
1298cdf0e10cSrcweir                 aSet.Put( SwFmtAnchor( FLY_AT_PARA ));
1299cdf0e10cSrcweir 				aSet.Put( SwFmtSurround( SURROUND_PARALLEL ) );
1300cdf0e10cSrcweir                 aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::PRINT_AREA ) );
1301cdf0e10cSrcweir                 aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::PRINT_AREA ) );
1302cdf0e10cSrcweir 				Color aCol( COL_BLACK );
1303cdf0e10cSrcweir 				SvxBorderLine aLine( &aCol, DEF_LINE_WIDTH_0 );
1304cdf0e10cSrcweir                 SvxBoxItem aBox( RES_BOX );
1305cdf0e10cSrcweir 				aBox.SetLine( &aLine, BOX_LINE_TOP );
1306cdf0e10cSrcweir 				aBox.SetLine( &aLine, BOX_LINE_BOTTOM );
1307cdf0e10cSrcweir 				aBox.SetLine( &aLine, BOX_LINE_LEFT );
1308cdf0e10cSrcweir 				aBox.SetLine( &aLine, BOX_LINE_RIGHT );
1309cdf0e10cSrcweir 				aBox.SetDistance( 85 );
1310cdf0e10cSrcweir 				aSet.Put( aBox );
1311cdf0e10cSrcweir                 aSet.Put( SvxLRSpaceItem( 114, 114, 0, 0, RES_LR_SPACE ) );
1312cdf0e10cSrcweir                 aSet.Put( SvxULSpaceItem( 114, 114, RES_UL_SPACE ) );
1313cdf0e10cSrcweir 			}
1314cdf0e10cSrcweir 		}
1315cdf0e10cSrcweir 		break;
1316cdf0e10cSrcweir 	case RES_POOLFRM_GRAPHIC:
1317cdf0e10cSrcweir 	case RES_POOLFRM_OLE:
1318cdf0e10cSrcweir 		{
1319cdf0e10cSrcweir             aSet.Put( SwFmtAnchor( FLY_AT_PARA ));
1320cdf0e10cSrcweir             aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::FRAME ));
1321cdf0e10cSrcweir             aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ));
1322cdf0e10cSrcweir 			aSet.Put( SwFmtSurround( SURROUND_NONE ));
1323cdf0e10cSrcweir 		}
1324cdf0e10cSrcweir 		break;
1325cdf0e10cSrcweir 	case RES_POOLFRM_FORMEL:
1326cdf0e10cSrcweir 		{
1327cdf0e10cSrcweir             aSet.Put( SwFmtAnchor( FLY_AS_CHAR ) );
1328cdf0e10cSrcweir             aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::CHAR_CENTER, text::RelOrientation::FRAME ) );
1329cdf0e10cSrcweir             aSet.Put( SvxLRSpaceItem( 114, 114, 0, 0, RES_LR_SPACE ) );
1330cdf0e10cSrcweir 		}
1331cdf0e10cSrcweir 		break;
1332cdf0e10cSrcweir 	case RES_POOLFRM_MARGINAL:
1333cdf0e10cSrcweir 		{
1334cdf0e10cSrcweir             aSet.Put( SwFmtAnchor( FLY_AT_PARA ));
1335cdf0e10cSrcweir             aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::LEFT, text::RelOrientation::FRAME ));
1336cdf0e10cSrcweir             aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ));
1337cdf0e10cSrcweir 			aSet.Put( SwFmtSurround( SURROUND_PARALLEL ));
1338cdf0e10cSrcweir 			// Breite 3.5 centimeter vorgegeben, als Hoehe nur den
1339cdf0e10cSrcweir 			// min. Wert benutzen
1340cdf0e10cSrcweir 			aSet.Put( SwFmtFrmSize( ATT_MIN_SIZE,
1341cdf0e10cSrcweir 					GetMetricVal( CM_1 ) * 3 + GetMetricVal( CM_05 ),
1342cdf0e10cSrcweir 					MM50 ));
1343cdf0e10cSrcweir 		}
1344cdf0e10cSrcweir 		break;
1345cdf0e10cSrcweir 	case RES_POOLFRM_WATERSIGN:
1346cdf0e10cSrcweir 		{
1347cdf0e10cSrcweir             aSet.Put( SwFmtAnchor( FLY_AT_PAGE ));
1348cdf0e10cSrcweir             aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::FRAME ));
1349cdf0e10cSrcweir             aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::CENTER, text::RelOrientation::FRAME ));
1350cdf0e10cSrcweir 			aSet.Put( SvxOpaqueItem( sal_False ));
1351cdf0e10cSrcweir 			aSet.Put( SwFmtSurround( SURROUND_THROUGHT ));
1352cdf0e10cSrcweir 		}
1353cdf0e10cSrcweir 		break;
1354cdf0e10cSrcweir 
1355cdf0e10cSrcweir 	case RES_POOLFRM_LABEL:
1356cdf0e10cSrcweir 		{
1357cdf0e10cSrcweir             aSet.Put( SwFmtAnchor( FLY_AS_CHAR ) );
1358cdf0e10cSrcweir             aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ) );
1359cdf0e10cSrcweir             aSet.Put( SvxLRSpaceItem( 114, 114, 0, 0, RES_LR_SPACE ) );
1360cdf0e10cSrcweir 
1361cdf0e10cSrcweir             SvxProtectItem aProtect( RES_PROTECT );
1362cdf0e10cSrcweir 			aProtect.SetSizeProtect( sal_True );
1363cdf0e10cSrcweir 			aProtect.SetPosProtect( sal_True );
1364cdf0e10cSrcweir 			aSet.Put( aProtect );
1365cdf0e10cSrcweir 
1366cdf0e10cSrcweir             pNewFmt->SetAutoUpdateFmt( sal_True );
1367cdf0e10cSrcweir 		}
1368cdf0e10cSrcweir 		break;
1369cdf0e10cSrcweir 	}
1370cdf0e10cSrcweir 	if( aSet.Count() )
1371cdf0e10cSrcweir 	{
1372cdf0e10cSrcweir         {
1373cdf0e10cSrcweir             pNewFmt->SetFmtAttr( aSet );
1374cdf0e10cSrcweir 			// JP 31.08.95: erzeugen einer PoolVorlage ist keine Modifikation
1375cdf0e10cSrcweir 			//				(Bug: 18545)
1376cdf0e10cSrcweir 			// SetModified();
1377cdf0e10cSrcweir 		}
1378cdf0e10cSrcweir 	}
1379cdf0e10cSrcweir 	return pNewFmt;
1380cdf0e10cSrcweir }
1381cdf0e10cSrcweir 
GetFrmFmtFromPool(sal_uInt16 nId)1382cdf0e10cSrcweir SwFrmFmt* SwDoc::GetFrmFmtFromPool( sal_uInt16 nId )
1383cdf0e10cSrcweir {
1384cdf0e10cSrcweir     return (SwFrmFmt*)GetFmtFromPool( nId );
1385cdf0e10cSrcweir }
1386cdf0e10cSrcweir 
GetCharFmtFromPool(sal_uInt16 nId)1387cdf0e10cSrcweir SwCharFmt* SwDoc::GetCharFmtFromPool( sal_uInt16 nId )
1388cdf0e10cSrcweir {
1389cdf0e10cSrcweir     return (SwCharFmt*)GetFmtFromPool( nId );
1390cdf0e10cSrcweir }
1391cdf0e10cSrcweir 
1392cdf0e10cSrcweir     // pruefe, ob diese "Auto-Collection" in Dokument schon/noch
1393cdf0e10cSrcweir 	// benutzt wird
IsPoolFmtUsed(sal_uInt16 nId) const1394cdf0e10cSrcweir bool SwDoc::IsPoolFmtUsed( sal_uInt16 nId ) const
1395cdf0e10cSrcweir {
1396cdf0e10cSrcweir     SwFmt *pNewFmt = 0;
1397cdf0e10cSrcweir 	const SvPtrarr* pArray[ 2 ];
1398cdf0e10cSrcweir 	sal_uInt16 nArrCnt = 1;
1399cdf0e10cSrcweir 	sal_Bool bFnd = sal_True;
1400cdf0e10cSrcweir 
1401cdf0e10cSrcweir 	if( RES_POOLCHR_BEGIN <= nId && nId < RES_POOLCHR_END )
1402cdf0e10cSrcweir 	{
1403cdf0e10cSrcweir 		pArray[0] = pCharFmtTbl;
1404cdf0e10cSrcweir 	}
1405cdf0e10cSrcweir 	if( RES_POOLFRM_BEGIN <= nId && nId < RES_POOLFRM_END )
1406cdf0e10cSrcweir 	{
1407cdf0e10cSrcweir 		pArray[0] = pFrmFmtTbl;
1408cdf0e10cSrcweir 		pArray[1] = pSpzFrmFmtTbl;
1409cdf0e10cSrcweir 		nArrCnt = 2;
1410cdf0e10cSrcweir 	}
1411cdf0e10cSrcweir 	else
1412cdf0e10cSrcweir 	{
1413cdf0e10cSrcweir 		ASSERT( sal_False, "ungueltige Id" );
1414cdf0e10cSrcweir 		bFnd = sal_False;
1415cdf0e10cSrcweir 	}
1416cdf0e10cSrcweir 
1417cdf0e10cSrcweir 	if( bFnd )
1418cdf0e10cSrcweir 	{
1419cdf0e10cSrcweir 		bFnd = sal_False;
1420cdf0e10cSrcweir 		while( nArrCnt-- && !bFnd )
1421cdf0e10cSrcweir 			for( sal_uInt16 n = 0; !bFnd && n < (*pArray[nArrCnt]).Count(); ++n )
1422cdf0e10cSrcweir 				if( nId == ( pNewFmt = (SwFmt*)(*pArray[ nArrCnt ] )[ n ] )->
1423cdf0e10cSrcweir 						GetPoolFmtId() )
1424cdf0e10cSrcweir 					bFnd = sal_True;
1425cdf0e10cSrcweir 	}
1426cdf0e10cSrcweir 
1427cdf0e10cSrcweir 	// nicht gefunden oder keine Abhaengigen ?
1428cdf0e10cSrcweir 	if( bFnd && pNewFmt->GetDepends() )
1429cdf0e10cSrcweir 	{
1430cdf0e10cSrcweir 		// dann teste mal, ob es abhaengige ContentNodes im Nodes Array gibt
1431cdf0e10cSrcweir 		// (auch indirekte fuer Format-Ableitung! )
1432cdf0e10cSrcweir         SwAutoFmtGetDocNode aGetHt( &GetNodes() );
1433cdf0e10cSrcweir 		bFnd = !pNewFmt->GetInfo( aGetHt );
1434cdf0e10cSrcweir 	}
1435cdf0e10cSrcweir 	else
1436cdf0e10cSrcweir 		bFnd = sal_False;
1437cdf0e10cSrcweir 
1438cdf0e10cSrcweir 	return bFnd;
1439cdf0e10cSrcweir }
1440cdf0e10cSrcweir 
1441cdf0e10cSrcweir 
1442cdf0e10cSrcweir 
lcl_PutStdPageSizeIntoItemSet(SwDoc * pDoc,SfxItemSet & rSet)1443*ac591d86SOliver-Rainer Wittmann void lcl_PutStdPageSizeIntoItemSet( SwDoc* pDoc, SfxItemSet& rSet )
1444cdf0e10cSrcweir {
1445cdf0e10cSrcweir 	SwPageDesc* pStdPgDsc = pDoc->GetPageDescFromPool( RES_POOLPAGE_STANDARD );
1446cdf0e10cSrcweir 	SwFmtFrmSize aFrmSz( pStdPgDsc->GetMaster().GetFrmSize() );
1447cdf0e10cSrcweir 	if( pStdPgDsc->GetLandscape() )
1448cdf0e10cSrcweir 	{
1449cdf0e10cSrcweir 		SwTwips nTmp = aFrmSz.GetHeight();
1450cdf0e10cSrcweir 		aFrmSz.SetHeight( aFrmSz.GetWidth() );
1451cdf0e10cSrcweir 		aFrmSz.SetWidth( nTmp );
1452cdf0e10cSrcweir 	}
1453cdf0e10cSrcweir 	rSet.Put( aFrmSz );
1454cdf0e10cSrcweir }
1455cdf0e10cSrcweir 
GetPageDescFromPool(sal_uInt16 nId,bool bRegardLanguage)1456cdf0e10cSrcweir SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage )
1457cdf0e10cSrcweir {
1458*ac591d86SOliver-Rainer Wittmann     ASSERT( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END,
1459*ac591d86SOliver-Rainer Wittmann             "Falsche AutoFormat-Id" );
1460cdf0e10cSrcweir 
1461*ac591d86SOliver-Rainer Wittmann     for( sal_uInt16 n = 0; n < aPageDescs.Count(); ++n )
1462*ac591d86SOliver-Rainer Wittmann     {
1463*ac591d86SOliver-Rainer Wittmann         if ( nId == aPageDescs[ n ]->GetPoolFmtId() )
1464*ac591d86SOliver-Rainer Wittmann         {
1465*ac591d86SOliver-Rainer Wittmann             return aPageDescs[ n ];
1466*ac591d86SOliver-Rainer Wittmann         }
1467*ac591d86SOliver-Rainer Wittmann     }
1468cdf0e10cSrcweir 
1469*ac591d86SOliver-Rainer Wittmann     if( RES_POOLPAGE_BEGIN > nId ||  nId >= RES_POOLPAGE_END )
1470*ac591d86SOliver-Rainer Wittmann     {
1471*ac591d86SOliver-Rainer Wittmann         // unknown page pool ID
1472*ac591d86SOliver-Rainer Wittmann         ASSERT( !this, "<SwDoc::GetPageDescFromPool(..)> - unknown page pool ID" );
1473*ac591d86SOliver-Rainer Wittmann         nId = RES_POOLPAGE_BEGIN;
1474*ac591d86SOliver-Rainer Wittmann     }
1475cdf0e10cSrcweir 
1476*ac591d86SOliver-Rainer Wittmann     SwPageDesc* pNewPgDsc = 0;
1477cdf0e10cSrcweir     {
1478*ac591d86SOliver-Rainer Wittmann         const ResId aResId( sal_uInt32(RC_POOLPAGEDESC_BEGIN + nId - RES_POOLPAGE_BEGIN), *pSwResMgr );
1479*ac591d86SOliver-Rainer Wittmann         const String aNm( aResId );
1480*ac591d86SOliver-Rainer Wittmann         const bool bIsModified = IsModified();
1481cdf0e10cSrcweir 
1482*ac591d86SOliver-Rainer Wittmann         sal_uInt16 nPageDescIdx = 0;
1483cdf0e10cSrcweir         {
1484cdf0e10cSrcweir             ::sw::UndoGuard const undoGuard(GetIDocumentUndoRedo());
1485*ac591d86SOliver-Rainer Wittmann             nPageDescIdx = MakePageDesc( aNm, 0, bRegardLanguage );
1486cdf0e10cSrcweir         }
1487cdf0e10cSrcweir 
1488*ac591d86SOliver-Rainer Wittmann         pNewPgDsc = aPageDescs[ nPageDescIdx ];
1489*ac591d86SOliver-Rainer Wittmann         pNewPgDsc->SetPoolFmtId( nId );
1490*ac591d86SOliver-Rainer Wittmann         if ( !bIsModified )
1491*ac591d86SOliver-Rainer Wittmann         {
1492*ac591d86SOliver-Rainer Wittmann             ResetModified();
1493*ac591d86SOliver-Rainer Wittmann         }
1494*ac591d86SOliver-Rainer Wittmann     }
1495cdf0e10cSrcweir 
1496cdf0e10cSrcweir     SvxLRSpaceItem aLR( RES_LR_SPACE );
1497*ac591d86SOliver-Rainer Wittmann     {
1498*ac591d86SOliver-Rainer Wittmann         aLR.SetLeft( GetMetricVal( CM_1 ) * 2 );
1499*ac591d86SOliver-Rainer Wittmann         aLR.SetRight( aLR.GetLeft() );
1500*ac591d86SOliver-Rainer Wittmann     }
1501cdf0e10cSrcweir     SvxULSpaceItem aUL( RES_UL_SPACE );
1502*ac591d86SOliver-Rainer Wittmann     {
1503*ac591d86SOliver-Rainer Wittmann         aUL.SetUpper( (sal_uInt16)aLR.GetLeft() );
1504*ac591d86SOliver-Rainer Wittmann         aUL.SetLower( (sal_uInt16)aLR.GetLeft() );
1505*ac591d86SOliver-Rainer Wittmann     }
1506cdf0e10cSrcweir 
1507*ac591d86SOliver-Rainer Wittmann     SwAttrSet aSet( GetAttrPool(), aPgFrmFmtSetRange );
1508*ac591d86SOliver-Rainer Wittmann     bool bSetLeft = true;
1509cdf0e10cSrcweir 
1510*ac591d86SOliver-Rainer Wittmann     switch( nId )
1511*ac591d86SOliver-Rainer Wittmann     {
1512*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_STANDARD:     // "Default"
1513*ac591d86SOliver-Rainer Wittmann         {
1514*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1515*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1516*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1517*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1518*ac591d86SOliver-Rainer Wittmann         }
1519*ac591d86SOliver-Rainer Wittmann         break;
1520cdf0e10cSrcweir 
1521*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_FIRST:        // "First Page"
1522*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_REGISTER:     // "Index"
1523*ac591d86SOliver-Rainer Wittmann         {
1524*ac591d86SOliver-Rainer Wittmann             lcl_PutStdPageSizeIntoItemSet( this, aSet );
1525*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1526*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1527*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1528*ac591d86SOliver-Rainer Wittmann             {
1529*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1530*ac591d86SOliver-Rainer Wittmann                 if( RES_POOLPAGE_FIRST == nId )
1531*ac591d86SOliver-Rainer Wittmann                     pNewPgDsc->SetFollow( GetPageDescFromPool( RES_POOLPAGE_STANDARD ));
1532*ac591d86SOliver-Rainer Wittmann             }
1533*ac591d86SOliver-Rainer Wittmann         }
1534*ac591d86SOliver-Rainer Wittmann         break;
1535cdf0e10cSrcweir 
1536*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_LEFT:         // "Left Page"
1537*ac591d86SOliver-Rainer Wittmann         {
1538*ac591d86SOliver-Rainer Wittmann             lcl_PutStdPageSizeIntoItemSet( this, aSet );
1539*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1540*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1541*ac591d86SOliver-Rainer Wittmann             bSetLeft = false;
1542*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1543*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_LEFT );
1544*ac591d86SOliver-Rainer Wittmann         }
1545*ac591d86SOliver-Rainer Wittmann         break;
1546*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_RIGHT:        // "Right Page"
1547*ac591d86SOliver-Rainer Wittmann         {
1548*ac591d86SOliver-Rainer Wittmann             lcl_PutStdPageSizeIntoItemSet( this, aSet );
1549*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1550*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1551*ac591d86SOliver-Rainer Wittmann             bSetLeft = false;
1552*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1553*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_RIGHT );
1554*ac591d86SOliver-Rainer Wittmann         }
1555*ac591d86SOliver-Rainer Wittmann         break;
1556cdf0e10cSrcweir 
1557*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_JAKET:        // "Envelope"
1558*ac591d86SOliver-Rainer Wittmann         {
1559*ac591d86SOliver-Rainer Wittmann             Size aPSize( SvxPaperInfo::GetPaperSize( PAPER_ENV_C65 ) );
1560*ac591d86SOliver-Rainer Wittmann             LandscapeSwap( aPSize );
1561*ac591d86SOliver-Rainer Wittmann             aSet.Put( SwFmtFrmSize( ATT_FIX_SIZE, aPSize.Width(), aPSize.Height() ));
1562*ac591d86SOliver-Rainer Wittmann             aLR.SetLeft( 0 ); aLR.SetRight( 0 );
1563*ac591d86SOliver-Rainer Wittmann             aUL.SetUpper( 0 ); aUL.SetLower( 0 );
1564*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1565*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1566cdf0e10cSrcweir 
1567*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1568*ac591d86SOliver-Rainer Wittmann             {
1569*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1570*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetLandscape( sal_True );
1571*ac591d86SOliver-Rainer Wittmann             }
1572*ac591d86SOliver-Rainer Wittmann         }
1573*ac591d86SOliver-Rainer Wittmann         break;
1574cdf0e10cSrcweir 
1575*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_HTML:         // "HTML"
1576*ac591d86SOliver-Rainer Wittmann         {
1577*ac591d86SOliver-Rainer Wittmann             lcl_PutStdPageSizeIntoItemSet( this, aSet );
1578*ac591d86SOliver-Rainer Wittmann             aLR.SetRight( GetMetricVal( CM_1 ));
1579*ac591d86SOliver-Rainer Wittmann             aUL.SetUpper( (sal_uInt16)aLR.GetRight() );
1580*ac591d86SOliver-Rainer Wittmann             aUL.SetLower( (sal_uInt16)aLR.GetRight() );
1581*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1582*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1583cdf0e10cSrcweir 
1584*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1585*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1586*ac591d86SOliver-Rainer Wittmann         }
1587*ac591d86SOliver-Rainer Wittmann         break;
1588*ac591d86SOliver-Rainer Wittmann 
1589*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_FOOTNOTE:     // "Footnote"
1590*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_ENDNOTE:      // "Endnote"
1591*ac591d86SOliver-Rainer Wittmann         {
1592*ac591d86SOliver-Rainer Wittmann             lcl_PutStdPageSizeIntoItemSet( this, aSet );
1593*ac591d86SOliver-Rainer Wittmann             aSet.Put( aLR );
1594*ac591d86SOliver-Rainer Wittmann             aSet.Put( aUL );
1595*ac591d86SOliver-Rainer Wittmann             if( pNewPgDsc )
1596*ac591d86SOliver-Rainer Wittmann                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1597*ac591d86SOliver-Rainer Wittmann             SwPageFtnInfo aInf( pNewPgDsc->GetFtnInfo() );
1598*ac591d86SOliver-Rainer Wittmann             aInf.SetLineWidth( 0 );
1599*ac591d86SOliver-Rainer Wittmann             aInf.SetTopDist( 0 );
1600*ac591d86SOliver-Rainer Wittmann             aInf.SetBottomDist( 0 );
1601*ac591d86SOliver-Rainer Wittmann             pNewPgDsc->SetFtnInfo( aInf );
1602*ac591d86SOliver-Rainer Wittmann         }
1603cdf0e10cSrcweir         break;
1604*ac591d86SOliver-Rainer Wittmann 
1605*ac591d86SOliver-Rainer Wittmann     case RES_POOLPAGE_LANDSCAPE:    // "Landscape"
1606cdf0e10cSrcweir         {
1607cdf0e10cSrcweir             SwPageDesc* pStdPgDsc = this->GetPageDescFromPool( RES_POOLPAGE_STANDARD );
1608cdf0e10cSrcweir             SwFmtFrmSize aFrmSz( pStdPgDsc->GetMaster().GetFrmSize() );
1609*ac591d86SOliver-Rainer Wittmann             if ( !pStdPgDsc->GetLandscape() )
1610*ac591d86SOliver-Rainer Wittmann             {
1611*ac591d86SOliver-Rainer Wittmann                 const SwTwips nTmp = aFrmSz.GetHeight();
1612*ac591d86SOliver-Rainer Wittmann                 aFrmSz.SetHeight( aFrmSz.GetWidth() );
1613*ac591d86SOliver-Rainer Wittmann                 aFrmSz.SetWidth( nTmp );
1614*ac591d86SOliver-Rainer Wittmann             }
1615cdf0e10cSrcweir             aSet.Put( aFrmSz );
1616cdf0e10cSrcweir             aSet.Put( aLR );
1617cdf0e10cSrcweir             aSet.Put( aUL );
1618cdf0e10cSrcweir             if( pNewPgDsc )
1619cdf0e10cSrcweir             {
1620cdf0e10cSrcweir                 pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1621cdf0e10cSrcweir                 pNewPgDsc->SetLandscape( sal_True );
1622cdf0e10cSrcweir             }
1623*ac591d86SOliver-Rainer Wittmann         }
1624*ac591d86SOliver-Rainer Wittmann         break;
1625cdf0e10cSrcweir 
1626*ac591d86SOliver-Rainer Wittmann     }
1627cdf0e10cSrcweir 
1628*ac591d86SOliver-Rainer Wittmann     if( aSet.Count() )
1629*ac591d86SOliver-Rainer Wittmann     {
1630*ac591d86SOliver-Rainer Wittmann         if( bSetLeft )
1631*ac591d86SOliver-Rainer Wittmann             pNewPgDsc->GetLeft().SetFmtAttr( aSet );
1632*ac591d86SOliver-Rainer Wittmann         pNewPgDsc->GetMaster().SetFmtAttr( aSet );
1633*ac591d86SOliver-Rainer Wittmann     }
1634*ac591d86SOliver-Rainer Wittmann     return pNewPgDsc;
1635cdf0e10cSrcweir }
1636cdf0e10cSrcweir 
GetNumRuleFromPool(sal_uInt16 nId)1637cdf0e10cSrcweir SwNumRule* SwDoc::GetNumRuleFromPool( sal_uInt16 nId )
1638cdf0e10cSrcweir {
1639cdf0e10cSrcweir 	ASSERT( RES_POOLNUMRULE_BEGIN <= nId && nId < RES_POOLNUMRULE_END,
1640cdf0e10cSrcweir 			"Falsche AutoFormat-Id" );
1641cdf0e10cSrcweir 
1642cdf0e10cSrcweir     SwNumRule* pNewRule;
1643cdf0e10cSrcweir 	sal_uInt16 n;
1644cdf0e10cSrcweir 
1645cdf0e10cSrcweir 	for( n = 0; n < GetNumRuleTbl().Count(); ++n )
1646cdf0e10cSrcweir 		if( nId == ( pNewRule = GetNumRuleTbl()[ n ] )->GetPoolFmtId() )
1647cdf0e10cSrcweir 		{
1648cdf0e10cSrcweir             return pNewRule;
1649cdf0e10cSrcweir 		}
1650cdf0e10cSrcweir 
1651cdf0e10cSrcweir 	// Fehlerfall: unbekannte Poolvorlage
1652cdf0e10cSrcweir 	if( RES_POOLNUMRULE_BEGIN > nId ||  nId >= RES_POOLNUMRULE_END )
1653cdf0e10cSrcweir 	{
1654cdf0e10cSrcweir 		ASSERT( !this, "ungueltige Id" );
1655cdf0e10cSrcweir 		nId = RES_POOLNUMRULE_BEGIN;
1656cdf0e10cSrcweir 	}
1657cdf0e10cSrcweir 
1658cdf0e10cSrcweir 	ResId aResId( sal_uInt32(RC_POOLNUMRULE_BEGIN + nId - RES_POOLNUMRULE_BEGIN), *pSwResMgr );
1659cdf0e10cSrcweir 	String aNm( aResId );
1660cdf0e10cSrcweir 
1661cdf0e10cSrcweir 	SwCharFmt *pNumCFmt = 0, *pBullCFmt = 0;
1662cdf0e10cSrcweir 
1663cdf0e10cSrcweir     // --> OD 2008-02-11 #newlistlevelattrs#
1664cdf0e10cSrcweir     const SvxNumberFormat::SvxNumPositionAndSpaceMode eNumberFormatPositionAndSpaceMode
1665cdf0e10cSrcweir                                   // --> OD 2008-06-06 #i89178#
1666cdf0e10cSrcweir                                   = numfunc::GetDefaultPositionAndSpaceMode();
1667cdf0e10cSrcweir                                   // <--
1668cdf0e10cSrcweir     // <--
1669cdf0e10cSrcweir     {
1670cdf0e10cSrcweir 		sal_Bool bIsModified = IsModified();
1671cdf0e10cSrcweir         // --> OD 2008-02-11 #newlistlevelattrs#
1672cdf0e10cSrcweir         n = MakeNumRule( aNm, 0, sal_False, eNumberFormatPositionAndSpaceMode );
1673cdf0e10cSrcweir         // <--
1674cdf0e10cSrcweir 		pNewRule = GetNumRuleTbl()[ n ];
1675cdf0e10cSrcweir 		pNewRule->SetPoolFmtId( nId );
1676cdf0e10cSrcweir 		pNewRule->SetAutoRule( sal_False );
1677cdf0e10cSrcweir 
1678cdf0e10cSrcweir 		if( RES_POOLNUMRULE_NUM1 <= nId && nId <= RES_POOLNUMRULE_NUM5 )
1679cdf0e10cSrcweir 			pNumCFmt = GetCharFmtFromPool( RES_POOLCHR_NUM_LEVEL );
1680cdf0e10cSrcweir 
1681cdf0e10cSrcweir 		if( ( RES_POOLNUMRULE_BUL1 <= nId && nId <= RES_POOLNUMRULE_BUL5 ) ||
1682cdf0e10cSrcweir 			RES_POOLNUMRULE_NUM5 == nId )
1683cdf0e10cSrcweir 			pBullCFmt = GetCharFmtFromPool( RES_POOLCHR_NUM_LEVEL );
1684cdf0e10cSrcweir 
1685cdf0e10cSrcweir 		if( !bIsModified )
1686cdf0e10cSrcweir 			ResetModified();
1687cdf0e10cSrcweir 	}
1688cdf0e10cSrcweir 
1689cdf0e10cSrcweir 	switch( nId )
1690cdf0e10cSrcweir 	{
1691cdf0e10cSrcweir 	case RES_POOLNUMRULE_NUM1:
1692cdf0e10cSrcweir 		{
1693cdf0e10cSrcweir 			SwNumFmt aFmt;
1694cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1695cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1696cdf0e10cSrcweir             // <--
1697cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_ARABIC);
1698cdf0e10cSrcweir 			aFmt.SetCharFmt( pNumCFmt );
1699cdf0e10cSrcweir 			aFmt.SetStart( 1 );
1700cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
1701cdf0e10cSrcweir 			aFmt.SetSuffix( aDotStr );
1702cdf0e10cSrcweir 
1703cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1704cdf0e10cSrcweir 				{
1705cdf0e10cSrcweir //				cm: 0,5  1,0  1,5  2,0   2,5   3,0   3,5   4,0   4,5   5,0
1706cdf0e10cSrcweir 					283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
1707cdf0e10cSrcweir 				};
1708cdf0e10cSrcweir #ifdef USE_MEASUREMENT
1709cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
1710cdf0e10cSrcweir 				{
1711cdf0e10cSrcweir 					283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
1712cdf0e10cSrcweir 				};
1713cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
1714cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
1715cdf0e10cSrcweir 									? aAbsSpace
1716cdf0e10cSrcweir 									: aAbsSpaceInch;
1717cdf0e10cSrcweir #else
1718cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
1719cdf0e10cSrcweir #endif
1720cdf0e10cSrcweir 
1721cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1722cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1723cdf0e10cSrcweir             {
1724cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - (*pArr) );
1725cdf0e10cSrcweir             }
1726cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1727cdf0e10cSrcweir             {
1728cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1729cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - (*pArr) );
1730cdf0e10cSrcweir             }
1731cdf0e10cSrcweir             // <--
1732cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
1733cdf0e10cSrcweir 			{
1734cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
1735cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1736cdf0e10cSrcweir                 {
1737cdf0e10cSrcweir                     aFmt.SetAbsLSpace( *pArr );
1738cdf0e10cSrcweir                 }
1739cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1740cdf0e10cSrcweir                 {
1741cdf0e10cSrcweir                     aFmt.SetListtabPos( *pArr );
1742cdf0e10cSrcweir                     aFmt.SetIndentAt( *pArr );
1743cdf0e10cSrcweir                 }
1744cdf0e10cSrcweir                 // <--
1745cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
1746cdf0e10cSrcweir 			}
1747cdf0e10cSrcweir 		}
1748cdf0e10cSrcweir 		break;
1749cdf0e10cSrcweir 
1750cdf0e10cSrcweir 	case RES_POOLNUMRULE_NUM2:
1751cdf0e10cSrcweir 		{
1752cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1753cdf0e10cSrcweir 				{
1754cdf0e10cSrcweir 					283,  283,  567,  709,		// 0.50, 0.50, 1.00, 1.25
1755cdf0e10cSrcweir 					850, 1021, 1304, 1474,		// 1.50, 1.80, 2.30, 2.60
1756cdf0e10cSrcweir 				   1588, 1758					// 2.80, 3.10
1757cdf0e10cSrcweir 				};
1758cdf0e10cSrcweir 
1759cdf0e10cSrcweir #ifdef USE_MEASUREMENT
1760cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
1761cdf0e10cSrcweir 				{
1762cdf0e10cSrcweir 					385,  385,  770,  963,
1763cdf0e10cSrcweir 				   1155, 1386, 1771, 2002,
1764cdf0e10cSrcweir 				   2156, 2387
1765cdf0e10cSrcweir 				};
1766cdf0e10cSrcweir 
1767cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
1768cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
1769cdf0e10cSrcweir 									? aAbsSpace
1770cdf0e10cSrcweir 									: aAbsSpaceInch;
1771cdf0e10cSrcweir #else
1772cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
1773cdf0e10cSrcweir #endif
1774cdf0e10cSrcweir 			SwNumFmt aFmt;
1775cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1776cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1777cdf0e10cSrcweir             // <--
1778cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_ARABIC);
1779cdf0e10cSrcweir 			aFmt.SetCharFmt( pNumCFmt );
1780cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
1781cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1782cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1783cdf0e10cSrcweir             {
1784cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1785cdf0e10cSrcweir             }
1786cdf0e10cSrcweir             // <--
1787cdf0e10cSrcweir 			sal_uInt16 nSpace = 0;
1788cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n )
1789cdf0e10cSrcweir 			{
1790cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
1791cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1792cdf0e10cSrcweir                 {
1793cdf0e10cSrcweir                     aFmt.SetAbsLSpace( nSpace = nSpace + pArr[ n ] );
1794cdf0e10cSrcweir                     aFmt.SetFirstLineOffset( - pArr[ n ] );
1795cdf0e10cSrcweir                 }
1796cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1797cdf0e10cSrcweir                 {
1798cdf0e10cSrcweir                     aFmt.SetListtabPos( nSpace = nSpace + pArr[ n ] );
1799cdf0e10cSrcweir                     aFmt.SetIndentAt( nSpace );
1800cdf0e10cSrcweir                     aFmt.SetFirstLineIndent( - pArr[ n ] );
1801cdf0e10cSrcweir                 }
1802cdf0e10cSrcweir                 // <--
1803cdf0e10cSrcweir 				aFmt.SetStart( n+1 );
1804cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
1805cdf0e10cSrcweir 			}
1806cdf0e10cSrcweir 		}
1807cdf0e10cSrcweir 		break;
1808cdf0e10cSrcweir 	case RES_POOLNUMRULE_NUM3:
1809cdf0e10cSrcweir 		{
1810cdf0e10cSrcweir 			SwNumFmt aFmt;
1811cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1812cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1813cdf0e10cSrcweir             // <--
1814cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_ARABIC);
1815cdf0e10cSrcweir 			aFmt.SetCharFmt( pNumCFmt );
1816cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
1817cdf0e10cSrcweir 
1818cdf0e10cSrcweir             sal_uInt16 nOffs = GetMetricVal( CM_1 ) * 3;
1819cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1820cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1821cdf0e10cSrcweir             {
1822cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - nOffs );
1823cdf0e10cSrcweir             }
1824cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1825cdf0e10cSrcweir             {
1826cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1827cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - nOffs );
1828cdf0e10cSrcweir             }
1829cdf0e10cSrcweir             // <--
1830cdf0e10cSrcweir 
1831cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n )
1832cdf0e10cSrcweir 			{
1833cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
1834cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1835cdf0e10cSrcweir                 {
1836cdf0e10cSrcweir                     aFmt.SetAbsLSpace( (n+1) * nOffs );
1837cdf0e10cSrcweir                 }
1838cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1839cdf0e10cSrcweir                 {
1840cdf0e10cSrcweir                     aFmt.SetListtabPos( (n+1) * nOffs );
1841cdf0e10cSrcweir                     aFmt.SetIndentAt( (n+1) * nOffs );
1842cdf0e10cSrcweir                 }
1843cdf0e10cSrcweir                 // <--
1844cdf0e10cSrcweir                 aFmt.SetStart( n+1 );
1845cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
1846cdf0e10cSrcweir 			}
1847cdf0e10cSrcweir 		}
1848cdf0e10cSrcweir 		break;
1849cdf0e10cSrcweir 	case RES_POOLNUMRULE_NUM4:
1850cdf0e10cSrcweir 		{
1851cdf0e10cSrcweir 			SwNumFmt aFmt;
1852cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1853cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1854cdf0e10cSrcweir             // <--
1855cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_ROMAN_UPPER);
1856cdf0e10cSrcweir 			aFmt.SetCharFmt( pNumCFmt );
1857cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
1858cdf0e10cSrcweir 			aFmt.SetSuffix( aDotStr );
1859cdf0e10cSrcweir 
1860cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1861cdf0e10cSrcweir 				{
1862cdf0e10cSrcweir //				cm: 0,5  1,0  1,5  2,0   2,5   3,0   3,5   4,0   4,5   5,0
1863cdf0e10cSrcweir 					283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
1864cdf0e10cSrcweir 				};
1865cdf0e10cSrcweir #ifdef USE_MEASUREMENT
1866cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
1867cdf0e10cSrcweir 				{
1868cdf0e10cSrcweir 					283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
1869cdf0e10cSrcweir 				};
1870cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
1871cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
1872cdf0e10cSrcweir 									? aAbsSpace
1873cdf0e10cSrcweir 									: aAbsSpaceInch;
1874cdf0e10cSrcweir #else
1875cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
1876cdf0e10cSrcweir #endif
1877cdf0e10cSrcweir 
1878cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1879cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1880cdf0e10cSrcweir             {
1881cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - (*pArr) );
1882cdf0e10cSrcweir             }
1883cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1884cdf0e10cSrcweir             {
1885cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::SPACE );
1886cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - (*pArr) );
1887cdf0e10cSrcweir             }
1888cdf0e10cSrcweir             // <--
1889cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
1890cdf0e10cSrcweir 			{
1891cdf0e10cSrcweir 				aFmt.SetStart( n + 1 );
1892cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
1893cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1894cdf0e10cSrcweir                 {
1895cdf0e10cSrcweir                     aFmt.SetAbsLSpace( *pArr );
1896cdf0e10cSrcweir                 }
1897cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1898cdf0e10cSrcweir                 {
1899cdf0e10cSrcweir                     aFmt.SetListtabPos( *pArr );
1900cdf0e10cSrcweir                     aFmt.SetIndentAt( *pArr );
1901cdf0e10cSrcweir                 }
1902cdf0e10cSrcweir                 // <--
1903cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
1904cdf0e10cSrcweir 			}
1905cdf0e10cSrcweir 		}
1906cdf0e10cSrcweir 		break;
1907cdf0e10cSrcweir 	case RES_POOLNUMRULE_NUM5:
1908cdf0e10cSrcweir 		{
1909cdf0e10cSrcweir 			// [ First, LSpace ]
1910cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace0to2[] =
1911cdf0e10cSrcweir 				{
1912cdf0e10cSrcweir 					227,  227,  	// 0.40, 0.40,
1913cdf0e10cSrcweir 					369,  624,		// 0.65, 1.10,
1914cdf0e10cSrcweir 					255,  879 		// 0.45, 1.55
1915cdf0e10cSrcweir 				};
1916cdf0e10cSrcweir 
1917cdf0e10cSrcweir #ifdef USE_MEASUREMENT
1918cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch0to2[] =
1919cdf0e10cSrcweir 				{
1920cdf0e10cSrcweir 					308,  308,
1921cdf0e10cSrcweir 					501,  847,
1922cdf0e10cSrcweir 					347, 1194
1923cdf0e10cSrcweir 				};
1924cdf0e10cSrcweir 			const sal_uInt16* pArr0to2 = MEASURE_METRIC ==
1925cdf0e10cSrcweir 							SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
1926cdf0e10cSrcweir 								? aAbsSpace0to2
1927cdf0e10cSrcweir 								: aAbsSpaceInch0to2;
1928cdf0e10cSrcweir #else
1929cdf0e10cSrcweir 			const sal_uInt16* pArr0to2 = aAbsSpace0to2;
1930cdf0e10cSrcweir #endif
1931cdf0e10cSrcweir 			SwNumFmt aFmt;
1932cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1933cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1934cdf0e10cSrcweir             // <--
1935cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_ARABIC);
1936cdf0e10cSrcweir 			aFmt.SetStart( 1 );
1937cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
1938cdf0e10cSrcweir 			aFmt.SetSuffix( aDotStr );
1939cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1940cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1941cdf0e10cSrcweir             {
1942cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1943cdf0e10cSrcweir             }
1944cdf0e10cSrcweir             // <--
1945cdf0e10cSrcweir 
1946cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1947cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1948cdf0e10cSrcweir             {
1949cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( -pArr0to2[0] );    // == 0.40 cm
1950cdf0e10cSrcweir                 aFmt.SetAbsLSpace( pArr0to2[1] );           // == 0.40 cm
1951cdf0e10cSrcweir             }
1952cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1953cdf0e10cSrcweir             {
1954cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( -pArr0to2[0] );
1955cdf0e10cSrcweir                 aFmt.SetListtabPos( pArr0to2[1] );
1956cdf0e10cSrcweir                 aFmt.SetIndentAt( pArr0to2[1] );
1957cdf0e10cSrcweir             }
1958cdf0e10cSrcweir             // <--
1959cdf0e10cSrcweir 
1960cdf0e10cSrcweir 			aFmt.SetCharFmt( pNumCFmt );
1961cdf0e10cSrcweir 			pNewRule->Set( 0, aFmt );
1962cdf0e10cSrcweir 
1963cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 2 );
1964cdf0e10cSrcweir 			aFmt.SetStart( 2 );
1965cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1966cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1967cdf0e10cSrcweir             {
1968cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( -pArr0to2[2] );    // == 0.65 cm
1969cdf0e10cSrcweir                 aFmt.SetAbsLSpace( pArr0to2[3] );           // == 1.10 cm
1970cdf0e10cSrcweir             }
1971cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1972cdf0e10cSrcweir             {
1973cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( -pArr0to2[2] );
1974cdf0e10cSrcweir                 aFmt.SetListtabPos( pArr0to2[3] );
1975cdf0e10cSrcweir                 aFmt.SetIndentAt( pArr0to2[3] );
1976cdf0e10cSrcweir             }
1977cdf0e10cSrcweir             // <--
1978cdf0e10cSrcweir 			pNewRule->Set( 1, aFmt );
1979cdf0e10cSrcweir 
1980cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHARS_LOWER_LETTER);
1981cdf0e10cSrcweir 			aFmt.SetSuffix( ')');
1982cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
1983cdf0e10cSrcweir 			aFmt.SetStart( 3 );
1984cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
1985cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1986cdf0e10cSrcweir             {
1987cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - pArr0to2[4] );   // == 0.45cm
1988cdf0e10cSrcweir                 aFmt.SetAbsLSpace( pArr0to2[5] );           // == 1.55 cm
1989cdf0e10cSrcweir             }
1990cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1991cdf0e10cSrcweir             {
1992cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( -pArr0to2[4] );
1993cdf0e10cSrcweir                 aFmt.SetListtabPos( pArr0to2[5] );
1994cdf0e10cSrcweir                 aFmt.SetIndentAt( pArr0to2[5] );
1995cdf0e10cSrcweir             }
1996cdf0e10cSrcweir             // <--
1997cdf0e10cSrcweir 			pNewRule->Set( 2, aFmt );
1998cdf0e10cSrcweir 
1999cdf0e10cSrcweir 
2000cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2001cdf0e10cSrcweir 			aFmt.SetCharFmt( pBullCFmt );
2002cdf0e10cSrcweir             // --> OD 2006-06-29 #6440955#
2003cdf0e10cSrcweir             aFmt.SetBulletFont(  &numfunc::GetDefBulletFont() );
2004cdf0e10cSrcweir             // <--
2005cdf0e10cSrcweir 			aFmt.SetBulletChar( cBulletChar );
2006cdf0e10cSrcweir 			sal_uInt16 nOffs = GetMetricVal( CM_01 ) * 4,
2007cdf0e10cSrcweir 				   nOffs2 = GetMetricVal( CM_1 ) * 2;
2008cdf0e10cSrcweir 
2009cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2010cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2011cdf0e10cSrcweir             {
2012cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - nOffs );
2013cdf0e10cSrcweir             }
2014cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2015cdf0e10cSrcweir             {
2016cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - nOffs );
2017cdf0e10cSrcweir             }
2018cdf0e10cSrcweir             // <--
2019cdf0e10cSrcweir 			aFmt.SetSuffix( aEmptyStr );
2020cdf0e10cSrcweir 			for( n = 3; n < MAXLEVEL; ++n )
2021cdf0e10cSrcweir 			{
2022cdf0e10cSrcweir 				aFmt.SetStart( n+1 );
2023cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
2024cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2025cdf0e10cSrcweir                 {
2026cdf0e10cSrcweir                     aFmt.SetAbsLSpace( nOffs2 + ((n-3) * nOffs) );
2027cdf0e10cSrcweir                 }
2028cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2029cdf0e10cSrcweir                 {
2030cdf0e10cSrcweir                     aFmt.SetListtabPos( nOffs2 + ((n-3) * nOffs) );
2031cdf0e10cSrcweir                     aFmt.SetIndentAt( nOffs2 + ((n-3) * nOffs) );
2032cdf0e10cSrcweir                 }
2033cdf0e10cSrcweir                 // <--
2034cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
2035cdf0e10cSrcweir 			}
2036cdf0e10cSrcweir 		}
2037cdf0e10cSrcweir 		break;
2038cdf0e10cSrcweir 
2039cdf0e10cSrcweir 	case RES_POOLNUMRULE_BUL1:
2040cdf0e10cSrcweir 		{
2041cdf0e10cSrcweir 			SwNumFmt aFmt;
2042cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2043cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
2044cdf0e10cSrcweir             // <--
2045cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2046cdf0e10cSrcweir 			aFmt.SetCharFmt( pBullCFmt );
2047cdf0e10cSrcweir 			aFmt.SetStart( 1 );
2048cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
2049cdf0e10cSrcweir             // --> OD 2006-06-29 #6440955#
2050cdf0e10cSrcweir             aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
2051cdf0e10cSrcweir             // <--
2052cdf0e10cSrcweir             aFmt.SetBulletChar( cBulletChar );
2053cdf0e10cSrcweir 
2054cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
2055cdf0e10cSrcweir 				{
2056cdf0e10cSrcweir //				cm: 0,4  0,8  1,2  1,6  2,0   2,4   2,8   3,2   3,6   4,0
2057cdf0e10cSrcweir 					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2058cdf0e10cSrcweir 				};
2059cdf0e10cSrcweir #ifdef USE_MEASUREMENT
2060cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
2061cdf0e10cSrcweir 				{
2062cdf0e10cSrcweir 					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2063cdf0e10cSrcweir 				};
2064cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
2065cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
2066cdf0e10cSrcweir 									? aAbsSpace
2067cdf0e10cSrcweir 									: aAbsSpaceInch;
2068cdf0e10cSrcweir #else
2069cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
2070cdf0e10cSrcweir #endif
2071cdf0e10cSrcweir 
2072cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2073cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2074cdf0e10cSrcweir             {
2075cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - (*pArr) );
2076cdf0e10cSrcweir             }
2077cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2078cdf0e10cSrcweir             {
2079cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
2080cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - (*pArr) );
2081cdf0e10cSrcweir             }
2082cdf0e10cSrcweir             // <--
2083cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
2084cdf0e10cSrcweir 			{
2085cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
2086cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2087cdf0e10cSrcweir                 {
2088cdf0e10cSrcweir                     aFmt.SetAbsLSpace( *pArr );
2089cdf0e10cSrcweir                 }
2090cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2091cdf0e10cSrcweir                 {
2092cdf0e10cSrcweir                     aFmt.SetListtabPos( *pArr );
2093cdf0e10cSrcweir                     aFmt.SetIndentAt( *pArr );
2094cdf0e10cSrcweir                 }
2095cdf0e10cSrcweir                 // <--
2096cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
2097cdf0e10cSrcweir 			}
2098cdf0e10cSrcweir 		}
2099cdf0e10cSrcweir 		break;
2100cdf0e10cSrcweir 	case RES_POOLNUMRULE_BUL2:
2101cdf0e10cSrcweir 		{
2102cdf0e10cSrcweir 			SwNumFmt aFmt;
2103cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2104cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
2105cdf0e10cSrcweir             // <--
2106cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2107cdf0e10cSrcweir 			aFmt.SetCharFmt( pBullCFmt );
2108cdf0e10cSrcweir 			aFmt.SetStart( 1 );
2109cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
2110cdf0e10cSrcweir             // --> OD 2006-06-29 #6440955#
2111cdf0e10cSrcweir             aFmt.SetBulletFont(  &numfunc::GetDefBulletFont() );
2112cdf0e10cSrcweir             // <--
2113cdf0e10cSrcweir             aFmt.SetBulletChar( 0x2013 );
2114cdf0e10cSrcweir 
2115cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
2116cdf0e10cSrcweir 				{
2117cdf0e10cSrcweir //				cm: 0,3  0,6  0,9  1,2  1,5  1,8   2,1   2,4   2,7   3,0
2118cdf0e10cSrcweir 					170, 340, 510, 680, 850, 1020, 1191, 1361, 1531, 1701
2119cdf0e10cSrcweir 				};
2120cdf0e10cSrcweir #ifdef USE_MEASUREMENT
2121cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
2122cdf0e10cSrcweir 				{
2123cdf0e10cSrcweir 					170, 340, 510, 680, 850, 1020, 1191, 1361, 1531, 1701
2124cdf0e10cSrcweir 				};
2125cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
2126cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
2127cdf0e10cSrcweir 									? aAbsSpace
2128cdf0e10cSrcweir 									: aAbsSpaceInch;
2129cdf0e10cSrcweir #else
2130cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
2131cdf0e10cSrcweir #endif
2132cdf0e10cSrcweir 
2133cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2134cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2135cdf0e10cSrcweir             {
2136cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - (*pArr) );
2137cdf0e10cSrcweir             }
2138cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2139cdf0e10cSrcweir             {
2140cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
2141cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - (*pArr) );
2142cdf0e10cSrcweir             }
2143cdf0e10cSrcweir             // <--
2144cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
2145cdf0e10cSrcweir 			{
2146cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
2147cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2148cdf0e10cSrcweir                 {
2149cdf0e10cSrcweir                     aFmt.SetAbsLSpace( *pArr );
2150cdf0e10cSrcweir                 }
2151cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2152cdf0e10cSrcweir                 {
2153cdf0e10cSrcweir                     aFmt.SetListtabPos( *pArr );
2154cdf0e10cSrcweir                     aFmt.SetIndentAt( *pArr );
2155cdf0e10cSrcweir                 }
2156cdf0e10cSrcweir                 // <--
2157cdf0e10cSrcweir                 pNewRule->Set( n, aFmt );
2158cdf0e10cSrcweir 			}
2159cdf0e10cSrcweir 		}
2160cdf0e10cSrcweir 		break;
2161cdf0e10cSrcweir 	case RES_POOLNUMRULE_BUL3:
2162cdf0e10cSrcweir 		{
2163cdf0e10cSrcweir 			SwNumFmt aFmt;
2164cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2165cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
2166cdf0e10cSrcweir             // <--
2167cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2168cdf0e10cSrcweir 			aFmt.SetCharFmt( pBullCFmt );
2169cdf0e10cSrcweir 			aFmt.SetStart( 1 );
2170cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
2171cdf0e10cSrcweir             // --> OD 2006-06-29 #6440955#
2172cdf0e10cSrcweir             aFmt.SetBulletFont(  &numfunc::GetDefBulletFont() );
2173cdf0e10cSrcweir             // <--
2174cdf0e10cSrcweir 
2175cdf0e10cSrcweir             sal_uInt16 nOffs = GetMetricVal( CM_01 ) * 4;
2176cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2177cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2178cdf0e10cSrcweir             {
2179cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - nOffs );
2180cdf0e10cSrcweir             }
2181cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2182cdf0e10cSrcweir             {
2183cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
2184cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - nOffs );
2185cdf0e10cSrcweir             }
2186cdf0e10cSrcweir             // <--
2187cdf0e10cSrcweir 
2188cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n )
2189cdf0e10cSrcweir 			{
2190cdf0e10cSrcweir 				aFmt.SetBulletChar( ( n & 1 ? 0x25a1 : 0x2611 ) );
2191cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
2192cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2193cdf0e10cSrcweir                 {
2194cdf0e10cSrcweir                     aFmt.SetAbsLSpace( ((n & 1) +1) * nOffs );
2195cdf0e10cSrcweir                 }
2196cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2197cdf0e10cSrcweir                 {
2198cdf0e10cSrcweir                     aFmt.SetListtabPos( ((n & 1) +1) * nOffs );
2199cdf0e10cSrcweir                     aFmt.SetIndentAt( ((n & 1) +1) * nOffs );
2200cdf0e10cSrcweir                 }
2201cdf0e10cSrcweir                 // <--
2202cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
2203cdf0e10cSrcweir 			}
2204cdf0e10cSrcweir 		}
2205cdf0e10cSrcweir 		break;
2206cdf0e10cSrcweir 	case RES_POOLNUMRULE_BUL4:
2207cdf0e10cSrcweir 		{
2208cdf0e10cSrcweir 			SwNumFmt aFmt;
2209cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2210cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
2211cdf0e10cSrcweir             // <--
2212cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2213cdf0e10cSrcweir 			aFmt.SetCharFmt( pBullCFmt );
2214cdf0e10cSrcweir 			aFmt.SetStart( 1 );
2215cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
2216cdf0e10cSrcweir             // --> OD 2006-06-29 #6440955#
2217cdf0e10cSrcweir             aFmt.SetBulletFont(  &numfunc::GetDefBulletFont() );
2218cdf0e10cSrcweir             // <--
2219cdf0e10cSrcweir 
2220cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
2221cdf0e10cSrcweir 				{
2222cdf0e10cSrcweir //				cm: 0,4  0,8  1,2  1,6  2,0   2,4   2,8   3,2   3,6   4,0
2223cdf0e10cSrcweir 					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2224cdf0e10cSrcweir 				};
2225cdf0e10cSrcweir #ifdef USE_MEASUREMENT
2226cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
2227cdf0e10cSrcweir 				{
2228cdf0e10cSrcweir 					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2229cdf0e10cSrcweir 				};
2230cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
2231cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
2232cdf0e10cSrcweir 									? aAbsSpace
2233cdf0e10cSrcweir 									: aAbsSpaceInch;
2234cdf0e10cSrcweir #else
2235cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
2236cdf0e10cSrcweir #endif
2237cdf0e10cSrcweir 
2238cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2239cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2240cdf0e10cSrcweir             {
2241cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - (*pArr) );
2242cdf0e10cSrcweir             }
2243cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2244cdf0e10cSrcweir             {
2245cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::SPACE );
2246cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - (*pArr) );
2247cdf0e10cSrcweir             }
2248cdf0e10cSrcweir             // <--
2249cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
2250cdf0e10cSrcweir 			{
2251cdf0e10cSrcweir 				switch( n )
2252cdf0e10cSrcweir 				{
2253cdf0e10cSrcweir 				case 0: 	aFmt.SetBulletChar( 0x27a2 );	break;
2254cdf0e10cSrcweir 				case 1:		aFmt.SetBulletChar( 0xE006 );	break;
2255cdf0e10cSrcweir 				default:	aFmt.SetBulletChar( 0xE004 );	break;
2256cdf0e10cSrcweir 				}
2257cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
2258cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2259cdf0e10cSrcweir                 {
2260cdf0e10cSrcweir                     aFmt.SetAbsLSpace( *pArr );
2261cdf0e10cSrcweir                 }
2262cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2263cdf0e10cSrcweir                 {
2264cdf0e10cSrcweir                     aFmt.SetListtabPos( *pArr );
2265cdf0e10cSrcweir                     aFmt.SetIndentAt( *pArr );
2266cdf0e10cSrcweir                 }
2267cdf0e10cSrcweir                 // <--
2268cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
2269cdf0e10cSrcweir 			}
2270cdf0e10cSrcweir 		}
2271cdf0e10cSrcweir 		break;
2272cdf0e10cSrcweir 	case RES_POOLNUMRULE_BUL5:
2273cdf0e10cSrcweir 		{
2274cdf0e10cSrcweir 			SwNumFmt aFmt;
2275cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2276cdf0e10cSrcweir             aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
2277cdf0e10cSrcweir             // <--
2278cdf0e10cSrcweir 			aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2279cdf0e10cSrcweir 			aFmt.SetCharFmt( pBullCFmt );
2280cdf0e10cSrcweir 			aFmt.SetStart( 1 );
2281cdf0e10cSrcweir 			aFmt.SetIncludeUpperLevels( 1 );
2282cdf0e10cSrcweir 			aFmt.SetBulletChar( 0x2717 );
2283cdf0e10cSrcweir             // --> OD 2006-06-29 #6440955#
2284cdf0e10cSrcweir             aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
2285cdf0e10cSrcweir             // <--
2286cdf0e10cSrcweir 
2287cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
2288cdf0e10cSrcweir 				{
2289cdf0e10cSrcweir //				cm: 0,4  0,8  1,2  1,6  2,0   2,4   2,8   3,2   3,6   4,0
2290cdf0e10cSrcweir 					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2291cdf0e10cSrcweir 				};
2292cdf0e10cSrcweir #ifdef USE_MEASUREMENT
2293cdf0e10cSrcweir 			static const sal_uInt16 aAbsSpaceInch[ MAXLEVEL ] =
2294cdf0e10cSrcweir 				{
2295cdf0e10cSrcweir 					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2296cdf0e10cSrcweir 				};
2297cdf0e10cSrcweir 			const sal_uInt16* pArr = MEASURE_METRIC ==
2298cdf0e10cSrcweir 								SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()
2299cdf0e10cSrcweir 									? aAbsSpace
2300cdf0e10cSrcweir 									: aAbsSpaceInch;
2301cdf0e10cSrcweir #else
2302cdf0e10cSrcweir 			const sal_uInt16* pArr = aAbsSpace;
2303cdf0e10cSrcweir #endif
2304cdf0e10cSrcweir 
2305cdf0e10cSrcweir             // --> OD 2008-02-11 #newlistlevelattrs#
2306cdf0e10cSrcweir             if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2307cdf0e10cSrcweir             {
2308cdf0e10cSrcweir                 aFmt.SetFirstLineOffset( - (*pArr) );
2309cdf0e10cSrcweir             }
2310cdf0e10cSrcweir             else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2311cdf0e10cSrcweir             {
2312cdf0e10cSrcweir                 aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
2313cdf0e10cSrcweir                 aFmt.SetFirstLineIndent( - (*pArr) );
2314cdf0e10cSrcweir             }
2315cdf0e10cSrcweir             // <--
2316cdf0e10cSrcweir 			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
2317cdf0e10cSrcweir 			{
2318cdf0e10cSrcweir                 // --> OD 2008-02-11 #newlistlevelattrs#
2319cdf0e10cSrcweir                 if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2320cdf0e10cSrcweir                 {
2321cdf0e10cSrcweir                     aFmt.SetAbsLSpace( *pArr );
2322cdf0e10cSrcweir                 }
2323cdf0e10cSrcweir                 else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2324cdf0e10cSrcweir                 {
2325cdf0e10cSrcweir                     aFmt.SetListtabPos( *pArr );
2326cdf0e10cSrcweir                     aFmt.SetIndentAt( *pArr );
2327cdf0e10cSrcweir                 }
2328cdf0e10cSrcweir                 // <--
2329cdf0e10cSrcweir 				pNewRule->Set( n, aFmt );
2330cdf0e10cSrcweir 			}
2331cdf0e10cSrcweir 		}
2332cdf0e10cSrcweir 		break;
2333cdf0e10cSrcweir 	}
2334cdf0e10cSrcweir 
2335cdf0e10cSrcweir     return pNewRule;
2336cdf0e10cSrcweir }
2337cdf0e10cSrcweir 
2338cdf0e10cSrcweir 
2339cdf0e10cSrcweir 
2340cdf0e10cSrcweir 	// pruefe, ob diese "Auto-Collection" in Dokument schon/noch
2341cdf0e10cSrcweir 	// benutzt wird
IsPoolPageDescUsed(sal_uInt16 nId) const2342cdf0e10cSrcweir bool SwDoc::IsPoolPageDescUsed( sal_uInt16 nId ) const
2343cdf0e10cSrcweir {
2344cdf0e10cSrcweir 	ASSERT( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END,
2345cdf0e10cSrcweir 			"Falsche AutoFormat-Id" );
2346cdf0e10cSrcweir 	SwPageDesc *pNewPgDsc = 0;
2347cdf0e10cSrcweir 	sal_Bool bFnd = sal_False;
2348cdf0e10cSrcweir 	for( sal_uInt16 n = 0; !bFnd && n < aPageDescs.Count(); ++n )
2349cdf0e10cSrcweir     {
2350cdf0e10cSrcweir 		pNewPgDsc = aPageDescs[ n ];
2351cdf0e10cSrcweir 		if( nId == pNewPgDsc->GetPoolFmtId() )
2352cdf0e10cSrcweir 			bFnd = sal_True;
2353cdf0e10cSrcweir     }
2354cdf0e10cSrcweir 
2355cdf0e10cSrcweir 	// nicht gefunden oder keine Abhaengigen ?
2356cdf0e10cSrcweir 	if( !bFnd || !pNewPgDsc->GetDepends() )		// ??????
2357cdf0e10cSrcweir 		return sal_False;
2358cdf0e10cSrcweir 
2359cdf0e10cSrcweir 	// dann teste mal, ob es abhaengige ContentNodes im Nodes Array gibt
2360cdf0e10cSrcweir 	// (auch indirekte fuer Format-Ableitung! )
2361cdf0e10cSrcweir     SwAutoFmtGetDocNode aGetHt( &GetNodes() );
2362cdf0e10cSrcweir 	return !pNewPgDsc->GetInfo( aGetHt );
2363cdf0e10cSrcweir }
2364cdf0e10cSrcweir 
2365cdf0e10cSrcweir // erfrage ob die Absatz-/Zeichen-/Rahmen-/Seiten - Vorlage benutzt wird
IsUsed(const SwModify & rModify) const2366cdf0e10cSrcweir sal_Bool SwDoc::IsUsed( const SwModify& rModify ) const
2367cdf0e10cSrcweir {
2368cdf0e10cSrcweir 	// dann teste mal, ob es abhaengige ContentNodes im Nodes Array gibt
2369cdf0e10cSrcweir 	// (auch indirekte fuer Format-Ableitung! )
2370cdf0e10cSrcweir     SwAutoFmtGetDocNode aGetHt( &GetNodes() );
2371cdf0e10cSrcweir 	return !rModify.GetInfo( aGetHt );
2372cdf0e10cSrcweir }
2373cdf0e10cSrcweir 
2374cdf0e10cSrcweir // erfrage ob die NumRule benutzt wird
IsUsed(const SwNumRule & rRule) const2375cdf0e10cSrcweir sal_Bool SwDoc::IsUsed( const SwNumRule& rRule ) const
2376cdf0e10cSrcweir {
2377cdf0e10cSrcweir     // --> OD 2008-03-04 #refactorlists#
2378cdf0e10cSrcweir //    // dann teste mal, ob es abhaengige ContentNodes im Nodes Array gibt
2379cdf0e10cSrcweir //    // (auch indirekte fuer Format-Ableitung! )
2380cdf0e10cSrcweir //    sal_Bool bUsed = sal_False;
2381cdf0e10cSrcweir //    SwAutoFmtGetDocNode aGetHt( &aNodes );
2382cdf0e10cSrcweir //    SwModify* pMod;
2383cdf0e10cSrcweir //    const SfxPoolItem* pItem;
2384cdf0e10cSrcweir //    sal_uInt16 i, nMaxItems = GetAttrPool().GetItemCount( RES_PARATR_NUMRULE);
2385cdf0e10cSrcweir //    for( i = 0; i < nMaxItems; ++i )
2386cdf0e10cSrcweir //    {
2387cdf0e10cSrcweir //        if( 0 != (pItem = GetAttrPool().GetItem( RES_PARATR_NUMRULE, i ) ) &&
2388cdf0e10cSrcweir //            0 != ( pMod = (SwModify*)((SwNumRuleItem*)pItem)->GetDefinedIn()) &&
2389cdf0e10cSrcweir //            ((SwNumRuleItem*)pItem)->GetValue().Len() &&
2390cdf0e10cSrcweir //            ((SwNumRuleItem*)pItem)->GetValue() == rRule.GetName() )
2391cdf0e10cSrcweir //        {
2392cdf0e10cSrcweir //            if( pMod->IsA( TYPE( SwFmt )) )
2393cdf0e10cSrcweir //            {
2394cdf0e10cSrcweir //                bUsed = !pMod->GetInfo( aGetHt );
2395cdf0e10cSrcweir //                if( bUsed )
2396cdf0e10cSrcweir //                    break;
2397cdf0e10cSrcweir //            }
2398cdf0e10cSrcweir //            else if( ((SwTxtNode*)pMod)->GetNodes().IsDocNodes() )
2399cdf0e10cSrcweir //            {
2400cdf0e10cSrcweir //                bUsed = sal_True;
2401cdf0e10cSrcweir //                break;
2402cdf0e10cSrcweir //            }
2403cdf0e10cSrcweir //        }
2404cdf0e10cSrcweir //    }
2405cdf0e10cSrcweir 
2406cdf0e10cSrcweir //    return bUsed;
2407cdf0e10cSrcweir     sal_Bool bUsed = rRule.GetTxtNodeListSize() > 0 ||
2408cdf0e10cSrcweir                      rRule.GetParagraphStyleListSize() > 0;
2409cdf0e10cSrcweir 
2410cdf0e10cSrcweir     return bUsed;
2411cdf0e10cSrcweir     // <--
2412cdf0e10cSrcweir }
2413cdf0e10cSrcweir 
2414cdf0e10cSrcweir 	// Suche die Position vom Vorlagen-Namen. Ist nicht vorhanden
2415cdf0e10cSrcweir 	// dann fuege neu ein
SetDocPattern(const String & rPatternName)2416cdf0e10cSrcweir sal_uInt16 SwDoc::SetDocPattern( const String& rPatternName )
2417cdf0e10cSrcweir {
2418cdf0e10cSrcweir 	ASSERT( rPatternName.Len(), "kein Dokument-Vorlagenname" );
2419cdf0e10cSrcweir 
2420cdf0e10cSrcweir 	sal_uInt16 nNewPos = aPatternNms.Count();
2421cdf0e10cSrcweir 	for( sal_uInt16 n = 0; n < aPatternNms.Count(); ++n )
2422cdf0e10cSrcweir 		if( !aPatternNms[n] )
2423cdf0e10cSrcweir 		{
2424cdf0e10cSrcweir 			if( nNewPos == aPatternNms.Count() )
2425cdf0e10cSrcweir 				nNewPos = n;
2426cdf0e10cSrcweir 		}
2427cdf0e10cSrcweir 		else if( rPatternName == *aPatternNms[n] )
2428cdf0e10cSrcweir 			return n;
2429cdf0e10cSrcweir 
2430cdf0e10cSrcweir 	if( nNewPos < aPatternNms.Count() )
2431cdf0e10cSrcweir 		aPatternNms.Remove( nNewPos );		// Platz wieder frei machen
2432cdf0e10cSrcweir 
2433cdf0e10cSrcweir 	String* pNewNm = new String( rPatternName );
2434cdf0e10cSrcweir 	aPatternNms.Insert( pNewNm, nNewPos );
2435cdf0e10cSrcweir 	SetModified();
2436cdf0e10cSrcweir 	return nNewPos;
2437cdf0e10cSrcweir }
2438cdf0e10cSrcweir 
GetPoolParent(sal_uInt16 nId)2439cdf0e10cSrcweir sal_uInt16 GetPoolParent( sal_uInt16 nId )
2440cdf0e10cSrcweir {
2441cdf0e10cSrcweir 	sal_uInt16 nRet = USHRT_MAX;
2442cdf0e10cSrcweir 	if( POOLGRP_NOCOLLID & nId )		// 1 == Formate / 0 == Collections
2443cdf0e10cSrcweir 	{
2444cdf0e10cSrcweir 		switch( ( COLL_GET_RANGE_BITS | POOLGRP_NOCOLLID ) & nId )
2445cdf0e10cSrcweir 		{
2446cdf0e10cSrcweir 		case POOLGRP_CHARFMT:
2447cdf0e10cSrcweir 		case POOLGRP_FRAMEFMT:
2448cdf0e10cSrcweir 			nRet = 0; 			// vom default abgeleitet
2449cdf0e10cSrcweir 			break;
2450cdf0e10cSrcweir 		case POOLGRP_PAGEDESC:
2451cdf0e10cSrcweir 		case POOLGRP_NUMRULE:
2452cdf0e10cSrcweir 			break;				// es gibt keine Ableitung
2453cdf0e10cSrcweir 		}
2454cdf0e10cSrcweir 	}
2455cdf0e10cSrcweir 	else
2456cdf0e10cSrcweir 	{
2457cdf0e10cSrcweir 		switch( COLL_GET_RANGE_BITS & nId )
2458cdf0e10cSrcweir 		{
2459cdf0e10cSrcweir 		case COLL_TEXT_BITS:
2460cdf0e10cSrcweir 			switch( nId )
2461cdf0e10cSrcweir 			{
2462cdf0e10cSrcweir 			case RES_POOLCOLL_STANDARD:
2463cdf0e10cSrcweir 					nRet = 0;									break;
2464cdf0e10cSrcweir 			case RES_POOLCOLL_TEXT_IDENT:
2465cdf0e10cSrcweir 			case RES_POOLCOLL_TEXT_NEGIDENT:
2466cdf0e10cSrcweir 			case RES_POOLCOLL_TEXT_MOVE:
2467cdf0e10cSrcweir 			case RES_POOLCOLL_CONFRONTATION:
2468cdf0e10cSrcweir 			case RES_POOLCOLL_MARGINAL:
2469cdf0e10cSrcweir 					nRet = RES_POOLCOLL_TEXT;					break;
2470cdf0e10cSrcweir 
2471cdf0e10cSrcweir 			case RES_POOLCOLL_TEXT:
2472cdf0e10cSrcweir 			case RES_POOLCOLL_GREETING:
2473cdf0e10cSrcweir 			case RES_POOLCOLL_SIGNATURE:
2474cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE_BASE:
2475cdf0e10cSrcweir 					nRet = RES_POOLCOLL_STANDARD;				break;
2476cdf0e10cSrcweir 
2477cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE1:
2478cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE2:
2479cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE3:
2480cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE4:
2481cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE5:
2482cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE6:
2483cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE7:
2484cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE8:
2485cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE9:
2486cdf0e10cSrcweir 			case RES_POOLCOLL_HEADLINE10:
2487cdf0e10cSrcweir 					nRet = RES_POOLCOLL_HEADLINE_BASE; 			break;
2488cdf0e10cSrcweir 			}
2489cdf0e10cSrcweir 			break;
2490cdf0e10cSrcweir 
2491cdf0e10cSrcweir 		case COLL_LISTS_BITS:
2492cdf0e10cSrcweir 			switch( nId )
2493cdf0e10cSrcweir 			{
2494cdf0e10cSrcweir 			case RES_POOLCOLL_NUMBUL_BASE:
2495cdf0e10cSrcweir 					nRet = RES_POOLCOLL_TEXT;					break;
2496cdf0e10cSrcweir 
2497cdf0e10cSrcweir 			default:
2498cdf0e10cSrcweir 				nRet = RES_POOLCOLL_NUMBUL_BASE;				break;
2499cdf0e10cSrcweir 			}
2500cdf0e10cSrcweir 			break;
2501cdf0e10cSrcweir 
2502cdf0e10cSrcweir 		case COLL_EXTRA_BITS:
2503cdf0e10cSrcweir 			switch( nId )
2504cdf0e10cSrcweir 			{
2505cdf0e10cSrcweir 			case RES_POOLCOLL_FRAME:
2506cdf0e10cSrcweir 					nRet = RES_POOLCOLL_TEXT;					break;
2507cdf0e10cSrcweir 
2508cdf0e10cSrcweir 			case RES_POOLCOLL_TABLE_HDLN:
2509cdf0e10cSrcweir 					nRet = RES_POOLCOLL_TABLE;					break;
2510cdf0e10cSrcweir 
2511cdf0e10cSrcweir             case RES_POOLCOLL_TABLE:
2512cdf0e10cSrcweir 			case RES_POOLCOLL_FOOTNOTE:
2513cdf0e10cSrcweir 			case RES_POOLCOLL_ENDNOTE:
2514cdf0e10cSrcweir 			case RES_POOLCOLL_JAKETADRESS:
2515cdf0e10cSrcweir 			case RES_POOLCOLL_SENDADRESS:
2516cdf0e10cSrcweir 			case RES_POOLCOLL_HEADER:
2517cdf0e10cSrcweir 			case RES_POOLCOLL_HEADERL:
2518cdf0e10cSrcweir 			case RES_POOLCOLL_HEADERR:
2519cdf0e10cSrcweir 			case RES_POOLCOLL_FOOTER:
2520cdf0e10cSrcweir 			case RES_POOLCOLL_FOOTERL:
2521cdf0e10cSrcweir 			case RES_POOLCOLL_FOOTERR:
2522cdf0e10cSrcweir 			case RES_POOLCOLL_LABEL:
2523cdf0e10cSrcweir 					nRet = RES_POOLCOLL_STANDARD;				break;
2524cdf0e10cSrcweir 
2525cdf0e10cSrcweir 			case RES_POOLCOLL_LABEL_ABB:
2526cdf0e10cSrcweir 			case RES_POOLCOLL_LABEL_TABLE:
2527cdf0e10cSrcweir 			case RES_POOLCOLL_LABEL_FRAME:
2528cdf0e10cSrcweir 			case RES_POOLCOLL_LABEL_DRAWING:
2529cdf0e10cSrcweir 					nRet = RES_POOLCOLL_LABEL;					break;
2530cdf0e10cSrcweir 			}
2531cdf0e10cSrcweir 			break;
2532cdf0e10cSrcweir 
2533cdf0e10cSrcweir 		case COLL_REGISTER_BITS:
2534cdf0e10cSrcweir 			switch( nId )
2535cdf0e10cSrcweir 			{
2536cdf0e10cSrcweir 			case RES_POOLCOLL_REGISTER_BASE:
2537cdf0e10cSrcweir 					nRet = RES_POOLCOLL_STANDARD;				break;
2538cdf0e10cSrcweir 
2539cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_USERH:
2540cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_CNTNTH:
2541cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_IDXH:
2542cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_ILLUSH:
2543cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_OBJECTH:
2544cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_TABLESH:
2545cdf0e10cSrcweir 			case RES_POOLCOLL_TOX_AUTHORITIESH:
2546cdf0e10cSrcweir 					nRet = RES_POOLCOLL_HEADLINE_BASE;  		break;
2547cdf0e10cSrcweir 
2548cdf0e10cSrcweir 			default:
2549cdf0e10cSrcweir 					nRet = RES_POOLCOLL_REGISTER_BASE;  		break;
2550cdf0e10cSrcweir 			}
2551cdf0e10cSrcweir 			break;
2552cdf0e10cSrcweir 
2553cdf0e10cSrcweir 		case COLL_DOC_BITS:
2554cdf0e10cSrcweir 			nRet = RES_POOLCOLL_HEADLINE_BASE;
2555cdf0e10cSrcweir 			break;
2556cdf0e10cSrcweir 
2557cdf0e10cSrcweir 		case COLL_HTML_BITS:
2558cdf0e10cSrcweir 			nRet = RES_POOLCOLL_STANDARD;
2559cdf0e10cSrcweir 			break;
2560cdf0e10cSrcweir 		}
2561cdf0e10cSrcweir 	}
2562cdf0e10cSrcweir 
2563cdf0e10cSrcweir 	return nRet;
2564cdf0e10cSrcweir }
2565cdf0e10cSrcweir 
RemoveAllFmtLanguageDependencies()2566cdf0e10cSrcweir void SwDoc::RemoveAllFmtLanguageDependencies()
2567cdf0e10cSrcweir {
2568cdf0e10cSrcweir     /* #106748# Restore the language independ pool defaults and styles. */
2569cdf0e10cSrcweir     GetAttrPool().ResetPoolDefaultItem( RES_PARATR_ADJUST );
2570cdf0e10cSrcweir 
2571cdf0e10cSrcweir 	SwTxtFmtColl * pTxtFmtColl = GetTxtCollFromPool( RES_POOLCOLL_STANDARD );
2572cdf0e10cSrcweir 
2573cdf0e10cSrcweir     pTxtFmtColl->ResetFmtAttr( RES_PARATR_ADJUST );
2574cdf0e10cSrcweir     /* #111214# koreans do not like SvxScriptItem(sal_True) */
2575cdf0e10cSrcweir     pTxtFmtColl->ResetFmtAttr( RES_PARATR_SCRIPTSPACE );
2576cdf0e10cSrcweir 
2577cdf0e10cSrcweir     SvxFrameDirectionItem aFrameDir( FRMDIR_HORI_LEFT_TOP, RES_FRAMEDIR );
2578cdf0e10cSrcweir 
2579cdf0e10cSrcweir 	sal_uInt16 nCount = GetPageDescCnt();
2580cdf0e10cSrcweir 	for( sal_uInt16 i=0; i<nCount; ++i )
2581cdf0e10cSrcweir 	{
2582cdf0e10cSrcweir 		SwPageDesc& rDesc = _GetPageDesc( i );
2583cdf0e10cSrcweir         rDesc.GetMaster().SetFmtAttr( aFrameDir );
2584cdf0e10cSrcweir         rDesc.GetLeft().SetFmtAttr( aFrameDir );
2585cdf0e10cSrcweir 	}
2586cdf0e10cSrcweir 
2587cdf0e10cSrcweir     // OD 09.10.2003 #i18732# - restore static pool default for item
2588cdf0e10cSrcweir     // RES_FOLLOW_TEXT_FLOW.
2589cdf0e10cSrcweir     GetAttrPool().ResetPoolDefaultItem( RES_FOLLOW_TEXT_FLOW );
2590cdf0e10cSrcweir 
2591cdf0e10cSrcweir     //#i16874# AutoKerning as default for new documents
2592cdf0e10cSrcweir 	GetAttrPool().ResetPoolDefaultItem( RES_CHRATR_AUTOKERN );
2593cdf0e10cSrcweir }
2594