Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #include <DocumentStylePoolManager.hxx>
20 : #include <doc.hxx>
21 : #include <DocumentSettingManager.hxx>
22 : #include <IDocumentState.hxx>
23 : #include <IDocumentUndoRedo.hxx>
24 : #include <fmtanchr.hxx>
25 : #include <fmtfsize.hxx>
26 : #include <paratr.hxx>
27 : #include <poolfmt.hxx>
28 : #include <fmtornt.hxx>
29 : #include <fmtsrndenum.hxx>
30 : #include <charfmt.hxx>
31 : #include <fmtsrnd.hxx>
32 : #include <docary.hxx>
33 : #include <GetMetricVal.hxx>
34 : #include <pagedesc.hxx>
35 : #include <frmfmt.hxx>
36 : #include <fmtline.hxx>
37 : #include <numrule.hxx>
38 : #include <editeng/paperinf.hxx>
39 : #include <editeng/wghtitem.hxx>
40 : #include <editeng/fontitem.hxx>
41 : #include <editeng/fhgtitem.hxx>
42 : #include <editeng/tstpitem.hxx>
43 : #include <editeng/lrspitem.hxx>
44 : #include <editeng/ulspitem.hxx>
45 : #include <editeng/lspcitem.hxx>
46 : #include <editeng/adjustitem.hxx>
47 : #include <editeng/postitem.hxx>
48 : #include <editeng/keepitem.hxx>
49 : #include <editeng/opaqitem.hxx>
50 : #include <editeng/boxitem.hxx>
51 : #include <editeng/cmapitem.hxx>
52 : #include <editeng/udlnitem.hxx>
53 : #include <editeng/colritem.hxx>
54 : #include <editeng/protitem.hxx>
55 : #include <editeng/escapementitem.hxx>
56 : #include <editeng/langitem.hxx>
57 : #include <editeng/charrotateitem.hxx>
58 : #include <editeng/frmdiritem.hxx>
59 : #include <editeng/emphasismarkitem.hxx>
60 : #include <editeng/scriptspaceitem.hxx>
61 : #include <rcid.hrc>
62 : #include <com/sun/star/table/BorderLineStyle.hpp>
63 : #include <com/sun/star/text/VertOrientation.hpp>
64 : #include <com/sun/star/text/RelOrientation.hpp>
65 : #include <com/sun/star/text/HoriOrientation.hpp>
66 :
67 : using namespace ::editeng;
68 : using namespace ::com::sun::star;
69 :
70 : namespace
71 : {
72 : static const sal_uInt16 PT_3 = 3 * 20; // 3 pt
73 : static const sal_uInt16 PT_6 = 6 * 20; // 6 pt
74 : static const sal_uInt16 PT_7 = 7 * 20; // 7 pt
75 : static const sal_uInt16 PT_10 = 10 * 20; // 10 pt
76 : static const sal_uInt16 PT_12 = 12 * 20; // 12 pt
77 : static const sal_uInt16 PT_14 = 14 * 20; // 14 pt
78 : static const sal_uInt16 PT_16 = 16 * 20; // 16 pt
79 : static const sal_uInt16 PT_18 = 18 * 20; // 18 pt
80 : static const sal_uInt16 PT_24 = 24 * 20; // 24 pt
81 : static const sal_uInt16 PT_28 = 28 * 20; // 28 pt
82 :
83 : #define HTML_PARSPACE GetMetricVal( CM_05 )
84 :
85 : static const sal_uInt16 aHeadlineSizes[ 2 * MAXLEVEL ] = {
86 : // we do everything procentual now:
87 : 130, 115, 101, 95, 85,
88 : 85, 80, 80, 75, 75, // normal
89 : PT_24, PT_18, PT_14, PT_12, PT_10,
90 : PT_7, PT_7, PT_7, PT_7, PT_7 // HTML mode
91 : };
92 :
93 542 : static long lcl_GetRightMargin( SwDoc& rDoc )
94 : {
95 : // Make sure that the printer settings are taken over to the standard
96 : // page style
97 542 : const SwFrmFmt& rPgDscFmt = rDoc.GetPageDesc( 0 ).GetMaster();
98 542 : const SvxLRSpaceItem& rLR = rPgDscFmt.GetLRSpace();
99 542 : const long nLeft = rLR.GetLeft();
100 542 : const long nRight = rLR.GetRight();
101 542 : const long nWidth = rPgDscFmt.GetFrmSize().GetWidth();
102 542 : return nWidth - nLeft - nRight;
103 : }
104 :
105 42 : static void lcl_SetDfltFont( sal_uInt16 nFntType, SfxItemSet& rSet )
106 : {
107 : static struct {
108 : sal_uInt16 nResLngId;
109 : sal_uInt16 nResFntId;
110 : } aArr[ 3 ] = {
111 : { RES_CHRATR_LANGUAGE, RES_CHRATR_FONT },
112 : { RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CJK_FONT },
113 : { RES_CHRATR_CTL_LANGUAGE, RES_CHRATR_CTL_FONT }
114 : };
115 168 : for( sal_uInt16 n = 0; n < 3; ++n )
116 : {
117 126 : sal_uInt16 nLng = ((SvxLanguageItem&)rSet.GetPool()->GetDefaultItem(
118 126 : aArr[n].nResLngId )).GetLanguage();
119 : vcl::Font aFnt( OutputDevice::GetDefaultFont( nFntType,
120 126 : nLng, DEFAULTFONT_FLAGS_ONLYONE ) );
121 :
122 126 : rSet.Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(),
123 : OUString(), aFnt.GetPitch(),
124 252 : aFnt.GetCharSet(), aArr[n].nResFntId ));
125 126 : }
126 42 : }
127 :
128 0 : static void lcl_SetDfltFont( sal_uInt16 nLatinFntType, sal_uInt16 nCJKFntType,
129 : sal_uInt16 nCTLFntType, SfxItemSet& rSet )
130 : {
131 : static struct {
132 : sal_uInt16 nResLngId;
133 : sal_uInt16 nResFntId;
134 : sal_uInt16 nFntType;
135 : } aArr[ 3 ] = {
136 : { RES_CHRATR_LANGUAGE, RES_CHRATR_FONT, 0 },
137 : { RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CJK_FONT, 0 },
138 : { RES_CHRATR_CTL_LANGUAGE, RES_CHRATR_CTL_FONT, 0 }
139 : };
140 0 : aArr[0].nFntType = nLatinFntType;
141 0 : aArr[1].nFntType = nCJKFntType;
142 0 : aArr[2].nFntType = nCTLFntType;
143 :
144 0 : for( sal_uInt16 n = 0; n < 3; ++n )
145 : {
146 0 : sal_uInt16 nLng = ((SvxLanguageItem&)rSet.GetPool()->GetDefaultItem(
147 0 : aArr[n].nResLngId )).GetLanguage();
148 : vcl::Font aFnt( OutputDevice::GetDefaultFont( aArr[n].nFntType,
149 0 : nLng, DEFAULTFONT_FLAGS_ONLYONE ) );
150 :
151 0 : rSet.Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(),
152 : OUString(), aFnt.GetPitch(),
153 0 : aFnt.GetCharSet(), aArr[n].nResFntId ));
154 0 : }
155 0 : }
156 :
157 338 : static void lcl_SetHeadline( SwDoc* pDoc, SwTxtFmtColl* pColl,
158 : SfxItemSet& rSet,
159 : sal_uInt16 nOutLvlBits, sal_uInt8 nLevel, bool bItalic )
160 : {
161 338 : SetAllScriptItem( rSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
162 338 : SvxFontHeightItem aHItem(240, 100, RES_CHRATR_FONTSIZE);
163 338 : const bool bHTMLMode = pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE);
164 338 : if( bHTMLMode )
165 0 : aHItem.SetHeight( aHeadlineSizes[ MAXLEVEL + nLevel ] );
166 : else
167 338 : aHItem.SetHeight( PT_14, aHeadlineSizes[ nLevel ] );
168 338 : SetAllScriptItem( rSet, aHItem );
169 :
170 338 : if( bItalic && !bHTMLMode )
171 56 : SetAllScriptItem( rSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE ) );
172 :
173 338 : if( bHTMLMode )
174 : {
175 : lcl_SetDfltFont( DEFAULTFONT_LATIN_TEXT, DEFAULTFONT_CJK_TEXT,
176 0 : DEFAULTFONT_CTL_TEXT, rSet );
177 : }
178 :
179 338 : if( pColl )
180 : {
181 338 : if( !( nOutLvlBits & ( 1 << nLevel )) )
182 : {
183 338 : pColl->AssignToListLevelOfOutlineStyle(nLevel);
184 338 : if( !bHTMLMode )
185 : {
186 338 : SwNumRule * pOutlineRule = pDoc->GetOutlineNumRule();
187 338 : const SwNumFmt& rNFmt = pOutlineRule->Get( nLevel );
188 :
189 676 : if ( rNFmt.GetPositionAndSpaceMode() ==
190 338 : SvxNumberFormat::LABEL_WIDTH_AND_POSITION &&
191 0 : ( rNFmt.GetAbsLSpace() || rNFmt.GetFirstLineOffset() ) )
192 : {
193 0 : SvxLRSpaceItem aLR( (SvxLRSpaceItem&)pColl->GetFmtAttr( RES_LR_SPACE ) );
194 0 : aLR.SetTxtFirstLineOfstValue( rNFmt.GetFirstLineOffset() );
195 0 : aLR.SetTxtLeft( rNFmt.GetAbsLSpace() );
196 0 : pColl->SetFmtAttr( aLR );
197 : }
198 :
199 : // #i71764#
200 : // Check on document setting OUTLINE_LEVEL_YIELDS_OUTLINE_RULE no longer needed.
201 : // All paragraph styles, which are assigned to a level of the
202 : // outline style has to have the outline style set as its list style.
203 : {
204 338 : SwNumRuleItem aItem(pOutlineRule->GetName());
205 :
206 338 : pColl->SetFmtAttr(aItem);
207 : }
208 : }
209 : }
210 338 : pColl->SetNextTxtFmtColl( *pDoc->getIDocumentStylePoolAccess().GetTxtCollFromPool(
211 338 : RES_POOLCOLL_TEXT ));
212 338 : }
213 338 : }
214 :
215 170 : static void lcl_SetRegister( SwDoc* pDoc, SfxItemSet& rSet, sal_uInt16 nFact,
216 : bool bHeader, bool bTab )
217 : {
218 170 : SvxLRSpaceItem aLR( RES_LR_SPACE );
219 170 : sal_uInt16 nLeft = nFact ? GetMetricVal( CM_05 ) * nFact : 0;
220 170 : aLR.SetTxtLeft( nLeft );
221 :
222 170 : rSet.Put( aLR );
223 170 : if( bHeader )
224 : {
225 58 : SetAllScriptItem( rSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
226 58 : SetAllScriptItem( rSet, SvxFontHeightItem( PT_16, 100, RES_CHRATR_FONTSIZE ) );
227 : }
228 170 : if( bTab )
229 : {
230 104 : long nRightMargin = lcl_GetRightMargin( *pDoc );
231 104 : SvxTabStopItem aTStops( 0, 0, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
232 : aTStops.Insert( SvxTabStop( nRightMargin - nLeft,
233 : SVX_TAB_ADJUST_RIGHT,
234 104 : cDfltDecimalChar, '.' ));
235 104 : rSet.Put( aTStops );
236 170 : }
237 170 : }
238 :
239 60 : static void lcl_SetNumBul( SwDoc* pDoc, SwTxtFmtColl* pColl,
240 : SfxItemSet& rSet,
241 : sal_uInt16 nNxt, SwTwips nEZ, SwTwips nLeft,
242 : SwTwips nUpper, SwTwips nLower )
243 : {
244 :
245 120 : SvxLRSpaceItem aLR( RES_LR_SPACE ); SvxULSpaceItem aUL( RES_UL_SPACE );
246 60 : aLR.SetTxtFirstLineOfst( sal_uInt16(nEZ) ); aLR.SetTxtLeft( sal_uInt16(nLeft) );
247 60 : aUL.SetUpper( sal_uInt16(nUpper) ); aUL.SetLower( sal_uInt16(nLower) );
248 60 : rSet.Put( aLR );
249 60 : rSet.Put( aUL );
250 :
251 60 : if( pColl )
252 120 : pColl->SetNextTxtFmtColl( *pDoc->getIDocumentStylePoolAccess().GetTxtCollFromPool( nNxt ));
253 60 : }
254 :
255 748 : static void lcl_PutStdPageSizeIntoItemSet( SwDoc* pDoc, SfxItemSet& rSet )
256 : {
257 748 : SwPageDesc* pStdPgDsc = pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool( RES_POOLPAGE_STANDARD );
258 748 : SwFmtFrmSize aFrmSz( pStdPgDsc->GetMaster().GetFrmSize() );
259 748 : if( pStdPgDsc->GetLandscape() )
260 : {
261 2 : SwTwips nTmp = aFrmSz.GetHeight();
262 2 : aFrmSz.SetHeight( aFrmSz.GetWidth() );
263 2 : aFrmSz.SetWidth( nTmp );
264 : }
265 748 : rSet.Put( aFrmSz );
266 748 : }
267 : }
268 :
269 :
270 : namespace sw
271 : {
272 :
273 5052 : DocumentStylePoolManager::DocumentStylePoolManager( SwDoc& i_rSwdoc ) : m_rSwdoc( i_rSwdoc )
274 : {
275 5052 : }
276 :
277 155050 : SwTxtFmtColl* DocumentStylePoolManager::GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage )
278 : {
279 : OSL_ENSURE(
280 : (RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END) ||
281 : (RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END) ||
282 : (RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END) ||
283 : (RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END) ||
284 : (RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END) ||
285 : (RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END),
286 : "Wrong AutoFormat Id" );
287 :
288 : SwTxtFmtColl* pNewColl;
289 155050 : sal_uInt16 nOutLvlBits = 0;
290 867272 : for( sal_uInt16 n = 0; n < m_rSwdoc.GetTxtFmtColls()->size(); ++n )
291 : {
292 825604 : if( nId == ( pNewColl = (*m_rSwdoc.GetTxtFmtColls())[ n ] )->GetPoolFmtId() )
293 : {
294 113382 : return pNewColl;
295 : }
296 :
297 712222 : if( pNewColl->IsAssignedToListLevelOfOutlineStyle())
298 4410 : nOutLvlBits |= ( 1 << pNewColl->GetAssignedOutlineStyleLevel() );
299 : }
300 :
301 : // Didn't find it until here -> create anew
302 41668 : sal_uInt16 nResId = 0;
303 41668 : if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END )
304 19204 : nResId = RC_POOLCOLL_TEXT_BEGIN - RES_POOLCOLL_TEXT_BEGIN;
305 22464 : else if (RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END)
306 5306 : nResId = RC_POOLCOLL_LISTS_BEGIN - RES_POOLCOLL_LISTS_BEGIN;
307 17158 : else if (RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END)
308 9240 : nResId = RC_POOLCOLL_EXTRA_BEGIN - RES_POOLCOLL_EXTRA_BEGIN;
309 7918 : else if (RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END)
310 7290 : nResId = RC_POOLCOLL_REGISTER_BEGIN - RES_POOLCOLL_REGISTER_BEGIN;
311 628 : else if (RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END)
312 582 : nResId = RC_POOLCOLL_DOC_BEGIN - RES_POOLCOLL_DOC_BEGIN;
313 46 : else if (RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END)
314 46 : nResId = RC_POOLCOLL_HTML_BEGIN - RES_POOLCOLL_HTML_BEGIN;
315 :
316 : OSL_ENSURE( nResId, "Invalid Pool ID" );
317 41668 : if( !nResId )
318 0 : return GetTxtCollFromPool( RES_POOLCOLL_STANDARD );
319 :
320 41668 : ResId aResId( nResId + nId, *pSwResMgr );
321 41668 : OUString aNm( aResId );
322 :
323 : // A Set for all to-be-set Attributes
324 83336 : SwAttrSet aSet( m_rSwdoc.GetAttrPool(), aTxtFmtCollSetRange );
325 41668 : sal_uInt16 nParent = GetPoolParent( nId );
326 :
327 : {
328 :
329 : //FEATURE::CONDCOLL
330 41668 : if(::IsConditionalByPoolId( nId ))
331 5036 : pNewColl = new SwConditionTxtFmtColl( m_rSwdoc.GetAttrPool(), aNm, !nParent
332 0 : ? m_rSwdoc.GetDfltTxtFmtColl()
333 5036 : : GetTxtCollFromPool( nParent ));
334 : else
335 : //FEATURE::CONDCOLL
336 36632 : pNewColl = new SwTxtFmtColl( m_rSwdoc.GetAttrPool(), aNm, !nParent
337 5090 : ? m_rSwdoc.GetDfltTxtFmtColl()
338 41722 : : GetTxtCollFromPool( nParent ));
339 41668 : pNewColl->SetPoolFmtId( nId );
340 41668 : m_rSwdoc.GetTxtFmtColls()->push_back( pNewColl );
341 : }
342 :
343 41668 : bool bNoDefault = m_rSwdoc.GetDocumentSettingManager().get( IDocumentSettingAccess::STYLES_NODEFAULT );
344 41668 : if ( !bNoDefault )
345 : {
346 32108 : switch( nId )
347 : {
348 : // General content forms
349 : case RES_POOLCOLL_STANDARD:
350 : /* koreans do not like SvxScriptItem(TRUE) */
351 5090 : if (bRegardLanguage)
352 : {
353 5090 : sal_uLong nAppLanguage = GetAppLanguage();
354 5090 : if (GetDefaultFrameDirection(nAppLanguage) ==
355 : FRMDIR_HORI_RIGHT_TOP)
356 : {
357 0 : SvxAdjustItem aAdjust(SVX_ADJUST_RIGHT, RES_PARATR_ADJUST );
358 0 : aSet.Put(aAdjust);
359 : }
360 5090 : if (nAppLanguage == LANGUAGE_KOREAN)
361 : {
362 0 : SvxScriptSpaceItem aScriptSpace(false, RES_PARATR_SCRIPTSPACE);
363 0 : aSet.Put(aScriptSpace);
364 : }
365 : }
366 5090 : break;
367 :
368 : case RES_POOLCOLL_TEXT: // Text body
369 : {
370 : SvxLineSpacingItem aLSpc( LINE_SPACE_DEFAULT_HEIGHT,
371 4980 : RES_PARATR_LINESPACING );
372 9960 : SvxULSpaceItem aUL( 0, PT_7, RES_UL_SPACE );
373 4980 : aLSpc.SetPropLineSpace( (const sal_uInt8) 120 );
374 4980 : if( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) ) aUL.SetLower( HTML_PARSPACE );
375 4980 : aSet.Put( aUL );
376 9960 : aSet.Put( aLSpc );
377 : }
378 4980 : break;
379 : case RES_POOLCOLL_TEXT_IDENT: // Text body indentation
380 : {
381 4 : SvxLRSpaceItem aLR( RES_LR_SPACE );
382 4 : aLR.SetTxtFirstLineOfst( GetMetricVal( CM_05 ));
383 4 : aSet.Put( aLR );
384 : }
385 4 : break;
386 : case RES_POOLCOLL_TEXT_NEGIDENT: // Text body neg. indentation
387 : {
388 2 : SvxLRSpaceItem aLR( RES_LR_SPACE );
389 2 : aLR.SetTxtFirstLineOfst( -(short)GetMetricVal( CM_05 ));
390 2 : aLR.SetTxtLeft( GetMetricVal( CM_1 ));
391 4 : SvxTabStopItem aTStops(RES_PARATR_TABSTOP); aTStops.Insert( SvxTabStop( 0 ));
392 :
393 2 : aSet.Put( aLR );
394 4 : aSet.Put( aTStops );
395 : }
396 2 : break;
397 : case RES_POOLCOLL_TEXT_MOVE: // Text body move
398 : {
399 22 : SvxLRSpaceItem aLR( RES_LR_SPACE );
400 22 : aLR.SetTxtLeft( GetMetricVal( CM_05 ));
401 22 : aSet.Put( aLR );
402 : }
403 22 : break;
404 :
405 : case RES_POOLCOLL_CONFRONTATION: // Text body confrontation
406 : {
407 8 : SvxLRSpaceItem aLR( RES_LR_SPACE );
408 8 : aLR.SetTxtFirstLineOfst( - short( GetMetricVal( CM_1 ) * 4 +
409 8 : GetMetricVal( CM_05)) );
410 8 : aLR.SetTxtLeft( GetMetricVal( CM_1 ) * 5 );
411 16 : SvxTabStopItem aTStops( RES_PARATR_TABSTOP ); aTStops.Insert( SvxTabStop( 0 ));
412 :
413 8 : aSet.Put( aLR );
414 16 : aSet.Put( aTStops );
415 : }
416 8 : break;
417 : case RES_POOLCOLL_MARGINAL: // Text body marginal
418 : {
419 0 : SvxLRSpaceItem aLR( RES_LR_SPACE );
420 0 : aLR.SetTxtLeft( GetMetricVal( CM_1 ) * 4 );
421 0 : aSet.Put( aLR );
422 : }
423 0 : break;
424 :
425 : case RES_POOLCOLL_HEADLINE_BASE: // Base headline
426 : {
427 : static const sal_uInt16 aFntInit[] = {
428 : DEFAULTFONT_LATIN_HEADING, RES_CHRATR_FONT,
429 : RES_CHRATR_LANGUAGE, LANGUAGE_ENGLISH_US,
430 : DEFAULTFONT_CJK_HEADING, RES_CHRATR_CJK_FONT,
431 : RES_CHRATR_CJK_LANGUAGE, LANGUAGE_ENGLISH_US,
432 : DEFAULTFONT_CTL_HEADING, RES_CHRATR_CTL_FONT,
433 : RES_CHRATR_CTL_LANGUAGE, LANGUAGE_ARABIC_SAUDI_ARABIA,
434 : 0
435 : };
436 :
437 19904 : for( const sal_uInt16* pArr = aFntInit; *pArr; pArr += 4 )
438 : {
439 14928 : sal_uInt16 nLng = ((SvxLanguageItem&)m_rSwdoc.GetDefault( *(pArr+2) )).GetLanguage();
440 14928 : if( LANGUAGE_DONTKNOW == nLng )
441 0 : nLng = *(pArr+3);
442 :
443 : vcl::Font aFnt( OutputDevice::GetDefaultFont( *pArr,
444 14928 : nLng, DEFAULTFONT_FLAGS_ONLYONE ) );
445 :
446 14928 : aSet.Put( SvxFontItem( aFnt.GetFamily(), aFnt.GetName(),
447 : OUString(), aFnt.GetPitch(),
448 29856 : aFnt.GetCharSet(), *(pArr+1) ));
449 14928 : }
450 :
451 4976 : SvxFontHeightItem aFntSize( PT_14, 100, RES_CHRATR_FONTSIZE );
452 9952 : SvxULSpaceItem aUL( PT_12, PT_6, RES_UL_SPACE );
453 4976 : if( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
454 0 : aUL.SetLower( HTML_PARSPACE );
455 4976 : aSet.Put( SvxFmtKeepItem( true, RES_KEEP ));
456 :
457 4976 : pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool( RES_POOLCOLL_TEXT ));
458 :
459 4976 : aSet.Put( aUL );
460 9952 : SetAllScriptItem( aSet, aFntSize );
461 : }
462 4976 : break;
463 :
464 : case RES_POOLCOLL_NUMBUL_BASE: // Base Numbering
465 4978 : break;
466 :
467 : case RES_POOLCOLL_GREETING: // Greeting
468 : case RES_POOLCOLL_REGISTER_BASE: // Base indexes
469 : case RES_POOLCOLL_SIGNATURE: // Signatures
470 : case RES_POOLCOLL_TABLE: // Tabele content
471 : {
472 5270 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
473 5270 : aSet.Put( aLN );
474 : }
475 5270 : break;
476 :
477 : case RES_POOLCOLL_HEADLINE1: // Headinline 1
478 : {
479 84 : SvxULSpaceItem aUL( PT_12, PT_6, RES_UL_SPACE );
480 84 : aSet.Put( aUL );
481 84 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 0, false );
482 : }
483 84 : break;
484 : case RES_POOLCOLL_HEADLINE2: // Headinline 2
485 : {
486 72 : SvxULSpaceItem aUL( PT_10, PT_6, RES_UL_SPACE );
487 72 : aSet.Put( aUL );
488 72 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 1, false );
489 : }
490 72 : break;
491 : case RES_POOLCOLL_HEADLINE3: // Headinline 3
492 : {
493 52 : SvxULSpaceItem aUL( PT_7, PT_6, RES_UL_SPACE );
494 52 : Color aCol( COL_GRAY );
495 52 : aSet.Put( aUL );
496 52 : aSet.Put( SvxColorItem ( aCol, RES_CHRATR_COLOR ) );
497 52 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 2, false );
498 : }
499 52 : break;
500 : case RES_POOLCOLL_HEADLINE4: // Headinline 4
501 : {
502 20 : SvxULSpaceItem aUL( PT_6, PT_6, RES_UL_SPACE );
503 20 : Color aCol( COL_GRAY );
504 20 : aSet.Put( aUL );
505 20 : aSet.Put( SvxColorItem ( aCol, RES_CHRATR_COLOR ) );
506 20 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 3, true );
507 : }
508 20 : break;
509 : case RES_POOLCOLL_HEADLINE5: // Headinline 5
510 : {
511 26 : SvxULSpaceItem aUL( PT_6, PT_3, RES_UL_SPACE );
512 26 : aSet.Put( aUL );
513 26 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 4, false );
514 : }
515 26 : break;
516 : case RES_POOLCOLL_HEADLINE6: // Headinline 6
517 : {
518 18 : SvxULSpaceItem aUL( PT_3, PT_3, RES_UL_SPACE );
519 18 : aSet.Put( aUL );
520 18 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 5, true );
521 : }
522 18 : break;
523 : case RES_POOLCOLL_HEADLINE7: // Headinline 7
524 : {
525 22 : SvxULSpaceItem aUL( PT_3, PT_3, RES_UL_SPACE );
526 22 : aSet.Put( aUL );
527 22 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 6, false );
528 : }
529 22 : break;
530 : case RES_POOLCOLL_HEADLINE8: // Headinline 8
531 : {
532 18 : SvxULSpaceItem aUL( PT_3, PT_3, RES_UL_SPACE );
533 18 : aSet.Put( aUL );
534 18 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 7, true );
535 : }
536 18 : break;
537 : case RES_POOLCOLL_HEADLINE9: // Headinline 9
538 : {
539 22 : SvxULSpaceItem aUL( PT_3, PT_3, RES_UL_SPACE );
540 22 : aSet.Put( aUL );
541 22 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 8, false );
542 : }
543 22 : break;
544 : case RES_POOLCOLL_HEADLINE10: // Headinline 10
545 : {
546 4 : SvxULSpaceItem aUL( PT_3, PT_3, RES_UL_SPACE );
547 4 : aSet.Put( aUL );
548 4 : lcl_SetHeadline( &m_rSwdoc, pNewColl, aSet, nOutLvlBits, 9, false );
549 : }
550 4 : break;
551 :
552 : // Special sections:
553 : // Header
554 : case RES_POOLCOLL_HEADER:
555 : case RES_POOLCOLL_HEADERL:
556 : case RES_POOLCOLL_HEADERR:
557 : // Footer
558 : case RES_POOLCOLL_FOOTER:
559 : case RES_POOLCOLL_FOOTERL:
560 : case RES_POOLCOLL_FOOTERR:
561 : {
562 438 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
563 438 : aSet.Put( aLN );
564 :
565 438 : long nRightMargin = lcl_GetRightMargin( m_rSwdoc );
566 :
567 876 : SvxTabStopItem aTStops( 0, 0, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
568 438 : aTStops.Insert( SvxTabStop( nRightMargin / 2, SVX_TAB_ADJUST_CENTER ) );
569 438 : aTStops.Insert( SvxTabStop( nRightMargin, SVX_TAB_ADJUST_RIGHT ) );
570 :
571 876 : aSet.Put( aTStops );
572 : }
573 438 : break;
574 :
575 : case RES_POOLCOLL_TABLE_HDLN:
576 : {
577 246 : SetAllScriptItem( aSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
578 246 : aSet.Put( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ) );
579 246 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
580 246 : aSet.Put( aLN );
581 : }
582 246 : break;
583 :
584 : case RES_POOLCOLL_FOOTNOTE: // paragraph style Footnote
585 : case RES_POOLCOLL_ENDNOTE: // paragraph style Endnote
586 : {
587 302 : SvxLRSpaceItem aLR( RES_LR_SPACE );
588 302 : aLR.SetTxtFirstLineOfst( -(short)( GetMetricVal( CM_05 ) + GetMetricVal( CM_01 ) ) );
589 302 : aLR.SetTxtLeft( GetMetricVal( CM_05 ) + GetMetricVal( CM_01 ) );
590 302 : SetAllScriptItem( aSet, SvxFontHeightItem( PT_10, 100, RES_CHRATR_FONTSIZE ) );
591 302 : aSet.Put( aLR );
592 604 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
593 604 : aSet.Put( aLN );
594 : }
595 302 : break;
596 :
597 : case RES_POOLCOLL_LABEL: // basic caption
598 : {
599 4978 : SvxULSpaceItem aUL( RES_UL_SPACE ); aUL.SetUpper( PT_6 ); aUL.SetLower( PT_6 );
600 4978 : aSet.Put( aUL );
601 4978 : SetAllScriptItem( aSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE ) );
602 4978 : SetAllScriptItem( aSet, SvxFontHeightItem( PT_10, 100, RES_CHRATR_FONTSIZE ) );
603 9956 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
604 9956 : aSet.Put( aLN );
605 : }
606 4978 : break;
607 :
608 : case RES_POOLCOLL_FRAME: // Frame content
609 : case RES_POOLCOLL_LABEL_ABB: // caption image
610 : case RES_POOLCOLL_LABEL_TABLE: // caption table
611 : case RES_POOLCOLL_LABEL_FRAME: // caption frame
612 : case RES_POOLCOLL_LABEL_DRAWING: // caption drawing
613 162 : break;
614 :
615 : case RES_POOLCOLL_JAKETADRESS: // envelope address
616 : {
617 6 : SvxULSpaceItem aUL( RES_UL_SPACE ); aUL.SetLower( PT_3 );
618 6 : aSet.Put( aUL );
619 12 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
620 12 : aSet.Put( aLN );
621 : }
622 6 : break;
623 :
624 : case RES_POOLCOLL_SENDADRESS: // Sender address
625 : {
626 14 : if( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
627 0 : SetAllScriptItem( aSet, SvxPostureItem(ITALIC_NORMAL, RES_CHRATR_POSTURE) );
628 : else
629 : {
630 14 : SvxULSpaceItem aUL( RES_UL_SPACE ); aUL.SetLower( PT_3 );
631 14 : aSet.Put( aUL );
632 : }
633 14 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
634 14 : aSet.Put( aLN );
635 : }
636 14 : break;
637 :
638 : // User defined indexes:
639 : case RES_POOLCOLL_TOX_USERH: // Header
640 4 : lcl_SetRegister( &m_rSwdoc, aSet, 0, true, false );
641 : {
642 4 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
643 4 : aSet.Put( aLN );
644 : }
645 4 : break;
646 : case RES_POOLCOLL_TOX_USER1: // 1. Level
647 0 : lcl_SetRegister( &m_rSwdoc, aSet, 0, false, true );
648 0 : break;
649 : case RES_POOLCOLL_TOX_USER2: // 2. Level
650 0 : lcl_SetRegister( &m_rSwdoc, aSet, 1, false, true );
651 0 : break;
652 : case RES_POOLCOLL_TOX_USER3: // 3. Level
653 0 : lcl_SetRegister( &m_rSwdoc, aSet, 2, false, true );
654 0 : break;
655 : case RES_POOLCOLL_TOX_USER4: // 4. Level
656 0 : lcl_SetRegister( &m_rSwdoc, aSet, 3, false, true );
657 0 : break;
658 : case RES_POOLCOLL_TOX_USER5: // 5. Level
659 0 : lcl_SetRegister( &m_rSwdoc, aSet, 4, false, true );
660 0 : break;
661 : case RES_POOLCOLL_TOX_USER6: // 6. Level
662 0 : lcl_SetRegister( &m_rSwdoc, aSet, 5, false, true );
663 0 : break;
664 : case RES_POOLCOLL_TOX_USER7: // 7. Level
665 0 : lcl_SetRegister( &m_rSwdoc, aSet, 6, false, true );
666 0 : break;
667 : case RES_POOLCOLL_TOX_USER8: // 8. Level
668 0 : lcl_SetRegister( &m_rSwdoc, aSet, 7, false, true );
669 0 : break;
670 : case RES_POOLCOLL_TOX_USER9: // 9. Level
671 0 : lcl_SetRegister( &m_rSwdoc, aSet, 8, false, true );
672 0 : break;
673 : case RES_POOLCOLL_TOX_USER10: // 10. Level
674 0 : lcl_SetRegister( &m_rSwdoc, aSet, 9, false, true );
675 0 : break;
676 :
677 : // Index
678 : case RES_POOLCOLL_TOX_IDXH: // Header
679 10 : lcl_SetRegister( &m_rSwdoc, aSet, 0, true, false );
680 : {
681 10 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
682 10 : aSet.Put( aLN );
683 : }
684 10 : break;
685 : case RES_POOLCOLL_TOX_IDX1: // 1. Level
686 4 : lcl_SetRegister( &m_rSwdoc, aSet, 0, false, false );
687 4 : break;
688 : case RES_POOLCOLL_TOX_IDX2: // 2. Level
689 2 : lcl_SetRegister( &m_rSwdoc, aSet, 1, false, false );
690 2 : break;
691 : case RES_POOLCOLL_TOX_IDX3: // 3. Level
692 2 : lcl_SetRegister( &m_rSwdoc, aSet, 2, false, false );
693 2 : break;
694 : case RES_POOLCOLL_TOX_IDXBREAK: // Trenner
695 0 : lcl_SetRegister( &m_rSwdoc, aSet, 0, false, false );
696 0 : break;
697 :
698 : // Table of Content
699 : case RES_POOLCOLL_TOX_CNTNTH: // Header
700 24 : lcl_SetRegister( &m_rSwdoc, aSet, 0, true, false );
701 : {
702 24 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
703 24 : aSet.Put( aLN );
704 : }
705 24 : break;
706 : case RES_POOLCOLL_TOX_CNTNT1: // 1. Level
707 16 : lcl_SetRegister( &m_rSwdoc, aSet, 0, false, true );
708 16 : break;
709 : case RES_POOLCOLL_TOX_CNTNT2: // 2. Level
710 14 : lcl_SetRegister( &m_rSwdoc, aSet, 1, false, true );
711 14 : break;
712 : case RES_POOLCOLL_TOX_CNTNT3: // 3. Level
713 18 : lcl_SetRegister( &m_rSwdoc, aSet, 2, false, true );
714 18 : break;
715 : case RES_POOLCOLL_TOX_CNTNT4: // 4. Level
716 10 : lcl_SetRegister( &m_rSwdoc, aSet, 3, false, true );
717 10 : break;
718 : case RES_POOLCOLL_TOX_CNTNT5: // 5. Level
719 8 : lcl_SetRegister( &m_rSwdoc, aSet, 4, false, true );
720 8 : break;
721 : case RES_POOLCOLL_TOX_CNTNT6: // 6. Level
722 8 : lcl_SetRegister( &m_rSwdoc, aSet, 5, false, true );
723 8 : break;
724 : case RES_POOLCOLL_TOX_CNTNT7: // 7. Level
725 8 : lcl_SetRegister( &m_rSwdoc, aSet, 6, false, true );
726 8 : break;
727 : case RES_POOLCOLL_TOX_CNTNT8: // 8. Level
728 8 : lcl_SetRegister( &m_rSwdoc, aSet, 7, false, true );
729 8 : break;
730 : case RES_POOLCOLL_TOX_CNTNT9: // 9. Level
731 8 : lcl_SetRegister( &m_rSwdoc, aSet, 8, false, true );
732 8 : break;
733 : case RES_POOLCOLL_TOX_CNTNT10: // 10. Level
734 2 : lcl_SetRegister( &m_rSwdoc, aSet, 9, false, true );
735 2 : break;
736 :
737 : case RES_POOLCOLL_TOX_ILLUSH:
738 : case RES_POOLCOLL_TOX_OBJECTH:
739 : case RES_POOLCOLL_TOX_TABLESH:
740 : case RES_POOLCOLL_TOX_AUTHORITIESH:
741 20 : lcl_SetRegister( &m_rSwdoc, aSet, 0, true, false );
742 : {
743 20 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
744 20 : aSet.Put( aLN );
745 : }
746 20 : break;
747 : case RES_POOLCOLL_TOX_ILLUS1:
748 : case RES_POOLCOLL_TOX_OBJECT1:
749 : case RES_POOLCOLL_TOX_TABLES1:
750 : case RES_POOLCOLL_TOX_AUTHORITIES1:
751 4 : lcl_SetRegister( &m_rSwdoc, aSet, 0, false, true );
752 4 : break;
753 :
754 : case RES_POOLCOLL_NUM_LEVEL1S:
755 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL1,
756 2 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 0 ),
757 2 : PT_12, PT_6 );
758 2 : break;
759 : case RES_POOLCOLL_NUM_LEVEL1:
760 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL1,
761 10 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 0 ),
762 10 : 0, PT_6 );
763 10 : break;
764 : case RES_POOLCOLL_NUM_LEVEL1E:
765 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL1,
766 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 0 ),
767 0 : 0, PT_12 );
768 0 : break;
769 : case RES_POOLCOLL_NUM_NONUM1:
770 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM1,
771 2 : 0, SwNumRule::GetNumIndent( 0 ), 0, PT_6 );
772 2 : break;
773 : case RES_POOLCOLL_NUM_LEVEL2S:
774 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL2,
775 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 1 ),
776 0 : PT_12, PT_6 );
777 0 : break;
778 : case RES_POOLCOLL_NUM_LEVEL2:
779 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL2,
780 6 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 1 ),
781 6 : 0, PT_6 );
782 6 : break;
783 : case RES_POOLCOLL_NUM_LEVEL2E:
784 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL2,
785 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 1 ),
786 0 : 0, PT_12 );
787 0 : break;
788 : case RES_POOLCOLL_NUM_NONUM2:
789 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM2,
790 2 : 0, SwNumRule::GetNumIndent( 1 ), 0, PT_6 );
791 2 : break;
792 : case RES_POOLCOLL_NUM_LEVEL3S:
793 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL3,
794 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 2 ),
795 0 : PT_12, PT_6 );
796 0 : break;
797 : case RES_POOLCOLL_NUM_LEVEL3:
798 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL3,
799 4 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 2 ),
800 4 : 0, PT_6 );
801 4 : break;
802 : case RES_POOLCOLL_NUM_LEVEL3E:
803 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL3,
804 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 2 ),
805 0 : 0, PT_12 );
806 0 : break;
807 : case RES_POOLCOLL_NUM_NONUM3:
808 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM3,
809 0 : 0, SwNumRule::GetNumIndent( 2 ), 0, PT_6 );
810 0 : break;
811 : case RES_POOLCOLL_NUM_LEVEL4S:
812 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL4,
813 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 3 ),
814 0 : PT_12, PT_6 );
815 0 : break;
816 : case RES_POOLCOLL_NUM_LEVEL4:
817 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL4,
818 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 3 ),
819 0 : 0, PT_6 );
820 0 : break;
821 : case RES_POOLCOLL_NUM_LEVEL4E:
822 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL4,
823 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 3 ),
824 0 : 0, PT_12 );
825 0 : break;
826 : case RES_POOLCOLL_NUM_NONUM4:
827 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM4,
828 0 : 0, SwNumRule::GetNumIndent( 3 ), 0, PT_6 );
829 0 : break;
830 : case RES_POOLCOLL_NUM_LEVEL5S:
831 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL5,
832 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 4 ),
833 0 : PT_12, PT_6 );
834 0 : break;
835 : case RES_POOLCOLL_NUM_LEVEL5:
836 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL5,
837 4 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 4 ),
838 4 : 0, PT_6 );
839 4 : break;
840 : case RES_POOLCOLL_NUM_LEVEL5E:
841 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_LEVEL5,
842 0 : lNumFirstLineOffset, SwNumRule::GetNumIndent( 4 ),
843 0 : 0, PT_12 );
844 0 : break;
845 : case RES_POOLCOLL_NUM_NONUM5:
846 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_NUM_NONUM5,
847 0 : 0, SwNumRule::GetNumIndent( 4 ), 0, PT_6 );
848 0 : break;
849 :
850 : case RES_POOLCOLL_BUL_LEVEL1S:
851 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL1,
852 2 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 0 ),
853 2 : PT_12, PT_6 );
854 2 : break;
855 : case RES_POOLCOLL_BUL_LEVEL1:
856 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL1,
857 4 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 0 ),
858 4 : 0, PT_6 );
859 4 : break;
860 : case RES_POOLCOLL_BUL_LEVEL1E:
861 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL1,
862 2 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 0 ),
863 2 : 0, PT_12 );
864 2 : break;
865 : case RES_POOLCOLL_BUL_NONUM1:
866 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM1,
867 2 : 0, SwNumRule::GetBullIndent( 0 ), 0, PT_6 );
868 2 : break;
869 : case RES_POOLCOLL_BUL_LEVEL2S:
870 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL2,
871 0 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 1 ),
872 0 : PT_12, PT_6 );
873 0 : break;
874 : case RES_POOLCOLL_BUL_LEVEL2:
875 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL2,
876 4 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 1 ),
877 4 : 0, PT_6 );
878 4 : break;
879 : case RES_POOLCOLL_BUL_LEVEL2E:
880 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL2,
881 2 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 1 ),
882 2 : 0, PT_12 );
883 2 : break;
884 : case RES_POOLCOLL_BUL_NONUM2:
885 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM2,
886 2 : 0, SwNumRule::GetBullIndent( 1 ), 0, PT_6 );
887 2 : break;
888 : case RES_POOLCOLL_BUL_LEVEL3S:
889 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL3,
890 2 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 2 ),
891 2 : PT_12, PT_6 );
892 2 : break;
893 : case RES_POOLCOLL_BUL_LEVEL3:
894 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL3,
895 4 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 2 ),
896 4 : 0, PT_6 );
897 4 : break;
898 : case RES_POOLCOLL_BUL_LEVEL3E:
899 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL3,
900 0 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 2 ),
901 0 : 0, PT_12 );
902 0 : break;
903 : case RES_POOLCOLL_BUL_NONUM3:
904 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM3,
905 0 : 0, SwNumRule::GetBullIndent( 2 ), 0, PT_6 );
906 0 : break;
907 : case RES_POOLCOLL_BUL_LEVEL4S:
908 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL4,
909 0 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 3 ),
910 0 : PT_12, PT_6 );
911 0 : break;
912 : case RES_POOLCOLL_BUL_LEVEL4:
913 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL4,
914 2 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 3 ),
915 2 : 0, PT_6 );
916 2 : break;
917 : case RES_POOLCOLL_BUL_LEVEL4E:
918 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL4,
919 0 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 3 ),
920 0 : 0, PT_12 );
921 0 : break;
922 : case RES_POOLCOLL_BUL_NONUM4:
923 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM4,
924 0 : 0, SwNumRule::GetBullIndent( 3 ), 0, PT_6 );
925 0 : break;
926 : case RES_POOLCOLL_BUL_LEVEL5S:
927 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL5,
928 0 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 4 ),
929 0 : PT_12, PT_6 );
930 0 : break;
931 : case RES_POOLCOLL_BUL_LEVEL5:
932 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL5,
933 2 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 4 ),
934 2 : 0, PT_6 );
935 2 : break;
936 : case RES_POOLCOLL_BUL_LEVEL5E:
937 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_LEVEL5,
938 0 : lBullFirstLineOffset, SwNumRule::GetBullIndent( 4 ),
939 0 : 0, PT_12 );
940 0 : break;
941 : case RES_POOLCOLL_BUL_NONUM5:
942 : lcl_SetNumBul( &m_rSwdoc, pNewColl, aSet, RES_POOLCOLL_BUL_NONUM5,
943 2 : 0, SwNumRule::GetBullIndent( 4 ), 0, PT_6 );
944 2 : break;
945 :
946 : case RES_POOLCOLL_DOC_TITEL: // Document Title
947 : {
948 12 : SetAllScriptItem( aSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
949 12 : SetAllScriptItem( aSet, SvxFontHeightItem( PT_28, 100, RES_CHRATR_FONTSIZE ) );
950 :
951 12 : aSet.Put( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ) );
952 :
953 12 : pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool( RES_POOLCOLL_TEXT ));
954 : }
955 12 : break;
956 :
957 : case RES_POOLCOLL_DOC_SUBTITEL: // Document subtitle
958 : {
959 20 : SvxULSpaceItem aUL( PT_3, PT_6, RES_UL_SPACE );
960 20 : aSet.Put( aUL );
961 20 : SetAllScriptItem( aSet, SvxFontHeightItem( PT_18, 100, RES_CHRATR_FONTSIZE ));
962 :
963 20 : aSet.Put( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ));
964 :
965 : pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
966 20 : RES_POOLCOLL_TEXT ));
967 : }
968 20 : break;
969 :
970 : case RES_POOLCOLL_HTML_BLOCKQUOTE:
971 : {
972 4 : SvxLRSpaceItem aLR( RES_LR_SPACE );
973 4 : aLR.SetLeft( GetMetricVal( CM_1 ));
974 4 : aLR.SetRight( GetMetricVal( CM_1 ));
975 4 : aSet.Put( aLR );
976 8 : SvxULSpaceItem aUL( RES_UL_SPACE );
977 4 : aUL = pNewColl->GetULSpace();
978 4 : aUL.SetLower( HTML_PARSPACE );
979 8 : aSet.Put( aUL);
980 : }
981 4 : break;
982 :
983 : case RES_POOLCOLL_HTML_PRE:
984 : {
985 8 : ::lcl_SetDfltFont( DEFAULTFONT_FIXED, aSet );
986 :
987 : // WORKAROUND: Set PRE to 10pt
988 8 : SetAllScriptItem( aSet, SvxFontHeightItem(PT_10, 100, RES_CHRATR_FONTSIZE) );
989 :
990 : // The lower paragraph distance is set explicitly (makes
991 : // assigning hard attributes easier)
992 8 : SvxULSpaceItem aULSpaceItem( RES_UL_SPACE );
993 8 : aULSpaceItem = pNewColl->GetULSpace();
994 8 : aULSpaceItem.SetLower( 0 );
995 8 : aSet.Put( aULSpaceItem );
996 : }
997 8 : break;
998 :
999 : case RES_POOLCOLL_HTML_HR:
1000 : {
1001 6 : SvxBoxItem aBox( RES_BOX );
1002 6 : Color aColor( COL_GRAY );
1003 6 : SvxBorderLine aNew(&aColor, 1, table::BorderLineStyle::DOUBLE);
1004 6 : aBox.SetLine( &aNew, BOX_LINE_BOTTOM );
1005 :
1006 6 : aSet.Put( aBox );
1007 6 : aSet.Put( SwParaConnectBorderItem( false ) );
1008 6 : SetAllScriptItem( aSet, SvxFontHeightItem(120, 100, RES_CHRATR_FONTSIZE) );
1009 :
1010 12 : SvxULSpaceItem aUL( RES_UL_SPACE );
1011 : {
1012 : pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
1013 6 : RES_POOLCOLL_TEXT ));
1014 6 : aUL = pNewColl->GetULSpace();
1015 : }
1016 6 : aUL.SetLower( HTML_PARSPACE );
1017 6 : aSet.Put( aUL);
1018 12 : SwFmtLineNumber aLN; aLN.SetCountLines( false );
1019 12 : aSet.Put( aLN );
1020 : }
1021 6 : break;
1022 :
1023 : case RES_POOLCOLL_HTML_DD:
1024 : {
1025 14 : SvxLRSpaceItem aLR( RES_LR_SPACE );
1026 14 : aLR = pNewColl->GetLRSpace();
1027 : // We indent by 1 cm. The IDs are always 2 away from each other!
1028 14 : aLR.SetLeft( GetMetricVal( CM_1 ));
1029 14 : aSet.Put( aLR );
1030 : }
1031 14 : break;
1032 : case RES_POOLCOLL_HTML_DT:
1033 : {
1034 0 : SvxLRSpaceItem aLR( RES_LR_SPACE );
1035 : {
1036 : pNewColl->SetNextTxtFmtColl( *GetTxtCollFromPool(
1037 0 : RES_POOLCOLL_HTML_DD ));
1038 0 : aLR = pNewColl->GetLRSpace();
1039 : }
1040 : // We indent by 0 cm. The IDs are always 2 away from each other!
1041 0 : aLR.SetLeft( 0 );
1042 0 : aSet.Put( aLR );
1043 : }
1044 0 : break;
1045 : }
1046 : }
1047 :
1048 41668 : if( aSet.Count() )
1049 : {
1050 : {
1051 21878 : pNewColl->SetFmtAttr( aSet );
1052 : }
1053 : }
1054 83336 : return pNewColl;
1055 : }
1056 :
1057 : /// Return the AutomaticFormat with the supplied Id. If it doesn't
1058 : /// exist, create it.
1059 39077 : SwFmt* DocumentStylePoolManager::GetFmtFromPool( sal_uInt16 nId )
1060 : {
1061 39077 : SwFmt *pNewFmt = 0;
1062 39077 : SwFmt *pDeriveFmt = 0;
1063 :
1064 : SwFmtsBase* pArray[ 2 ];
1065 39077 : sal_uInt16 nArrCnt = 1, nRCId = 0;
1066 39077 : sal_uInt16* pWhichRange = 0;
1067 :
1068 39077 : switch( nId & (COLL_GET_RANGE_BITS + POOLGRP_NOCOLLID) )
1069 : {
1070 : case POOLGRP_CHARFMT:
1071 : {
1072 32689 : pArray[0] = m_rSwdoc.GetCharFmts();
1073 32689 : pDeriveFmt = m_rSwdoc.GetDfltCharFmt();
1074 :
1075 32689 : if( nId > RES_POOLCHR_NORMAL_END )
1076 396 : nRCId = RC_POOLCHRFMT_HTML_BEGIN - RES_POOLCHR_HTML_BEGIN;
1077 : else
1078 32293 : nRCId = RC_POOLCHRFMT_BEGIN - RES_POOLCHR_BEGIN;
1079 32689 : pWhichRange = aCharFmtSetRange;
1080 :
1081 : // Fault: unknown Format, but a CharFormat
1082 : // -> return the first one
1083 32689 : if( RES_POOLCHR_BEGIN > nId || nId >= RES_POOLCHR_END )
1084 : {
1085 : OSL_ENSURE( false, "invalid Id" );
1086 0 : nId = RES_POOLCHR_BEGIN;
1087 : }
1088 : }
1089 32689 : break;
1090 : case POOLGRP_FRAMEFMT:
1091 : {
1092 6388 : pArray[0] = m_rSwdoc.GetFrmFmts();
1093 6388 : pArray[1] = m_rSwdoc.GetSpzFrmFmts();
1094 6388 : pDeriveFmt = m_rSwdoc.GetDfltFrmFmt();
1095 6388 : nArrCnt = 2;
1096 6388 : nRCId = RC_POOLFRMFMT_BEGIN - RES_POOLFRM_BEGIN;
1097 6388 : pWhichRange = aFrmFmtSetRange;
1098 :
1099 : // Fault: unknown Format, but a FrameFormat
1100 : // -> return the first one
1101 6388 : if( RES_POOLFRM_BEGIN > nId || nId >= RES_POOLFRM_END )
1102 : {
1103 : OSL_ENSURE( false, "invalid Id" );
1104 0 : nId = RES_POOLFRM_BEGIN;
1105 : }
1106 : }
1107 6388 : break;
1108 :
1109 : default:
1110 : // Fault, unknown Format
1111 : OSL_ENSURE( nId, "invalid Id" );
1112 0 : return 0;
1113 : }
1114 : OSL_ENSURE( nRCId, "invalid Id" );
1115 :
1116 89312 : while( nArrCnt-- )
1117 354066 : for( sal_uInt16 n = 0; n < (*pArray[nArrCnt]).GetFmtCount(); ++n )
1118 685816 : if( nId == ( pNewFmt = (*pArray[ nArrCnt ] ).GetFmt( n ) )->
1119 342908 : GetPoolFmtId() )
1120 : {
1121 34307 : return pNewFmt;
1122 : }
1123 :
1124 4770 : ResId aResId( nRCId + nId, *pSwResMgr );
1125 4770 : OUString aNm( aResId );
1126 9540 : SwAttrSet aSet( m_rSwdoc.GetAttrPool(), pWhichRange );
1127 :
1128 : {
1129 4770 : bool bIsModified = m_rSwdoc.getIDocumentState().IsModified();
1130 :
1131 : {
1132 4770 : ::sw::UndoGuard const undoGuard(m_rSwdoc.GetIDocumentUndoRedo());
1133 4770 : switch (nId & (COLL_GET_RANGE_BITS + POOLGRP_NOCOLLID) )
1134 : {
1135 : case POOLGRP_CHARFMT:
1136 2094 : pNewFmt = m_rSwdoc._MakeCharFmt(aNm, pDeriveFmt, false, true);
1137 2094 : break;
1138 : case POOLGRP_FRAMEFMT:
1139 2676 : pNewFmt = m_rSwdoc._MakeFrmFmt(aNm, pDeriveFmt, false, true);
1140 2676 : break;
1141 : default:
1142 0 : break;
1143 4770 : }
1144 : }
1145 :
1146 4770 : if( !bIsModified )
1147 1076 : m_rSwdoc.getIDocumentState().ResetModified();
1148 4770 : pNewFmt->SetPoolFmtId( nId );
1149 4770 : pNewFmt->SetAuto( false ); // no AutoFormat
1150 : }
1151 :
1152 4770 : switch( nId )
1153 : {
1154 : case RES_POOLCHR_FOOTNOTE: // Footnote
1155 : case RES_POOLCHR_PAGENO: // Page/Field
1156 : case RES_POOLCHR_LABEL: // Label
1157 : case RES_POOLCHR_DROPCAPS: // Dropcaps
1158 : case RES_POOLCHR_NUM_LEVEL: // Numbering level
1159 : case RES_POOLCHR_TOXJUMP: // Table of contents jump
1160 : case RES_POOLCHR_ENDNOTE: // Endnote
1161 : case RES_POOLCHR_LINENUM: // Line numbering
1162 570 : break;
1163 :
1164 : case RES_POOLCHR_ENDNOTE_ANCHOR: // Endnote anchor
1165 : case RES_POOLCHR_FOOTNOTE_ANCHOR: // Footnote anchor
1166 : {
1167 180 : aSet.Put( SvxEscapementItem( DFLT_ESC_AUTO_SUPER, 58, RES_CHRATR_ESCAPEMENT ) );
1168 : }
1169 180 : break;
1170 :
1171 : case RES_POOLCHR_BUL_LEVEL: // Bullet character
1172 : {
1173 38 : const vcl::Font& rBulletFont = numfunc::GetDefBulletFont();
1174 : SetAllScriptItem( aSet, SvxFontItem( rBulletFont.GetFamily(),
1175 38 : rBulletFont.GetName(), rBulletFont.GetStyleName(),
1176 76 : rBulletFont.GetPitch(), rBulletFont.GetCharSet(), RES_CHRATR_FONT ));
1177 : }
1178 38 : break;
1179 :
1180 : case RES_POOLCHR_INET_NORMAL:
1181 : {
1182 806 : Color aCol( COL_BLUE );
1183 806 : aSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
1184 806 : aSet.Put( SvxUnderlineItem( UNDERLINE_SINGLE, RES_CHRATR_UNDERLINE ) );
1185 : // i40133: patch submitted by rail: set language to 'none' to prevent spell checking:
1186 806 : aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_LANGUAGE ) );
1187 806 : aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CJK_LANGUAGE ) );
1188 806 : aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CTL_LANGUAGE ) );
1189 : }
1190 806 : break;
1191 : case RES_POOLCHR_INET_VISIT:
1192 : {
1193 62 : Color aCol( COL_RED );
1194 62 : aSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
1195 62 : aSet.Put( SvxUnderlineItem( UNDERLINE_SINGLE, RES_CHRATR_UNDERLINE ) );
1196 62 : aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_LANGUAGE ) );
1197 62 : aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CJK_LANGUAGE ) );
1198 62 : aSet.Put( SvxLanguageItem( LANGUAGE_NONE, RES_CHRATR_CTL_LANGUAGE ) );
1199 : }
1200 62 : break;
1201 : case RES_POOLCHR_JUMPEDIT:
1202 : {
1203 32 : Color aCol( COL_CYAN );
1204 32 : aSet.Put( SvxColorItem( aCol, RES_CHRATR_COLOR ) );
1205 32 : aSet.Put( SvxUnderlineItem( UNDERLINE_DOTTED, RES_CHRATR_UNDERLINE ) );
1206 32 : aSet.Put( SvxCaseMapItem( SVX_CASEMAP_KAPITAELCHEN, RES_CHRATR_CASEMAP ) );
1207 : }
1208 32 : break;
1209 :
1210 : case RES_POOLCHR_RUBYTEXT:
1211 : {
1212 : long nH = ((SvxFontHeightItem*)GetDfltAttr(
1213 58 : RES_CHRATR_CJK_FONTSIZE ))->GetHeight() / 2;
1214 58 : SetAllScriptItem( aSet, SvxFontHeightItem( nH, 100, RES_CHRATR_FONTSIZE));
1215 58 : aSet.Put(SvxUnderlineItem( UNDERLINE_NONE, RES_CHRATR_UNDERLINE ));
1216 58 : aSet.Put(SvxEmphasisMarkItem( EMPHASISMARK_NONE, RES_CHRATR_EMPHASIS_MARK) );
1217 : }
1218 58 : break;
1219 :
1220 : case RES_POOLCHR_HTML_EMPHASIS:
1221 : case RES_POOLCHR_HTML_CITIATION:
1222 : case RES_POOLCHR_HTML_VARIABLE:
1223 : {
1224 270 : SetAllScriptItem( aSet, SvxPostureItem( ITALIC_NORMAL, RES_CHRATR_POSTURE) );
1225 : }
1226 270 : break;
1227 :
1228 : case RES_POOLCHR_IDX_MAIN_ENTRY:
1229 : case RES_POOLCHR_HTML_STRONG:
1230 : {
1231 26 : SetAllScriptItem( aSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ));
1232 : }
1233 26 : break;
1234 :
1235 : case RES_POOLCHR_HTML_CODE:
1236 : case RES_POOLCHR_HTML_SAMPLE:
1237 : case RES_POOLCHR_HTML_KEYBOARD:
1238 : case RES_POOLCHR_HTML_TELETYPE:
1239 : {
1240 34 : ::lcl_SetDfltFont( DEFAULTFONT_FIXED, aSet );
1241 : }
1242 34 : break;
1243 : case RES_POOLCHR_VERT_NUM:
1244 6 : aSet.Put( SvxCharRotateItem( 900, false, RES_CHRATR_ROTATE ) );
1245 6 : break;
1246 :
1247 : case RES_POOLFRM_FRAME:
1248 : {
1249 1390 : if ( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
1250 : {
1251 2 : aSet.Put( SwFmtAnchor( FLY_AS_CHAR ));
1252 2 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::LINE_CENTER, text::RelOrientation::PRINT_AREA ) );
1253 2 : aSet.Put( SwFmtSurround( SURROUND_NONE ) );
1254 : }
1255 : else
1256 : {
1257 1388 : aSet.Put( SwFmtAnchor( FLY_AT_PARA ));
1258 1388 : aSet.Put( SwFmtSurround( SURROUND_PARALLEL ) );
1259 1388 : aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::PRINT_AREA ) );
1260 1388 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::PRINT_AREA ) );
1261 1388 : Color aCol( COL_BLACK );
1262 1388 : SvxBorderLine aLine( &aCol, DEF_LINE_WIDTH_0 );
1263 1388 : SvxBoxItem aBox( RES_BOX );
1264 1388 : aBox.SetLine( &aLine, BOX_LINE_TOP );
1265 1388 : aBox.SetLine( &aLine, BOX_LINE_BOTTOM );
1266 1388 : aBox.SetLine( &aLine, BOX_LINE_LEFT );
1267 1388 : aBox.SetLine( &aLine, BOX_LINE_RIGHT );
1268 1388 : aBox.SetDistance( 85 );
1269 1388 : aSet.Put( aBox );
1270 1388 : aSet.Put( SvxLRSpaceItem( 114, 114, 0, 0, RES_LR_SPACE ) );
1271 1388 : aSet.Put( SvxULSpaceItem( 114, 114, RES_UL_SPACE ) );
1272 : }
1273 :
1274 : //UUUU for styles of FlyFrames do not set the FillStyle to make it a derived attribute
1275 1390 : aSet.ClearItem(XATTR_FILLSTYLE);
1276 : }
1277 1390 : break;
1278 : case RES_POOLFRM_GRAPHIC:
1279 : case RES_POOLFRM_OLE:
1280 : {
1281 1056 : aSet.Put( SwFmtAnchor( FLY_AT_PARA ));
1282 1056 : aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::FRAME ));
1283 1056 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ));
1284 1056 : aSet.Put( SwFmtSurround( SURROUND_IDEAL ));
1285 : }
1286 1056 : break;
1287 : case RES_POOLFRM_FORMEL:
1288 : {
1289 226 : aSet.Put( SwFmtAnchor( FLY_AS_CHAR ) );
1290 226 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::CHAR_CENTER, text::RelOrientation::FRAME ) );
1291 226 : aSet.Put( SvxLRSpaceItem( 114, 114, 0, 0, RES_LR_SPACE ) );
1292 : }
1293 226 : break;
1294 : case RES_POOLFRM_MARGINAL:
1295 : {
1296 0 : aSet.Put( SwFmtAnchor( FLY_AT_PARA ));
1297 0 : aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::LEFT, text::RelOrientation::FRAME ));
1298 0 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ));
1299 0 : aSet.Put( SwFmtSurround( SURROUND_PARALLEL ));
1300 : // Set the default width to 3.5 cm, use the minimum value for the height
1301 : aSet.Put( SwFmtFrmSize( ATT_MIN_SIZE,
1302 0 : GetMetricVal( CM_1 ) * 3 + GetMetricVal( CM_05 ),
1303 0 : MM50 ));
1304 : }
1305 0 : break;
1306 : case RES_POOLFRM_WATERSIGN:
1307 : {
1308 2 : aSet.Put( SwFmtAnchor( FLY_AT_PAGE ));
1309 2 : aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::FRAME ));
1310 2 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::CENTER, text::RelOrientation::FRAME ));
1311 2 : aSet.Put( SvxOpaqueItem( sal_False ));
1312 2 : aSet.Put( SwFmtSurround( SURROUND_THROUGHT ));
1313 : }
1314 2 : break;
1315 : case RES_POOLFRM_LABEL:
1316 : {
1317 2 : aSet.Put( SwFmtAnchor( FLY_AS_CHAR ) );
1318 2 : aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ) );
1319 2 : aSet.Put( SvxLRSpaceItem( 114, 114, 0, 0, RES_LR_SPACE ) );
1320 :
1321 2 : SvxProtectItem aProtect( RES_PROTECT );
1322 2 : aProtect.SetSizeProtect( true );
1323 2 : aProtect.SetPosProtect( true );
1324 2 : aSet.Put( aProtect );
1325 :
1326 2 : pNewFmt->SetAutoUpdateFmt( true );
1327 : }
1328 2 : break;
1329 : }
1330 4770 : if( aSet.Count() )
1331 : {
1332 : {
1333 4188 : pNewFmt->SetFmtAttr( aSet );
1334 : }
1335 : }
1336 9540 : return pNewFmt;
1337 : }
1338 :
1339 6388 : SwFrmFmt* DocumentStylePoolManager::GetFrmFmtFromPool( sal_uInt16 nId )
1340 : {
1341 6388 : return (SwFrmFmt*)GetFmtFromPool( nId );
1342 : }
1343 :
1344 32681 : SwCharFmt* DocumentStylePoolManager::GetCharFmtFromPool( sal_uInt16 nId )
1345 : {
1346 32681 : return (SwCharFmt*)GetFmtFromPool( nId );
1347 : }
1348 :
1349 130176 : SwPageDesc* DocumentStylePoolManager::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage )
1350 : {
1351 : OSL_ENSURE( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END,
1352 : "Wrong AutoFormat Id" );
1353 :
1354 131418 : for( sal_uInt16 n = 0; n < m_rSwdoc.GetPageDescCnt(); ++n )
1355 : {
1356 125570 : if ( nId == m_rSwdoc.GetPageDesc(n).GetPoolFmtId() )
1357 : {
1358 124328 : return &m_rSwdoc.GetPageDesc(n);
1359 : }
1360 : }
1361 :
1362 5848 : if( RES_POOLPAGE_BEGIN > nId || nId >= RES_POOLPAGE_END )
1363 : {
1364 : // unknown page pool ID
1365 : OSL_ENSURE( false, "<SwDoc::GetPageDescFromPool(..)> - unknown page pool ID" );
1366 0 : nId = RES_POOLPAGE_BEGIN;
1367 : }
1368 :
1369 5848 : SwPageDesc* pNewPgDsc = 0;
1370 : {
1371 5848 : const ResId aResId( sal_uInt32(RC_POOLPAGEDESC_BEGIN + nId - RES_POOLPAGE_BEGIN), *pSwResMgr );
1372 5848 : const OUString aNm( aResId );
1373 5848 : const bool bIsModified = m_rSwdoc.getIDocumentState().IsModified();
1374 :
1375 : {
1376 5848 : ::sw::UndoGuard const undoGuard(m_rSwdoc.GetIDocumentUndoRedo());
1377 5848 : pNewPgDsc = m_rSwdoc.MakePageDesc(aNm, 0, bRegardLanguage);
1378 : }
1379 :
1380 5848 : pNewPgDsc->SetPoolFmtId( nId );
1381 5848 : if ( !bIsModified )
1382 : {
1383 5068 : m_rSwdoc.getIDocumentState().ResetModified();
1384 5848 : }
1385 : }
1386 :
1387 5848 : SvxLRSpaceItem aLR( RES_LR_SPACE );
1388 : {
1389 5848 : aLR.SetLeft( GetMetricVal( CM_1 ) * 2 );
1390 5848 : aLR.SetRight( aLR.GetLeft() );
1391 : }
1392 11696 : SvxULSpaceItem aUL( RES_UL_SPACE );
1393 : {
1394 5848 : aUL.SetUpper( (sal_uInt16)aLR.GetLeft() );
1395 5848 : aUL.SetLower( (sal_uInt16)aLR.GetLeft() );
1396 : }
1397 :
1398 11696 : SwAttrSet aSet( m_rSwdoc.GetAttrPool(), aPgFrmFmtSetRange );
1399 5848 : bool bSetLeft = true;
1400 :
1401 5848 : switch( nId )
1402 : {
1403 : case RES_POOLPAGE_STANDARD: // "Default"
1404 : {
1405 5090 : aSet.Put( aLR );
1406 5090 : aSet.Put( aUL );
1407 5090 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL | nsUseOnPage::PD_FIRSTSHARE );
1408 : }
1409 5090 : break;
1410 :
1411 : case RES_POOLPAGE_FIRST: // "First Page"
1412 : case RES_POOLPAGE_REGISTER: // "Index"
1413 : {
1414 552 : lcl_PutStdPageSizeIntoItemSet( &m_rSwdoc, aSet );
1415 552 : aSet.Put( aLR );
1416 552 : aSet.Put( aUL );
1417 552 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1418 552 : if( RES_POOLPAGE_FIRST == nId )
1419 548 : pNewPgDsc->SetFollow( GetPageDescFromPool( RES_POOLPAGE_STANDARD ));
1420 : }
1421 552 : break;
1422 :
1423 : case RES_POOLPAGE_LEFT: // "Left Page"
1424 : {
1425 8 : lcl_PutStdPageSizeIntoItemSet( &m_rSwdoc, aSet );
1426 8 : aSet.Put( aLR );
1427 8 : aSet.Put( aUL );
1428 8 : bSetLeft = false;
1429 8 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_LEFT );
1430 : // this relies on GetPageDescFromPool() not going into infinite recursion
1431 : // (by this point RES_POOLPAGE_LEFT will not reach this place again)
1432 8 : pNewPgDsc->SetFollow( GetPageDescFromPool( RES_POOLPAGE_RIGHT ));
1433 : }
1434 8 : break;
1435 : case RES_POOLPAGE_RIGHT: // "Right Page"
1436 : {
1437 8 : lcl_PutStdPageSizeIntoItemSet( &m_rSwdoc, aSet );
1438 8 : aSet.Put( aLR );
1439 8 : aSet.Put( aUL );
1440 8 : bSetLeft = false;
1441 8 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_RIGHT );
1442 8 : pNewPgDsc->SetFollow( GetPageDescFromPool( RES_POOLPAGE_LEFT ));
1443 : }
1444 8 : break;
1445 :
1446 : case RES_POOLPAGE_JAKET: // "Envelope"
1447 : {
1448 6 : Size aPSize( SvxPaperInfo::GetPaperSize( PAPER_ENV_C65 ) );
1449 6 : LandscapeSwap( aPSize );
1450 6 : aSet.Put( SwFmtFrmSize( ATT_FIX_SIZE, aPSize.Width(), aPSize.Height() ));
1451 6 : aLR.SetLeft( 0 ); aLR.SetRight( 0 );
1452 6 : aUL.SetUpper( 0 ); aUL.SetLower( 0 );
1453 6 : aSet.Put( aLR );
1454 6 : aSet.Put( aUL );
1455 :
1456 6 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1457 6 : pNewPgDsc->SetLandscape( true );
1458 : }
1459 6 : break;
1460 :
1461 : case RES_POOLPAGE_HTML: // "HTML"
1462 : {
1463 20 : lcl_PutStdPageSizeIntoItemSet( &m_rSwdoc, aSet );
1464 20 : aLR.SetRight( GetMetricVal( CM_1 ));
1465 20 : aUL.SetUpper( (sal_uInt16)aLR.GetRight() );
1466 20 : aUL.SetLower( (sal_uInt16)aLR.GetRight() );
1467 20 : aSet.Put( aLR );
1468 20 : aSet.Put( aUL );
1469 :
1470 20 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1471 : }
1472 20 : break;
1473 :
1474 : case RES_POOLPAGE_FOOTNOTE: // "Footnote"
1475 : case RES_POOLPAGE_ENDNOTE: // "Endnote"
1476 : {
1477 160 : lcl_PutStdPageSizeIntoItemSet( &m_rSwdoc, aSet );
1478 160 : aSet.Put( aLR );
1479 160 : aSet.Put( aUL );
1480 160 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1481 160 : SwPageFtnInfo aInf( pNewPgDsc->GetFtnInfo() );
1482 160 : aInf.SetLineWidth( 0 );
1483 160 : aInf.SetTopDist( 0 );
1484 160 : aInf.SetBottomDist( 0 );
1485 160 : pNewPgDsc->SetFtnInfo( aInf );
1486 : }
1487 160 : break;
1488 :
1489 : case RES_POOLPAGE_LANDSCAPE: // "Landscape"
1490 : {
1491 4 : SwPageDesc* pStdPgDsc = GetPageDescFromPool( RES_POOLPAGE_STANDARD );
1492 4 : SwFmtFrmSize aFrmSz( pStdPgDsc->GetMaster().GetFrmSize() );
1493 4 : if ( !pStdPgDsc->GetLandscape() )
1494 : {
1495 4 : const SwTwips nTmp = aFrmSz.GetHeight();
1496 4 : aFrmSz.SetHeight( aFrmSz.GetWidth() );
1497 4 : aFrmSz.SetWidth( nTmp );
1498 : }
1499 4 : aSet.Put( aFrmSz );
1500 4 : aSet.Put( aLR );
1501 4 : aSet.Put( aUL );
1502 4 : pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
1503 4 : pNewPgDsc->SetLandscape( true );
1504 : }
1505 4 : break;
1506 :
1507 : }
1508 :
1509 5848 : if( aSet.Count() )
1510 : {
1511 5848 : if( bSetLeft )
1512 : {
1513 5832 : pNewPgDsc->GetLeft().SetFmtAttr( aSet );
1514 5832 : pNewPgDsc->GetFirstLeft().SetFmtAttr( aSet );
1515 : }
1516 5848 : pNewPgDsc->GetMaster().SetFmtAttr( aSet );
1517 5848 : pNewPgDsc->GetFirstMaster().SetFmtAttr( aSet );
1518 : }
1519 11696 : return pNewPgDsc;
1520 : }
1521 :
1522 22 : SwNumRule* DocumentStylePoolManager::GetNumRuleFromPool( sal_uInt16 nId )
1523 : {
1524 : OSL_ENSURE( RES_POOLNUMRULE_BEGIN <= nId && nId < RES_POOLNUMRULE_END,
1525 : "Wrong AutoFormat Id" );
1526 :
1527 : SwNumRule* pNewRule;
1528 :
1529 58 : for (size_t n = 0; n < m_rSwdoc.GetNumRuleTbl().size(); ++n )
1530 : {
1531 36 : if (nId == ( pNewRule = m_rSwdoc.GetNumRuleTbl()[ n ] )->GetPoolFmtId())
1532 : {
1533 0 : return pNewRule;
1534 : }
1535 : }
1536 :
1537 : // error: unknown Pool style
1538 22 : if( RES_POOLNUMRULE_BEGIN > nId || nId >= RES_POOLNUMRULE_END )
1539 : {
1540 : OSL_ENSURE( false, "invalid Id" );
1541 0 : nId = RES_POOLNUMRULE_BEGIN;
1542 : }
1543 :
1544 22 : ResId aResId( sal_uInt32(RC_POOLNUMRULE_BEGIN + nId - RES_POOLNUMRULE_BEGIN), *pSwResMgr );
1545 22 : OUString aNm( aResId );
1546 :
1547 22 : SwCharFmt *pNumCFmt = 0, *pBullCFmt = 0;
1548 :
1549 : const SvxNumberFormat::SvxNumPositionAndSpaceMode eNumberFormatPositionAndSpaceMode
1550 22 : = numfunc::GetDefaultPositionAndSpaceMode(); //#i89178#
1551 : {
1552 22 : bool bIsModified = m_rSwdoc.getIDocumentState().IsModified();
1553 :
1554 22 : sal_uInt16 n = m_rSwdoc.MakeNumRule( aNm, 0, false, eNumberFormatPositionAndSpaceMode );
1555 :
1556 22 : pNewRule = m_rSwdoc.GetNumRuleTbl()[ n ];
1557 22 : pNewRule->SetPoolFmtId( nId );
1558 22 : pNewRule->SetAutoRule( false );
1559 :
1560 22 : if( RES_POOLNUMRULE_NUM1 <= nId && nId <= RES_POOLNUMRULE_NUM5 )
1561 14 : pNumCFmt = GetCharFmtFromPool( RES_POOLCHR_NUM_LEVEL );
1562 :
1563 22 : if( ( RES_POOLNUMRULE_BUL1 <= nId && nId <= RES_POOLNUMRULE_BUL5 ) ||
1564 : RES_POOLNUMRULE_NUM5 == nId )
1565 8 : pBullCFmt = GetCharFmtFromPool( RES_POOLCHR_NUM_LEVEL );
1566 :
1567 22 : if( !bIsModified )
1568 0 : m_rSwdoc.getIDocumentState().ResetModified();
1569 : }
1570 :
1571 22 : switch( nId )
1572 : {
1573 : case RES_POOLNUMRULE_NUM1:
1574 : {
1575 8 : SwNumFmt aFmt;
1576 8 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1577 8 : aFmt.SetNumberingType(SVX_NUM_ARABIC);
1578 8 : aFmt.SetCharFmt( pNumCFmt );
1579 8 : aFmt.SetStart( 1 );
1580 8 : aFmt.SetIncludeUpperLevels( 1 );
1581 8 : aFmt.SetSuffix( "." );
1582 :
1583 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1584 : {
1585 : // cm: 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0
1586 : 283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
1587 : };
1588 8 : const sal_uInt16* pArr = aAbsSpace;
1589 :
1590 8 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1591 : {
1592 0 : aFmt.SetFirstLineOffset( - (*pArr) );
1593 : }
1594 8 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1595 : {
1596 8 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1597 8 : aFmt.SetFirstLineIndent( - (*pArr) );
1598 : }
1599 :
1600 88 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n, ++pArr)
1601 : {
1602 80 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1603 : {
1604 0 : aFmt.SetAbsLSpace( *pArr );
1605 : }
1606 80 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1607 : {
1608 80 : aFmt.SetListtabPos( *pArr );
1609 80 : aFmt.SetIndentAt( *pArr );
1610 : }
1611 :
1612 80 : pNewRule->Set( n, aFmt );
1613 8 : }
1614 : }
1615 8 : break;
1616 :
1617 : case RES_POOLNUMRULE_NUM2:
1618 : {
1619 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1620 : {
1621 : 283, 283, 567, 709, // 0.50, 0.50, 1.00, 1.25
1622 : 850, 1021, 1304, 1474, // 1.50, 1.80, 2.30, 2.60
1623 : 1588, 1758 // 2.80, 3.10
1624 : };
1625 :
1626 4 : const sal_uInt16* pArr = aAbsSpace;
1627 4 : SwNumFmt aFmt;
1628 :
1629 4 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1630 4 : aFmt.SetNumberingType(SVX_NUM_ARABIC);
1631 4 : aFmt.SetCharFmt( pNumCFmt );
1632 4 : aFmt.SetIncludeUpperLevels( 1 );
1633 :
1634 4 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1635 : {
1636 4 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1637 : }
1638 :
1639 4 : sal_uInt16 nSpace = 0;
1640 44 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n)
1641 : {
1642 40 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1643 : {
1644 0 : aFmt.SetAbsLSpace( nSpace = nSpace + pArr[ n ] );
1645 0 : aFmt.SetFirstLineOffset( - pArr[ n ] );
1646 : }
1647 40 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1648 : {
1649 40 : aFmt.SetListtabPos( nSpace = nSpace + pArr[ n ] );
1650 40 : aFmt.SetIndentAt( nSpace );
1651 40 : aFmt.SetFirstLineIndent( - pArr[ n ] );
1652 : }
1653 :
1654 40 : aFmt.SetStart( n+1 );
1655 40 : pNewRule->Set( n, aFmt );
1656 4 : }
1657 : }
1658 4 : break;
1659 : case RES_POOLNUMRULE_NUM3:
1660 : {
1661 2 : SwNumFmt aFmt;
1662 :
1663 2 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1664 2 : aFmt.SetNumberingType(SVX_NUM_ARABIC);
1665 2 : aFmt.SetCharFmt( pNumCFmt );
1666 2 : aFmt.SetIncludeUpperLevels( 1 );
1667 :
1668 2 : sal_uInt16 nOffs = GetMetricVal( CM_1 ) * 3;
1669 :
1670 2 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1671 : {
1672 0 : aFmt.SetFirstLineOffset( - nOffs );
1673 : }
1674 2 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1675 : {
1676 2 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1677 2 : aFmt.SetFirstLineIndent( - nOffs );
1678 : }
1679 :
1680 22 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n)
1681 : {
1682 20 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1683 : {
1684 0 : aFmt.SetAbsLSpace( (n+1) * nOffs );
1685 : }
1686 20 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1687 : {
1688 20 : long nPos = (n+1) * static_cast<long>(nOffs);
1689 20 : aFmt.SetListtabPos(nPos);
1690 20 : aFmt.SetIndentAt(nPos);
1691 : }
1692 :
1693 20 : aFmt.SetStart( n+1 );
1694 20 : pNewRule->Set( n, aFmt );
1695 2 : }
1696 : }
1697 2 : break;
1698 : case RES_POOLNUMRULE_NUM4:
1699 : {
1700 0 : SwNumFmt aFmt;
1701 :
1702 0 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1703 0 : aFmt.SetNumberingType(SVX_NUM_ROMAN_UPPER);
1704 0 : aFmt.SetCharFmt( pNumCFmt );
1705 0 : aFmt.SetIncludeUpperLevels( 1 );
1706 0 : aFmt.SetSuffix( "." );
1707 :
1708 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1709 : {
1710 : // cm: 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0
1711 : 283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
1712 : };
1713 0 : const sal_uInt16* pArr = aAbsSpace;
1714 :
1715 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1716 : {
1717 0 : aFmt.SetFirstLineOffset( - (*pArr) );
1718 : }
1719 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1720 : {
1721 0 : aFmt.SetLabelFollowedBy( SvxNumberFormat::SPACE );
1722 0 : aFmt.SetFirstLineIndent( - (*pArr) );
1723 : }
1724 :
1725 0 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n, ++pArr)
1726 : {
1727 0 : aFmt.SetStart( n + 1 );
1728 :
1729 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1730 : {
1731 0 : aFmt.SetAbsLSpace( *pArr );
1732 : }
1733 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1734 : {
1735 0 : aFmt.SetListtabPos( *pArr );
1736 0 : aFmt.SetIndentAt( *pArr );
1737 : }
1738 :
1739 0 : pNewRule->Set( n, aFmt );
1740 0 : }
1741 : }
1742 0 : break;
1743 : case RES_POOLNUMRULE_NUM5:
1744 : {
1745 : // [ First, LSpace ]
1746 : static const sal_uInt16 aAbsSpace0to2[] =
1747 : {
1748 : 227, 227, // 0.40, 0.40,
1749 : 369, 624, // 0.65, 1.10,
1750 : 255, 879 // 0.45, 1.55
1751 : };
1752 :
1753 0 : const sal_uInt16* pArr0to2 = aAbsSpace0to2;
1754 0 : SwNumFmt aFmt;
1755 :
1756 0 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1757 0 : aFmt.SetNumberingType(SVX_NUM_ARABIC);
1758 0 : aFmt.SetStart( 1 );
1759 0 : aFmt.SetIncludeUpperLevels( 1 );
1760 0 : aFmt.SetSuffix( "." );
1761 :
1762 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1763 : {
1764 0 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1765 : }
1766 :
1767 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1768 : {
1769 0 : aFmt.SetFirstLineOffset( -pArr0to2[0] ); // == 0.40 cm
1770 0 : aFmt.SetAbsLSpace( pArr0to2[1] ); // == 0.40 cm
1771 : }
1772 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1773 : {
1774 0 : aFmt.SetFirstLineIndent( -pArr0to2[0] );
1775 0 : aFmt.SetListtabPos( pArr0to2[1] );
1776 0 : aFmt.SetIndentAt( pArr0to2[1] );
1777 : }
1778 :
1779 0 : aFmt.SetCharFmt( pNumCFmt );
1780 0 : pNewRule->Set( 0, aFmt );
1781 :
1782 0 : aFmt.SetIncludeUpperLevels( 2 );
1783 0 : aFmt.SetStart( 2 );
1784 :
1785 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1786 : {
1787 0 : aFmt.SetFirstLineOffset( -pArr0to2[2] ); // == 0.65 cm
1788 0 : aFmt.SetAbsLSpace( pArr0to2[3] ); // == 1.10 cm
1789 : }
1790 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1791 : {
1792 0 : aFmt.SetFirstLineIndent( -pArr0to2[2] );
1793 0 : aFmt.SetListtabPos( pArr0to2[3] );
1794 0 : aFmt.SetIndentAt( pArr0to2[3] );
1795 : }
1796 :
1797 0 : pNewRule->Set( 1, aFmt );
1798 :
1799 0 : aFmt.SetNumberingType(SVX_NUM_CHARS_LOWER_LETTER);
1800 0 : aFmt.SetSuffix(OUString(static_cast<sal_Unicode>(')')));
1801 0 : aFmt.SetIncludeUpperLevels( 1 );
1802 0 : aFmt.SetStart( 3 );
1803 :
1804 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1805 : {
1806 0 : aFmt.SetFirstLineOffset( - pArr0to2[4] ); // == 0.45cm
1807 0 : aFmt.SetAbsLSpace( pArr0to2[5] ); // == 1.55 cm
1808 : }
1809 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1810 : {
1811 0 : aFmt.SetFirstLineIndent( -pArr0to2[4] );
1812 0 : aFmt.SetListtabPos( pArr0to2[5] );
1813 0 : aFmt.SetIndentAt( pArr0to2[5] );
1814 : }
1815 :
1816 0 : pNewRule->Set( 2, aFmt );
1817 :
1818 0 : aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
1819 0 : aFmt.SetCharFmt( pBullCFmt );
1820 0 : aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
1821 0 : aFmt.SetBulletChar( cBulletChar );
1822 0 : sal_Int16 nOffs = GetMetricVal( CM_01 ) * 4,
1823 0 : nOffs2 = GetMetricVal( CM_1 ) * 2;
1824 :
1825 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1826 : {
1827 0 : aFmt.SetFirstLineOffset( - nOffs );
1828 : }
1829 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1830 : {
1831 0 : aFmt.SetFirstLineIndent( - nOffs );
1832 : }
1833 :
1834 0 : aFmt.SetSuffix( OUString() );
1835 0 : for (sal_uInt16 n = 3; n < MAXLEVEL; ++n)
1836 : {
1837 0 : aFmt.SetStart( n+1 );
1838 :
1839 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1840 : {
1841 0 : aFmt.SetAbsLSpace( nOffs2 + ((n-3) * nOffs) );
1842 : }
1843 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1844 : {
1845 0 : long nPos = nOffs2 + ((n-3) * static_cast<long>(nOffs));
1846 0 : aFmt.SetListtabPos(nPos);
1847 0 : aFmt.SetIndentAt(nPos);
1848 : }
1849 :
1850 0 : pNewRule->Set( n, aFmt );
1851 0 : }
1852 : }
1853 0 : break;
1854 :
1855 : case RES_POOLNUMRULE_BUL1:
1856 : {
1857 8 : SwNumFmt aFmt;
1858 :
1859 8 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1860 8 : aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
1861 8 : aFmt.SetCharFmt( pBullCFmt );
1862 8 : aFmt.SetStart( 1 );
1863 8 : aFmt.SetIncludeUpperLevels( 1 );
1864 8 : aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
1865 8 : aFmt.SetBulletChar( cBulletChar );
1866 :
1867 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1868 : {
1869 : // cm: 0,4 0,8 1,2 1,6 2,0 2,4 2,8 3,2 3,6 4,0
1870 : 227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
1871 : };
1872 8 : const sal_uInt16* pArr = aAbsSpace;
1873 :
1874 8 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1875 : {
1876 0 : aFmt.SetFirstLineOffset( - (*pArr) );
1877 : }
1878 8 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1879 : {
1880 8 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1881 8 : aFmt.SetFirstLineIndent( - (*pArr) );
1882 : }
1883 :
1884 88 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n, ++pArr)
1885 : {
1886 80 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1887 : {
1888 0 : aFmt.SetAbsLSpace( *pArr );
1889 : }
1890 80 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1891 : {
1892 80 : aFmt.SetListtabPos( *pArr );
1893 80 : aFmt.SetIndentAt( *pArr );
1894 : }
1895 :
1896 80 : pNewRule->Set( n, aFmt );
1897 8 : }
1898 : }
1899 8 : break;
1900 : case RES_POOLNUMRULE_BUL2:
1901 : {
1902 0 : SwNumFmt aFmt;
1903 :
1904 0 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1905 0 : aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
1906 0 : aFmt.SetCharFmt( pBullCFmt );
1907 0 : aFmt.SetStart( 1 );
1908 0 : aFmt.SetIncludeUpperLevels( 1 );
1909 0 : aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
1910 0 : aFmt.SetBulletChar( 0x2013 );
1911 :
1912 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
1913 : {
1914 : // cm: 0,3 0,6 0,9 1,2 1,5 1,8 2,1 2,4 2,7 3,0
1915 : 170, 340, 510, 680, 850, 1020, 1191, 1361, 1531, 1701
1916 : };
1917 0 : const sal_uInt16* pArr = aAbsSpace;
1918 :
1919 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1920 : {
1921 0 : aFmt.SetFirstLineOffset( - (*pArr) );
1922 : }
1923 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1924 : {
1925 0 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1926 0 : aFmt.SetFirstLineIndent( - (*pArr) );
1927 : }
1928 :
1929 0 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n, ++pArr)
1930 : {
1931 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1932 : {
1933 0 : aFmt.SetAbsLSpace( *pArr );
1934 : }
1935 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1936 : {
1937 0 : aFmt.SetListtabPos( *pArr );
1938 0 : aFmt.SetIndentAt( *pArr );
1939 : }
1940 :
1941 0 : pNewRule->Set( n, aFmt );
1942 0 : }
1943 : }
1944 0 : break;
1945 : case RES_POOLNUMRULE_BUL3:
1946 : {
1947 0 : SwNumFmt aFmt;
1948 :
1949 0 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1950 :
1951 0 : aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
1952 0 : aFmt.SetCharFmt( pBullCFmt );
1953 0 : aFmt.SetStart( 1 );
1954 0 : aFmt.SetIncludeUpperLevels( 1 );
1955 0 : aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
1956 :
1957 0 : sal_uInt16 nOffs = GetMetricVal( CM_01 ) * 4;
1958 :
1959 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1960 : {
1961 0 : aFmt.SetFirstLineOffset( - nOffs );
1962 : }
1963 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1964 : {
1965 0 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
1966 0 : aFmt.SetFirstLineIndent( - nOffs );
1967 : }
1968 :
1969 0 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n)
1970 : {
1971 0 : aFmt.SetBulletChar( ( n & 1 ? 0x25a1 : 0x2611 ) );
1972 :
1973 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1974 : {
1975 0 : aFmt.SetAbsLSpace( ((n & 1) +1) * nOffs );
1976 : }
1977 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
1978 : {
1979 0 : long nPos = ((n & 1) +1) * static_cast<long>(nOffs);
1980 0 : aFmt.SetListtabPos(nPos);
1981 0 : aFmt.SetIndentAt(nPos);
1982 : }
1983 :
1984 0 : pNewRule->Set( n, aFmt );
1985 0 : }
1986 : }
1987 0 : break;
1988 : case RES_POOLNUMRULE_BUL4:
1989 : {
1990 0 : SwNumFmt aFmt;
1991 :
1992 0 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
1993 0 : aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
1994 0 : aFmt.SetCharFmt( pBullCFmt );
1995 0 : aFmt.SetStart( 1 );
1996 0 : aFmt.SetIncludeUpperLevels( 1 );
1997 0 : aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
1998 :
1999 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
2000 : {
2001 : // cm: 0,4 0,8 1,2 1,6 2,0 2,4 2,8 3,2 3,6 4,0
2002 : 227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2003 : };
2004 :
2005 0 : const sal_uInt16* pArr = aAbsSpace;
2006 :
2007 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2008 : {
2009 0 : aFmt.SetFirstLineOffset( - (*pArr) );
2010 : }
2011 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2012 : {
2013 0 : aFmt.SetLabelFollowedBy( SvxNumberFormat::SPACE );
2014 0 : aFmt.SetFirstLineIndent( - (*pArr) );
2015 : }
2016 :
2017 0 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n, ++pArr)
2018 : {
2019 0 : switch( n )
2020 : {
2021 0 : case 0: aFmt.SetBulletChar( 0x27a2 ); break;
2022 0 : case 1: aFmt.SetBulletChar( 0xE006 ); break;
2023 0 : default: aFmt.SetBulletChar( 0xE004 ); break;
2024 : }
2025 :
2026 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2027 : {
2028 0 : aFmt.SetAbsLSpace( *pArr );
2029 : }
2030 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2031 : {
2032 0 : aFmt.SetListtabPos( *pArr );
2033 0 : aFmt.SetIndentAt( *pArr );
2034 : }
2035 :
2036 0 : pNewRule->Set( n, aFmt );
2037 0 : }
2038 : }
2039 0 : break;
2040 : case RES_POOLNUMRULE_BUL5:
2041 : {
2042 0 : SwNumFmt aFmt;
2043 :
2044 0 : aFmt.SetPositionAndSpaceMode( eNumberFormatPositionAndSpaceMode );
2045 0 : aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL);
2046 0 : aFmt.SetCharFmt( pBullCFmt );
2047 0 : aFmt.SetStart( 1 );
2048 0 : aFmt.SetIncludeUpperLevels( 1 );
2049 0 : aFmt.SetBulletChar( 0x2717 );
2050 0 : aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
2051 :
2052 : static const sal_uInt16 aAbsSpace[ MAXLEVEL ] =
2053 : {
2054 : // cm: 0,4 0,8 1,2 1,6 2,0 2,4 2,8 3,2 3,6 4,0
2055 : 227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
2056 : };
2057 0 : const sal_uInt16* pArr = aAbsSpace;
2058 :
2059 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2060 : {
2061 0 : aFmt.SetFirstLineOffset( - (*pArr) );
2062 : }
2063 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2064 : {
2065 0 : aFmt.SetLabelFollowedBy( SvxNumberFormat::LISTTAB );
2066 0 : aFmt.SetFirstLineIndent( - (*pArr) );
2067 : }
2068 :
2069 0 : for (sal_uInt16 n = 0; n < MAXLEVEL; ++n, ++pArr)
2070 : {
2071 0 : if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
2072 : {
2073 0 : aFmt.SetAbsLSpace( *pArr );
2074 : }
2075 0 : else if ( eNumberFormatPositionAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
2076 : {
2077 0 : aFmt.SetListtabPos( *pArr );
2078 0 : aFmt.SetIndentAt( *pArr );
2079 : }
2080 :
2081 0 : pNewRule->Set( n, aFmt );
2082 0 : }
2083 : }
2084 0 : break;
2085 : }
2086 :
2087 22 : return pNewRule;
2088 : }
2089 :
2090 : /// Check if this AutoCollection is already/still in use in this Document
2091 217192 : bool DocumentStylePoolManager::IsPoolTxtCollUsed( sal_uInt16 nId ) const
2092 : {
2093 : OSL_ENSURE(
2094 : (RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END) ||
2095 : (RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END) ||
2096 : (RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END) ||
2097 : (RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END) ||
2098 : (RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END) ||
2099 : (RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END),
2100 : "Wrong AutoFormat Id" );
2101 :
2102 217192 : SwTxtFmtColl* pNewColl = 0;
2103 217192 : bool bFnd = false;
2104 1748110 : for( sal_uInt16 n = 0; !bFnd && n < m_rSwdoc.GetTxtFmtColls()->size(); ++n )
2105 : {
2106 1530918 : pNewColl = (*m_rSwdoc.GetTxtFmtColls())[ n ];
2107 1530918 : if( nId == pNewColl->GetPoolFmtId() )
2108 11170 : bFnd = true;
2109 : }
2110 :
2111 217192 : if( !bFnd || !pNewColl->GetDepends() )
2112 213404 : return false;
2113 :
2114 3788 : SwAutoFmtGetDocNode aGetHt( &m_rSwdoc.GetNodes() );
2115 3788 : return !pNewColl->GetInfo( aGetHt );
2116 : }
2117 :
2118 : /// Check if this AutoCollection is already/still in use
2119 36530 : bool DocumentStylePoolManager::IsPoolFmtUsed( sal_uInt16 nId ) const
2120 : {
2121 36530 : SwFmt *pNewFmt = 0;
2122 : const SwFmtsBase* pArray[ 2 ];
2123 36530 : sal_uInt16 nArrCnt = 1;
2124 36530 : bool bFnd = true;
2125 :
2126 36530 : if (RES_POOLCHR_BEGIN <= nId && nId < RES_POOLCHR_END)
2127 : {
2128 35984 : pArray[0] = m_rSwdoc.GetCharFmts();
2129 : }
2130 546 : else if (RES_POOLFRM_BEGIN <= nId && nId < RES_POOLFRM_END)
2131 : {
2132 546 : pArray[0] = m_rSwdoc.GetFrmFmts();
2133 546 : pArray[1] = m_rSwdoc.GetSpzFrmFmts();
2134 546 : nArrCnt = 2;
2135 : }
2136 : else
2137 : {
2138 : SAL_WARN("sw.core", "Invalid Pool Id: " << nId << " should be within "
2139 : "[" << int(RES_POOLCHR_BEGIN) << "," << int(RES_POOLCHR_END) << ") or "
2140 : "[" << int(RES_POOLFRM_BEGIN) << "," << int(RES_POOLFRM_END) << ")");
2141 0 : bFnd = false;
2142 : }
2143 :
2144 36530 : if( bFnd )
2145 : {
2146 36530 : bFnd = false;
2147 110136 : while( nArrCnt-- && !bFnd )
2148 1023273 : for( sal_uInt16 n = 0; !bFnd && n < (*pArray[nArrCnt]).GetFmtCount(); ++n )
2149 1972394 : if( nId == ( pNewFmt = (*pArray[ nArrCnt ] ).GetFmt( n ) )->
2150 986197 : GetPoolFmtId() )
2151 1827 : bFnd = true;
2152 : }
2153 :
2154 : // Not found or no dependencies?
2155 36530 : if( bFnd && pNewFmt->GetDepends() )
2156 : {
2157 : // Check if we have dependent ContentNodes in the Nodes array
2158 : // (also indirect ones for derived Formats)
2159 67 : SwAutoFmtGetDocNode aGetHt( &m_rSwdoc.GetNodes() );
2160 67 : bFnd = !pNewFmt->GetInfo( aGetHt );
2161 : }
2162 : else
2163 36463 : bFnd = false;
2164 :
2165 36530 : return bFnd;
2166 : }
2167 :
2168 : /// Check if this AutoCollection is already/still in use in this Document
2169 6080 : bool DocumentStylePoolManager::IsPoolPageDescUsed( sal_uInt16 nId ) const
2170 : {
2171 : OSL_ENSURE( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END,
2172 : "Wrong AutoFormat Id" );
2173 6080 : SwPageDesc *pNewPgDsc = 0;
2174 6080 : bool bFnd = false;
2175 30319 : for( sal_uInt16 n = 0; !bFnd && n < m_rSwdoc.GetPageDescCnt(); ++n )
2176 : {
2177 24239 : pNewPgDsc = &m_rSwdoc.GetPageDesc(n);
2178 24239 : if( nId == pNewPgDsc->GetPoolFmtId() )
2179 714 : bFnd = true;
2180 : }
2181 :
2182 : // Not found or no dependencies?
2183 6080 : if( !bFnd || !pNewPgDsc->GetDepends() ) // ??????
2184 5495 : return false;
2185 :
2186 : // Check if we have dependent ContentNodes in the Nodes array
2187 : // (also indirect ones for derived Formats)
2188 585 : SwAutoFmtGetDocNode aGetHt( &m_rSwdoc.GetNodes() );
2189 585 : return !pNewPgDsc->GetInfo( aGetHt );
2190 : }
2191 :
2192 10090 : DocumentStylePoolManager::~DocumentStylePoolManager()
2193 : {
2194 10090 : }
2195 :
2196 270 : }
2197 :
2198 :
2199 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|