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