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 :
20 : #include <acmplwrd.hxx>
21 : #include <boost/scoped_ptr.hpp>
22 : #include <breakit.hxx>
23 : #include <cellatr.hxx>
24 : #include <checkit.hxx>
25 : #include <cmdid.h>
26 : #include <fesh.hxx>
27 : #include <comphelper/processfactory.hxx>
28 : #include <com/sun/star/i18n/CollatorOptions.hpp>
29 : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
30 : #include <doc.hxx>
31 : #include <editeng/acorrcfg.hxx>
32 : #include <editeng/autokernitem.hxx>
33 : #include <editeng/blinkitem.hxx>
34 : #include <editeng/formatbreakitem.hxx>
35 : #include <editeng/charhiddenitem.hxx>
36 : #include <editeng/charreliefitem.hxx>
37 : #include <editeng/charrotateitem.hxx>
38 : #include <editeng/charscaleitem.hxx>
39 : #include <editeng/cmapitem.hxx>
40 : #include <editeng/charsetcoloritem.hxx>
41 : #include <editeng/emphasismarkitem.hxx>
42 : #include <editeng/escapementitem.hxx>
43 : #include <editeng/forbiddenruleitem.hxx>
44 : #include <editeng/frmdiritem.hxx>
45 : #include <editeng/hngpnctitem.hxx>
46 : #include <editeng/hyphenzoneitem.hxx>
47 : #include <editeng/keepitem.hxx>
48 : #include <editeng/kernitem.hxx>
49 : #include <editeng/langitem.hxx>
50 : #include <editeng/lrspitem.hxx>
51 : #include <editeng/lspcitem.hxx>
52 : #include <editeng/nhypitem.hxx>
53 : #include <editeng/nlbkitem.hxx>
54 : #include <editeng/opaqitem.hxx>
55 : #include <editeng/orphitem.hxx>
56 : #include <editeng/paravertalignitem.hxx>
57 : #include <editeng/pbinitem.hxx>
58 : #include <editeng/pgrditem.hxx>
59 : #include <editeng/prntitem.hxx>
60 : #include <editeng/protitem.hxx>
61 : #include <editeng/prszitem.hxx>
62 : #include <editeng/rsiditem.hxx>
63 : #include <svl/grabbagitem.hxx>
64 : #include <editeng/scriptspaceitem.hxx>
65 : #include <editeng/shaditem.hxx>
66 : #include <editeng/spltitem.hxx>
67 : #include <editeng/svxacorr.hxx>
68 : #include <editeng/swafopt.hxx>
69 : #include <editeng/tstpitem.hxx>
70 : #include <editeng/twolinesitem.hxx>
71 : #include <editeng/ulspitem.hxx>
72 : #include <editeng/unolingu.hxx>
73 : #include <editeng/widwitem.hxx>
74 : #include <editeng/wrlmitem.hxx>
75 : #include <editeng/xmlcnitm.hxx>
76 : #include <editsh.hxx>
77 : #include <fchrfmt.hxx>
78 : #include <fmtanchr.hxx>
79 : #include <fmtautofmt.hxx>
80 : #include <fmtclbl.hxx>
81 : #include <fmtclds.hxx>
82 : #include <fmtcnct.hxx>
83 : #include <fmtcntnt.hxx>
84 : #include <fmteiro.hxx>
85 : #include <fmtflcnt.hxx>
86 : #include <fmtfld.hxx>
87 : #include <fmtfollowtextflow.hxx>
88 : #include <fmtfordr.hxx>
89 : #include <fmtfsize.hxx>
90 : #include <fmtftn.hxx>
91 : #include <fmtftntx.hxx>
92 : #include <fmthdft.hxx>
93 : #include <fmtinfmt.hxx>
94 : #include <fmtline.hxx>
95 : #include <fmtlsplt.hxx>
96 : #include <fmtmeta.hxx>
97 : #include <fmtornt.hxx>
98 : #include <fmtpdsc.hxx>
99 : #include <fmtrfmrk.hxx>
100 : #include <fmtrowsplt.hxx>
101 : #include <fmtruby.hxx>
102 : #include <fmtsrnd.hxx>
103 : #include <fmturl.hxx>
104 : #include <fmtwrapinfluenceonobjpos.hxx>
105 : #include <fntcache.hxx>
106 : #include <grfatr.hxx>
107 : #include <hfspacingitem.hxx>
108 : #include <hintids.hxx>
109 : #include <init.hxx>
110 : #include <pam.hxx>
111 : #include <paratr.hxx>
112 : #include <proofreadingiterator.hxx>
113 : #include <rtl/instance.hxx>
114 : #include <svl/macitem.hxx>
115 : #include <svx/dialogs.hrc>
116 : #include <svx/xfillit0.hxx>
117 : #include <svx/xflgrit.hxx>
118 : #include <svx/sdtaitm.hxx>
119 : #include <swcalwrp.hxx>
120 : #include <SwStyleNameMapper.hxx>
121 : #include <tblafmt.hxx>
122 : #include <tgrditem.hxx>
123 : #include <tools/globname.hxx>
124 : #include <tox.hxx>
125 : #include <unotools/charclass.hxx>
126 : #include <unotools/collatorwrapper.hxx>
127 : #include <unotools/syslocale.hxx>
128 : #include <unotools/transliterationwrapper.hxx>
129 : #include <vcl/mapmod.hxx>
130 : #include <vcl/svapp.hxx>
131 : #include <vcl/settings.hxx>
132 : #include <viscrs.hxx>
133 :
134 : using namespace ::com::sun::star;
135 :
136 : // some ranges for sets in collections/ nodes
137 :
138 : // AttrSet range for the 2 break attributes
139 : sal_uInt16 aBreakSetRange[] = {
140 : RES_PAGEDESC, RES_BREAK,
141 : 0
142 : };
143 :
144 : // AttrSet range for TextFormatColl
145 : // list attributes ( RES_PARATR_LIST_BEGIN - RES_PARATR_LIST_END ) are not
146 : // included in the paragraph style's itemset.
147 : sal_uInt16 aTextFormatCollSetRange[] = {
148 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
149 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
150 : RES_PARATR_BEGIN, RES_PARATR_END-1,
151 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
152 :
153 : //UUUU FillAttribute support
154 : XATTR_FILL_FIRST, XATTR_FILL_LAST,
155 :
156 : 0
157 : };
158 :
159 : // AttrSet range for GrfFormatColl
160 : sal_uInt16 aGrfFormatCollSetRange[] = {
161 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
162 : RES_GRFATR_BEGIN, RES_GRFATR_END-1,
163 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
164 : 0
165 : };
166 :
167 : // AttrSet range for TextNode
168 : sal_uInt16 aTextNodeSetRange[] = {
169 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
170 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
171 : RES_PARATR_BEGIN, RES_PARATR_END-1,
172 : RES_PARATR_LIST_BEGIN, RES_PARATR_LIST_END-1,
173 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
174 :
175 : //UUUU FillAttribute support (paragraph FillStyle)
176 : XATTR_FILL_FIRST, XATTR_FILL_LAST,
177 :
178 : 0
179 : };
180 :
181 : // AttrSet range for NoTextNode
182 : sal_uInt16 aNoTextNodeSetRange[] = {
183 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
184 : RES_GRFATR_BEGIN, RES_GRFATR_END-1,
185 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
186 : 0
187 : };
188 :
189 : sal_uInt16 aTableSetRange[] = {
190 : RES_FILL_ORDER, RES_FRM_SIZE,
191 : RES_LR_SPACE, RES_BREAK,
192 : RES_BACKGROUND, RES_SHADOW,
193 : RES_HORI_ORIENT, RES_HORI_ORIENT,
194 : RES_KEEP, RES_KEEP,
195 : RES_LAYOUT_SPLIT, RES_LAYOUT_SPLIT,
196 : RES_FRAMEDIR, RES_FRAMEDIR,
197 : // #i29550#
198 : RES_COLLAPSING_BORDERS, RES_COLLAPSING_BORDERS,
199 : // <-- collapsing
200 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
201 : RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG,
202 : 0
203 : };
204 :
205 : sal_uInt16 aTableLineSetRange[] = {
206 : RES_FILL_ORDER, RES_FRM_SIZE,
207 : RES_LR_SPACE, RES_UL_SPACE,
208 : RES_BACKGROUND, RES_SHADOW,
209 : RES_ROW_SPLIT, RES_ROW_SPLIT,
210 : RES_PROTECT, RES_PROTECT,
211 : RES_VERT_ORIENT, RES_VERT_ORIENT,
212 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
213 : RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG,
214 : 0
215 : };
216 :
217 : sal_uInt16 aTableBoxSetRange[] = {
218 : RES_FILL_ORDER, RES_FRM_SIZE,
219 : RES_LR_SPACE, RES_UL_SPACE,
220 : RES_BACKGROUND, RES_SHADOW,
221 : RES_PROTECT, RES_PROTECT,
222 : RES_VERT_ORIENT, RES_VERT_ORIENT,
223 : RES_FRAMEDIR, RES_FRAMEDIR,
224 : RES_BOXATR_BEGIN, RES_BOXATR_END-1,
225 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
226 : RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG,
227 : 0
228 : };
229 :
230 : // AttrSet range for SwFrameFormat
231 : sal_uInt16 aFrameFormatSetRange[] = {
232 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
233 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
234 :
235 : //UUUU FillAttribute support (TextFrame, OLE, Writer GraphicObject)
236 : XATTR_FILL_FIRST, XATTR_FILL_LAST,
237 :
238 : 0
239 : };
240 :
241 : // AttrSet range for SwCharFormat
242 : sal_uInt16 aCharFormatSetRange[] = {
243 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
244 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
245 : 0
246 : };
247 :
248 : // AttrSet range for character autostyles
249 : sal_uInt16 aCharAutoFormatSetRange[] = {
250 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
251 : RES_TXTATR_UNKNOWN_CONTAINER, RES_TXTATR_UNKNOWN_CONTAINER,
252 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
253 : 0
254 : };
255 :
256 : // AttrSet range for SwPageDescFormat
257 : sal_uInt16 aPgFrameFormatSetRange[] = {
258 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
259 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
260 : 0
261 : };
262 :
263 : // create table for accessing default format attributes
264 : SwDfltAttrTab aAttrTab;
265 :
266 : SfxItemInfo aSlotTab[] =
267 : {
268 : { SID_ATTR_CHAR_CASEMAP, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CASEMAP
269 : { SID_ATTR_CHAR_CHARSETCOLOR, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CHARSETCOLOR
270 : { SID_ATTR_CHAR_COLOR, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_COLOR
271 : { SID_ATTR_CHAR_CONTOUR, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CONTOUR
272 : { SID_ATTR_CHAR_STRIKEOUT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CROSSEDOUT
273 : { SID_ATTR_CHAR_ESCAPEMENT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_ESCAPEMENT
274 : { SID_ATTR_CHAR_FONT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_FONT
275 : { SID_ATTR_CHAR_FONTHEIGHT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_FONTSIZE
276 : { SID_ATTR_CHAR_KERNING, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_KERNING
277 : { SID_ATTR_CHAR_LANGUAGE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_LANGUAGE
278 : { SID_ATTR_CHAR_POSTURE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_POSTURE
279 : { SID_ATTR_CHAR_PROPSIZE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_PROPORTIONALFONTSIZE
280 : { SID_ATTR_CHAR_SHADOWED, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_SHADOWED
281 : { SID_ATTR_CHAR_UNDERLINE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_UNDERLINE
282 : { SID_ATTR_CHAR_WEIGHT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_WEIGHT
283 : { SID_ATTR_CHAR_WORDLINEMODE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_WORDLINEMODE
284 : { SID_ATTR_CHAR_AUTOKERN, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_AUTOKERN
285 : { SID_ATTR_FLASH, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_BLINK
286 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_NOLINEBREAK
287 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_NOHYPHEN
288 : { SID_ATTR_BRUSH_CHAR, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_BACKGROUND
289 : { SID_ATTR_CHAR_CJK_FONT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CJK_FONT
290 : { SID_ATTR_CHAR_CJK_FONTHEIGHT, SfxItemPoolFlags::POOLABLE },// RES_CHRATR_CJK_FONTSIZE
291 : { SID_ATTR_CHAR_CJK_LANGUAGE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CJK_LANGUAGE
292 : { SID_ATTR_CHAR_CJK_POSTURE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CJK_POSTURE
293 : { SID_ATTR_CHAR_CJK_WEIGHT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CJK_WEIGHT
294 : { SID_ATTR_CHAR_CTL_FONT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CTL_FONT
295 : { SID_ATTR_CHAR_CTL_FONTHEIGHT, SfxItemPoolFlags::POOLABLE },// RES_CHRATR_CTL_FONTSIZE
296 : { SID_ATTR_CHAR_CTL_LANGUAGE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CTL_LANGUAGE
297 : { SID_ATTR_CHAR_CTL_POSTURE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CTL_POSTURE
298 : { SID_ATTR_CHAR_CTL_WEIGHT, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_CTL_WEIGHT
299 : { SID_ATTR_CHAR_ROTATED, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_ROTATE
300 : { SID_ATTR_CHAR_EMPHASISMARK, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_EMPHASIS_MARK
301 : { SID_ATTR_CHAR_TWO_LINES, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_TWO_LINES
302 : { SID_ATTR_CHAR_SCALEWIDTH, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_SCALEW
303 : { SID_ATTR_CHAR_RELIEF, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_RELIEF
304 : { SID_ATTR_CHAR_HIDDEN, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_HIDDEN
305 : { SID_ATTR_CHAR_OVERLINE, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_OVERLINE
306 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_RSID
307 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_BOX
308 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_SHADOW
309 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_HIGHLIGHT
310 : { SID_ATTR_CHAR_GRABBAG, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_GRABBAG
311 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_BIDIRTL
312 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_CHRATR_IDCTHINT
313 :
314 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_REFMARK
315 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_TOXMARK
316 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_META
317 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_METAFIELD
318 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TXTATR_AUTOFMT
319 : { FN_TXTATR_INET, SfxItemPoolFlags::NONE }, // RES_TXTATR_INETFMT
320 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_CHARFMT
321 : { SID_ATTR_CHAR_CJK_RUBY, SfxItemPoolFlags::NONE }, // RES_TXTATR_CJK_RUBY
322 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TXTATR_UNKNOWN_CONTAINER
323 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_INPUTFIELD
324 :
325 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_FIELD
326 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_FLYCNT
327 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_FTN
328 : { 0, SfxItemPoolFlags::NONE }, // RES_TXTATR_ANNOTATION
329 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TXTATR_DUMMY3
330 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TXTATR_DUMMY1
331 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TXTATR_DUMMY2
332 :
333 : { SID_ATTR_PARA_LINESPACE, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_LINESPACING
334 : { SID_ATTR_PARA_ADJUST, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_ADJUST
335 : { SID_ATTR_PARA_SPLIT, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_SPLIT
336 : { SID_ATTR_PARA_ORPHANS, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_ORPHANS
337 : { SID_ATTR_PARA_WIDOWS, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_WIDOWS
338 : { SID_ATTR_TABSTOP, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_TABSTOP
339 : { SID_ATTR_PARA_HYPHENZONE, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_HYPHENZONE
340 : { FN_FORMAT_DROPCAPS, SfxItemPoolFlags::NONE }, // RES_PARATR_DROP
341 : { SID_ATTR_PARA_REGISTER, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_REGISTER
342 : { SID_ATTR_PARA_NUMRULE, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_NUMRULE
343 : { SID_ATTR_PARA_SCRIPTSPACE, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_SCRIPTSPACE
344 : { SID_ATTR_PARA_HANGPUNCTUATION, SfxItemPoolFlags::POOLABLE },// RES_PARATR_HANGINGPUNCTUATION
345 :
346 : { SID_ATTR_PARA_FORBIDDEN_RULES, SfxItemPoolFlags::POOLABLE },// RES_PARATR_FORBIDDEN_RULES
347 : { SID_PARA_VERTALIGN, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_VERTALIGN
348 : { SID_ATTR_PARA_SNAPTOGRID, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_SNAPTOGRID
349 : { SID_ATTR_BORDER_CONNECT, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_CONNECT_BORDER
350 :
351 : { SID_ATTR_PARA_OUTLINE_LEVEL, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_OUTLINELEVEL //#outline level
352 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_RSID
353 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_GRABBAG
354 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_LIST_ID
355 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_LIST_LEVEL
356 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_LIST_ISRESTART
357 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_LIST_RESTARTVALUE
358 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PARATR_LIST_ISCOUNTED
359 :
360 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FILL_ORDER
361 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FRM_SIZE
362 : { SID_ATTR_PAGE_PAPERBIN, SfxItemPoolFlags::POOLABLE }, // RES_PAPER_BIN
363 : { SID_ATTR_LRSPACE, SfxItemPoolFlags::POOLABLE }, // RES_LR_SPACE
364 : { SID_ATTR_ULSPACE, SfxItemPoolFlags::POOLABLE }, // RES_UL_SPACE
365 : { 0, SfxItemPoolFlags::NONE }, // RES_PAGEDESC
366 : { SID_ATTR_PARA_PAGEBREAK, SfxItemPoolFlags::POOLABLE }, // RES_BREAK
367 : { 0, SfxItemPoolFlags::NONE }, // RES_CNTNT
368 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_HEADER
369 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FOOTER
370 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_PRINT
371 : { FN_OPAQUE, SfxItemPoolFlags::POOLABLE }, // RES_OPAQUE
372 : { FN_SET_PROTECT, SfxItemPoolFlags::POOLABLE }, // RES_PROTECT
373 : { FN_SURROUND, SfxItemPoolFlags::POOLABLE }, // RES_SURROUND
374 : { FN_VERT_ORIENT, SfxItemPoolFlags::POOLABLE }, // RES_VERT_ORIENT
375 : { FN_HORI_ORIENT, SfxItemPoolFlags::POOLABLE }, // RES_HORI_ORIENT
376 : { 0, SfxItemPoolFlags::NONE }, // RES_ANCHOR
377 : { SID_ATTR_BRUSH, SfxItemPoolFlags::POOLABLE }, // RES_BACKGROUND
378 : { SID_ATTR_BORDER_OUTER, SfxItemPoolFlags::POOLABLE }, // RES_BOX
379 : { SID_ATTR_BORDER_SHADOW, SfxItemPoolFlags::POOLABLE }, // RES_SHADOW
380 : { SID_ATTR_MACROITEM, SfxItemPoolFlags::POOLABLE }, // RES_FRMMACRO
381 : { FN_ATTR_COLUMNS, SfxItemPoolFlags::POOLABLE }, // RES_COL
382 : { SID_ATTR_PARA_KEEP, SfxItemPoolFlags::POOLABLE }, // RES_KEEP
383 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_URL
384 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_EDIT_IN_READONLY
385 :
386 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_LAYOUT_SPLIT
387 : { 0, SfxItemPoolFlags::NONE }, // RES_CHAIN
388 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TEXTGRID
389 : { FN_FORMAT_LINENUMBER, SfxItemPoolFlags::POOLABLE }, // RES_LINENUMBER
390 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FTN_AT_TXTEND
391 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_END_AT_TXTEND
392 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_COLUMNBALANCE
393 :
394 : { SID_ATTR_FRAMEDIRECTION, SfxItemPoolFlags::POOLABLE }, // RES_FRAMEDIR
395 :
396 : { SID_ATTR_HDFT_DYNAMIC_SPACING, SfxItemPoolFlags::POOLABLE },// RES_HEADER_FOOTER_EAT_SPACING
397 : { FN_TABLE_ROW_SPLIT, SfxItemPoolFlags::POOLABLE }, // RES_ROW_SPLIT
398 : // #i18732# - use slot-id define in svx
399 : { SID_SW_FOLLOW_TEXT_FLOW, SfxItemPoolFlags::POOLABLE }, // RES_FOLLOW_TEXT_FLOW
400 : // #i29550#
401 : { SID_SW_COLLAPSING_BORDERS, SfxItemPoolFlags::POOLABLE }, // RES_COLLAPSING_BORDERS
402 : // #i28701#
403 : { SID_SW_WRAP_INFLUENCE_ON_OBJPOS, SfxItemPoolFlags::POOLABLE },// RES_WRAP_INFLUENCE_ON_OBJPOS
404 : { 0, SfxItemPoolFlags::NONE }, // RES_AUTO_STYLE
405 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FRMATR_STYLE_NAME
406 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FRMATR_CONDITIONAL_STYLE_NAME
407 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_FRMATR_GRABBAG
408 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_TEXT_VERT_ADJUST
409 :
410 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_MIRRORGRF
411 : { SID_ATTR_GRAF_CROP, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_CROPGRF
412 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_ROTATION,
413 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_LUMINANCE,
414 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_CONTRAST,
415 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_CHANNELR,
416 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_CHANNELG,
417 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_CHANNELB,
418 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_GAMMA,
419 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_INVERT,
420 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_TRANSPARENCY,
421 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_DUMMY1,
422 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_DUMMY2,
423 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_DUMMY3,
424 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_DUMMY4,
425 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_DUMMY5,
426 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_GRFATR_DUMMY6,
427 :
428 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_BOXATR_FORMAT
429 : { 0, SfxItemPoolFlags::NONE }, // RES_BOXATR_FORMULA,
430 : { 0, SfxItemPoolFlags::POOLABLE }, // RES_BOXATR_VALUE
431 :
432 : { 0, SfxItemPoolFlags::POOLABLE } // RES_UNKNOWNATR_CONTAINER
433 : };
434 :
435 : sal_uInt16* SwAttrPool::pVersionMap1 = 0;
436 : sal_uInt16* SwAttrPool::pVersionMap2 = 0;
437 : sal_uInt16* SwAttrPool::pVersionMap3 = 0;
438 : sal_uInt16* SwAttrPool::pVersionMap4 = 0;
439 : // #i18732#
440 : sal_uInt16* SwAttrPool::pVersionMap5 = 0;
441 : sal_uInt16* SwAttrPool::pVersionMap6 = 0;
442 : sal_uInt16* SwAttrPool::pVersionMap7 = 0;
443 :
444 : std::vector<SvGlobalName*> *pGlobalOLEExcludeList = 0;
445 :
446 : SwAutoCompleteWord* SwDoc::mpACmpltWords = 0;
447 :
448 : SwCheckIt* pCheckIt = 0;
449 : CharClass* pAppCharClass = 0;
450 :
451 : CollatorWrapper* pCollator = 0,
452 : *pCaseCollator = 0;
453 :
454 0 : salhelper::SingletonRef<SwCalendarWrapper>* s_getCalendarWrapper()
455 : {
456 0 : static salhelper::SingletonRef<SwCalendarWrapper> aCalendarWrapper;
457 0 : return &aCalendarWrapper;
458 : }
459 :
460 59 : void _InitCore()
461 : {
462 : SfxPoolItem* pItem;
463 :
464 : // first initialize all attribute pointers with 0
465 59 : memset( aAttrTab, 0, (POOLATTR_END - POOLATTR_BEGIN) * sizeof( SfxPoolItem* ) );
466 :
467 59 : aAttrTab[ RES_CHRATR_CASEMAP- POOLATTR_BEGIN ] = new SvxCaseMapItem( SVX_CASEMAP_NOT_MAPPED, RES_CHRATR_CASEMAP);
468 59 : aAttrTab[ RES_CHRATR_CHARSETCOLOR- POOLATTR_BEGIN ] = new SvxCharSetColorItem(RES_CHRATR_CHARSETCOLOR);
469 59 : aAttrTab[ RES_CHRATR_COLOR- POOLATTR_BEGIN ] = new SvxColorItem(RES_CHRATR_COLOR);
470 59 : aAttrTab[ RES_CHRATR_CONTOUR- POOLATTR_BEGIN ] = new SvxContourItem( false, RES_CHRATR_CONTOUR );
471 59 : aAttrTab[ RES_CHRATR_CROSSEDOUT- POOLATTR_BEGIN ] = new SvxCrossedOutItem( STRIKEOUT_NONE, RES_CHRATR_CROSSEDOUT );
472 59 : aAttrTab[ RES_CHRATR_ESCAPEMENT- POOLATTR_BEGIN ] = new SvxEscapementItem( RES_CHRATR_ESCAPEMENT );
473 59 : aAttrTab[ RES_CHRATR_FONT- POOLATTR_BEGIN ] = new SvxFontItem( RES_CHRATR_FONT );
474 :
475 59 : aAttrTab[ RES_CHRATR_FONTSIZE- POOLATTR_BEGIN ] = new SvxFontHeightItem( 240, 100, RES_CHRATR_FONTSIZE );
476 59 : aAttrTab[ RES_CHRATR_KERNING- POOLATTR_BEGIN ] = new SvxKerningItem( 0, RES_CHRATR_KERNING );
477 59 : aAttrTab[ RES_CHRATR_LANGUAGE- POOLATTR_BEGIN ] = new SvxLanguageItem(LANGUAGE_DONTKNOW, RES_CHRATR_LANGUAGE );
478 59 : aAttrTab[ RES_CHRATR_POSTURE- POOLATTR_BEGIN ] = new SvxPostureItem( ITALIC_NONE, RES_CHRATR_POSTURE );
479 59 : aAttrTab[ RES_CHRATR_PROPORTIONALFONTSIZE- POOLATTR_BEGIN ] = new SvxPropSizeItem( 100, RES_CHRATR_PROPORTIONALFONTSIZE );
480 59 : aAttrTab[ RES_CHRATR_SHADOWED- POOLATTR_BEGIN ] = new SvxShadowedItem( false, RES_CHRATR_SHADOWED );
481 59 : aAttrTab[ RES_CHRATR_UNDERLINE- POOLATTR_BEGIN ] = new SvxUnderlineItem( UNDERLINE_NONE, RES_CHRATR_UNDERLINE );
482 59 : aAttrTab[ RES_CHRATR_WEIGHT- POOLATTR_BEGIN ] = new SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_WEIGHT );
483 59 : aAttrTab[ RES_CHRATR_RSID - POOLATTR_BEGIN ] = new SvxRsidItem( 0, RES_CHRATR_RSID );
484 59 : aAttrTab[ RES_CHRATR_WORDLINEMODE- POOLATTR_BEGIN ] = new SvxWordLineModeItem( false, RES_CHRATR_WORDLINEMODE );
485 59 : aAttrTab[ RES_CHRATR_AUTOKERN- POOLATTR_BEGIN ] = new SvxAutoKernItem( false, RES_CHRATR_AUTOKERN );
486 59 : aAttrTab[ RES_CHRATR_BLINK - POOLATTR_BEGIN ] = new SvxBlinkItem( false, RES_CHRATR_BLINK );
487 59 : aAttrTab[ RES_CHRATR_NOHYPHEN - POOLATTR_BEGIN ] = new SvxNoHyphenItem( true, RES_CHRATR_NOHYPHEN );
488 59 : aAttrTab[ RES_CHRATR_NOLINEBREAK- POOLATTR_BEGIN ] = new SvxNoLinebreakItem( true, RES_CHRATR_NOLINEBREAK );
489 59 : aAttrTab[ RES_CHRATR_BACKGROUND - POOLATTR_BEGIN ] = new SvxBrushItem( RES_CHRATR_BACKGROUND );
490 :
491 : // CJK-Attributes
492 59 : aAttrTab[ RES_CHRATR_CJK_FONT - POOLATTR_BEGIN ] = new SvxFontItem( RES_CHRATR_CJK_FONT );
493 59 : aAttrTab[ RES_CHRATR_CJK_FONTSIZE - POOLATTR_BEGIN ] = new SvxFontHeightItem( 240, 100, RES_CHRATR_CJK_FONTSIZE );
494 59 : aAttrTab[ RES_CHRATR_CJK_LANGUAGE - POOLATTR_BEGIN ] = new SvxLanguageItem(LANGUAGE_DONTKNOW, RES_CHRATR_CJK_LANGUAGE);
495 59 : aAttrTab[ RES_CHRATR_CJK_POSTURE - POOLATTR_BEGIN ] = new SvxPostureItem(ITALIC_NONE, RES_CHRATR_CJK_POSTURE );
496 59 : aAttrTab[ RES_CHRATR_CJK_WEIGHT - POOLATTR_BEGIN ] = new SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_CJK_WEIGHT );
497 :
498 : // CTL-Attributes
499 59 : aAttrTab[ RES_CHRATR_CTL_FONT - POOLATTR_BEGIN ] = new SvxFontItem( RES_CHRATR_CTL_FONT );
500 59 : aAttrTab[ RES_CHRATR_CTL_FONTSIZE - POOLATTR_BEGIN ] = new SvxFontHeightItem( 240, 100, RES_CHRATR_CTL_FONTSIZE );
501 59 : aAttrTab[ RES_CHRATR_CTL_LANGUAGE - POOLATTR_BEGIN ] = new SvxLanguageItem(LANGUAGE_DONTKNOW, RES_CHRATR_CTL_LANGUAGE);
502 59 : aAttrTab[ RES_CHRATR_CTL_POSTURE - POOLATTR_BEGIN ] = new SvxPostureItem(ITALIC_NONE, RES_CHRATR_CTL_POSTURE );
503 59 : aAttrTab[ RES_CHRATR_CTL_WEIGHT - POOLATTR_BEGIN ] = new SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_CTL_WEIGHT );
504 :
505 59 : aAttrTab[ RES_CHRATR_ROTATE - POOLATTR_BEGIN ] = new SvxCharRotateItem( 0, false, RES_CHRATR_ROTATE );
506 59 : aAttrTab[ RES_CHRATR_EMPHASIS_MARK - POOLATTR_BEGIN ] = new SvxEmphasisMarkItem( EMPHASISMARK_NONE, RES_CHRATR_EMPHASIS_MARK );
507 59 : aAttrTab[ RES_CHRATR_TWO_LINES - POOLATTR_BEGIN ] = new SvxTwoLinesItem( false, 0, 0, RES_CHRATR_TWO_LINES );
508 59 : aAttrTab[ RES_CHRATR_SCALEW - POOLATTR_BEGIN ] = new SvxCharScaleWidthItem( 100, RES_CHRATR_SCALEW );
509 59 : aAttrTab[ RES_CHRATR_RELIEF - POOLATTR_BEGIN ] = new SvxCharReliefItem( RELIEF_NONE, RES_CHRATR_RELIEF );
510 59 : aAttrTab[ RES_CHRATR_HIDDEN - POOLATTR_BEGIN ] = new SvxCharHiddenItem( false, RES_CHRATR_HIDDEN );
511 59 : aAttrTab[ RES_CHRATR_OVERLINE- POOLATTR_BEGIN ] = new SvxOverlineItem( UNDERLINE_NONE, RES_CHRATR_OVERLINE );
512 59 : aAttrTab[ RES_CHRATR_BOX - POOLATTR_BEGIN ] = new SvxBoxItem( RES_CHRATR_BOX );
513 59 : aAttrTab[ RES_CHRATR_SHADOW - POOLATTR_BEGIN ] = new SvxShadowItem( RES_CHRATR_SHADOW );
514 59 : aAttrTab[ RES_CHRATR_HIGHLIGHT - POOLATTR_BEGIN ] = new SvxBrushItem( RES_CHRATR_HIGHLIGHT );
515 59 : aAttrTab[ RES_CHRATR_GRABBAG - POOLATTR_BEGIN ] = new SfxGrabBagItem( RES_CHRATR_GRABBAG );
516 :
517 : // CharakterAttr - MSWord weak char direction/script override emulation
518 59 : aAttrTab[ RES_CHRATR_BIDIRTL - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_BIDIRTL, sal_Int16(-1) );
519 59 : aAttrTab[ RES_CHRATR_IDCTHINT - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_IDCTHINT, sal_Int16(-1) );
520 :
521 59 : aAttrTab[ RES_TXTATR_REFMARK - POOLATTR_BEGIN ] = new SwFormatRefMark( OUString() );
522 59 : aAttrTab[ RES_TXTATR_TOXMARK - POOLATTR_BEGIN ] = new SwTOXMark;
523 59 : aAttrTab[ RES_TXTATR_META - POOLATTR_BEGIN ] = SwFormatMeta::CreatePoolDefault(RES_TXTATR_META);
524 59 : aAttrTab[ RES_TXTATR_METAFIELD - POOLATTR_BEGIN ] = SwFormatMeta::CreatePoolDefault(RES_TXTATR_METAFIELD);
525 59 : aAttrTab[ RES_TXTATR_AUTOFMT- POOLATTR_BEGIN ] = new SwFormatAutoFormat;
526 59 : aAttrTab[ RES_TXTATR_INETFMT - POOLATTR_BEGIN ] = new SwFormatINetFormat( OUString(), OUString() );
527 59 : aAttrTab[ RES_TXTATR_CHARFMT- POOLATTR_BEGIN ] = new SwFormatCharFormat( 0 );
528 59 : aAttrTab[ RES_TXTATR_CJK_RUBY - POOLATTR_BEGIN ] = new SwFormatRuby( OUString() );
529 59 : aAttrTab[ RES_TXTATR_UNKNOWN_CONTAINER - POOLATTR_BEGIN ] = new SvXMLAttrContainerItem( RES_TXTATR_UNKNOWN_CONTAINER );
530 59 : aAttrTab[ RES_TXTATR_INPUTFIELD - POOLATTR_BEGIN ] = new SwFormatField( RES_TXTATR_INPUTFIELD );
531 :
532 59 : aAttrTab[ RES_TXTATR_FIELD- POOLATTR_BEGIN ] = new SwFormatField( RES_TXTATR_FIELD );
533 59 : aAttrTab[ RES_TXTATR_FLYCNT - POOLATTR_BEGIN ] = new SwFormatFlyCnt( 0 );
534 59 : aAttrTab[ RES_TXTATR_FTN - POOLATTR_BEGIN ] = new SwFormatFootnote;
535 59 : aAttrTab[ RES_TXTATR_ANNOTATION - POOLATTR_BEGIN ] = new SwFormatField( RES_TXTATR_ANNOTATION );
536 :
537 : // TextAttr - Dummies
538 59 : aAttrTab[ RES_TXTATR_DUMMY1 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY1 );
539 59 : aAttrTab[ RES_TXTATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY2 );
540 59 : aAttrTab[ RES_TXTATR_DUMMY3 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY3 );
541 :
542 59 : aAttrTab[ RES_PARATR_LINESPACING- POOLATTR_BEGIN ] = new SvxLineSpacingItem( LINE_SPACE_DEFAULT_HEIGHT, RES_PARATR_LINESPACING );
543 59 : aAttrTab[ RES_PARATR_ADJUST- POOLATTR_BEGIN ] = new SvxAdjustItem( SVX_ADJUST_LEFT, RES_PARATR_ADJUST );
544 59 : aAttrTab[ RES_PARATR_SPLIT- POOLATTR_BEGIN ] = new SvxFormatSplitItem( true, RES_PARATR_SPLIT );
545 59 : aAttrTab[ RES_PARATR_WIDOWS- POOLATTR_BEGIN ] = new SvxWidowsItem( 0, RES_PARATR_WIDOWS );
546 59 : aAttrTab[ RES_PARATR_ORPHANS- POOLATTR_BEGIN ] = new SvxOrphansItem( 0, RES_PARATR_ORPHANS );
547 59 : aAttrTab[ RES_PARATR_TABSTOP- POOLATTR_BEGIN ] = new SvxTabStopItem( 1, SVX_TAB_DEFDIST, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
548 :
549 59 : pItem = new SvxHyphenZoneItem( false, RES_PARATR_HYPHENZONE );
550 59 : static_cast<SvxHyphenZoneItem*>(pItem)->GetMaxHyphens() = 0; // Default: 0
551 59 : aAttrTab[ RES_PARATR_HYPHENZONE- POOLATTR_BEGIN ] = pItem;
552 :
553 59 : aAttrTab[ RES_PARATR_DROP- POOLATTR_BEGIN ] = new SwFormatDrop;
554 59 : aAttrTab[ RES_PARATR_REGISTER - POOLATTR_BEGIN ] = new SwRegisterItem( false );
555 59 : aAttrTab[ RES_PARATR_NUMRULE - POOLATTR_BEGIN ] = new SwNumRuleItem( OUString() );
556 :
557 59 : aAttrTab[ RES_PARATR_SCRIPTSPACE - POOLATTR_BEGIN ] = new SvxScriptSpaceItem( true, RES_PARATR_SCRIPTSPACE );
558 59 : aAttrTab[ RES_PARATR_HANGINGPUNCTUATION - POOLATTR_BEGIN ] = new SvxHangingPunctuationItem( true, RES_PARATR_HANGINGPUNCTUATION );
559 59 : aAttrTab[ RES_PARATR_FORBIDDEN_RULES - POOLATTR_BEGIN ] = new SvxForbiddenRuleItem( true, RES_PARATR_FORBIDDEN_RULES );
560 59 : aAttrTab[ RES_PARATR_VERTALIGN - POOLATTR_BEGIN ] = new SvxParaVertAlignItem( 0, RES_PARATR_VERTALIGN );
561 59 : aAttrTab[ RES_PARATR_SNAPTOGRID - POOLATTR_BEGIN ] = new SvxParaGridItem( true, RES_PARATR_SNAPTOGRID );
562 59 : aAttrTab[ RES_PARATR_CONNECT_BORDER - POOLATTR_BEGIN ] = new SwParaConnectBorderItem;
563 :
564 59 : aAttrTab[ RES_PARATR_OUTLINELEVEL - POOLATTR_BEGIN ] = new SfxUInt16Item( RES_PARATR_OUTLINELEVEL, 0 );
565 59 : aAttrTab[ RES_PARATR_RSID - POOLATTR_BEGIN ] = new SvxRsidItem( 0, RES_PARATR_RSID );
566 59 : aAttrTab[ RES_PARATR_GRABBAG - POOLATTR_BEGIN ] = new SfxGrabBagItem( RES_PARATR_GRABBAG );
567 :
568 59 : aAttrTab[ RES_PARATR_LIST_ID - POOLATTR_BEGIN ] = new SfxStringItem( RES_PARATR_LIST_ID, OUString() );
569 59 : aAttrTab[ RES_PARATR_LIST_LEVEL - POOLATTR_BEGIN ] = new SfxInt16Item( RES_PARATR_LIST_LEVEL, 0 );
570 59 : aAttrTab[ RES_PARATR_LIST_ISRESTART - POOLATTR_BEGIN ] = new SfxBoolItem( RES_PARATR_LIST_ISRESTART, false );
571 59 : aAttrTab[ RES_PARATR_LIST_RESTARTVALUE - POOLATTR_BEGIN ] = new SfxInt16Item( RES_PARATR_LIST_RESTARTVALUE, 1 );
572 59 : aAttrTab[ RES_PARATR_LIST_ISCOUNTED - POOLATTR_BEGIN ] = new SfxBoolItem( RES_PARATR_LIST_ISCOUNTED, true );
573 :
574 59 : aAttrTab[ RES_FILL_ORDER- POOLATTR_BEGIN ] = new SwFormatFillOrder;
575 59 : aAttrTab[ RES_FRM_SIZE- POOLATTR_BEGIN ] = new SwFormatFrmSize;
576 59 : aAttrTab[ RES_PAPER_BIN- POOLATTR_BEGIN ] = new SvxPaperBinItem( RES_PAPER_BIN );
577 59 : aAttrTab[ RES_LR_SPACE- POOLATTR_BEGIN ] = new SvxLRSpaceItem( RES_LR_SPACE );
578 59 : aAttrTab[ RES_UL_SPACE- POOLATTR_BEGIN ] = new SvxULSpaceItem( RES_UL_SPACE );
579 59 : aAttrTab[ RES_PAGEDESC- POOLATTR_BEGIN ] = new SwFormatPageDesc;
580 59 : aAttrTab[ RES_BREAK- POOLATTR_BEGIN ] = new SvxFormatBreakItem( SVX_BREAK_NONE, RES_BREAK);
581 59 : aAttrTab[ RES_CNTNT- POOLATTR_BEGIN ] = new SwFormatContent;
582 59 : aAttrTab[ RES_HEADER- POOLATTR_BEGIN ] = new SwFormatHeader;
583 59 : aAttrTab[ RES_FOOTER- POOLATTR_BEGIN ] = new SwFormatFooter;
584 59 : aAttrTab[ RES_PRINT- POOLATTR_BEGIN ] = new SvxPrintItem( RES_PRINT );
585 59 : aAttrTab[ RES_OPAQUE- POOLATTR_BEGIN ] = new SvxOpaqueItem( RES_OPAQUE );
586 59 : aAttrTab[ RES_PROTECT- POOLATTR_BEGIN ] = new SvxProtectItem( RES_PROTECT );
587 59 : aAttrTab[ RES_SURROUND- POOLATTR_BEGIN ] = new SwFormatSurround;
588 59 : aAttrTab[ RES_VERT_ORIENT- POOLATTR_BEGIN ] = new SwFormatVertOrient;
589 59 : aAttrTab[ RES_HORI_ORIENT- POOLATTR_BEGIN ] = new SwFormatHoriOrient;
590 59 : aAttrTab[ RES_ANCHOR- POOLATTR_BEGIN ] = new SwFormatAnchor;
591 59 : aAttrTab[ RES_BACKGROUND- POOLATTR_BEGIN ] = new SvxBrushItem( RES_BACKGROUND );
592 59 : aAttrTab[ RES_BOX- POOLATTR_BEGIN ] = new SvxBoxItem( RES_BOX );
593 59 : aAttrTab[ RES_SHADOW- POOLATTR_BEGIN ] = new SvxShadowItem( RES_SHADOW );
594 59 : aAttrTab[ RES_FRMMACRO- POOLATTR_BEGIN ] = new SvxMacroItem( RES_FRMMACRO );
595 59 : aAttrTab[ RES_COL- POOLATTR_BEGIN ] = new SwFormatCol;
596 59 : aAttrTab[ RES_KEEP - POOLATTR_BEGIN ] = new SvxFormatKeepItem( false, RES_KEEP );
597 59 : aAttrTab[ RES_URL - POOLATTR_BEGIN ] = new SwFormatURL();
598 59 : aAttrTab[ RES_EDIT_IN_READONLY - POOLATTR_BEGIN ] = new SwFormatEditInReadonly;
599 59 : aAttrTab[ RES_LAYOUT_SPLIT - POOLATTR_BEGIN ] = new SwFormatLayoutSplit;
600 59 : aAttrTab[ RES_CHAIN - POOLATTR_BEGIN ] = new SwFormatChain;
601 59 : aAttrTab[ RES_TEXTGRID - POOLATTR_BEGIN ] = new SwTextGridItem;
602 59 : aAttrTab[ RES_HEADER_FOOTER_EAT_SPACING - POOLATTR_BEGIN ] = new SwHeaderAndFooterEatSpacingItem;
603 59 : aAttrTab[ RES_LINENUMBER - POOLATTR_BEGIN ] = new SwFormatLineNumber;
604 59 : aAttrTab[ RES_FTN_AT_TXTEND - POOLATTR_BEGIN ] = new SwFormatFootnoteAtTextEnd;
605 59 : aAttrTab[ RES_END_AT_TXTEND - POOLATTR_BEGIN ] = new SwFormatEndAtTextEnd;
606 59 : aAttrTab[ RES_COLUMNBALANCE - POOLATTR_BEGIN ] = new SwFormatNoBalancedColumns;
607 59 : aAttrTab[ RES_FRAMEDIR - POOLATTR_BEGIN ] = new SvxFrameDirectionItem( FRMDIR_ENVIRONMENT, RES_FRAMEDIR );
608 59 : aAttrTab[ RES_ROW_SPLIT - POOLATTR_BEGIN ] = new SwFormatRowSplit;
609 :
610 : // #i18732#
611 59 : aAttrTab[ RES_FOLLOW_TEXT_FLOW - POOLATTR_BEGIN ] = new SwFormatFollowTextFlow(false);
612 : // collapsing borders #i29550#
613 59 : aAttrTab[ RES_COLLAPSING_BORDERS - POOLATTR_BEGIN ] = new SfxBoolItem( RES_COLLAPSING_BORDERS, false );
614 : // #i28701#
615 : // #i35017# - constant name has changed
616 59 : aAttrTab[ RES_WRAP_INFLUENCE_ON_OBJPOS - POOLATTR_BEGIN ] = new SwFormatWrapInfluenceOnObjPos( text::WrapInfluenceOnPosition::ONCE_CONCURRENT );
617 :
618 59 : aAttrTab[ RES_AUTO_STYLE - POOLATTR_BEGIN ] = new SwFormatAutoFormat( RES_AUTO_STYLE );
619 59 : aAttrTab[ RES_FRMATR_STYLE_NAME - POOLATTR_BEGIN ] = new SfxStringItem( RES_FRMATR_STYLE_NAME, OUString());
620 59 : aAttrTab[ RES_FRMATR_CONDITIONAL_STYLE_NAME - POOLATTR_BEGIN ] = new SfxStringItem( RES_FRMATR_CONDITIONAL_STYLE_NAME, OUString() );
621 59 : aAttrTab[ RES_FRMATR_GRABBAG - POOLATTR_BEGIN ] = new SfxGrabBagItem(RES_FRMATR_GRABBAG);
622 59 : aAttrTab[ RES_TEXT_VERT_ADJUST - POOLATTR_BEGIN ] = new SdrTextVertAdjustItem(SDRTEXTVERTADJUST_TOP,RES_TEXT_VERT_ADJUST);
623 :
624 59 : aAttrTab[ RES_GRFATR_MIRRORGRF- POOLATTR_BEGIN ] = new SwMirrorGrf;
625 59 : aAttrTab[ RES_GRFATR_CROPGRF- POOLATTR_BEGIN ] = new SwCropGrf;
626 59 : aAttrTab[ RES_GRFATR_ROTATION - POOLATTR_BEGIN ] = new SwRotationGrf;
627 59 : aAttrTab[ RES_GRFATR_LUMINANCE - POOLATTR_BEGIN ] = new SwLuminanceGrf;
628 59 : aAttrTab[ RES_GRFATR_CONTRAST - POOLATTR_BEGIN ] = new SwContrastGrf;
629 59 : aAttrTab[ RES_GRFATR_CHANNELR - POOLATTR_BEGIN ] = new SwChannelRGrf;
630 59 : aAttrTab[ RES_GRFATR_CHANNELG - POOLATTR_BEGIN ] = new SwChannelGGrf;
631 59 : aAttrTab[ RES_GRFATR_CHANNELB - POOLATTR_BEGIN ] = new SwChannelBGrf;
632 59 : aAttrTab[ RES_GRFATR_GAMMA - POOLATTR_BEGIN ] = new SwGammaGrf;
633 59 : aAttrTab[ RES_GRFATR_INVERT - POOLATTR_BEGIN ] = new SwInvertGrf;
634 59 : aAttrTab[ RES_GRFATR_TRANSPARENCY - POOLATTR_BEGIN ] = new SwTransparencyGrf;
635 59 : aAttrTab[ RES_GRFATR_DRAWMODE - POOLATTR_BEGIN ] = new SwDrawModeGrf;
636 :
637 : // GraphicAttr - Dummies
638 59 : aAttrTab[ RES_GRFATR_DUMMY1 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY1 );
639 59 : aAttrTab[ RES_GRFATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY2 );
640 59 : aAttrTab[ RES_GRFATR_DUMMY3 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY3 );
641 59 : aAttrTab[ RES_GRFATR_DUMMY4 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY4 );
642 59 : aAttrTab[ RES_GRFATR_DUMMY5 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY5 );
643 :
644 59 : aAttrTab[ RES_BOXATR_FORMAT- POOLATTR_BEGIN ] = new SwTableBoxNumFormat;
645 59 : aAttrTab[ RES_BOXATR_FORMULA- POOLATTR_BEGIN ] = new SwTableBoxFormula( OUString() );
646 59 : aAttrTab[ RES_BOXATR_VALUE- POOLATTR_BEGIN ] = new SwTableBoxValue;
647 :
648 : aAttrTab[ RES_UNKNOWNATR_CONTAINER- POOLATTR_BEGIN ] =
649 59 : new SvXMLAttrContainerItem( RES_UNKNOWNATR_CONTAINER );
650 :
651 : // get the correct fonts:
652 59 : ::GetDefaultFonts( *static_cast<SvxFontItem*>(aAttrTab[ RES_CHRATR_FONT- POOLATTR_BEGIN ]),
653 59 : *static_cast<SvxFontItem*>(aAttrTab[ RES_CHRATR_CJK_FONT - POOLATTR_BEGIN ]),
654 118 : *static_cast<SvxFontItem*>(aAttrTab[ RES_CHRATR_CTL_FONT - POOLATTR_BEGIN ]) );
655 :
656 : // 1. version - new attributes:
657 : // - RES_CHRATR_BLINK
658 : // - RES_CHRATR_NOHYPHEN
659 : // - RES_CHRATR_NOLINEBREAK
660 : // - RES_PARATR_REGISTER
661 : // + 2 dummies for the "ranges"
662 59 : SwAttrPool::pVersionMap1 = new sal_uInt16[ 60 ];
663 : sal_uInt16 i;
664 1062 : for( i = 1; i <= 17; i++ )
665 1003 : SwAttrPool::pVersionMap1[ i-1 ] = i;
666 649 : for ( i = 18; i <= 27; ++i )
667 590 : SwAttrPool::pVersionMap1[ i-1 ] = i + 5;
668 531 : for ( i = 28; i <= 35; ++i )
669 472 : SwAttrPool::pVersionMap1[ i-1 ] = i + 7;
670 1416 : for ( i = 36; i <= 58; ++i )
671 1357 : SwAttrPool::pVersionMap1[ i-1 ] = i + 10;
672 177 : for ( i = 59; i <= 60; ++i )
673 118 : SwAttrPool::pVersionMap1[ i-1 ] = i + 12;
674 :
675 : // 2. version - new attributes:
676 : // 10 dummies for the frame "range"
677 59 : SwAttrPool::pVersionMap2 = new sal_uInt16[ 75 ];
678 4189 : for( i = 1; i <= 70; i++ )
679 4130 : SwAttrPool::pVersionMap2[ i-1 ] = i;
680 354 : for ( i = 71; i <= 75; ++i )
681 295 : SwAttrPool::pVersionMap2[ i-1 ] = i + 10;
682 :
683 : // 3. version:
684 : // new attributes and dummies for the CJK version and
685 : // new graphics attributes
686 59 : SwAttrPool::pVersionMap3 = new sal_uInt16[ 86 ];
687 1298 : for( i = 1; i <= 21; i++ )
688 1239 : SwAttrPool::pVersionMap3[ i-1 ] = i;
689 413 : for ( i = 22; i <= 27; ++i )
690 354 : SwAttrPool::pVersionMap3[ i-1 ] = i + 15;
691 3304 : for ( i = 28; i <= 82; ++i )
692 3245 : SwAttrPool::pVersionMap3[ i-1 ] = i + 20;
693 295 : for ( i = 83; i <= 86; ++i )
694 236 : SwAttrPool::pVersionMap3[ i-1 ] = i + 35;
695 :
696 : // 4. version:
697 : // new paragraph attributes for CJK version
698 59 : SwAttrPool::pVersionMap4 = new sal_uInt16[ 121 ];
699 3894 : for( i = 1; i <= 65; i++ )
700 3835 : SwAttrPool::pVersionMap4[ i-1 ] = i;
701 3363 : for ( i = 66; i <= 121; ++i )
702 3304 : SwAttrPool::pVersionMap4[ i-1 ] = i + 9;
703 :
704 : // 5. version
705 : // #i18732# - setup new version map due to extension of
706 : // the frame attributes (RES_FRMATR_*) for binary filters.
707 59 : SwAttrPool::pVersionMap5 = new sal_uInt16[ 130 ];
708 6490 : for( i = 1; i <= 109; i++ )
709 6431 : SwAttrPool::pVersionMap5[ i-1 ] = i;
710 1298 : for ( i = 110; i <= 130; ++i )
711 1239 : SwAttrPool::pVersionMap5[ i-1 ] = i + 6;
712 :
713 : // 6. version:
714 : // RES_CHARATR_OVERLINE
715 : // new character attribute for overlining plus 2 dummies
716 : // 1. dummy -> RES_CHRATR_RSID
717 : // 2. dummy -> RES_CHRATR_BOX
718 59 : SwAttrPool::pVersionMap6 = new sal_uInt16[ 136 ];
719 2242 : for( i = 1; i <= 37; i++ )
720 2183 : SwAttrPool::pVersionMap6[ i-1 ] = i;
721 5900 : for ( i = 38; i <= 136; ++i )
722 5841 : SwAttrPool::pVersionMap6[ i-1 ] = i + 3;
723 :
724 : // 7. version:
725 : // New character attribute for character box shadow plus 3 dummies
726 59 : SwAttrPool::pVersionMap7 = new sal_uInt16[ 144 ];
727 2419 : for( i = 1; i <= 40; ++i )
728 2360 : SwAttrPool::pVersionMap7[ i-1 ] = i;
729 6195 : for ( i = 41; i <= 144; ++i )
730 6136 : SwAttrPool::pVersionMap7[ i-1 ] = i + 4;
731 :
732 59 : SwBreakIt::_Create( ::comphelper::getProcessComponentContext() );
733 59 : pCheckIt = NULL;
734 :
735 59 : _FrmInit();
736 59 : _TextInit();
737 :
738 59 : SwSelPaintRects::s_pMapMode = new MapMode;
739 59 : SwFntObj::pPixMap = new MapMode;
740 :
741 59 : pGlobalOLEExcludeList = new std::vector<SvGlobalName*>;
742 :
743 59 : const SvxSwAutoFormatFlags& rAFlags = SvxAutoCorrCfg::Get().GetAutoCorrect()->GetSwFlags();
744 : SwDoc::mpACmpltWords = new SwAutoCompleteWord( rAFlags.nAutoCmpltListLen,
745 59 : rAFlags.nAutoCmpltWordLen );
746 59 : }
747 :
748 59 : void _FinitCore()
749 : {
750 59 : _FrmFinit();
751 59 : _TextFinit();
752 :
753 59 : sw::proofreadingiterator::dispose();
754 59 : SwBreakIt::_Delete();
755 59 : delete pCheckIt;
756 59 : delete pAppCharClass;
757 59 : delete pCollator;
758 59 : delete pCaseCollator;
759 :
760 : // destroy default TableAutoFormat
761 59 : delete SwTableAutoFormat::pDfltBoxAutoFormat;
762 :
763 59 : delete SwSelPaintRects::s_pMapMode;
764 59 : delete SwFntObj::pPixMap;
765 :
766 59 : delete SwEditShell::s_pAutoFormatFlags;
767 :
768 : #if OSL_DEBUG_LEVEL > 0
769 : // free defaults to prevent assertions
770 : if ( aAttrTab[0]->GetRefCount() )
771 : SfxItemPool::ReleaseDefaults( aAttrTab, POOLATTR_END-POOLATTR_BEGIN, false);
772 : #endif
773 59 : delete SwDoc::mpACmpltWords;
774 :
775 59 : delete SwStyleNameMapper::pTextUINameArray;
776 59 : delete SwStyleNameMapper::pListsUINameArray;
777 59 : delete SwStyleNameMapper::pExtraUINameArray;
778 59 : delete SwStyleNameMapper::pRegisterUINameArray;
779 59 : delete SwStyleNameMapper::pDocUINameArray;
780 59 : delete SwStyleNameMapper::pHTMLUINameArray;
781 59 : delete SwStyleNameMapper::pFrameFormatUINameArray;
782 59 : delete SwStyleNameMapper::pChrFormatUINameArray;
783 59 : delete SwStyleNameMapper::pHTMLChrFormatUINameArray;
784 59 : delete SwStyleNameMapper::pPageDescUINameArray;
785 59 : delete SwStyleNameMapper::pNumRuleUINameArray;
786 :
787 : // Delete programmatic name arrays also
788 59 : delete SwStyleNameMapper::pTextProgNameArray;
789 59 : delete SwStyleNameMapper::pListsProgNameArray;
790 59 : delete SwStyleNameMapper::pExtraProgNameArray;
791 59 : delete SwStyleNameMapper::pRegisterProgNameArray;
792 59 : delete SwStyleNameMapper::pDocProgNameArray;
793 59 : delete SwStyleNameMapper::pHTMLProgNameArray;
794 59 : delete SwStyleNameMapper::pFrameFormatProgNameArray;
795 59 : delete SwStyleNameMapper::pChrFormatProgNameArray;
796 59 : delete SwStyleNameMapper::pHTMLChrFormatProgNameArray;
797 59 : delete SwStyleNameMapper::pPageDescProgNameArray;
798 59 : delete SwStyleNameMapper::pNumRuleProgNameArray;
799 :
800 : // And finally, any hash tables that we used
801 59 : delete SwStyleNameMapper::pParaUIMap;
802 59 : delete SwStyleNameMapper::pCharUIMap;
803 59 : delete SwStyleNameMapper::pPageUIMap;
804 59 : delete SwStyleNameMapper::pFrameUIMap;
805 59 : delete SwStyleNameMapper::pNumRuleUIMap;
806 :
807 59 : delete SwStyleNameMapper::pParaProgMap;
808 59 : delete SwStyleNameMapper::pCharProgMap;
809 59 : delete SwStyleNameMapper::pPageProgMap;
810 59 : delete SwStyleNameMapper::pFrameProgMap;
811 59 : delete SwStyleNameMapper::pNumRuleProgMap;
812 :
813 : // delete all default attributes
814 8909 : for( sal_uInt16 n = 0; n < POOLATTR_END - POOLATTR_BEGIN; n++ )
815 : {
816 : SfxPoolItem* pHt;
817 8850 : if( 0 != ( pHt = aAttrTab[n] ))
818 8850 : delete pHt;
819 : }
820 :
821 59 : ::ClearFEShellTabCols();
822 :
823 59 : delete[] SwAttrPool::pVersionMap1;
824 59 : delete[] SwAttrPool::pVersionMap2;
825 59 : delete[] SwAttrPool::pVersionMap3;
826 59 : delete[] SwAttrPool::pVersionMap4;
827 : // #i18732#
828 59 : delete[] SwAttrPool::pVersionMap5;
829 59 : delete[] SwAttrPool::pVersionMap6;
830 59 : delete[] SwAttrPool::pVersionMap7;
831 :
832 60 : for ( size_t i = 0; i < pGlobalOLEExcludeList->size(); ++i )
833 1 : delete (*pGlobalOLEExcludeList)[i];
834 59 : delete pGlobalOLEExcludeList;
835 59 : }
836 :
837 : // returns the APP - CharClass instance - used for all ToUpper/ToLower/...
838 134215533 : CharClass& GetAppCharClass()
839 : {
840 134215533 : if ( !pAppCharClass )
841 : {
842 : pAppCharClass = new CharClass(
843 : ::comphelper::getProcessComponentContext(),
844 49 : SwBreakIt::Get()->GetLanguageTag( GetAppLanguageTag() ));
845 : }
846 134215533 : return *pAppCharClass;
847 : }
848 :
849 0 : void SwCalendarWrapper::LoadDefaultCalendar( sal_uInt16 eLang )
850 : {
851 0 : sUniqueId.clear();
852 0 : if( eLang != nLang )
853 0 : loadDefaultCalendar( LanguageTag::convertToLocale( nLang = eLang ));
854 0 : }
855 :
856 5930402 : LanguageType GetAppLanguage()
857 : {
858 5930402 : return Application::GetSettings().GetLanguageTag().getLanguageType();
859 : }
860 :
861 63 : const LanguageTag& GetAppLanguageTag()
862 : {
863 63 : return Application::GetSettings().GetLanguageTag();
864 : }
865 :
866 1 : CollatorWrapper& GetAppCollator()
867 : {
868 1 : if( !pCollator )
869 : {
870 1 : const lang::Locale& rLcl = g_pBreakIt->GetLocale( GetAppLanguage() );
871 :
872 1 : pCollator = new CollatorWrapper( ::comphelper::getProcessComponentContext() );
873 1 : pCollator->loadDefaultCollator( rLcl, SW_COLLATOR_IGNORES );
874 : }
875 1 : return *pCollator;
876 : }
877 :
878 0 : CollatorWrapper& GetAppCaseCollator()
879 : {
880 0 : if( !pCaseCollator )
881 : {
882 0 : const lang::Locale& rLcl = g_pBreakIt->GetLocale( GetAppLanguage() );
883 :
884 0 : pCaseCollator = new CollatorWrapper( ::comphelper::getProcessComponentContext() );
885 0 : pCaseCollator->loadDefaultCollator( rLcl, 0 );
886 : }
887 0 : return *pCaseCollator;
888 : }
889 :
890 : namespace
891 : {
892 57 : class TransWrp
893 : {
894 : private:
895 : boost::scoped_ptr< ::utl::TransliterationWrapper > xTransWrp;
896 : public:
897 57 : TransWrp()
898 57 : {
899 57 : uno::Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
900 :
901 : xTransWrp.reset(new ::utl::TransliterationWrapper( xContext,
902 : i18n::TransliterationModules_IGNORE_CASE |
903 : i18n::TransliterationModules_IGNORE_KANA |
904 57 : i18n::TransliterationModules_IGNORE_WIDTH ));
905 :
906 57 : xTransWrp->loadModuleIfNeeded( static_cast<sal_uInt16>(GetAppLanguage()) );
907 57 : }
908 6546 : const ::utl::TransliterationWrapper& getTransliterationWrapper() const
909 : {
910 6546 : return *xTransWrp;
911 : }
912 : };
913 :
914 : class theTransWrp : public rtl::Static<TransWrp, theTransWrp> {};
915 : }
916 :
917 6546 : const ::utl::TransliterationWrapper& GetAppCmpStrIgnore()
918 : {
919 6546 : return theTransWrp::get().getTransliterationWrapper();
920 177 : }
921 :
922 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|