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 <rtl/instance.hxx>
113 : #include <svl/macitem.hxx>
114 : #include <svx/dialogs.hrc>
115 : #include <svx/xfillit0.hxx>
116 : #include <svx/xflgrit.hxx>
117 : #include <svx/sdtaitm.hxx>
118 : #include <swcalwrp.hxx>
119 : #include <SwStyleNameMapper.hxx>
120 : #include <tblafmt.hxx>
121 : #include <tgrditem.hxx>
122 : #include <tools/globname.hxx>
123 : #include <tox.hxx>
124 : #include <unotools/charclass.hxx>
125 : #include <unotools/collatorwrapper.hxx>
126 : #include <unotools/syslocale.hxx>
127 : #include <unotools/transliterationwrapper.hxx>
128 : #include <vcl/mapmod.hxx>
129 : #include <vcl/svapp.hxx>
130 : #include <vcl/settings.hxx>
131 : #include <viscrs.hxx>
132 :
133 : using namespace ::com::sun::star;
134 :
135 : // some ranges for sets in collections/ nodes
136 :
137 : // AttrSet range for the 2 break attributes
138 : sal_uInt16 aBreakSetRange[] = {
139 : RES_PAGEDESC, RES_BREAK,
140 : 0
141 : };
142 :
143 : // AttrSet range for TxtFmtColl
144 : // list attributes ( RES_PARATR_LIST_BEGIN - RES_PARATR_LIST_END ) are not
145 : // included in the paragraph style's itemset.
146 : sal_uInt16 aTxtFmtCollSetRange[] = {
147 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
148 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
149 : RES_PARATR_BEGIN, RES_PARATR_END-1,
150 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
151 :
152 : //UUUU FillAttribute support
153 : XATTR_FILL_FIRST, XATTR_FILL_LAST,
154 :
155 : 0
156 : };
157 :
158 : // AttrSet range for GrfFmtColl
159 : sal_uInt16 aGrfFmtCollSetRange[] = {
160 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
161 : RES_GRFATR_BEGIN, RES_GRFATR_END-1,
162 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
163 : 0
164 : };
165 :
166 : // AttrSet range for TextNode
167 : sal_uInt16 aTxtNodeSetRange[] = {
168 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
169 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
170 : RES_PARATR_BEGIN, RES_PARATR_END-1,
171 : RES_PARATR_LIST_BEGIN, RES_PARATR_LIST_END-1,
172 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
173 :
174 : //UUUU FillAttribute support (paragraph FillStyle)
175 : XATTR_FILL_FIRST, XATTR_FILL_LAST,
176 :
177 : 0
178 : };
179 :
180 : // AttrSet range for NoTxtNode
181 : sal_uInt16 aNoTxtNodeSetRange[] = {
182 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
183 : RES_GRFATR_BEGIN, RES_GRFATR_END-1,
184 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
185 : 0
186 : };
187 :
188 : sal_uInt16 aTableSetRange[] = {
189 : RES_FILL_ORDER, RES_FRM_SIZE,
190 : RES_LR_SPACE, RES_BREAK,
191 : RES_BACKGROUND, RES_SHADOW,
192 : RES_HORI_ORIENT, RES_HORI_ORIENT,
193 : RES_KEEP, RES_KEEP,
194 : RES_LAYOUT_SPLIT, RES_LAYOUT_SPLIT,
195 : RES_FRAMEDIR, RES_FRAMEDIR,
196 : // #i29550#
197 : RES_COLLAPSING_BORDERS, RES_COLLAPSING_BORDERS,
198 : // <-- collapsing
199 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
200 : RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG,
201 : 0
202 : };
203 :
204 : sal_uInt16 aTableLineSetRange[] = {
205 : RES_FILL_ORDER, RES_FRM_SIZE,
206 : RES_LR_SPACE, RES_UL_SPACE,
207 : RES_BACKGROUND, RES_SHADOW,
208 : RES_ROW_SPLIT, RES_ROW_SPLIT,
209 : RES_PROTECT, RES_PROTECT,
210 : RES_VERT_ORIENT, RES_VERT_ORIENT,
211 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
212 : RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG,
213 : 0
214 : };
215 :
216 : sal_uInt16 aTableBoxSetRange[] = {
217 : RES_FILL_ORDER, RES_FRM_SIZE,
218 : RES_LR_SPACE, RES_UL_SPACE,
219 : RES_BACKGROUND, RES_SHADOW,
220 : RES_PROTECT, RES_PROTECT,
221 : RES_VERT_ORIENT, RES_VERT_ORIENT,
222 : RES_FRAMEDIR, RES_FRAMEDIR,
223 : RES_BOXATR_BEGIN, RES_BOXATR_END-1,
224 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
225 : RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG,
226 : 0
227 : };
228 :
229 : // AttrSet range for SwFrmFmt
230 : sal_uInt16 aFrmFmtSetRange[] = {
231 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
232 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
233 :
234 : //UUUU FillAttribute support (TextFrame, OLE, Writer GraphicObject)
235 : XATTR_FILL_FIRST, XATTR_FILL_LAST,
236 :
237 : 0
238 : };
239 :
240 : // AttrSet range for SwCharFmt
241 : sal_uInt16 aCharFmtSetRange[] = {
242 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
243 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
244 : 0
245 : };
246 :
247 : // AttrSet range for character autostyles
248 : sal_uInt16 aCharAutoFmtSetRange[] = {
249 : RES_CHRATR_BEGIN, RES_CHRATR_END-1,
250 : RES_TXTATR_UNKNOWN_CONTAINER, RES_TXTATR_UNKNOWN_CONTAINER,
251 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
252 : 0
253 : };
254 :
255 : // AttrSet range for SwPageDescFmt
256 : sal_uInt16 aPgFrmFmtSetRange[] = {
257 : RES_FRMATR_BEGIN, RES_FRMATR_END-1,
258 : RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
259 : 0
260 : };
261 :
262 : // create table for accessing default format attributes
263 : SwDfltAttrTab aAttrTab;
264 :
265 : SfxItemInfo aSlotTab[] =
266 : {
267 : { SID_ATTR_CHAR_CASEMAP, SFX_ITEM_POOLABLE }, // RES_CHRATR_CASEMAP
268 : { SID_ATTR_CHAR_CHARSETCOLOR, SFX_ITEM_POOLABLE }, // RES_CHRATR_CHARSETCOLOR
269 : { SID_ATTR_CHAR_COLOR, SFX_ITEM_POOLABLE }, // RES_CHRATR_COLOR
270 : { SID_ATTR_CHAR_CONTOUR, SFX_ITEM_POOLABLE }, // RES_CHRATR_CONTOUR
271 : { SID_ATTR_CHAR_STRIKEOUT, SFX_ITEM_POOLABLE }, // RES_CHRATR_CROSSEDOUT
272 : { SID_ATTR_CHAR_ESCAPEMENT, SFX_ITEM_POOLABLE }, // RES_CHRATR_ESCAPEMENT
273 : { SID_ATTR_CHAR_FONT, SFX_ITEM_POOLABLE }, // RES_CHRATR_FONT
274 : { SID_ATTR_CHAR_FONTHEIGHT, SFX_ITEM_POOLABLE }, // RES_CHRATR_FONTSIZE
275 : { SID_ATTR_CHAR_KERNING, SFX_ITEM_POOLABLE }, // RES_CHRATR_KERNING
276 : { SID_ATTR_CHAR_LANGUAGE, SFX_ITEM_POOLABLE }, // RES_CHRATR_LANGUAGE
277 : { SID_ATTR_CHAR_POSTURE, SFX_ITEM_POOLABLE }, // RES_CHRATR_POSTURE
278 : { SID_ATTR_CHAR_PROPSIZE, SFX_ITEM_POOLABLE }, // RES_CHRATR_PROPORTIONALFONTSIZE
279 : { SID_ATTR_CHAR_SHADOWED, SFX_ITEM_POOLABLE }, // RES_CHRATR_SHADOWED
280 : { SID_ATTR_CHAR_UNDERLINE, SFX_ITEM_POOLABLE }, // RES_CHRATR_UNDERLINE
281 : { SID_ATTR_CHAR_WEIGHT, SFX_ITEM_POOLABLE }, // RES_CHRATR_WEIGHT
282 : { SID_ATTR_CHAR_WORDLINEMODE, SFX_ITEM_POOLABLE }, // RES_CHRATR_WORDLINEMODE
283 : { SID_ATTR_CHAR_AUTOKERN, SFX_ITEM_POOLABLE }, // RES_CHRATR_AUTOKERN
284 : { SID_ATTR_FLASH, SFX_ITEM_POOLABLE }, // RES_CHRATR_BLINK
285 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_NOLINEBREAK
286 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_NOHYPHEN
287 : { SID_ATTR_BRUSH_CHAR, SFX_ITEM_POOLABLE }, // RES_CHRATR_BACKGROUND
288 : { SID_ATTR_CHAR_CJK_FONT, SFX_ITEM_POOLABLE }, // RES_CHRATR_CJK_FONT
289 : { SID_ATTR_CHAR_CJK_FONTHEIGHT, SFX_ITEM_POOLABLE },// RES_CHRATR_CJK_FONTSIZE
290 : { SID_ATTR_CHAR_CJK_LANGUAGE, SFX_ITEM_POOLABLE }, // RES_CHRATR_CJK_LANGUAGE
291 : { SID_ATTR_CHAR_CJK_POSTURE, SFX_ITEM_POOLABLE }, // RES_CHRATR_CJK_POSTURE
292 : { SID_ATTR_CHAR_CJK_WEIGHT, SFX_ITEM_POOLABLE }, // RES_CHRATR_CJK_WEIGHT
293 : { SID_ATTR_CHAR_CTL_FONT, SFX_ITEM_POOLABLE }, // RES_CHRATR_CTL_FONT
294 : { SID_ATTR_CHAR_CTL_FONTHEIGHT, SFX_ITEM_POOLABLE },// RES_CHRATR_CTL_FONTSIZE
295 : { SID_ATTR_CHAR_CTL_LANGUAGE, SFX_ITEM_POOLABLE }, // RES_CHRATR_CTL_LANGUAGE
296 : { SID_ATTR_CHAR_CTL_POSTURE, SFX_ITEM_POOLABLE }, // RES_CHRATR_CTL_POSTURE
297 : { SID_ATTR_CHAR_CTL_WEIGHT, SFX_ITEM_POOLABLE }, // RES_CHRATR_CTL_WEIGHT
298 : { SID_ATTR_CHAR_ROTATED, SFX_ITEM_POOLABLE }, // RES_CHRATR_ROTATE
299 : { SID_ATTR_CHAR_EMPHASISMARK, SFX_ITEM_POOLABLE }, // RES_CHRATR_EMPHASIS_MARK
300 : { SID_ATTR_CHAR_TWO_LINES, SFX_ITEM_POOLABLE }, // RES_CHRATR_TWO_LINES
301 : { SID_ATTR_CHAR_SCALEWIDTH, SFX_ITEM_POOLABLE }, // RES_CHRATR_SCALEW
302 : { SID_ATTR_CHAR_RELIEF, SFX_ITEM_POOLABLE }, // RES_CHRATR_RELIEF
303 : { SID_ATTR_CHAR_HIDDEN, SFX_ITEM_POOLABLE }, // RES_CHRATR_HIDDEN
304 : { SID_ATTR_CHAR_OVERLINE, SFX_ITEM_POOLABLE }, // RES_CHRATR_OVERLINE
305 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_RSID
306 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_BOX
307 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_SHADOW
308 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_HIGHLIGHT
309 : { SID_ATTR_CHAR_GRABBAG, SFX_ITEM_POOLABLE }, // RES_CHRATR_GRABBAG
310 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_BIDIRTL
311 : { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_IDCTHINT
312 :
313 : { 0, 0 }, // RES_TXTATR_REFMARK
314 : { 0, 0 }, // RES_TXTATR_TOXMARK
315 : { 0, 0 }, // RES_TXTATR_META
316 : { 0, 0 }, // RES_TXTATR_METAFIELD
317 : { 0, SFX_ITEM_POOLABLE }, // RES_TXTATR_AUTOFMT
318 : { FN_TXTATR_INET, 0 }, // RES_TXTATR_INETFMT
319 : { 0, 0 }, // RES_TXTATR_CHARFMT
320 : { SID_ATTR_CHAR_CJK_RUBY, 0 }, // RES_TXTATR_CJK_RUBY
321 : { 0, SFX_ITEM_POOLABLE }, // RES_TXTATR_UNKNOWN_CONTAINER
322 : { 0, 0 }, // RES_TXTATR_INPUTFIELD
323 :
324 : { 0, 0 }, // RES_TXTATR_FIELD
325 : { 0, 0 }, // RES_TXTATR_FLYCNT
326 : { 0, 0 }, // RES_TXTATR_FTN
327 : { 0, 0 }, // RES_TXTATR_ANNOTATION
328 : { 0, SFX_ITEM_POOLABLE }, // RES_TXTATR_DUMMY3
329 : { 0, SFX_ITEM_POOLABLE }, // RES_TXTATR_DUMMY1
330 : { 0, SFX_ITEM_POOLABLE }, // RES_TXTATR_DUMMY2
331 :
332 : { SID_ATTR_PARA_LINESPACE, SFX_ITEM_POOLABLE }, // RES_PARATR_LINESPACING
333 : { SID_ATTR_PARA_ADJUST, SFX_ITEM_POOLABLE }, // RES_PARATR_ADJUST
334 : { SID_ATTR_PARA_SPLIT, SFX_ITEM_POOLABLE }, // RES_PARATR_SPLIT
335 : { SID_ATTR_PARA_ORPHANS, SFX_ITEM_POOLABLE }, // RES_PARATR_ORPHANS
336 : { SID_ATTR_PARA_WIDOWS, SFX_ITEM_POOLABLE }, // RES_PARATR_WIDOWS
337 : { SID_ATTR_TABSTOP, SFX_ITEM_POOLABLE }, // RES_PARATR_TABSTOP
338 : { SID_ATTR_PARA_HYPHENZONE, SFX_ITEM_POOLABLE }, // RES_PARATR_HYPHENZONE
339 : { FN_FORMAT_DROPCAPS, 0 }, // RES_PARATR_DROP
340 : { SID_ATTR_PARA_REGISTER, SFX_ITEM_POOLABLE }, // RES_PARATR_REGISTER
341 : { SID_ATTR_PARA_NUMRULE, SFX_ITEM_POOLABLE }, // RES_PARATR_NUMRULE
342 : { SID_ATTR_PARA_SCRIPTSPACE, SFX_ITEM_POOLABLE }, // RES_PARATR_SCRIPTSPACE
343 : { SID_ATTR_PARA_HANGPUNCTUATION, SFX_ITEM_POOLABLE },// RES_PARATR_HANGINGPUNCTUATION
344 :
345 : { SID_ATTR_PARA_FORBIDDEN_RULES, SFX_ITEM_POOLABLE },// RES_PARATR_FORBIDDEN_RULES
346 : { SID_PARA_VERTALIGN, SFX_ITEM_POOLABLE }, // RES_PARATR_VERTALIGN
347 : { SID_ATTR_PARA_SNAPTOGRID, SFX_ITEM_POOLABLE }, // RES_PARATR_SNAPTOGRID
348 : { SID_ATTR_BORDER_CONNECT, SFX_ITEM_POOLABLE }, // RES_PARATR_CONNECT_BORDER
349 :
350 : { SID_ATTR_PARA_OUTLINE_LEVEL, SFX_ITEM_POOLABLE }, // RES_PARATR_OUTLINELEVEL //#outline level
351 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_RSID
352 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_GRABBAG
353 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_LIST_ID
354 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_LIST_LEVEL
355 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_LIST_ISRESTART
356 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_LIST_RESTARTVALUE
357 : { 0, SFX_ITEM_POOLABLE }, // RES_PARATR_LIST_ISCOUNTED
358 :
359 : { 0, SFX_ITEM_POOLABLE }, // RES_FILL_ORDER
360 : { 0, SFX_ITEM_POOLABLE }, // RES_FRM_SIZE
361 : { SID_ATTR_PAGE_PAPERBIN, SFX_ITEM_POOLABLE }, // RES_PAPER_BIN
362 : { SID_ATTR_LRSPACE, SFX_ITEM_POOLABLE }, // RES_LR_SPACE
363 : { SID_ATTR_ULSPACE, SFX_ITEM_POOLABLE }, // RES_UL_SPACE
364 : { 0, 0 }, // RES_PAGEDESC
365 : { SID_ATTR_PARA_PAGEBREAK, SFX_ITEM_POOLABLE }, // RES_BREAK
366 : { 0, 0 }, // RES_CNTNT
367 : { 0, SFX_ITEM_POOLABLE }, // RES_HEADER
368 : { 0, SFX_ITEM_POOLABLE }, // RES_FOOTER
369 : { 0, SFX_ITEM_POOLABLE }, // RES_PRINT
370 : { FN_OPAQUE, SFX_ITEM_POOLABLE }, // RES_OPAQUE
371 : { FN_SET_PROTECT, SFX_ITEM_POOLABLE }, // RES_PROTECT
372 : { FN_SURROUND, SFX_ITEM_POOLABLE }, // RES_SURROUND
373 : { FN_VERT_ORIENT, SFX_ITEM_POOLABLE }, // RES_VERT_ORIENT
374 : { FN_HORI_ORIENT, SFX_ITEM_POOLABLE }, // RES_HORI_ORIENT
375 : { 0, 0 }, // RES_ANCHOR
376 : { SID_ATTR_BRUSH, SFX_ITEM_POOLABLE }, // RES_BACKGROUND
377 : { SID_ATTR_BORDER_OUTER, SFX_ITEM_POOLABLE }, // RES_BOX
378 : { SID_ATTR_BORDER_SHADOW, SFX_ITEM_POOLABLE }, // RES_SHADOW
379 : { SID_ATTR_MACROITEM, SFX_ITEM_POOLABLE }, // RES_FRMMACRO
380 : { FN_ATTR_COLUMNS, SFX_ITEM_POOLABLE }, // RES_COL
381 : { SID_ATTR_PARA_KEEP, SFX_ITEM_POOLABLE }, // RES_KEEP
382 : { 0, SFX_ITEM_POOLABLE }, // RES_URL
383 : { 0, SFX_ITEM_POOLABLE }, // RES_EDIT_IN_READONLY
384 :
385 : { 0, SFX_ITEM_POOLABLE }, // RES_LAYOUT_SPLIT
386 : { 0, 0 }, // RES_CHAIN
387 : { 0, SFX_ITEM_POOLABLE }, // RES_TEXTGRID
388 : { FN_FORMAT_LINENUMBER, SFX_ITEM_POOLABLE }, // RES_LINENUMBER
389 : { 0, SFX_ITEM_POOLABLE }, // RES_FTN_AT_TXTEND
390 : { 0, SFX_ITEM_POOLABLE }, // RES_END_AT_TXTEND
391 : { 0, SFX_ITEM_POOLABLE }, // RES_COLUMNBALANCE
392 :
393 : { SID_ATTR_FRAMEDIRECTION, SFX_ITEM_POOLABLE }, // RES_FRAMEDIR
394 :
395 : { SID_ATTR_HDFT_DYNAMIC_SPACING, SFX_ITEM_POOLABLE },// RES_HEADER_FOOTER_EAT_SPACING
396 : { FN_TABLE_ROW_SPLIT, SFX_ITEM_POOLABLE }, // RES_ROW_SPLIT
397 : // #i18732# - use slot-id define in svx
398 : { SID_SW_FOLLOW_TEXT_FLOW, SFX_ITEM_POOLABLE }, // RES_FOLLOW_TEXT_FLOW
399 : // #i29550#
400 : { SID_SW_COLLAPSING_BORDERS, SFX_ITEM_POOLABLE }, // RES_COLLAPSING_BORDERS
401 : // #i28701#
402 : { SID_SW_WRAP_INFLUENCE_ON_OBJPOS, SFX_ITEM_POOLABLE },// RES_WRAP_INFLUENCE_ON_OBJPOS
403 : { 0, 0 }, // RES_AUTO_STYLE
404 : { 0, SFX_ITEM_POOLABLE }, // RES_FRMATR_STYLE_NAME
405 : { 0, SFX_ITEM_POOLABLE }, // RES_FRMATR_CONDITIONAL_STYLE_NAME
406 : { 0, SFX_ITEM_POOLABLE }, // RES_FRMATR_GRABBAG
407 : { 0, SFX_ITEM_POOLABLE }, // RES_TEXT_VERT_ADJUST
408 :
409 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_MIRRORGRF
410 : { SID_ATTR_GRAF_CROP, SFX_ITEM_POOLABLE }, // RES_GRFATR_CROPGRF
411 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_ROTATION,
412 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_LUMINANCE,
413 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_CONTRAST,
414 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_CHANNELR,
415 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_CHANNELG,
416 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_CHANNELB,
417 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_GAMMA,
418 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_INVERT,
419 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_TRANSPARENCY,
420 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_DUMMY1,
421 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_DUMMY2,
422 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_DUMMY3,
423 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_DUMMY4,
424 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_DUMMY5,
425 : { 0, SFX_ITEM_POOLABLE }, // RES_GRFATR_DUMMY6,
426 :
427 : { 0, SFX_ITEM_POOLABLE }, // RES_BOXATR_FORMAT
428 : { 0, 0 }, // RES_BOXATR_FORMULA,
429 : { 0, SFX_ITEM_POOLABLE }, // RES_BOXATR_VALUE
430 :
431 : { 0, SFX_ITEM_POOLABLE } // RES_UNKNOWNATR_CONTAINER
432 : };
433 :
434 : sal_uInt16* SwAttrPool::pVersionMap1 = 0;
435 : sal_uInt16* SwAttrPool::pVersionMap2 = 0;
436 : sal_uInt16* SwAttrPool::pVersionMap3 = 0;
437 : sal_uInt16* SwAttrPool::pVersionMap4 = 0;
438 : // #i18732#
439 : sal_uInt16* SwAttrPool::pVersionMap5 = 0;
440 : sal_uInt16* SwAttrPool::pVersionMap6 = 0;
441 : sal_uInt16* SwAttrPool::pVersionMap7 = 0;
442 :
443 : std::vector<SvGlobalName*> *pGlobalOLEExcludeList = 0;
444 :
445 : SwAutoCompleteWord* SwDoc::mpACmpltWords = 0;
446 :
447 : SwCheckIt* pCheckIt = 0;
448 : CharClass* pAppCharClass = 0;
449 :
450 : CollatorWrapper* pCollator = 0,
451 : *pCaseCollator = 0;
452 :
453 0 : salhelper::SingletonRef<SwCalendarWrapper>* s_getCalendarWrapper()
454 : {
455 0 : static salhelper::SingletonRef<SwCalendarWrapper> aCalendarWrapper;
456 0 : return &aCalendarWrapper;
457 : }
458 :
459 90 : void _InitCore()
460 : {
461 : SfxPoolItem* pItem;
462 :
463 : // first initialize all attribute pointers with 0
464 90 : memset( aAttrTab, 0, (POOLATTR_END - POOLATTR_BEGIN) * sizeof( SfxPoolItem* ) );
465 :
466 90 : aAttrTab[ RES_CHRATR_CASEMAP- POOLATTR_BEGIN ] = new SvxCaseMapItem( SVX_CASEMAP_NOT_MAPPED, RES_CHRATR_CASEMAP);
467 90 : aAttrTab[ RES_CHRATR_CHARSETCOLOR- POOLATTR_BEGIN ] = new SvxCharSetColorItem(RES_CHRATR_CHARSETCOLOR);
468 90 : aAttrTab[ RES_CHRATR_COLOR- POOLATTR_BEGIN ] = new SvxColorItem(RES_CHRATR_COLOR);
469 90 : aAttrTab[ RES_CHRATR_CONTOUR- POOLATTR_BEGIN ] = new SvxContourItem( false, RES_CHRATR_CONTOUR );
470 90 : aAttrTab[ RES_CHRATR_CROSSEDOUT- POOLATTR_BEGIN ] = new SvxCrossedOutItem( STRIKEOUT_NONE, RES_CHRATR_CROSSEDOUT );
471 90 : aAttrTab[ RES_CHRATR_ESCAPEMENT- POOLATTR_BEGIN ] = new SvxEscapementItem( RES_CHRATR_ESCAPEMENT );
472 90 : aAttrTab[ RES_CHRATR_FONT- POOLATTR_BEGIN ] = new SvxFontItem( RES_CHRATR_FONT );
473 :
474 90 : aAttrTab[ RES_CHRATR_FONTSIZE- POOLATTR_BEGIN ] = new SvxFontHeightItem( 240, 100, RES_CHRATR_FONTSIZE );
475 90 : aAttrTab[ RES_CHRATR_KERNING- POOLATTR_BEGIN ] = new SvxKerningItem( 0, RES_CHRATR_KERNING );
476 90 : aAttrTab[ RES_CHRATR_LANGUAGE- POOLATTR_BEGIN ] = new SvxLanguageItem(LANGUAGE_DONTKNOW, RES_CHRATR_LANGUAGE );
477 90 : aAttrTab[ RES_CHRATR_POSTURE- POOLATTR_BEGIN ] = new SvxPostureItem( ITALIC_NONE, RES_CHRATR_POSTURE );
478 90 : aAttrTab[ RES_CHRATR_PROPORTIONALFONTSIZE- POOLATTR_BEGIN ] = new SvxPropSizeItem( 100, RES_CHRATR_PROPORTIONALFONTSIZE );
479 90 : aAttrTab[ RES_CHRATR_SHADOWED- POOLATTR_BEGIN ] = new SvxShadowedItem( false, RES_CHRATR_SHADOWED );
480 90 : aAttrTab[ RES_CHRATR_UNDERLINE- POOLATTR_BEGIN ] = new SvxUnderlineItem( UNDERLINE_NONE, RES_CHRATR_UNDERLINE );
481 90 : aAttrTab[ RES_CHRATR_WEIGHT- POOLATTR_BEGIN ] = new SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_WEIGHT );
482 90 : aAttrTab[ RES_CHRATR_RSID - POOLATTR_BEGIN ] = new SvxRsidItem( 0, RES_CHRATR_RSID );
483 90 : aAttrTab[ RES_CHRATR_WORDLINEMODE- POOLATTR_BEGIN ] = new SvxWordLineModeItem( false, RES_CHRATR_WORDLINEMODE );
484 90 : aAttrTab[ RES_CHRATR_AUTOKERN- POOLATTR_BEGIN ] = new SvxAutoKernItem( false, RES_CHRATR_AUTOKERN );
485 90 : aAttrTab[ RES_CHRATR_BLINK - POOLATTR_BEGIN ] = new SvxBlinkItem( false, RES_CHRATR_BLINK );
486 90 : aAttrTab[ RES_CHRATR_NOHYPHEN - POOLATTR_BEGIN ] = new SvxNoHyphenItem( true, RES_CHRATR_NOHYPHEN );
487 90 : aAttrTab[ RES_CHRATR_NOLINEBREAK- POOLATTR_BEGIN ] = new SvxNoLinebreakItem( true, RES_CHRATR_NOLINEBREAK );
488 90 : aAttrTab[ RES_CHRATR_BACKGROUND - POOLATTR_BEGIN ] = new SvxBrushItem( RES_CHRATR_BACKGROUND );
489 :
490 : // CJK-Attributes
491 90 : aAttrTab[ RES_CHRATR_CJK_FONT - POOLATTR_BEGIN ] = new SvxFontItem( RES_CHRATR_CJK_FONT );
492 90 : aAttrTab[ RES_CHRATR_CJK_FONTSIZE - POOLATTR_BEGIN ] = new SvxFontHeightItem( 240, 100, RES_CHRATR_CJK_FONTSIZE );
493 90 : aAttrTab[ RES_CHRATR_CJK_LANGUAGE - POOLATTR_BEGIN ] = new SvxLanguageItem(LANGUAGE_DONTKNOW, RES_CHRATR_CJK_LANGUAGE);
494 90 : aAttrTab[ RES_CHRATR_CJK_POSTURE - POOLATTR_BEGIN ] = new SvxPostureItem(ITALIC_NONE, RES_CHRATR_CJK_POSTURE );
495 90 : aAttrTab[ RES_CHRATR_CJK_WEIGHT - POOLATTR_BEGIN ] = new SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_CJK_WEIGHT );
496 :
497 : // CTL-Attributes
498 90 : aAttrTab[ RES_CHRATR_CTL_FONT - POOLATTR_BEGIN ] = new SvxFontItem( RES_CHRATR_CTL_FONT );
499 90 : aAttrTab[ RES_CHRATR_CTL_FONTSIZE - POOLATTR_BEGIN ] = new SvxFontHeightItem( 240, 100, RES_CHRATR_CTL_FONTSIZE );
500 90 : aAttrTab[ RES_CHRATR_CTL_LANGUAGE - POOLATTR_BEGIN ] = new SvxLanguageItem(LANGUAGE_DONTKNOW, RES_CHRATR_CTL_LANGUAGE);
501 90 : aAttrTab[ RES_CHRATR_CTL_POSTURE - POOLATTR_BEGIN ] = new SvxPostureItem(ITALIC_NONE, RES_CHRATR_CTL_POSTURE );
502 90 : aAttrTab[ RES_CHRATR_CTL_WEIGHT - POOLATTR_BEGIN ] = new SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_CTL_WEIGHT );
503 :
504 90 : aAttrTab[ RES_CHRATR_ROTATE - POOLATTR_BEGIN ] = new SvxCharRotateItem( 0, false, RES_CHRATR_ROTATE );
505 90 : aAttrTab[ RES_CHRATR_EMPHASIS_MARK - POOLATTR_BEGIN ] = new SvxEmphasisMarkItem( EMPHASISMARK_NONE, RES_CHRATR_EMPHASIS_MARK );
506 90 : aAttrTab[ RES_CHRATR_TWO_LINES - POOLATTR_BEGIN ] = new SvxTwoLinesItem( false, 0, 0, RES_CHRATR_TWO_LINES );
507 90 : aAttrTab[ RES_CHRATR_SCALEW - POOLATTR_BEGIN ] = new SvxCharScaleWidthItem( 100, RES_CHRATR_SCALEW );
508 90 : aAttrTab[ RES_CHRATR_RELIEF - POOLATTR_BEGIN ] = new SvxCharReliefItem( RELIEF_NONE, RES_CHRATR_RELIEF );
509 90 : aAttrTab[ RES_CHRATR_HIDDEN - POOLATTR_BEGIN ] = new SvxCharHiddenItem( false, RES_CHRATR_HIDDEN );
510 90 : aAttrTab[ RES_CHRATR_OVERLINE- POOLATTR_BEGIN ] = new SvxOverlineItem( UNDERLINE_NONE, RES_CHRATR_OVERLINE );
511 90 : aAttrTab[ RES_CHRATR_BOX - POOLATTR_BEGIN ] = new SvxBoxItem( RES_CHRATR_BOX );
512 90 : aAttrTab[ RES_CHRATR_SHADOW - POOLATTR_BEGIN ] = new SvxShadowItem( RES_CHRATR_SHADOW );
513 90 : aAttrTab[ RES_CHRATR_HIGHLIGHT - POOLATTR_BEGIN ] = new SvxBrushItem( RES_CHRATR_HIGHLIGHT );
514 90 : aAttrTab[ RES_CHRATR_GRABBAG - POOLATTR_BEGIN ] = new SfxGrabBagItem( RES_CHRATR_GRABBAG );
515 :
516 : // CharakterAttr - MSWord weak char direction/script override emulation
517 90 : aAttrTab[ RES_CHRATR_BIDIRTL - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_BIDIRTL, sal_Int16(-1) );
518 90 : aAttrTab[ RES_CHRATR_IDCTHINT - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_IDCTHINT, sal_Int16(-1) );
519 :
520 90 : aAttrTab[ RES_TXTATR_REFMARK - POOLATTR_BEGIN ] = new SwFmtRefMark( OUString() );
521 90 : aAttrTab[ RES_TXTATR_TOXMARK - POOLATTR_BEGIN ] = new SwTOXMark;
522 90 : aAttrTab[ RES_TXTATR_META - POOLATTR_BEGIN ] = SwFmtMeta::CreatePoolDefault(RES_TXTATR_META);
523 90 : aAttrTab[ RES_TXTATR_METAFIELD - POOLATTR_BEGIN ] = SwFmtMeta::CreatePoolDefault(RES_TXTATR_METAFIELD);
524 90 : aAttrTab[ RES_TXTATR_AUTOFMT- POOLATTR_BEGIN ] = new SwFmtAutoFmt;
525 90 : aAttrTab[ RES_TXTATR_INETFMT - POOLATTR_BEGIN ] = new SwFmtINetFmt( OUString(), OUString() );
526 90 : aAttrTab[ RES_TXTATR_CHARFMT- POOLATTR_BEGIN ] = new SwFmtCharFmt( 0 );
527 90 : aAttrTab[ RES_TXTATR_CJK_RUBY - POOLATTR_BEGIN ] = new SwFmtRuby( OUString() );
528 90 : aAttrTab[ RES_TXTATR_UNKNOWN_CONTAINER - POOLATTR_BEGIN ] = new SvXMLAttrContainerItem( RES_TXTATR_UNKNOWN_CONTAINER );
529 90 : aAttrTab[ RES_TXTATR_INPUTFIELD - POOLATTR_BEGIN ] = new SwFmtFld( RES_TXTATR_INPUTFIELD );
530 :
531 90 : aAttrTab[ RES_TXTATR_FIELD- POOLATTR_BEGIN ] = new SwFmtFld( RES_TXTATR_FIELD );
532 90 : aAttrTab[ RES_TXTATR_FLYCNT - POOLATTR_BEGIN ] = new SwFmtFlyCnt( 0 );
533 90 : aAttrTab[ RES_TXTATR_FTN - POOLATTR_BEGIN ] = new SwFmtFtn;
534 90 : aAttrTab[ RES_TXTATR_ANNOTATION - POOLATTR_BEGIN ] = new SwFmtFld( RES_TXTATR_ANNOTATION );
535 :
536 : // TextAttr - Dummies
537 90 : aAttrTab[ RES_TXTATR_DUMMY1 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY1 );
538 90 : aAttrTab[ RES_TXTATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY2 );
539 90 : aAttrTab[ RES_TXTATR_DUMMY3 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY3 );
540 :
541 90 : aAttrTab[ RES_PARATR_LINESPACING- POOLATTR_BEGIN ] = new SvxLineSpacingItem( LINE_SPACE_DEFAULT_HEIGHT, RES_PARATR_LINESPACING );
542 90 : aAttrTab[ RES_PARATR_ADJUST- POOLATTR_BEGIN ] = new SvxAdjustItem( SVX_ADJUST_LEFT, RES_PARATR_ADJUST );
543 90 : aAttrTab[ RES_PARATR_SPLIT- POOLATTR_BEGIN ] = new SvxFmtSplitItem( true, RES_PARATR_SPLIT );
544 90 : aAttrTab[ RES_PARATR_WIDOWS- POOLATTR_BEGIN ] = new SvxWidowsItem( 0, RES_PARATR_WIDOWS );
545 90 : aAttrTab[ RES_PARATR_ORPHANS- POOLATTR_BEGIN ] = new SvxOrphansItem( 0, RES_PARATR_ORPHANS );
546 90 : aAttrTab[ RES_PARATR_TABSTOP- POOLATTR_BEGIN ] = new SvxTabStopItem( 1, SVX_TAB_DEFDIST, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
547 :
548 90 : pItem = new SvxHyphenZoneItem( false, RES_PARATR_HYPHENZONE );
549 90 : ((SvxHyphenZoneItem*)pItem)->GetMaxHyphens() = 0; // Default: 0
550 90 : aAttrTab[ RES_PARATR_HYPHENZONE- POOLATTR_BEGIN ] = pItem;
551 :
552 90 : aAttrTab[ RES_PARATR_DROP- POOLATTR_BEGIN ] = new SwFmtDrop;
553 90 : aAttrTab[ RES_PARATR_REGISTER - POOLATTR_BEGIN ] = new SwRegisterItem( false );
554 90 : aAttrTab[ RES_PARATR_NUMRULE - POOLATTR_BEGIN ] = new SwNumRuleItem( OUString() );
555 :
556 90 : aAttrTab[ RES_PARATR_SCRIPTSPACE - POOLATTR_BEGIN ] = new SvxScriptSpaceItem( true, RES_PARATR_SCRIPTSPACE );
557 90 : aAttrTab[ RES_PARATR_HANGINGPUNCTUATION - POOLATTR_BEGIN ] = new SvxHangingPunctuationItem( true, RES_PARATR_HANGINGPUNCTUATION );
558 90 : aAttrTab[ RES_PARATR_FORBIDDEN_RULES - POOLATTR_BEGIN ] = new SvxForbiddenRuleItem( true, RES_PARATR_FORBIDDEN_RULES );
559 90 : aAttrTab[ RES_PARATR_VERTALIGN - POOLATTR_BEGIN ] = new SvxParaVertAlignItem( 0, RES_PARATR_VERTALIGN );
560 90 : aAttrTab[ RES_PARATR_SNAPTOGRID - POOLATTR_BEGIN ] = new SvxParaGridItem( true, RES_PARATR_SNAPTOGRID );
561 90 : aAttrTab[ RES_PARATR_CONNECT_BORDER - POOLATTR_BEGIN ] = new SwParaConnectBorderItem;
562 :
563 90 : aAttrTab[ RES_PARATR_OUTLINELEVEL - POOLATTR_BEGIN ] = new SfxUInt16Item( RES_PARATR_OUTLINELEVEL, 0 );
564 90 : aAttrTab[ RES_PARATR_RSID - POOLATTR_BEGIN ] = new SvxRsidItem( 0, RES_PARATR_RSID );
565 90 : aAttrTab[ RES_PARATR_GRABBAG - POOLATTR_BEGIN ] = new SfxGrabBagItem( RES_PARATR_GRABBAG );
566 :
567 90 : aAttrTab[ RES_PARATR_LIST_ID - POOLATTR_BEGIN ] = new SfxStringItem( RES_PARATR_LIST_ID, OUString() );
568 90 : aAttrTab[ RES_PARATR_LIST_LEVEL - POOLATTR_BEGIN ] = new SfxInt16Item( RES_PARATR_LIST_LEVEL, 0 );
569 90 : aAttrTab[ RES_PARATR_LIST_ISRESTART - POOLATTR_BEGIN ] = new SfxBoolItem( RES_PARATR_LIST_ISRESTART, false );
570 90 : aAttrTab[ RES_PARATR_LIST_RESTARTVALUE - POOLATTR_BEGIN ] = new SfxInt16Item( RES_PARATR_LIST_RESTARTVALUE, 1 );
571 90 : aAttrTab[ RES_PARATR_LIST_ISCOUNTED - POOLATTR_BEGIN ] = new SfxBoolItem( RES_PARATR_LIST_ISCOUNTED, true );
572 :
573 90 : aAttrTab[ RES_FILL_ORDER- POOLATTR_BEGIN ] = new SwFmtFillOrder;
574 90 : aAttrTab[ RES_FRM_SIZE- POOLATTR_BEGIN ] = new SwFmtFrmSize;
575 90 : aAttrTab[ RES_PAPER_BIN- POOLATTR_BEGIN ] = new SvxPaperBinItem( RES_PAPER_BIN );
576 90 : aAttrTab[ RES_LR_SPACE- POOLATTR_BEGIN ] = new SvxLRSpaceItem( RES_LR_SPACE );
577 90 : aAttrTab[ RES_UL_SPACE- POOLATTR_BEGIN ] = new SvxULSpaceItem( RES_UL_SPACE );
578 90 : aAttrTab[ RES_PAGEDESC- POOLATTR_BEGIN ] = new SwFmtPageDesc;
579 90 : aAttrTab[ RES_BREAK- POOLATTR_BEGIN ] = new SvxFmtBreakItem( SVX_BREAK_NONE, RES_BREAK);
580 90 : aAttrTab[ RES_CNTNT- POOLATTR_BEGIN ] = new SwFmtCntnt;
581 90 : aAttrTab[ RES_HEADER- POOLATTR_BEGIN ] = new SwFmtHeader;
582 90 : aAttrTab[ RES_FOOTER- POOLATTR_BEGIN ] = new SwFmtFooter;
583 90 : aAttrTab[ RES_PRINT- POOLATTR_BEGIN ] = new SvxPrintItem( RES_PRINT );
584 90 : aAttrTab[ RES_OPAQUE- POOLATTR_BEGIN ] = new SvxOpaqueItem( RES_OPAQUE );
585 90 : aAttrTab[ RES_PROTECT- POOLATTR_BEGIN ] = new SvxProtectItem( RES_PROTECT );
586 90 : aAttrTab[ RES_SURROUND- POOLATTR_BEGIN ] = new SwFmtSurround;
587 90 : aAttrTab[ RES_VERT_ORIENT- POOLATTR_BEGIN ] = new SwFmtVertOrient;
588 90 : aAttrTab[ RES_HORI_ORIENT- POOLATTR_BEGIN ] = new SwFmtHoriOrient;
589 90 : aAttrTab[ RES_ANCHOR- POOLATTR_BEGIN ] = new SwFmtAnchor;
590 90 : aAttrTab[ RES_BACKGROUND- POOLATTR_BEGIN ] = new SvxBrushItem( RES_BACKGROUND );
591 90 : aAttrTab[ RES_BOX- POOLATTR_BEGIN ] = new SvxBoxItem( RES_BOX );
592 90 : aAttrTab[ RES_SHADOW- POOLATTR_BEGIN ] = new SvxShadowItem( RES_SHADOW );
593 90 : aAttrTab[ RES_FRMMACRO- POOLATTR_BEGIN ] = new SvxMacroItem( RES_FRMMACRO );
594 90 : aAttrTab[ RES_COL- POOLATTR_BEGIN ] = new SwFmtCol;
595 90 : aAttrTab[ RES_KEEP - POOLATTR_BEGIN ] = new SvxFmtKeepItem( false, RES_KEEP );
596 90 : aAttrTab[ RES_URL - POOLATTR_BEGIN ] = new SwFmtURL();
597 90 : aAttrTab[ RES_EDIT_IN_READONLY - POOLATTR_BEGIN ] = new SwFmtEditInReadonly;
598 90 : aAttrTab[ RES_LAYOUT_SPLIT - POOLATTR_BEGIN ] = new SwFmtLayoutSplit;
599 90 : aAttrTab[ RES_CHAIN - POOLATTR_BEGIN ] = new SwFmtChain;
600 90 : aAttrTab[ RES_TEXTGRID - POOLATTR_BEGIN ] = new SwTextGridItem;
601 90 : aAttrTab[ RES_HEADER_FOOTER_EAT_SPACING - POOLATTR_BEGIN ] = new SwHeaderAndFooterEatSpacingItem;
602 90 : aAttrTab[ RES_LINENUMBER - POOLATTR_BEGIN ] = new SwFmtLineNumber;
603 90 : aAttrTab[ RES_FTN_AT_TXTEND - POOLATTR_BEGIN ] = new SwFmtFtnAtTxtEnd;
604 90 : aAttrTab[ RES_END_AT_TXTEND - POOLATTR_BEGIN ] = new SwFmtEndAtTxtEnd;
605 90 : aAttrTab[ RES_COLUMNBALANCE - POOLATTR_BEGIN ] = new SwFmtNoBalancedColumns;
606 90 : aAttrTab[ RES_FRAMEDIR - POOLATTR_BEGIN ] = new SvxFrameDirectionItem( FRMDIR_ENVIRONMENT, RES_FRAMEDIR );
607 90 : aAttrTab[ RES_ROW_SPLIT - POOLATTR_BEGIN ] = new SwFmtRowSplit;
608 :
609 : // #i18732#
610 90 : aAttrTab[ RES_FOLLOW_TEXT_FLOW - POOLATTR_BEGIN ] = new SwFmtFollowTextFlow(false);
611 : // collapsing borders #i29550#
612 90 : aAttrTab[ RES_COLLAPSING_BORDERS - POOLATTR_BEGIN ] = new SfxBoolItem( RES_COLLAPSING_BORDERS, false );
613 : // #i28701#
614 : // #i35017# - constant name has changed
615 : aAttrTab[ RES_WRAP_INFLUENCE_ON_OBJPOS - POOLATTR_BEGIN ] =
616 90 : new SwFmtWrapInfluenceOnObjPos( text::WrapInfluenceOnPosition::ONCE_CONCURRENT );
617 :
618 90 : aAttrTab[ RES_AUTO_STYLE - POOLATTR_BEGIN ] = new SwFmtAutoFmt( RES_AUTO_STYLE );
619 90 : aAttrTab[ RES_FRMATR_STYLE_NAME - POOLATTR_BEGIN ] = new SfxStringItem( RES_FRMATR_STYLE_NAME, OUString());
620 90 : aAttrTab[ RES_FRMATR_CONDITIONAL_STYLE_NAME - POOLATTR_BEGIN ] = new SfxStringItem( RES_FRMATR_CONDITIONAL_STYLE_NAME, OUString() );
621 90 : aAttrTab[ RES_FRMATR_GRABBAG - POOLATTR_BEGIN ] = new SfxGrabBagItem(RES_FRMATR_GRABBAG);
622 90 : aAttrTab[ RES_TEXT_VERT_ADJUST - POOLATTR_BEGIN ] = new SdrTextVertAdjustItem(SDRTEXTVERTADJUST_TOP,RES_TEXT_VERT_ADJUST);
623 :
624 90 : aAttrTab[ RES_GRFATR_MIRRORGRF- POOLATTR_BEGIN ] = new SwMirrorGrf;
625 90 : aAttrTab[ RES_GRFATR_CROPGRF- POOLATTR_BEGIN ] = new SwCropGrf;
626 90 : aAttrTab[ RES_GRFATR_ROTATION - POOLATTR_BEGIN ] = new SwRotationGrf;
627 90 : aAttrTab[ RES_GRFATR_LUMINANCE - POOLATTR_BEGIN ] = new SwLuminanceGrf;
628 90 : aAttrTab[ RES_GRFATR_CONTRAST - POOLATTR_BEGIN ] = new SwContrastGrf;
629 90 : aAttrTab[ RES_GRFATR_CHANNELR - POOLATTR_BEGIN ] = new SwChannelRGrf;
630 90 : aAttrTab[ RES_GRFATR_CHANNELG - POOLATTR_BEGIN ] = new SwChannelGGrf;
631 90 : aAttrTab[ RES_GRFATR_CHANNELB - POOLATTR_BEGIN ] = new SwChannelBGrf;
632 90 : aAttrTab[ RES_GRFATR_GAMMA - POOLATTR_BEGIN ] = new SwGammaGrf;
633 90 : aAttrTab[ RES_GRFATR_INVERT - POOLATTR_BEGIN ] = new SwInvertGrf;
634 90 : aAttrTab[ RES_GRFATR_TRANSPARENCY - POOLATTR_BEGIN ] = new SwTransparencyGrf;
635 90 : aAttrTab[ RES_GRFATR_DRAWMODE - POOLATTR_BEGIN ] = new SwDrawModeGrf;
636 :
637 : // GraphicAttr - Dummies
638 90 : aAttrTab[ RES_GRFATR_DUMMY1 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY1 );
639 90 : aAttrTab[ RES_GRFATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY2 );
640 90 : aAttrTab[ RES_GRFATR_DUMMY3 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY3 );
641 90 : aAttrTab[ RES_GRFATR_DUMMY4 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY4 );
642 90 : aAttrTab[ RES_GRFATR_DUMMY5 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_GRFATR_DUMMY5 );
643 :
644 90 : aAttrTab[ RES_BOXATR_FORMAT- POOLATTR_BEGIN ] = new SwTblBoxNumFormat;
645 90 : aAttrTab[ RES_BOXATR_FORMULA- POOLATTR_BEGIN ] = new SwTblBoxFormula( OUString() );
646 90 : aAttrTab[ RES_BOXATR_VALUE- POOLATTR_BEGIN ] = new SwTblBoxValue;
647 :
648 : aAttrTab[ RES_UNKNOWNATR_CONTAINER- POOLATTR_BEGIN ] =
649 90 : new SvXMLAttrContainerItem( RES_UNKNOWNATR_CONTAINER );
650 :
651 : // get the correct fonts:
652 90 : ::GetDefaultFonts( *(SvxFontItem*)aAttrTab[ RES_CHRATR_FONT- POOLATTR_BEGIN ],
653 90 : *(SvxFontItem*)aAttrTab[ RES_CHRATR_CJK_FONT - POOLATTR_BEGIN ],
654 180 : *(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 90 : SwAttrPool::pVersionMap1 = new sal_uInt16[ 60 ];
663 : sal_uInt16 i;
664 1620 : for( i = 1; i <= 17; i++ )
665 1530 : SwAttrPool::pVersionMap1[ i-1 ] = i;
666 990 : for ( i = 18; i <= 27; ++i )
667 900 : SwAttrPool::pVersionMap1[ i-1 ] = i + 5;
668 810 : for ( i = 28; i <= 35; ++i )
669 720 : SwAttrPool::pVersionMap1[ i-1 ] = i + 7;
670 2160 : for ( i = 36; i <= 58; ++i )
671 2070 : SwAttrPool::pVersionMap1[ i-1 ] = i + 10;
672 270 : for ( i = 59; i <= 60; ++i )
673 180 : SwAttrPool::pVersionMap1[ i-1 ] = i + 12;
674 :
675 : // 2. version - new attributes:
676 : // 10 dummies for the frame "range"
677 90 : SwAttrPool::pVersionMap2 = new sal_uInt16[ 75 ];
678 6390 : for( i = 1; i <= 70; i++ )
679 6300 : SwAttrPool::pVersionMap2[ i-1 ] = i;
680 540 : for ( i = 71; i <= 75; ++i )
681 450 : 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 90 : SwAttrPool::pVersionMap3 = new sal_uInt16[ 86 ];
687 1980 : for( i = 1; i <= 21; i++ )
688 1890 : SwAttrPool::pVersionMap3[ i-1 ] = i;
689 630 : for ( i = 22; i <= 27; ++i )
690 540 : SwAttrPool::pVersionMap3[ i-1 ] = i + 15;
691 5040 : for ( i = 28; i <= 82; ++i )
692 4950 : SwAttrPool::pVersionMap3[ i-1 ] = i + 20;
693 450 : for ( i = 83; i <= 86; ++i )
694 360 : SwAttrPool::pVersionMap3[ i-1 ] = i + 35;
695 :
696 : // 4. version:
697 : // new paragraph attributes for CJK version
698 90 : SwAttrPool::pVersionMap4 = new sal_uInt16[ 121 ];
699 5940 : for( i = 1; i <= 65; i++ )
700 5850 : SwAttrPool::pVersionMap4[ i-1 ] = i;
701 5130 : for ( i = 66; i <= 121; ++i )
702 5040 : 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 90 : SwAttrPool::pVersionMap5 = new sal_uInt16[ 130 ];
708 9900 : for( i = 1; i <= 109; i++ )
709 9810 : SwAttrPool::pVersionMap5[ i-1 ] = i;
710 1980 : for ( i = 110; i <= 130; ++i )
711 1890 : 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 90 : SwAttrPool::pVersionMap6 = new sal_uInt16[ 136 ];
719 3420 : for( i = 1; i <= 37; i++ )
720 3330 : SwAttrPool::pVersionMap6[ i-1 ] = i;
721 9000 : for ( i = 38; i <= 136; ++i )
722 8910 : SwAttrPool::pVersionMap6[ i-1 ] = i + 3;
723 :
724 : // 7. version:
725 : // New character attribute for character box shadow plus 3 dummies
726 90 : SwAttrPool::pVersionMap7 = new sal_uInt16[ 144 ];
727 3690 : for( i = 1; i <= 40; ++i )
728 3600 : SwAttrPool::pVersionMap7[ i-1 ] = i;
729 9450 : for ( i = 41; i <= 144; ++i )
730 9360 : SwAttrPool::pVersionMap7[ i-1 ] = i + 4;
731 :
732 90 : SwBreakIt::_Create( ::comphelper::getProcessComponentContext() );
733 90 : pCheckIt = NULL;
734 :
735 90 : _FrmInit();
736 90 : _TextInit();
737 :
738 90 : SwSelPaintRects::pMapMode = new MapMode;
739 90 : SwFntObj::pPixMap = new MapMode;
740 :
741 90 : pGlobalOLEExcludeList = new std::vector<SvGlobalName*>;
742 :
743 90 : const SvxSwAutoFmtFlags& rAFlags = SvxAutoCorrCfg::Get().GetAutoCorrect()->GetSwFlags();
744 : SwDoc::mpACmpltWords = new SwAutoCompleteWord( rAFlags.nAutoCmpltListLen,
745 90 : rAFlags.nAutoCmpltWordLen );
746 90 : }
747 :
748 90 : void _FinitCore()
749 : {
750 90 : _FrmFinit();
751 90 : _TextFinit();
752 :
753 90 : SwBreakIt::_Delete();
754 90 : delete pCheckIt;
755 90 : delete pAppCharClass;
756 90 : delete pCollator;
757 90 : delete pCaseCollator;
758 :
759 : // destroy default TableAutoFormat
760 90 : delete SwTableAutoFmt::pDfltBoxAutoFmt;
761 :
762 90 : delete SwSelPaintRects::pMapMode;
763 90 : delete SwFntObj::pPixMap;
764 :
765 90 : delete SwEditShell::pAutoFmtFlags;
766 :
767 : #if OSL_DEBUG_LEVEL > 0
768 : // free defaults to prevent assertions
769 : if ( aAttrTab[0]->GetRefCount() )
770 : SfxItemPool::ReleaseDefaults( aAttrTab, POOLATTR_END-POOLATTR_BEGIN, false);
771 : #endif
772 90 : delete SwDoc::mpACmpltWords;
773 :
774 90 : delete SwStyleNameMapper::pTextUINameArray;
775 90 : delete SwStyleNameMapper::pListsUINameArray;
776 90 : delete SwStyleNameMapper::pExtraUINameArray;
777 90 : delete SwStyleNameMapper::pRegisterUINameArray;
778 90 : delete SwStyleNameMapper::pDocUINameArray;
779 90 : delete SwStyleNameMapper::pHTMLUINameArray;
780 90 : delete SwStyleNameMapper::pFrmFmtUINameArray;
781 90 : delete SwStyleNameMapper::pChrFmtUINameArray;
782 90 : delete SwStyleNameMapper::pHTMLChrFmtUINameArray;
783 90 : delete SwStyleNameMapper::pPageDescUINameArray;
784 90 : delete SwStyleNameMapper::pNumRuleUINameArray;
785 :
786 : // Delete programmatic name arrays also
787 90 : delete SwStyleNameMapper::pTextProgNameArray;
788 90 : delete SwStyleNameMapper::pListsProgNameArray;
789 90 : delete SwStyleNameMapper::pExtraProgNameArray;
790 90 : delete SwStyleNameMapper::pRegisterProgNameArray;
791 90 : delete SwStyleNameMapper::pDocProgNameArray;
792 90 : delete SwStyleNameMapper::pHTMLProgNameArray;
793 90 : delete SwStyleNameMapper::pFrmFmtProgNameArray;
794 90 : delete SwStyleNameMapper::pChrFmtProgNameArray;
795 90 : delete SwStyleNameMapper::pHTMLChrFmtProgNameArray;
796 90 : delete SwStyleNameMapper::pPageDescProgNameArray;
797 90 : delete SwStyleNameMapper::pNumRuleProgNameArray;
798 :
799 : // And finally, any hash tables that we used
800 90 : delete SwStyleNameMapper::pParaUIMap;
801 90 : delete SwStyleNameMapper::pCharUIMap;
802 90 : delete SwStyleNameMapper::pPageUIMap;
803 90 : delete SwStyleNameMapper::pFrameUIMap;
804 90 : delete SwStyleNameMapper::pNumRuleUIMap;
805 :
806 90 : delete SwStyleNameMapper::pParaProgMap;
807 90 : delete SwStyleNameMapper::pCharProgMap;
808 90 : delete SwStyleNameMapper::pPageProgMap;
809 90 : delete SwStyleNameMapper::pFrameProgMap;
810 90 : delete SwStyleNameMapper::pNumRuleProgMap;
811 :
812 : // delete all default attributes
813 : SfxPoolItem* pHt;
814 13590 : for( sal_uInt16 n = 0; n < POOLATTR_END - POOLATTR_BEGIN; n++ )
815 13500 : if( 0 != ( pHt = aAttrTab[n] ))
816 13500 : delete pHt;
817 :
818 90 : ::ClearFEShellTabCols();
819 :
820 90 : delete[] SwAttrPool::pVersionMap1;
821 90 : delete[] SwAttrPool::pVersionMap2;
822 90 : delete[] SwAttrPool::pVersionMap3;
823 90 : delete[] SwAttrPool::pVersionMap4;
824 : // #i18732#
825 90 : delete[] SwAttrPool::pVersionMap5;
826 90 : delete[] SwAttrPool::pVersionMap6;
827 90 : delete[] SwAttrPool::pVersionMap7;
828 :
829 92 : for ( sal_uInt16 i = 0; i < pGlobalOLEExcludeList->size(); ++i )
830 2 : delete (*pGlobalOLEExcludeList)[i];
831 90 : delete pGlobalOLEExcludeList;
832 90 : }
833 :
834 : // returns the APP - CharClass instance - used for all ToUpper/ToLower/...
835 121698 : CharClass& GetAppCharClass()
836 : {
837 121698 : if ( !pAppCharClass )
838 : {
839 : pAppCharClass = new CharClass(
840 : ::comphelper::getProcessComponentContext(),
841 68 : SwBreakIt::Get()->GetLanguageTag( GetAppLanguageTag() ));
842 : }
843 121698 : return *pAppCharClass;
844 : }
845 :
846 0 : void SwCalendarWrapper::LoadDefaultCalendar( sal_uInt16 eLang )
847 : {
848 0 : sUniqueId = "";
849 0 : if( eLang != nLang )
850 0 : loadDefaultCalendar( LanguageTag::convertToLocale( nLang = eLang ));
851 0 : }
852 :
853 212150 : LanguageType GetAppLanguage()
854 : {
855 212150 : return Application::GetSettings().GetLanguageTag().getLanguageType();
856 : }
857 :
858 84 : const LanguageTag& GetAppLanguageTag()
859 : {
860 84 : return Application::GetSettings().GetLanguageTag();
861 : }
862 :
863 4 : CollatorWrapper& GetAppCollator()
864 : {
865 4 : if( !pCollator )
866 : {
867 2 : const lang::Locale& rLcl = g_pBreakIt->GetLocale( GetAppLanguage() );
868 :
869 2 : pCollator = new CollatorWrapper( ::comphelper::getProcessComponentContext() );
870 2 : pCollator->loadDefaultCollator( rLcl, SW_COLLATOR_IGNORES );
871 : }
872 4 : return *pCollator;
873 : }
874 :
875 0 : CollatorWrapper& GetAppCaseCollator()
876 : {
877 0 : if( !pCaseCollator )
878 : {
879 0 : const lang::Locale& rLcl = g_pBreakIt->GetLocale( GetAppLanguage() );
880 :
881 0 : pCaseCollator = new CollatorWrapper( ::comphelper::getProcessComponentContext() );
882 0 : pCaseCollator->loadDefaultCollator( rLcl, 0 );
883 : }
884 0 : return *pCaseCollator;
885 : }
886 :
887 : namespace
888 : {
889 84 : class TransWrp
890 : {
891 : private:
892 : boost::scoped_ptr< ::utl::TransliterationWrapper > xTransWrp;
893 : public:
894 84 : TransWrp()
895 84 : {
896 84 : uno::Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
897 :
898 : xTransWrp.reset(new ::utl::TransliterationWrapper( xContext,
899 : i18n::TransliterationModules_IGNORE_CASE |
900 : i18n::TransliterationModules_IGNORE_KANA |
901 84 : i18n::TransliterationModules_IGNORE_WIDTH ));
902 :
903 84 : xTransWrp->loadModuleIfNeeded( static_cast<sal_uInt16>(GetAppLanguage()) );
904 84 : }
905 8652 : const ::utl::TransliterationWrapper& getTransliterationWrapper() const
906 : {
907 8652 : return *xTransWrp;
908 : }
909 : };
910 :
911 : class theTransWrp : public rtl::Static<TransWrp, theTransWrp> {};
912 : }
913 :
914 8652 : const ::utl::TransliterationWrapper& GetAppCmpStrIgnore()
915 : {
916 8652 : return theTransWrp::get().getTransliterationWrapper();
917 270 : }
918 :
919 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|