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