Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : :
30 : : #include "scitems.hxx"
31 : : #include <comphelper/string.hxx>
32 : : #include <tools/shl.hxx>
33 : : #include <vcl/outdev.hxx>
34 : : #include <svl/aeitem.hxx>
35 : : #include <svl/itemiter.hxx>
36 : : #include <svx/algitem.hxx>
37 : : #include <editeng/boxitem.hxx>
38 : : #include <editeng/bolnitem.hxx>
39 : : #include <editeng/brshitem.hxx>
40 : : #include <editeng/charreliefitem.hxx>
41 : : #include <editeng/cntritem.hxx>
42 : : #include <editeng/colritem.hxx>
43 : : #include <editeng/crsditem.hxx>
44 : : #include <svx/dialmgr.hxx>
45 : : #include <editeng/emphitem.hxx>
46 : : #include <editeng/fhgtitem.hxx>
47 : : #include <editeng/fontitem.hxx>
48 : : #include <editeng/forbiddenruleitem.hxx>
49 : : #include <editeng/frmdiritem.hxx>
50 : : #include <editeng/hngpnctitem.hxx>
51 : : #include <editeng/itemtype.hxx>
52 : : #include <editeng/langitem.hxx>
53 : : #include <editeng/lrspitem.hxx>
54 : : #include <svx/pageitem.hxx>
55 : : #include <editeng/pbinitem.hxx>
56 : : #include <editeng/postitem.hxx>
57 : : #include <svx/rotmodit.hxx>
58 : : #include <editeng/scriptspaceitem.hxx>
59 : : #include <editeng/shaditem.hxx>
60 : : #include <editeng/shdditem.hxx>
61 : : #include <editeng/sizeitem.hxx>
62 : : #include <svx/svxitems.hrc>
63 : : #include <editeng/udlnitem.hxx>
64 : : #include <editeng/ulspitem.hxx>
65 : : #include <editeng/wghtitem.hxx>
66 : : #include <editeng/wrlmitem.hxx>
67 : : #include <editeng/xmlcnitm.hxx>
68 : : #include <editeng/justifyitem.hxx>
69 : :
70 : : #include "docpool.hxx"
71 : : #include "global.hxx"
72 : : #include "attrib.hxx"
73 : : #include "patattr.hxx"
74 : : #include "globstr.hrc"
75 : : #include "sc.hrc" // Slot-IDs
76 : :
77 : : #define SC_MAX_POOLREF (SFX_ITEMS_OLD_MAXREF - 39)
78 : : #define SC_SAFE_POOLREF (SC_MAX_POOLREF + 20)
79 : :
80 : : // STATIC DATA -----------------------------------------------------------
81 : :
82 : : sal_uInt16* ScDocumentPool::pVersionMap1 = 0;
83 : : sal_uInt16* ScDocumentPool::pVersionMap2 = 0;
84 : : sal_uInt16* ScDocumentPool::pVersionMap3 = 0;
85 : : sal_uInt16* ScDocumentPool::pVersionMap4 = 0;
86 : : sal_uInt16* ScDocumentPool::pVersionMap5 = 0;
87 : : sal_uInt16* ScDocumentPool::pVersionMap6 = 0;
88 : : sal_uInt16* ScDocumentPool::pVersionMap7 = 0;
89 : : sal_uInt16* ScDocumentPool::pVersionMap8 = 0;
90 : : sal_uInt16* ScDocumentPool::pVersionMap9 = 0;
91 : : sal_uInt16* ScDocumentPool::pVersionMap10 = 0;
92 : : sal_uInt16* ScDocumentPool::pVersionMap11 = 0;
93 : :
94 : : // ATTR_FONT_TWOLINES (not used) was changed to ATTR_USERDEF (not saved in binary format) in 641c
95 : :
96 : : static SfxItemInfo const aItemInfos[] =
97 : : {
98 : : { SID_ATTR_CHAR_FONT, SFX_ITEM_POOLABLE }, // ATTR_FONT
99 : : { SID_ATTR_CHAR_FONTHEIGHT, SFX_ITEM_POOLABLE }, // ATTR_FONT_HEIGHT
100 : : { SID_ATTR_CHAR_WEIGHT, SFX_ITEM_POOLABLE }, // ATTR_FONT_WEIGHT
101 : : { SID_ATTR_CHAR_POSTURE, SFX_ITEM_POOLABLE }, // ATTR_FONT_POSTURE
102 : : { SID_ATTR_CHAR_UNDERLINE, SFX_ITEM_POOLABLE }, // ATTR_FONT_UNDERLINE
103 : : { SID_ATTR_CHAR_OVERLINE, SFX_ITEM_POOLABLE }, // ATTR_FONT_OVERLINE
104 : : { SID_ATTR_CHAR_STRIKEOUT, SFX_ITEM_POOLABLE }, // ATTR_FONT_CROSSEDOUT
105 : : { SID_ATTR_CHAR_CONTOUR, SFX_ITEM_POOLABLE }, // ATTR_FONT_CONTOUR
106 : : { SID_ATTR_CHAR_SHADOWED, SFX_ITEM_POOLABLE }, // ATTR_FONT_SHADOWED
107 : : { SID_ATTR_CHAR_COLOR, SFX_ITEM_POOLABLE }, // ATTR_FONT_COLOR
108 : : { SID_ATTR_CHAR_LANGUAGE, SFX_ITEM_POOLABLE }, // ATTR_FONT_LANGUAGE
109 : : { SID_ATTR_CHAR_CJK_FONT, SFX_ITEM_POOLABLE }, // ATTR_CJK_FONT from 614
110 : : { SID_ATTR_CHAR_CJK_FONTHEIGHT, SFX_ITEM_POOLABLE }, // ATTR_CJK_FONT_HEIGHT from 614
111 : : { SID_ATTR_CHAR_CJK_WEIGHT, SFX_ITEM_POOLABLE }, // ATTR_CJK_FONT_WEIGHT from 614
112 : : { SID_ATTR_CHAR_CJK_POSTURE, SFX_ITEM_POOLABLE }, // ATTR_CJK_FONT_POSTURE from 614
113 : : { SID_ATTR_CHAR_CJK_LANGUAGE, SFX_ITEM_POOLABLE }, // ATTR_CJK_FONT_LANGUAGE from 614
114 : : { SID_ATTR_CHAR_CTL_FONT, SFX_ITEM_POOLABLE }, // ATTR_CTL_FONT from 614
115 : : { SID_ATTR_CHAR_CTL_FONTHEIGHT, SFX_ITEM_POOLABLE }, // ATTR_CTL_FONT_HEIGHT from 614
116 : : { SID_ATTR_CHAR_CTL_WEIGHT, SFX_ITEM_POOLABLE }, // ATTR_CTL_FONT_WEIGHT from 614
117 : : { SID_ATTR_CHAR_CTL_POSTURE, SFX_ITEM_POOLABLE }, // ATTR_CTL_FONT_POSTURE from 614
118 : : { SID_ATTR_CHAR_CTL_LANGUAGE, SFX_ITEM_POOLABLE }, // ATTR_CTL_FONT_LANGUAGE from 614
119 : : { SID_ATTR_CHAR_EMPHASISMARK, SFX_ITEM_POOLABLE }, // ATTR_FONT_EMPHASISMARK from 614
120 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_USERDEF from 614 / 641c
121 : : { SID_ATTR_CHAR_WORDLINEMODE, SFX_ITEM_POOLABLE }, // ATTR_FONT_WORDLINE from 632b
122 : : { SID_ATTR_CHAR_RELIEF, SFX_ITEM_POOLABLE }, // ATTR_FONT_RELIEF from 632b
123 : : { SID_ATTR_ALIGN_HYPHENATION, SFX_ITEM_POOLABLE }, // ATTR_HYPHENATE from 632b
124 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_SCRIPTSPACE from 614d
125 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_HANGPUNCTUATION from 614d
126 : : { SID_ATTR_PARA_FORBIDDEN_RULES,SFX_ITEM_POOLABLE }, // ATTR_FORBIDDEN_RULES from 614d
127 : : { SID_ATTR_ALIGN_HOR_JUSTIFY, SFX_ITEM_POOLABLE }, // ATTR_HOR_JUSTIFY
128 : : { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD, SFX_ITEM_POOLABLE }, // ATTR_HOR_JUSTIFY_METHOD
129 : : { SID_ATTR_ALIGN_INDENT, SFX_ITEM_POOLABLE }, // ATTR_INDENT ab 350
130 : : { SID_ATTR_ALIGN_VER_JUSTIFY, SFX_ITEM_POOLABLE }, // ATTR_VER_JUSTIFY
131 : : { SID_ATTR_ALIGN_VER_JUSTIFY_METHOD, SFX_ITEM_POOLABLE }, // ATTR_VER_JUSTIFY_METHOD
132 : : { SID_ATTR_ALIGN_STACKED, SFX_ITEM_POOLABLE }, // ATTR_STACKED from 680/dr14 (replaces ATTR_ORIENTATION)
133 : : { SID_ATTR_ALIGN_DEGREES, SFX_ITEM_POOLABLE }, // ATTR_ROTATE_VALUE ab 367
134 : : { SID_ATTR_ALIGN_LOCKPOS, SFX_ITEM_POOLABLE }, // ATTR_ROTATE_MODE ab 367
135 : : { SID_ATTR_ALIGN_ASIANVERTICAL, SFX_ITEM_POOLABLE }, // ATTR_VERTICAL_ASIAN from 642
136 : : { SID_ATTR_FRAMEDIRECTION, SFX_ITEM_POOLABLE }, // ATTR_WRITINGDIR from 643
137 : : { SID_ATTR_ALIGN_LINEBREAK, SFX_ITEM_POOLABLE }, // ATTR_LINEBREAK
138 : : { SID_ATTR_ALIGN_SHRINKTOFIT, SFX_ITEM_POOLABLE }, // ATTR_SHRINKTOFIT from 680/dr14
139 : : { SID_ATTR_BORDER_DIAG_TLBR, SFX_ITEM_POOLABLE }, // ATTR_BORDER_TLBR from 680/dr14
140 : : { SID_ATTR_BORDER_DIAG_BLTR, SFX_ITEM_POOLABLE }, // ATTR_BORDER_BLTR from 680/dr14
141 : : { SID_ATTR_ALIGN_MARGIN, SFX_ITEM_POOLABLE }, // ATTR_MARGIN
142 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_MERGE
143 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_MERGE_FLAG
144 : : { SID_ATTR_NUMBERFORMAT_VALUE, SFX_ITEM_POOLABLE }, // ATTR_VALUE_FORMAT
145 : : { ATTR_LANGUAGE_FORMAT, SFX_ITEM_POOLABLE }, // ATTR_LANGUAGE_FORMAT ab 329, wird im Dialog mit SID_ATTR_NUMBERFORMAT_VALUE kombiniert
146 : : { SID_ATTR_BRUSH, SFX_ITEM_POOLABLE }, // ATTR_BACKGROUND
147 : : { SID_SCATTR_PROTECTION, SFX_ITEM_POOLABLE }, // ATTR_PROTECTION
148 : : { SID_ATTR_BORDER_OUTER, SFX_ITEM_POOLABLE }, // ATTR_BORDER
149 : : { SID_ATTR_BORDER_INNER, SFX_ITEM_POOLABLE }, // ATTR_BORDER_INNER
150 : : { SID_ATTR_BORDER_SHADOW, SFX_ITEM_POOLABLE }, // ATTR_SHADOW
151 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_VALIDDATA
152 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_CONDITIONAL
153 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_COLORSCALE
154 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_PATTERN
155 : : { SID_ATTR_LRSPACE, SFX_ITEM_POOLABLE }, // ATTR_LRSPACE
156 : : { SID_ATTR_ULSPACE, SFX_ITEM_POOLABLE }, // ATTR_ULSPACE
157 : : { SID_ATTR_PAGE, SFX_ITEM_POOLABLE }, // ATTR_PAGE
158 : : { 0, SFX_ITEM_POOLABLE }, // ATTR_PAGE_PAPERTRAY, seit 303 nur noch dummy
159 : : { SID_ATTR_PAGE_PAPERBIN, SFX_ITEM_POOLABLE }, // ATTR_PAGE_PAPERBIN
160 : : { SID_ATTR_PAGE_SIZE, SFX_ITEM_POOLABLE }, // ATTR_PAGE_SIZE
161 : : { SID_ATTR_PAGE_MAXSIZE, SFX_ITEM_POOLABLE }, // ATTR_PAGE_MAXSIZE
162 : : { SID_ATTR_PAGE_EXT1, SFX_ITEM_POOLABLE }, // ATTR_PAGE_HORCENTER
163 : : { SID_ATTR_PAGE_EXT2, SFX_ITEM_POOLABLE }, // ATTR_PAGE_VERCENTER
164 : : { SID_ATTR_PAGE_ON, SFX_ITEM_POOLABLE }, // ATTR_PAGE_ON
165 : : { SID_ATTR_PAGE_DYNAMIC, SFX_ITEM_POOLABLE }, // ATTR_PAGE_DYNAMIC
166 : : { SID_ATTR_PAGE_SHARED, SFX_ITEM_POOLABLE }, // ATTR_PAGE_SHARED
167 : : { SID_SCATTR_PAGE_NOTES, SFX_ITEM_POOLABLE }, // ATTR_PAGE_NOTES
168 : : { SID_SCATTR_PAGE_GRID, SFX_ITEM_POOLABLE }, // ATTR_PAGE_GRID
169 : : { SID_SCATTR_PAGE_HEADERS, SFX_ITEM_POOLABLE }, // ATTR_PAGE_HEADERS
170 : : { SID_SCATTR_PAGE_CHARTS, SFX_ITEM_POOLABLE }, // ATTR_PAGE_CHARTS
171 : : { SID_SCATTR_PAGE_OBJECTS, SFX_ITEM_POOLABLE }, // ATTR_PAGE_OBJECTS
172 : : { SID_SCATTR_PAGE_DRAWINGS, SFX_ITEM_POOLABLE }, // ATTR_PAGE_DRAWINGS
173 : : { SID_SCATTR_PAGE_TOPDOWN, SFX_ITEM_POOLABLE }, // ATTR_PAGE_TOPDOWN
174 : : { SID_SCATTR_PAGE_SCALE, SFX_ITEM_POOLABLE }, // ATTR_PAGE_SCALE
175 : : { SID_SCATTR_PAGE_SCALETOPAGES, SFX_ITEM_POOLABLE }, // ATTR_PAGE_SCALETOPAGES
176 : : { SID_SCATTR_PAGE_FIRSTPAGENO, SFX_ITEM_POOLABLE }, // ATTR_PAGE_FIRSTPAGENO
177 : : { SID_SCATTR_PAGE_PRINTAREA, SFX_ITEM_POOLABLE }, // ATTR_PAGE_PRINTAREA
178 : : { SID_SCATTR_PAGE_REPEATROW, SFX_ITEM_POOLABLE }, // ATTR_PAGE_REPEATROW
179 : : { SID_SCATTR_PAGE_REPEATCOL, SFX_ITEM_POOLABLE }, // ATTR_PAGE_REPEATCOL
180 : : { SID_SCATTR_PAGE_PRINTTABLES, SFX_ITEM_POOLABLE }, // ATTR_PAGE_PRINTTABLES
181 : : { SID_SCATTR_PAGE_HEADERLEFT, SFX_ITEM_POOLABLE }, // ATTR_PAGE_HEADERLEFT
182 : : { SID_SCATTR_PAGE_FOOTERLEFT, SFX_ITEM_POOLABLE }, // ATTR_PAGE_FOOTERLEFT
183 : : { SID_SCATTR_PAGE_HEADERRIGHT, SFX_ITEM_POOLABLE }, // ATTR_PAGE_HEADERRIGHT
184 : : { SID_SCATTR_PAGE_FOOTERRIGHT, SFX_ITEM_POOLABLE }, // ATTR_PAGE_FOOTERRIGHT
185 : : { SID_ATTR_PAGE_HEADERSET, SFX_ITEM_POOLABLE }, // ATTR_PAGE_HEADERSET
186 : : { SID_ATTR_PAGE_FOOTERSET, SFX_ITEM_POOLABLE }, // ATTR_PAGE_FOOTERSET
187 : : { SID_SCATTR_PAGE_FORMULAS, SFX_ITEM_POOLABLE }, // ATTR_PAGE_FORMULAS
188 : : { SID_SCATTR_PAGE_NULLVALS, SFX_ITEM_POOLABLE }, // ATTR_PAGE_NULLVALS
189 : : { SID_SCATTR_PAGE_SCALETO, SFX_ITEM_POOLABLE } // ATTR_PAGE_SCALETO
190 : : };
191 : :
192 : : // -----------------------------------------------------------------------
193 : :
194 : 900 : ScDocumentPool::ScDocumentPool( SfxItemPool* pSecPool, sal_Bool bLoadRefCounts )
195 : :
196 : : : SfxItemPool ( rtl::OUString("ScDocumentPool"),
197 : : ATTR_STARTINDEX, ATTR_ENDINDEX,
198 : : aItemInfos, NULL, bLoadRefCounts ),
199 [ + - ]: 900 : pSecondary ( pSecPool )
200 : : {
201 : : // latin font from GetDefaultFonts is not used, DEFAULTFONT_LATIN_SPREADSHEET instead
202 : : Font aStdFont = OutputDevice::GetDefaultFont( DEFAULTFONT_LATIN_SPREADSHEET, LANGUAGE_ENGLISH_US,
203 [ + - ]: 900 : DEFAULTFONT_FLAGS_ONLYONE );
204 : : SvxFontItem* pStdFont = new SvxFontItem( aStdFont.GetFamily(),
205 : : aStdFont.GetName(), aStdFont.GetStyleName(),
206 [ + - ]: 900 : aStdFont.GetPitch(), aStdFont.GetCharSet(),
207 [ + - ][ + - ]: 1800 : ATTR_FONT );
[ + - ][ + - ]
[ + - ][ + - ]
208 : :
209 [ + - ][ + - ]: 900 : SvxFontItem* pCjkFont = new SvxFontItem( ATTR_CJK_FONT );
210 [ + - ][ + - ]: 900 : SvxFontItem* pCtlFont = new SvxFontItem( ATTR_CTL_FONT );
211 [ + - ]: 900 : SvxFontItem aDummy( ATTR_FONT );
212 [ + - ]: 900 : GetDefaultFonts( aDummy, *pCjkFont, *pCtlFont );
213 : :
214 [ + - ][ + - ]: 900 : SvxBoxInfoItem* pGlobalBorderInnerAttr = new SvxBoxInfoItem( ATTR_BORDER_INNER );
215 [ + - ][ + - ]: 900 : SfxItemSet* pSet = new SfxItemSet( *this, ATTR_PATTERN_START, ATTR_PATTERN_END );
216 : : SfxItemSet aSetItemItemSet( *this,
217 : : ATTR_BACKGROUND, ATTR_BACKGROUND,
218 : : ATTR_BORDER, ATTR_SHADOW,
219 : : ATTR_LRSPACE, ATTR_ULSPACE,
220 : : ATTR_PAGE_SIZE, ATTR_PAGE_SIZE,
221 : : ATTR_PAGE_ON, ATTR_PAGE_SHARED,
222 [ + - ]: 900 : 0 );
223 : :
224 [ + - ]: 900 : pGlobalBorderInnerAttr->SetLine(NULL, BOXINFO_LINE_HORI);
225 [ + - ]: 900 : pGlobalBorderInnerAttr->SetLine(NULL, BOXINFO_LINE_VERT);
226 : 900 : pGlobalBorderInnerAttr->SetTable(sal_True);
227 : 900 : pGlobalBorderInnerAttr->SetDist(sal_True);
228 : 900 : pGlobalBorderInnerAttr->SetMinDist(false);
229 : :
230 [ + - ]: 900 : ppPoolDefaults = new SfxPoolItem*[ATTR_ENDINDEX-ATTR_STARTINDEX+1];
231 : :
232 : 900 : ppPoolDefaults[ ATTR_FONT - ATTR_STARTINDEX ] = pStdFont;
233 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_HEIGHT - ATTR_STARTINDEX ] = new SvxFontHeightItem( 200, 100, ATTR_FONT_HEIGHT ); // 10 pt;
234 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_WEIGHT - ATTR_STARTINDEX ] = new SvxWeightItem( WEIGHT_NORMAL, ATTR_FONT_WEIGHT );
235 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_POSTURE - ATTR_STARTINDEX ] = new SvxPostureItem( ITALIC_NONE, ATTR_FONT_POSTURE );
236 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_UNDERLINE - ATTR_STARTINDEX ] = new SvxUnderlineItem( UNDERLINE_NONE, ATTR_FONT_UNDERLINE );
237 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_OVERLINE - ATTR_STARTINDEX ] = new SvxOverlineItem( UNDERLINE_NONE, ATTR_FONT_OVERLINE );
238 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_CROSSEDOUT - ATTR_STARTINDEX ] = new SvxCrossedOutItem( STRIKEOUT_NONE, ATTR_FONT_CROSSEDOUT );
239 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_CONTOUR - ATTR_STARTINDEX ] = new SvxContourItem( false, ATTR_FONT_CONTOUR );
240 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_SHADOWED - ATTR_STARTINDEX ] = new SvxShadowedItem( false, ATTR_FONT_SHADOWED );
241 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_COLOR - ATTR_STARTINDEX ] = new SvxColorItem( Color(COL_AUTO), ATTR_FONT_COLOR );
242 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_LANGUAGE - ATTR_STARTINDEX ] = new SvxLanguageItem( LanguageType(LANGUAGE_DONTKNOW), ATTR_FONT_LANGUAGE );
243 : 900 : ppPoolDefaults[ ATTR_CJK_FONT - ATTR_STARTINDEX ] = pCjkFont;
244 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CJK_FONT_HEIGHT - ATTR_STARTINDEX ] = new SvxFontHeightItem( 200, 100, ATTR_CJK_FONT_HEIGHT );
245 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CJK_FONT_WEIGHT - ATTR_STARTINDEX ] = new SvxWeightItem( WEIGHT_NORMAL, ATTR_CJK_FONT_WEIGHT );
246 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CJK_FONT_POSTURE- ATTR_STARTINDEX ] = new SvxPostureItem( ITALIC_NONE, ATTR_CJK_FONT_POSTURE );
247 : 900 : ppPoolDefaults[ ATTR_CJK_FONT_LANGUAGE-ATTR_STARTINDEX ] = new SvxLanguageItem( LanguageType(LANGUAGE_DONTKNOW),
248 [ + - ][ + - ]: 900 : ATTR_CJK_FONT_LANGUAGE );
249 : 900 : ppPoolDefaults[ ATTR_CTL_FONT - ATTR_STARTINDEX ] = pCtlFont;
250 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CTL_FONT_HEIGHT - ATTR_STARTINDEX ] = new SvxFontHeightItem( 200, 100, ATTR_CTL_FONT_HEIGHT );
251 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CTL_FONT_WEIGHT - ATTR_STARTINDEX ] = new SvxWeightItem( WEIGHT_NORMAL, ATTR_CTL_FONT_WEIGHT );
252 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CTL_FONT_POSTURE- ATTR_STARTINDEX ] = new SvxPostureItem( ITALIC_NONE, ATTR_CTL_FONT_POSTURE );
253 : 900 : ppPoolDefaults[ ATTR_CTL_FONT_LANGUAGE-ATTR_STARTINDEX ] = new SvxLanguageItem( LanguageType(LANGUAGE_DONTKNOW),
254 [ + - ][ + - ]: 900 : ATTR_CTL_FONT_LANGUAGE );
255 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_EMPHASISMARK-ATTR_STARTINDEX ] = new SvxEmphasisMarkItem( EMPHASISMARK_NONE, ATTR_FONT_EMPHASISMARK );
256 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_USERDEF - ATTR_STARTINDEX ] = new SvXMLAttrContainerItem( ATTR_USERDEF );
257 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_WORDLINE - ATTR_STARTINDEX ] = new SvxWordLineModeItem(false, ATTR_FONT_WORDLINE );
258 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FONT_RELIEF - ATTR_STARTINDEX ] = new SvxCharReliefItem( RELIEF_NONE, ATTR_FONT_RELIEF );
259 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_HYPHENATE - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_HYPHENATE );
260 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_SCRIPTSPACE - ATTR_STARTINDEX ] = new SvxScriptSpaceItem( false, ATTR_SCRIPTSPACE);
261 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_HANGPUNCTUATION - ATTR_STARTINDEX ] = new SvxHangingPunctuationItem( false, ATTR_HANGPUNCTUATION);
262 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_FORBIDDEN_RULES - ATTR_STARTINDEX ] = new SvxForbiddenRuleItem( false, ATTR_FORBIDDEN_RULES);
263 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_HOR_JUSTIFY - ATTR_STARTINDEX ] = new SvxHorJustifyItem( SVX_HOR_JUSTIFY_STANDARD, ATTR_HOR_JUSTIFY);
264 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_HOR_JUSTIFY_METHOD - ATTR_STARTINDEX ] = new SvxJustifyMethodItem( SVX_JUSTIFY_METHOD_AUTO, ATTR_HOR_JUSTIFY_METHOD);
265 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_INDENT - ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_INDENT, 0 );
266 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_VER_JUSTIFY - ATTR_STARTINDEX ] = new SvxVerJustifyItem( SVX_VER_JUSTIFY_STANDARD, ATTR_VER_JUSTIFY);
267 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_VER_JUSTIFY_METHOD - ATTR_STARTINDEX ] = new SvxJustifyMethodItem( SVX_JUSTIFY_METHOD_AUTO, ATTR_VER_JUSTIFY_METHOD);
268 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_STACKED - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_STACKED, false );
269 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_ROTATE_VALUE - ATTR_STARTINDEX ] = new SfxInt32Item( ATTR_ROTATE_VALUE, 0 );
270 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_ROTATE_MODE - ATTR_STARTINDEX ] = new SvxRotateModeItem( SVX_ROTATE_MODE_BOTTOM, ATTR_ROTATE_MODE );
271 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_VERTICAL_ASIAN - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_VERTICAL_ASIAN );
272 : : // The default for the ATTR_WRITINGDIR cell attribute must by FRMDIR_ENVIRONMENT,
273 : : // so that value is returned when asking for a default cell's attributes.
274 : : // The value from the page style is set as DefaultHorizontalTextDirection for the EditEngine.
275 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_WRITINGDIR - ATTR_STARTINDEX ] = new SvxFrameDirectionItem( FRMDIR_ENVIRONMENT, ATTR_WRITINGDIR );
276 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_LINEBREAK - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_LINEBREAK );
277 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_SHRINKTOFIT - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_SHRINKTOFIT );
278 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_BORDER_TLBR - ATTR_STARTINDEX ] = new SvxLineItem( ATTR_BORDER_TLBR );
279 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_BORDER_BLTR - ATTR_STARTINDEX ] = new SvxLineItem( ATTR_BORDER_BLTR );
280 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_MARGIN - ATTR_STARTINDEX ] = new SvxMarginItem( ATTR_MARGIN );
281 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_MERGE - ATTR_STARTINDEX ] = new ScMergeAttr;
282 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_MERGE_FLAG - ATTR_STARTINDEX ] = new ScMergeFlagAttr;
283 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_VALUE_FORMAT - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_VALUE_FORMAT, 0 );
284 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_LANGUAGE_FORMAT - ATTR_STARTINDEX ] = new SvxLanguageItem( ScGlobal::eLnge, ATTR_LANGUAGE_FORMAT );
285 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_BACKGROUND - ATTR_STARTINDEX ] = new SvxBrushItem( Color(COL_TRANSPARENT), ATTR_BACKGROUND );
286 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PROTECTION - ATTR_STARTINDEX ] = new ScProtectionAttr;
287 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_BORDER - ATTR_STARTINDEX ] = new SvxBoxItem( ATTR_BORDER );
288 : 900 : ppPoolDefaults[ ATTR_BORDER_INNER - ATTR_STARTINDEX ] = pGlobalBorderInnerAttr;
289 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_SHADOW - ATTR_STARTINDEX ] = new SvxShadowItem( ATTR_SHADOW );
290 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_VALIDDATA - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_VALIDDATA, 0 );
291 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_CONDITIONAL - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_CONDITIONAL, 0 );
292 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_COLORSCALE - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_COLORSCALE, 0 );
293 : :
294 : : // GetRscString funktioniert erst nach ScGlobal::Init, zu erkennen am EmptyBrushItem
295 : : //! zusaetzliche Methode ScGlobal::IsInit() oder so...
296 : : //! oder erkennen, ob dies der Secondary-Pool fuer einen MessagePool ist
297 [ + + ]: 900 : if ( ScGlobal::GetEmptyBrushItem() )
298 [ + - ][ + - ]: 849 : ppPoolDefaults[ ATTR_PATTERN - ATTR_STARTINDEX ] = new ScPatternAttr( pSet, ScGlobal::GetRscString(STR_STYLENAME_STANDARD) );
[ + - ]
299 : : else
300 : 51 : ppPoolDefaults[ ATTR_PATTERN - ATTR_STARTINDEX ] = new ScPatternAttr( pSet,
301 [ + - ][ + - ]: 51 : rtl::OUString(STRING_STANDARD) ); //! without name?
[ + - ][ + - ]
302 : :
303 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_LRSPACE - ATTR_STARTINDEX ] = new SvxLRSpaceItem( ATTR_LRSPACE );
304 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_ULSPACE - ATTR_STARTINDEX ] = new SvxULSpaceItem( ATTR_ULSPACE );
305 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE - ATTR_STARTINDEX ] = new SvxPageItem( ATTR_PAGE );
306 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_PAPERTRAY - ATTR_STARTINDEX ] = new SfxAllEnumItem( ATTR_PAGE_PAPERTRAY );
307 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_PAPERBIN - ATTR_STARTINDEX ] = new SvxPaperBinItem( ATTR_PAGE_PAPERBIN );
308 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_SIZE - ATTR_STARTINDEX ] = new SvxSizeItem( ATTR_PAGE_SIZE );
309 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_MAXSIZE - ATTR_STARTINDEX ] = new SvxSizeItem( ATTR_PAGE_MAXSIZE );
310 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_HORCENTER - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_HORCENTER );
311 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_VERCENTER - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_VERCENTER );
312 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_ON - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_ON, sal_True );
313 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_DYNAMIC - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_DYNAMIC, sal_True );
314 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_SHARED - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_SHARED, sal_True );
315 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_NOTES - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_NOTES, false );
316 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_GRID - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_GRID, false );
317 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_HEADERS - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_HEADERS, false );
318 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_CHARTS - ATTR_STARTINDEX ] = new ScViewObjectModeItem( ATTR_PAGE_CHARTS );
319 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_OBJECTS - ATTR_STARTINDEX ] = new ScViewObjectModeItem( ATTR_PAGE_OBJECTS );
320 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_DRAWINGS - ATTR_STARTINDEX ] = new ScViewObjectModeItem( ATTR_PAGE_DRAWINGS );
321 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_TOPDOWN - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_TOPDOWN, sal_True );
322 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_SCALE - ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_PAGE_SCALE, 100 );
323 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_SCALETOPAGES-ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_PAGE_SCALETOPAGES, 1 );
324 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_FIRSTPAGENO- ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_PAGE_FIRSTPAGENO, 1 );
325 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_PRINTAREA - ATTR_STARTINDEX ] = new ScRangeItem( ATTR_PAGE_PRINTAREA );
326 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_REPEATROW - ATTR_STARTINDEX ] = new ScRangeItem( ATTR_PAGE_REPEATROW );
327 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_REPEATCOL - ATTR_STARTINDEX ] = new ScRangeItem( ATTR_PAGE_REPEATCOL );
328 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_PRINTTABLES- ATTR_STARTINDEX ] = new ScTableListItem( ATTR_PAGE_PRINTTABLES );
329 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_HEADERLEFT - ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_HEADERLEFT );
330 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_FOOTERLEFT - ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_FOOTERLEFT );
331 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_HEADERRIGHT- ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_HEADERRIGHT );
332 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_FOOTERRIGHT- ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_FOOTERRIGHT );
333 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_HEADERSET - ATTR_STARTINDEX ] = new SvxSetItem( ATTR_PAGE_HEADERSET, aSetItemItemSet );
334 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_FOOTERSET - ATTR_STARTINDEX ] = new SvxSetItem( ATTR_PAGE_FOOTERSET, aSetItemItemSet );
335 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_FORMULAS - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_FORMULAS, false );
336 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_NULLVALS - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_NULLVALS, sal_True );
337 [ + - ][ + - ]: 900 : ppPoolDefaults[ ATTR_PAGE_SCALETO - ATTR_STARTINDEX ] = new ScPageScaleToItem( 1, 1 );
338 : :
339 [ + - ]: 900 : SetDefaults( ppPoolDefaults );
340 : :
341 [ - + ]: 900 : if ( pSecondary )
342 [ # # ]: 0 : SetSecondaryPool( pSecondary );
343 : :
344 : : // ATTR_LANGUAGE_FORMAT ab sv329 eingefuegt, VersionMap in _ScGlobal__Init
345 [ + - ]: 900 : SetVersionMap( 1, 100, 157, pVersionMap1 );
346 : :
347 : : // ATTR_VALIDDATA, ATTR_CONDITIONAL ab 341
348 [ + - ]: 900 : SetVersionMap( 2, 100, 158, pVersionMap2 );
349 : :
350 : : // ATTR_INDENT ab 350
351 [ + - ]: 900 : SetVersionMap( 3, 100, 160, pVersionMap3 );
352 : :
353 : : // ATTR_ROTATE_VALUE, ATTR_ROTATE_MODE ab 367
354 [ + - ]: 900 : SetVersionMap( 4, 100, 161, pVersionMap4 );
355 : :
356 : : // CJK, CTL, EMPHASISMARK, TWOLINES from 614
357 [ + - ]: 900 : SetVersionMap( 5, 100, 163, pVersionMap5 );
358 : :
359 : : // ATTR_SCRIPTSPACE, ATTR_HANGPUNCTUATION, ATTR_FORBIDDEN_RULES from 614d
360 [ + - ]: 900 : SetVersionMap( 6, 100, 175, pVersionMap6 );
361 : :
362 : : // ATTR_FONT_WORDLINE, ATTR_FONT_RELIEF, ATTR_HYPHENATE from 632b
363 [ + - ]: 900 : SetVersionMap( 7, 100, 178, pVersionMap7 );
364 : :
365 : : // ATTR_VERTICAL_ASIAN from 642q
366 [ + - ]: 900 : SetVersionMap( 8, 100, 181, pVersionMap8 );
367 : :
368 : : // ATTR_WRITINGDIR from 643y
369 [ + - ]: 900 : SetVersionMap( 9, 100, 182, pVersionMap9 );
370 : :
371 : : // ATTR_PAGE_SCALETO added in 680/sab008
372 : : // new version map not required
373 : :
374 : : // ATTR_SHRINKTOFIT, ATTR_BORDER_TL_BR, ATTR_BORDER_BL_TR added in 680/dr14
375 [ + - ]: 900 : SetVersionMap( 10, 100, 184, pVersionMap10 );
376 : :
377 : : // ATTR_FONT_OVERLINE added in DEV300/overline2
378 [ + - ][ + - ]: 900 : SetVersionMap( 11, 100, 187, pVersionMap11 );
[ + - ][ + - ]
379 : 900 : }
380 : :
381 : 716 : ScDocumentPool::~ScDocumentPool()
382 : : {
383 [ + - ]: 716 : Delete();
384 : :
385 [ + + ]: 66588 : for ( sal_uInt16 i=0; i < ATTR_ENDINDEX-ATTR_STARTINDEX+1; i++ )
386 : : {
387 : 65872 : SetRefCount( *ppPoolDefaults[i], 0 );
388 [ + - ][ + - ]: 65872 : delete ppPoolDefaults[i];
389 : : }
390 : :
391 [ + - ]: 716 : delete[] ppPoolDefaults;
392 [ + - ]: 716 : SfxItemPool::Free(pSecondary);
393 [ - + ]: 1432 : }
394 : :
395 : 51 : void ScDocumentPool::InitVersionMaps()
396 : : {
397 : : OSL_PRECOND( !pVersionMap1 && !pVersionMap2 &&
398 : : !pVersionMap3 && !pVersionMap4 &&
399 : : !pVersionMap5 && !pVersionMap6 &&
400 : : !pVersionMap7 && !pVersionMap8 &&
401 : : !pVersionMap9 && !pVersionMap10 &&
402 : : !pVersionMap11, "InitVersionMaps call multiple times" );
403 : :
404 : : // alte WhichId's mappen
405 : : // nicht mit ATTR_* zaehlen, falls die sich nochmal aendern
406 : :
407 : : // erste Map: ATTR_LANGUAGE_FORMAT ab sv329 eingefuegt
408 : :
409 : 51 : const sal_uInt16 nMap1Start = 100; // alter ATTR_STARTINDEX
410 : 51 : const sal_uInt16 nMap1End = 157; // alter ATTR_ENDINDEX
411 : 51 : const sal_uInt16 nMap1Count = nMap1End - nMap1Start + 1;
412 : 51 : const sal_uInt16 nMap1New = 18; // ATTR_LANGUAGE_FORMAT - ATTR_STARTINDEX
413 : 51 : pVersionMap1 = new sal_uInt16 [ nMap1Count ];
414 : : sal_uInt16 i, j;
415 [ + + ]: 969 : for ( i=0, j=nMap1Start; i < nMap1New; i++, j++ )
416 : 918 : pVersionMap1[i] = j;
417 : : // ein Eintrag eingefuegt...
418 [ + + ]: 2091 : for ( i=nMap1New, j=nMap1Start+nMap1New+1; i < nMap1Count; i++, j++ )
419 : 2040 : pVersionMap1[i] = j;
420 : :
421 : : // zweite Map: ATTR_VALIDDATA und ATTR_CONDITIONAL ab 341 eingefuegt
422 : :
423 : 51 : const sal_uInt16 nMap2Start = 100; // ATTR_STARTINDEX
424 : 51 : const sal_uInt16 nMap2End = 158; // ATTR_ENDINDEX
425 : 51 : const sal_uInt16 nMap2Count = nMap2End - nMap2Start + 1;
426 : 51 : const sal_uInt16 nMap2New = 24; // ATTR_VALIDDATA - ATTR_STARTINDEX
427 : 51 : pVersionMap2 = new sal_uInt16 [ nMap2Count ];
428 [ + + ]: 1275 : for ( i=0, j=nMap2Start; i < nMap2New; i++, j++ )
429 : 1224 : pVersionMap2[i] = j;
430 : : // zwei Eintraege eingefuegt...
431 [ + + ]: 1836 : for ( i=nMap2New, j=nMap2Start+nMap2New+2; i < nMap2Count; i++, j++ )
432 : 1785 : pVersionMap2[i] = j;
433 : :
434 : : // dritte Map: ATTR_INDENT ab 350 eingefuegt
435 : :
436 : 51 : const sal_uInt16 nMap3Start = 100; // ATTR_STARTINDEX
437 : 51 : const sal_uInt16 nMap3End = 160; // ATTR_ENDINDEX
438 : 51 : const sal_uInt16 nMap3Count = nMap3End - nMap3Start + 1;
439 : 51 : const sal_uInt16 nMap3New = 11; // ATTR_INDENT - ATTR_STARTINDEX
440 : 51 : pVersionMap3 = new sal_uInt16 [ nMap3Count ];
441 [ + + ]: 612 : for ( i=0, j=nMap3Start; i < nMap3New; i++, j++ )
442 : 561 : pVersionMap3[i] = j;
443 : : // ein Eintrag eingefuegt...
444 [ + + ]: 2601 : for ( i=nMap3New, j=nMap3Start+nMap3New+1; i < nMap3Count; i++, j++ )
445 : 2550 : pVersionMap3[i] = j;
446 : :
447 : : // vierte Map: ATTR_ROTATE_VALUE und ATTR_ROTATE_MODE ab 367 eingefuegt
448 : :
449 : 51 : const sal_uInt16 nMap4Start = 100; // ATTR_STARTINDEX
450 : 51 : const sal_uInt16 nMap4End = 161; // ATTR_ENDINDEX
451 : 51 : const sal_uInt16 nMap4Count = nMap4End - nMap4Start + 1;
452 : 51 : const sal_uInt16 nMap4New = 14; // ATTR_ROTATE_VALUE - ATTR_STARTINDEX
453 : 51 : pVersionMap4 = new sal_uInt16 [ nMap4Count ];
454 [ + + ]: 765 : for ( i=0, j=nMap4Start; i < nMap4New; i++, j++ )
455 : 714 : pVersionMap4[i] = j;
456 : : // zwei Eintraege eingefuegt...
457 [ + + ]: 2499 : for ( i=nMap4New, j=nMap4Start+nMap4New+2; i < nMap4Count; i++, j++ )
458 : 2448 : pVersionMap4[i] = j;
459 : :
460 : : // fifth map: CJK..., CTL..., EMPHASISMARK, TWOLINES (12 items) added in 614
461 : :
462 : 51 : const sal_uInt16 nMap5Start = 100; // ATTR_STARTINDEX
463 : 51 : const sal_uInt16 nMap5End = 163; // ATTR_ENDINDEX
464 : 51 : const sal_uInt16 nMap5Count = nMap5End - nMap5Start + 1;
465 : 51 : const sal_uInt16 nMap5New = 10; // ATTR_CJK_FONT - ATTR_STARTINDEX
466 : 51 : pVersionMap5 = new sal_uInt16 [ nMap5Count ];
467 [ + + ]: 561 : for ( i=0, j=nMap5Start; i < nMap5New; i++, j++ )
468 : 510 : pVersionMap5[i] = j;
469 : : // 12 entries inserted
470 [ + + ]: 2805 : for ( i=nMap5New, j=nMap5Start+nMap5New+12; i < nMap5Count; i++, j++ )
471 : 2754 : pVersionMap5[i] = j;
472 : :
473 : : // sixth map: ATTR_SCRIPTSPACE, ATTR_HANGPUNCTUATION, ATTR_FORBIDDEN_RULES added in 614d
474 : :
475 : 51 : const sal_uInt16 nMap6Start = 100; // ATTR_STARTINDEX
476 : 51 : const sal_uInt16 nMap6End = 175; // ATTR_ENDINDEX
477 : 51 : const sal_uInt16 nMap6Count = nMap6End - nMap6Start + 1;
478 : 51 : const sal_uInt16 nMap6New = 22; // ATTR_SCRIPTSPACE - ATTR_STARTINDEX
479 : 51 : pVersionMap6 = new sal_uInt16 [ nMap6Count ];
480 [ + + ]: 1173 : for ( i=0, j=nMap6Start; i < nMap6New; i++, j++ )
481 : 1122 : pVersionMap6[i] = j;
482 : : // 3 entries inserted
483 [ + + ]: 2805 : for ( i=nMap6New, j=nMap6Start+nMap6New+3; i < nMap6Count; i++, j++ )
484 : 2754 : pVersionMap6[i] = j;
485 : :
486 : : // seventh map: ATTR_FONT_WORDLINE, ATTR_FONT_RELIEF, ATTR_HYPHENATE added in 632b
487 : :
488 : 51 : const sal_uInt16 nMap7Start = 100; // ATTR_STARTINDEX
489 : 51 : const sal_uInt16 nMap7End = 178; // ATTR_ENDINDEX
490 : 51 : const sal_uInt16 nMap7Count = nMap7End - nMap7Start + 1;
491 : 51 : const sal_uInt16 nMap7New = 22; // ATTR_FONT_WORDLINE - ATTR_STARTINDEX
492 : 51 : pVersionMap7 = new sal_uInt16 [ nMap7Count ];
493 [ + + ]: 1173 : for ( i=0, j=nMap7Start; i < nMap7New; i++, j++ )
494 : 1122 : pVersionMap7[i] = j;
495 : : // 3 entries inserted
496 [ + + ]: 2958 : for ( i=nMap7New, j=nMap7Start+nMap7New+3; i < nMap7Count; i++, j++ )
497 : 2907 : pVersionMap7[i] = j;
498 : :
499 : : // eighth map: ATTR_VERTICAL_ASIAN added in 642q
500 : :
501 : 51 : const sal_uInt16 nMap8Start = 100; // ATTR_STARTINDEX
502 : 51 : const sal_uInt16 nMap8End = 181; // ATTR_ENDINDEX
503 : 51 : const sal_uInt16 nMap8Count = nMap8End - nMap8Start + 1;
504 : 51 : const sal_uInt16 nMap8New = 34; // ATTR_VERTICAL_ASIAN - ATTR_STARTINDEX
505 : 51 : pVersionMap8 = new sal_uInt16 [ nMap8Count ];
506 [ + + ]: 1785 : for ( i=0, j=nMap8Start; i < nMap8New; i++, j++ )
507 : 1734 : pVersionMap8[i] = j;
508 : : // 1 entry inserted
509 [ + + ]: 2499 : for ( i=nMap8New, j=nMap8Start+nMap8New+1; i < nMap8Count; i++, j++ )
510 : 2448 : pVersionMap8[i] = j;
511 : :
512 : : // 9th map: ATTR_WRITINGDIR added in 643y
513 : :
514 : 51 : const sal_uInt16 nMap9Start = 100; // ATTR_STARTINDEX
515 : 51 : const sal_uInt16 nMap9End = 182; // ATTR_ENDINDEX
516 : 51 : const sal_uInt16 nMap9Count = nMap9End - nMap9Start + 1;
517 : 51 : const sal_uInt16 nMap9New = 35; // ATTR_WRITINGDIR - ATTR_STARTINDEX
518 : 51 : pVersionMap9 = new sal_uInt16 [ nMap9Count ];
519 [ + + ]: 1836 : for ( i=0, j=nMap9Start; i < nMap9New; i++, j++ )
520 : 1785 : pVersionMap9[i] = j;
521 : : // 1 entry inserted
522 [ + + ]: 2499 : for ( i=nMap9New, j=nMap9Start+nMap9New+1; i < nMap9Count; i++, j++ )
523 : 2448 : pVersionMap9[i] = j;
524 : :
525 : : // ATTR_PAGE_SCALETO added in 680/sab008
526 : :
527 : : // 10th map: ATTR_SHRINKTOFIT, ATTR_BORDER_TL_BR, ATTR_BORDER_BL_TR added in 680/dr14
528 : :
529 : 51 : const sal_uInt16 nMap10Start = 100; // ATTR_STARTINDEX
530 : 51 : const sal_uInt16 nMap10End = 184; // ATTR_ENDINDEX
531 : 51 : const sal_uInt16 nMap10Count = nMap10End - nMap10Start + 1;
532 : 51 : const sal_uInt16 nMap10New = 37; // ATTR_SHRINKTOFIT - ATTR_STARTINDEX
533 : 51 : pVersionMap10 = new sal_uInt16 [ nMap10Count ];
534 [ + + ]: 1938 : for ( i=0, j=nMap10Start; i < nMap10New; i++, j++ )
535 : 1887 : pVersionMap10[i] = j;
536 : : // 3 entries inserted
537 [ + + ]: 2499 : for ( i=nMap10New, j=nMap10Start+nMap10New+3; i < nMap10Count; i++, j++ )
538 : 2448 : pVersionMap10[i] = j;
539 : :
540 : : // 11th map: ATTR_FONT_OVERLINE added in DEV300/overline2
541 : :
542 : 51 : const sal_uInt16 nMap11Start = 100; // ATTR_STARTINDEX
543 : 51 : const sal_uInt16 nMap11End = 187; // ATTR_ENDINDEX
544 : 51 : const sal_uInt16 nMap11Count = nMap11End - nMap11Start + 1;
545 : 51 : const sal_uInt16 nMap11New = 5; // ATTR_FONT_OVERLINE - ATTR_STARTINDEX
546 : 51 : pVersionMap11 = new sal_uInt16 [ nMap11Count ];
547 [ + + ]: 306 : for ( i=0, j=nMap11Start; i < nMap11New; i++, j++ )
548 : 255 : pVersionMap11[i] = j;
549 : : // 1 entry inserted
550 [ + + ]: 4284 : for ( i=nMap11New, j=nMap11Start+nMap11New+1; i < nMap11Count; i++, j++ )
551 : 4233 : pVersionMap11[i] = j;
552 : 51 : }
553 : :
554 : 18 : void ScDocumentPool::DeleteVersionMaps()
555 : : {
556 : : OSL_PRECOND( pVersionMap1 && pVersionMap2 &&
557 : : pVersionMap3 && pVersionMap4 &&
558 : : pVersionMap5 && pVersionMap6 &&
559 : : pVersionMap7 && pVersionMap8 &&
560 : : pVersionMap9 && pVersionMap10 &&
561 : : pVersionMap11, "DeleteVersionMaps without maps" );
562 : :
563 [ + - ]: 18 : delete[] pVersionMap11;
564 : 18 : pVersionMap11 = 0;
565 [ + - ]: 18 : delete[] pVersionMap10;
566 : 18 : pVersionMap10 = 0;
567 [ + - ]: 18 : delete[] pVersionMap9;
568 : 18 : pVersionMap9 = 0;
569 [ + - ]: 18 : delete[] pVersionMap8;
570 : 18 : pVersionMap8 = 0;
571 [ + - ]: 18 : delete[] pVersionMap7;
572 : 18 : pVersionMap7 = 0;
573 [ + - ]: 18 : delete[] pVersionMap6;
574 : 18 : pVersionMap6 = 0;
575 [ + - ]: 18 : delete[] pVersionMap5;
576 : 18 : pVersionMap5 = 0;
577 [ + - ]: 18 : delete[] pVersionMap4;
578 : 18 : pVersionMap4 = 0;
579 [ + - ]: 18 : delete[] pVersionMap3;
580 : 18 : pVersionMap3 = 0;
581 [ + - ]: 18 : delete[] pVersionMap2;
582 : 18 : pVersionMap2 = 0;
583 [ + - ]: 18 : delete[] pVersionMap1;
584 : 18 : pVersionMap1 = 0;
585 : 18 : }
586 : :
587 : : // ----------------------------------------------------------------------------------------
588 : : //
589 : : // Fuer die Pattern-Attribute (SetItems) kann der sal_uInt16 RefCount leicht ueberlaufen
590 : : // (z.B. 600 ganze Zeilen abwechselnd formatieren).
591 : : // Darum wird der RefCount bei SC_MAX_POOLREF festgehalten und nicht mehr hoch- oder
592 : : // heruntergezaehlt. Dieser RefCount wird dann erst beim naechsten Laden neu gezaehlt.
593 : : // Die Differenz zwischen SC_MAX_POOLREF und SC_SAFE_POOLREF ist ein wenig groesser
594 : : // als noetig, um zu erkennen, wenn der RefCount aus Versehen doch "normal" veraendert
595 : : // wird (Assertions).
596 : : //
597 : :
598 : 364547 : const SfxPoolItem& ScDocumentPool::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich )
599 : : {
600 [ + + ]: 364547 : if ( rItem.Which() != ATTR_PATTERN ) // nur Pattern ist special
601 : 163472 : return SfxItemPool::Put( rItem, nWhich );
602 : :
603 : : // das Default-Pattern dieses Pools nicht kopieren
604 [ + + ]: 201075 : if (&rItem == ppPoolDefaults[ ATTR_PATTERN - ATTR_STARTINDEX ])
605 : 96845 : return rItem;
606 : :
607 : : // ansonsten muss Put immer passieren, weil es ein anderer Pool sein kann
608 : 104230 : const SfxPoolItem& rNew = SfxItemPool::Put( rItem, nWhich );
609 : 104230 : CheckRef( rNew );
610 : 364547 : return rNew;
611 : : }
612 : :
613 : 2102870 : void ScDocumentPool::Remove( const SfxPoolItem& rItem )
614 : : {
615 [ + + ]: 2102870 : if ( rItem.Which() == ATTR_PATTERN ) // nur Pattern ist special
616 : : {
617 : 2040721 : sal_uLong nRef = rItem.GetRefCount();
618 [ - + ][ + + ]: 2040721 : if ( nRef >= (sal_uLong) SC_MAX_POOLREF && nRef <= (sal_uLong) SFX_ITEMS_OLD_MAXREF )
619 : : {
620 [ # # ]: 0 : if ( nRef != (sal_uLong) SC_SAFE_POOLREF )
621 : : {
622 : : OSL_FAIL("Wer fummelt da an meinen Ref-Counts herum");
623 : 0 : SetRefCount( (SfxPoolItem&)rItem, (sal_uLong) SC_SAFE_POOLREF );
624 : : }
625 : 2102870 : return; // nicht herunterzaehlen
626 : : }
627 : : }
628 : 2102870 : SfxItemPool::Remove( rItem );
629 : : }
630 : :
631 : 214246 : void ScDocumentPool::CheckRef( const SfxPoolItem& rItem )
632 : : {
633 : 214246 : sal_uLong nRef = rItem.GetRefCount();
634 [ - + ][ + + ]: 214246 : if ( nRef >= (sal_uLong) SC_MAX_POOLREF && nRef <= (sal_uLong) SFX_ITEMS_OLD_MAXREF )
635 : : {
636 : : // beim Apply vom Cache wird evtl. um 2 hochgezaehlt (auf MAX+1 oder SAFE+2),
637 : : // heruntergezaehlt wird nur einzeln (in LoadCompleted)
638 : : OSL_ENSURE( nRef<=(sal_uLong)SC_MAX_POOLREF+1 || (nRef>=(sal_uLong)SC_SAFE_POOLREF-1 && nRef<=(sal_uLong)SC_SAFE_POOLREF+2),
639 : : "ScDocumentPool::CheckRef" );
640 : 0 : SetRefCount( (SfxPoolItem&)rItem, (sal_uLong) SC_SAFE_POOLREF );
641 : : }
642 : 214246 : }
643 : :
644 : : // ----------------------------------------------------------------------------------------
645 : :
646 : 1 : void ScDocumentPool::StyleDeleted( ScStyleSheet* pStyle )
647 : : {
648 : 1 : sal_uInt32 nCount = GetItemCount2(ATTR_PATTERN);
649 [ - + ]: 1 : for (sal_uInt32 i=0; i<nCount; i++)
650 : : {
651 : 0 : ScPatternAttr* pPattern = (ScPatternAttr*)GetItem2(ATTR_PATTERN, i);
652 [ # # ][ # # ]: 0 : if ( pPattern && pPattern->GetStyleSheet() == pStyle )
[ # # ]
653 : 0 : pPattern->StyleToName();
654 : : }
655 : 1 : }
656 : :
657 : 4 : void ScDocumentPool::CellStyleCreated( const String& rName )
658 : : {
659 : : // If a style was created, don't keep any pattern with its name string in the pool,
660 : : // because it would compare equal to a pattern with a pointer to the new style.
661 : : // Calling StyleSheetChanged isn't enough because the pool may still contain items
662 : : // for undo or clipboard content.
663 : :
664 : 4 : sal_uInt32 nCount = GetItemCount2(ATTR_PATTERN);
665 [ - + ]: 4 : for (sal_uInt32 i=0; i<nCount; i++)
666 : : {
667 : : ScPatternAttr *const pPattern =
668 : : const_cast<ScPatternAttr*>(
669 : 0 : static_cast<ScPatternAttr const*>(GetItem2(ATTR_PATTERN, i)));
670 [ # # ][ # # ]: 0 : if ( pPattern && pPattern->GetStyleSheet() == NULL )
[ # # ]
671 : : {
672 : 0 : const String* pStyleName = pPattern->GetStyleName();
673 [ # # ][ # # ]: 0 : if ( pStyleName && *pStyleName == rName )
[ # # ]
674 : 0 : pPattern->UpdateStyleSheet(); // find and store style pointer
675 : : }
676 : : }
677 : 4 : }
678 : :
679 : 0 : SfxItemPool* ScDocumentPool::Clone() const
680 : : {
681 [ # # ]: 0 : return new SfxItemPool (*this, sal_True);
682 : : }
683 : :
684 : 0 : SfxItemPresentation lcl_HFPresentation
685 : : (
686 : : const SfxPoolItem& rItem,
687 : : SfxItemPresentation ePresentation,
688 : : SfxMapUnit eCoreMetric,
689 : : SfxMapUnit ePresentationMetric,
690 : : String& rText,
691 : : const IntlWrapper* pIntl
692 : : )
693 : : {
694 : 0 : const SfxItemSet& rSet = ((const SfxSetItem&)rItem).GetItemSet();
695 : : const SfxPoolItem* pItem;
696 : :
697 [ # # ][ # # ]: 0 : if ( SFX_ITEM_SET == rSet.GetItemState(ATTR_PAGE_ON,false,&pItem) )
698 : : {
699 [ # # ]: 0 : if( false == ((const SfxBoolItem*)pItem)->GetValue() )
700 : 0 : return SFX_ITEM_PRESENTATION_NONE;
701 : : }
702 : :
703 [ # # ]: 0 : SfxItemIter aIter( rSet );
704 : 0 : pItem = aIter.FirstItem();
705 [ # # ]: 0 : String aText;
706 : 0 : rtl::OUString aDel(" + ");
707 : :
708 [ # # ]: 0 : while( pItem )
709 : : {
710 : 0 : sal_uInt16 nWhich = pItem->Which();
711 : :
712 [ # # ]: 0 : aText.Erase();
713 : :
714 [ # # # ]: 0 : switch( nWhich )
715 : : {
716 : : case ATTR_PAGE_ON:
717 : : case ATTR_PAGE_DYNAMIC:
718 : : case ATTR_PAGE_SHARED:
719 : 0 : break;
720 : :
721 : : case ATTR_LRSPACE:
722 : : {
723 : 0 : SvxLRSpaceItem& rLRItem = (SvxLRSpaceItem&)*pItem;
724 : 0 : sal_uInt16 nPropLeftMargin = rLRItem.GetPropLeft();
725 : 0 : sal_uInt16 nPropRightMargin = rLRItem.GetPropRight();
726 : : sal_uInt16 nLeftMargin, nRightMargin;
727 : : long nTmp;
728 : 0 : nTmp = rLRItem.GetLeft();
729 [ # # ]: 0 : nLeftMargin = nTmp < 0 ? 0 : sal_uInt16(nTmp);
730 : 0 : nTmp = rLRItem.GetRight();
731 [ # # ]: 0 : nRightMargin = nTmp < 0 ? 0 : sal_uInt16(nTmp);
732 : :
733 [ # # ][ # # ]: 0 : aText = EE_RESSTR(RID_SVXITEMS_LRSPACE_LEFT);
[ # # ]
734 [ # # ]: 0 : if ( 100 != nPropLeftMargin )
735 : : {
736 [ # # ][ # # ]: 0 : aText += String::CreateFromInt32( nPropLeftMargin );
[ # # ]
737 [ # # ]: 0 : aText += '%';
738 : : }
739 : : else
740 : : {
741 : : aText += GetMetricText( (long)nLeftMargin,
742 [ # # ][ # # ]: 0 : eCoreMetric, ePresentationMetric, pIntl );
[ # # ]
743 [ # # ][ # # ]: 0 : aText += EE_RESSTR(GetMetricId(ePresentationMetric));
[ # # ][ # # ]
744 : : }
745 [ # # ]: 0 : aText += cpDelim;
746 : :
747 : : // nPropFirstLineOfst haben wir nicht
748 : :
749 [ # # ][ # # ]: 0 : aText += EE_RESSTR(RID_SVXITEMS_LRSPACE_RIGHT);
[ # # ]
750 [ # # ]: 0 : if ( 100 != nPropRightMargin )
751 : : {
752 [ # # ][ # # ]: 0 : aText += String::CreateFromInt32( nPropRightMargin );
[ # # ]
753 [ # # ]: 0 : aText += '%';
754 : : }
755 : : else
756 : : {
757 : : aText += GetMetricText( (long)nRightMargin,
758 [ # # ][ # # ]: 0 : eCoreMetric, ePresentationMetric, pIntl );
[ # # ]
759 [ # # ][ # # ]: 0 : aText += EE_RESSTR(GetMetricId(ePresentationMetric));
[ # # ][ # # ]
760 : : }
761 : : }
762 : 0 : break;
763 : :
764 : : default:
765 [ # # ]: 0 : if ( !pIntl )
766 [ # # ]: 0 : pIntl = ScGlobal::GetScIntlWrapper();
767 [ # # ]: 0 : pItem->GetPresentation( ePresentation, eCoreMetric, ePresentationMetric, aText, pIntl );
768 : :
769 : : }
770 : :
771 [ # # ]: 0 : if ( aText.Len() )
772 : : {
773 [ # # ]: 0 : rText += aText;
774 [ # # ]: 0 : rText += aDel;
775 : : }
776 : :
777 [ # # ]: 0 : pItem = aIter.NextItem();
778 : : }
779 : :
780 [ # # ][ # # ]: 0 : rText = comphelper::string::stripEnd(rText, ' ');
[ # # ]
781 [ # # ][ # # ]: 0 : rText = comphelper::string::stripEnd(rText, '+');
[ # # ]
782 [ # # ][ # # ]: 0 : rText = comphelper::string::stripEnd(rText, ' ');
[ # # ]
783 [ # # ][ # # ]: 0 : return ePresentation;
784 : : }
785 : :
786 : 0 : SfxItemPresentation ScDocumentPool::GetPresentation(
787 : : const SfxPoolItem& rItem,
788 : : SfxItemPresentation ePresentation,
789 : : SfxMapUnit ePresentationMetric,
790 : : String& rText,
791 : : const IntlWrapper* pIntl ) const
792 : : {
793 : 0 : sal_uInt16 nW = rItem.Which();
794 [ # # ][ # # ]: 0 : String aStrYes ( ScGlobal::GetRscString(STR_YES) );
795 [ # # ][ # # ]: 0 : String aStrNo ( ScGlobal::GetRscString(STR_NO) );
796 : 0 : rtl::OUString aStrSep(": ");
797 : :
798 [ # # # # : 0 : switch( nW )
# # # # #
# # # ]
799 : : {
800 : : case ATTR_PAGE_TOPDOWN:
801 [ # # # ]: 0 : switch ( ePresentation )
802 : : {
803 : : case SFX_ITEM_PRESENTATION_COMPLETE:
804 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_PRINTDIR);
805 [ # # ]: 0 : rText += aStrSep;
806 : : // break; // DURCHFALLEN!!!
807 : : case SFX_ITEM_PRESENTATION_NAMELESS:
808 : 0 : rText += ((const SfxBoolItem&)rItem).GetValue() ?
809 : : ScGlobal::GetRscString(STR_SCATTR_PAGE_TOPDOWN) :
810 [ # # ][ # # ]: 0 : ScGlobal::GetRscString(STR_SCATTR_PAGE_LEFTRIGHT) ;
[ # # ][ # # ]
811 : 0 : break;
812 : : default:
813 : : {
814 : : // added to avoid warnings
815 : : }
816 : : }
817 : 0 : break;
818 : :
819 : : case ATTR_PAGE_HEADERS:
820 [ # # # ]: 0 : switch ( ePresentation )
821 : : {
822 : : case SFX_ITEM_PRESENTATION_COMPLETE:
823 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_HEADERS);
824 [ # # ]: 0 : rText += aStrSep;
825 : : // break; // DURCHFALLEN!!!
826 : : case SFX_ITEM_PRESENTATION_NAMELESS:
827 [ # # ][ # # ]: 0 : rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
828 : 0 : break;
829 : : default:
830 : : {
831 : : // added to avoid warnings
832 : : }
833 : : }
834 : 0 : break;
835 : :
836 : : case ATTR_PAGE_NULLVALS:
837 [ # # # ]: 0 : switch ( ePresentation )
838 : : {
839 : : case SFX_ITEM_PRESENTATION_COMPLETE:
840 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_NULLVALS);
841 [ # # ]: 0 : rText += aStrSep;
842 : : // break; // DURCHFALLEN!!!
843 : : case SFX_ITEM_PRESENTATION_NAMELESS:
844 [ # # ][ # # ]: 0 : rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
845 : 0 : break;
846 : : default:
847 : : {
848 : : // added to avoid warnings
849 : : }
850 : : }
851 : 0 : break;
852 : :
853 : : case ATTR_PAGE_FORMULAS:
854 [ # # # ]: 0 : switch ( ePresentation )
855 : : {
856 : : case SFX_ITEM_PRESENTATION_COMPLETE:
857 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_FORMULAS);
858 [ # # ]: 0 : rText += aStrSep;
859 : : // break; // DURCHFALLEN!!!
860 : : case SFX_ITEM_PRESENTATION_NAMELESS:
861 [ # # ][ # # ]: 0 : rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
862 : 0 : break;
863 : : default:
864 : : {
865 : : // added to avoid warnings
866 : : }
867 : : }
868 : 0 : break;
869 : :
870 : : case ATTR_PAGE_NOTES:
871 [ # # # ]: 0 : switch ( ePresentation )
872 : : {
873 : : case SFX_ITEM_PRESENTATION_COMPLETE:
874 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_NOTES);
875 [ # # ]: 0 : rText += aStrSep;
876 : : // break; // DURCHFALLEN!!!
877 : : case SFX_ITEM_PRESENTATION_NAMELESS:
878 [ # # ][ # # ]: 0 : rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
879 : 0 : break;
880 : : default:
881 : : {
882 : : // added to avoid warnings
883 : : }
884 : : }
885 : 0 : break;
886 : :
887 : : case ATTR_PAGE_GRID:
888 [ # # # ]: 0 : switch ( ePresentation )
889 : : {
890 : : case SFX_ITEM_PRESENTATION_COMPLETE:
891 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_GRID);
892 [ # # ]: 0 : rText += aStrSep;
893 : : // break; // DURCHFALLEN!!!
894 : : case SFX_ITEM_PRESENTATION_NAMELESS:
895 [ # # ][ # # ]: 0 : rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
896 : 0 : break;
897 : : default:
898 : : {
899 : : // added to avoid warnings
900 : : }
901 : : }
902 : 0 : break;
903 : :
904 : : case ATTR_PAGE_SCALETOPAGES:
905 : : {
906 : 0 : sal_uInt16 nPagNo = ((const SfxUInt16Item&)rItem).GetValue();
907 : :
908 [ # # ]: 0 : if( nPagNo )
909 : : {
910 [ # # # ]: 0 : switch ( ePresentation )
911 : : {
912 : : case SFX_ITEM_PRESENTATION_COMPLETE:
913 : : {
914 [ # # ][ # # ]: 0 : rText.Assign( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALETOPAGES ) ).Append( aStrSep );
[ # # ][ # # ]
[ # # ]
915 : : }
916 : : // break; // DURCHFALLEN!!!
917 : : case SFX_ITEM_PRESENTATION_NAMELESS:
918 : : {
919 [ # # ][ # # ]: 0 : String aPages( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_PAGES ) );
920 [ # # ][ # # ]: 0 : aPages.SearchAndReplaceAscii( "%1", String::CreateFromInt32( nPagNo ) );
[ # # ]
921 [ # # ][ # # ]: 0 : rText.Append( aPages );
922 : : }
923 : 0 : break;
924 : : default:
925 : : {
926 : : // added to avoid warnings
927 : : }
928 : : }
929 : : }
930 : : else
931 : : {
932 : 0 : ePresentation = SFX_ITEM_PRESENTATION_NONE;
933 : : }
934 : : }
935 : 0 : break;
936 : :
937 : : case ATTR_PAGE_FIRSTPAGENO:
938 : : {
939 : 0 : sal_uInt16 nPagNo = ((const SfxUInt16Item&)rItem).GetValue();
940 : :
941 [ # # ]: 0 : if( nPagNo )
942 : : {
943 [ # # # ]: 0 : switch ( ePresentation )
944 : : {
945 : : case SFX_ITEM_PRESENTATION_COMPLETE:
946 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_FIRSTPAGENO);
947 [ # # ]: 0 : rText += aStrSep;
948 : : // break; // DURCHFALLEN!!!
949 : : case SFX_ITEM_PRESENTATION_NAMELESS:
950 [ # # ][ # # ]: 0 : rText += String::CreateFromInt32( nPagNo );
[ # # ]
951 : 0 : break;
952 : : default:
953 : : {
954 : : // added to avoid warnings
955 : : }
956 : : }
957 : : }
958 : : else
959 : : {
960 : 0 : ePresentation = SFX_ITEM_PRESENTATION_NONE;
961 : : }
962 : : }
963 : 0 : break;
964 : :
965 : : case ATTR_PAGE_SCALE:
966 : : {
967 : 0 : sal_uInt16 nPercent = ((const SfxUInt16Item&)rItem).GetValue();
968 : :
969 [ # # ]: 0 : if( nPercent )
970 : : {
971 [ # # # ]: 0 : switch ( ePresentation )
972 : : {
973 : : case SFX_ITEM_PRESENTATION_COMPLETE:
974 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_SCATTR_PAGE_SCALE);
975 [ # # ]: 0 : rText += aStrSep;
976 : : // break; // DURCHFALLEN!!!
977 : : case SFX_ITEM_PRESENTATION_NAMELESS:
978 [ # # ][ # # ]: 0 : rText += String::CreateFromInt32( nPercent );
[ # # ]
979 [ # # ]: 0 : rText += '%';
980 : 0 : break;
981 : : default:
982 : : {
983 : : // added to avoid warnings
984 : : }
985 : : }
986 : : }
987 : : else
988 : : {
989 : 0 : ePresentation = SFX_ITEM_PRESENTATION_NONE;
990 : : }
991 : : }
992 : 0 : break;
993 : :
994 : : case ATTR_PAGE_HEADERSET:
995 : : {
996 [ # # ]: 0 : String aBuffer;
997 : :
998 [ # # ][ # # ]: 0 : if( lcl_HFPresentation( rItem, ePresentation, GetMetric( nW ), ePresentationMetric, aBuffer, pIntl ) != SFX_ITEM_PRESENTATION_NONE )
[ # # ]
999 : : {
1000 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_HEADER);
1001 [ # # ]: 0 : rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ( " ));
1002 [ # # ]: 0 : rText += aBuffer;
1003 [ # # ]: 0 : rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ) " ));
1004 [ # # ]: 0 : }
1005 : : }
1006 : 0 : break;
1007 : :
1008 : : case ATTR_PAGE_FOOTERSET:
1009 : : {
1010 [ # # ]: 0 : String aBuffer;
1011 : :
1012 [ # # ][ # # ]: 0 : if( lcl_HFPresentation( rItem, ePresentation, GetMetric( nW ), ePresentationMetric, aBuffer, pIntl ) != SFX_ITEM_PRESENTATION_NONE )
[ # # ]
1013 : : {
1014 [ # # ][ # # ]: 0 : rText = ScGlobal::GetRscString(STR_FOOTER);
1015 [ # # ]: 0 : rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ( " ));
1016 [ # # ]: 0 : rText += aBuffer;
1017 [ # # ]: 0 : rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ) " ));
1018 [ # # ]: 0 : }
1019 : : }
1020 : 0 : break;
1021 : :
1022 : : default:
1023 [ # # ]: 0 : if ( !pIntl )
1024 [ # # ]: 0 : pIntl = ScGlobal::GetScIntlWrapper();
1025 [ # # ][ # # ]: 0 : ePresentation = rItem.GetPresentation( ePresentation, GetMetric( nW ), ePresentationMetric, rText, pIntl );
1026 : 0 : break;
1027 : : }
1028 : :
1029 [ # # ][ # # ]: 0 : return ePresentation;
1030 : : }
1031 : :
1032 : 0 : SfxMapUnit ScDocumentPool::GetMetric( sal_uInt16 nWhich ) const
1033 : : {
1034 : : // eigene Attribute: Twips, alles andere 1/100 mm
1035 : :
1036 [ # # ][ # # ]: 0 : if ( nWhich >= ATTR_STARTINDEX && nWhich <= ATTR_ENDINDEX )
1037 : 0 : return SFX_MAPUNIT_TWIP;
1038 : : else
1039 : 0 : return SFX_MAPUNIT_100TH_MM;
1040 : : }
1041 : :
1042 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|