1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir #ifndef SW_DOC_HXX 28*cdf0e10cSrcweir #define SW_DOC_HXX 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir /** SwDoc interfaces */ 31*cdf0e10cSrcweir 32*cdf0e10cSrcweir #include <IInterface.hxx> 33*cdf0e10cSrcweir #include <IDocumentSettingAccess.hxx> 34*cdf0e10cSrcweir #include <IDocumentDeviceAccess.hxx> 35*cdf0e10cSrcweir #include <IDocumentMarkAccess.hxx> 36*cdf0e10cSrcweir #include <IDocumentRedlineAccess.hxx> 37*cdf0e10cSrcweir #include <IDocumentLinksAdministration.hxx> 38*cdf0e10cSrcweir #include <IDocumentFieldsAccess.hxx> 39*cdf0e10cSrcweir #include <IDocumentContentOperations.hxx> 40*cdf0e10cSrcweir #include <IDocumentStylePoolAccess.hxx> 41*cdf0e10cSrcweir #include <IDocumentLineNumberAccess.hxx> 42*cdf0e10cSrcweir #include <IDocumentStatistics.hxx> 43*cdf0e10cSrcweir #include <IDocumentState.hxx> 44*cdf0e10cSrcweir #include <IDocumentDrawModelAccess.hxx> 45*cdf0e10cSrcweir #include <IDocumentLayoutAccess.hxx> 46*cdf0e10cSrcweir #include <IDocumentTimerAccess.hxx> 47*cdf0e10cSrcweir #include <IDocumentChartDataProviderAccess.hxx> 48*cdf0e10cSrcweir // --> OD 2007-10-26 #i83479# 49*cdf0e10cSrcweir #include <IDocumentOutlineNodes.hxx> 50*cdf0e10cSrcweir #include <IDocumentListItems.hxx> 51*cdf0e10cSrcweir #include <set> 52*cdf0e10cSrcweir // <-- 53*cdf0e10cSrcweir // --> OD 2008-03-12 #refactorlists# 54*cdf0e10cSrcweir #include <IDocumentListsAccess.hxx> 55*cdf0e10cSrcweir class SwList; 56*cdf0e10cSrcweir // <-- 57*cdf0e10cSrcweir #include <IDocumentExternalData.hxx> 58*cdf0e10cSrcweir #define _SVSTDARR_STRINGSDTOR 59*cdf0e10cSrcweir #include <svl/svstdarr.hxx> 60*cdf0e10cSrcweir #include <com/sun/star/embed/XEmbeddedObject.hpp> 61*cdf0e10cSrcweir #include <com/sun/star/embed/XStorage.hpp> 62*cdf0e10cSrcweir #include <vcl/timer.hxx> 63*cdf0e10cSrcweir #include "swdllapi.h" 64*cdf0e10cSrcweir #include <swtypes.hxx> 65*cdf0e10cSrcweir #include <swatrset.hxx> 66*cdf0e10cSrcweir #include <toxe.hxx> // enums 67*cdf0e10cSrcweir #include <flyenum.hxx> 68*cdf0e10cSrcweir #include <itabenum.hxx> 69*cdf0e10cSrcweir #include <swdbdata.hxx> 70*cdf0e10cSrcweir #include <chcmprse.hxx> 71*cdf0e10cSrcweir #include <com/sun/star/linguistic2/XSpellChecker1.hpp> 72*cdf0e10cSrcweir #include <com/sun/star/linguistic2/XHyphenatedWord.hpp> 73*cdf0e10cSrcweir #include <vos/ref.hxx> 74*cdf0e10cSrcweir #include <svx/svdtypes.hxx> 75*cdf0e10cSrcweir #include <sfx2/objsh.hxx> 76*cdf0e10cSrcweir #include <svl/style.hxx> 77*cdf0e10cSrcweir #include <editeng/numitem.hxx> 78*cdf0e10cSrcweir #include "comphelper/implementationreference.hxx" 79*cdf0e10cSrcweir #include <com/sun/star/chart2/data/XDataProvider.hpp> 80*cdf0e10cSrcweir #include <com/sun/star/linguistic2/XProofreadingIterator.hpp> 81*cdf0e10cSrcweir #ifdef FUTURE_VBA 82*cdf0e10cSrcweir #include <com/sun/star/script/vba/XVBAEventProcessor.hpp> 83*cdf0e10cSrcweir #endif 84*cdf0e10cSrcweir 85*cdf0e10cSrcweir #include <hash_map> 86*cdf0e10cSrcweir #include <stringhash.hxx> 87*cdf0e10cSrcweir 88*cdf0e10cSrcweir #include <svtools/embedhlp.hxx> 89*cdf0e10cSrcweir #include <vector> 90*cdf0e10cSrcweir #include <set> 91*cdf0e10cSrcweir #include <map> 92*cdf0e10cSrcweir #include <memory> 93*cdf0e10cSrcweir 94*cdf0e10cSrcweir #include <boost/scoped_ptr.hpp> 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir class SvxForbiddenCharactersTable; 97*cdf0e10cSrcweir class SwExtTextInput; 98*cdf0e10cSrcweir class DateTime; 99*cdf0e10cSrcweir class EditFieldInfo; 100*cdf0e10cSrcweir class JobSetup; 101*cdf0e10cSrcweir class Color; 102*cdf0e10cSrcweir class KeyCode; 103*cdf0e10cSrcweir class Outliner; 104*cdf0e10cSrcweir class OutputDevice; 105*cdf0e10cSrcweir class Point; 106*cdf0e10cSrcweir class SbxArray; 107*cdf0e10cSrcweir class SdrModel; 108*cdf0e10cSrcweir class SdrObject; 109*cdf0e10cSrcweir class SdrUndoAction; 110*cdf0e10cSrcweir class VirtualDevice; 111*cdf0e10cSrcweir class SfxPrinter; 112*cdf0e10cSrcweir class SvNumberFormatter; 113*cdf0e10cSrcweir class SvStringsSort; 114*cdf0e10cSrcweir class SvUShorts; 115*cdf0e10cSrcweir class SvUShortsSort; 116*cdf0e10cSrcweir class SvxMacro; 117*cdf0e10cSrcweir class SvxMacroTableDtor; 118*cdf0e10cSrcweir class SvxBorderLine; 119*cdf0e10cSrcweir class SwAutoCompleteWord; 120*cdf0e10cSrcweir class SwAutoCorrExceptWord; 121*cdf0e10cSrcweir class SwCalc; 122*cdf0e10cSrcweir class SwCellFrm; 123*cdf0e10cSrcweir class SwCharFmt; 124*cdf0e10cSrcweir class SwCharFmts; 125*cdf0e10cSrcweir class SwConditionTxtFmtColl; 126*cdf0e10cSrcweir class SwCrsrShell; 127*cdf0e10cSrcweir class SwCursor; 128*cdf0e10cSrcweir class SwDBNameInfField; 129*cdf0e10cSrcweir class SwDocShell; 130*cdf0e10cSrcweir class SwDocUpdtFld; 131*cdf0e10cSrcweir class SwDrawFrmFmt; 132*cdf0e10cSrcweir class SwDrawView; 133*cdf0e10cSrcweir class SwEditShell; 134*cdf0e10cSrcweir class SwFieldType; 135*cdf0e10cSrcweir class SwField; 136*cdf0e10cSrcweir class SwTxtFld; 137*cdf0e10cSrcweir class SwFldTypes; 138*cdf0e10cSrcweir class SwFlyFrmFmt; 139*cdf0e10cSrcweir class SwFmt; 140*cdf0e10cSrcweir class SwFmtINetFmt; 141*cdf0e10cSrcweir class SwFmtRefMark; 142*cdf0e10cSrcweir class SwFrmFmt; 143*cdf0e10cSrcweir class SwFrmFmts; 144*cdf0e10cSrcweir class SwFtnIdxs; 145*cdf0e10cSrcweir class SwFtnInfo; 146*cdf0e10cSrcweir class SwEndNoteInfo; 147*cdf0e10cSrcweir class GraphicObject; 148*cdf0e10cSrcweir class SwGrfFmtColl; 149*cdf0e10cSrcweir class SwGrfFmtColls; 150*cdf0e10cSrcweir class SwLineNumberInfo; 151*cdf0e10cSrcweir class SwNewDBMgr; 152*cdf0e10cSrcweir class SwNoTxtNode; 153*cdf0e10cSrcweir class SwNodeIndex; 154*cdf0e10cSrcweir class SwNodeRange; 155*cdf0e10cSrcweir class SwNodes; 156*cdf0e10cSrcweir class SwNumRule; 157*cdf0e10cSrcweir class SwNumRuleTbl; 158*cdf0e10cSrcweir class SwPageDesc; 159*cdf0e10cSrcweir class SwPosFlyFrms; 160*cdf0e10cSrcweir class SwPagePreViewPrtData; 161*cdf0e10cSrcweir class SwRedline; 162*cdf0e10cSrcweir class SwRedlineTbl; 163*cdf0e10cSrcweir class SwRootFrm; 164*cdf0e10cSrcweir class SwRubyList; 165*cdf0e10cSrcweir class SwRubyListEntry; 166*cdf0e10cSrcweir class SwSectionFmt; 167*cdf0e10cSrcweir class SwSectionFmts; 168*cdf0e10cSrcweir class SwSectionData; 169*cdf0e10cSrcweir class SwSelBoxes; 170*cdf0e10cSrcweir class SwSpzFrmFmts; 171*cdf0e10cSrcweir class SwTOXBase; 172*cdf0e10cSrcweir class SwTOXBaseSection; 173*cdf0e10cSrcweir class SwTOXMark; 174*cdf0e10cSrcweir class SwTOXMarks; 175*cdf0e10cSrcweir class SwTOXType; 176*cdf0e10cSrcweir class SwTOXTypes; 177*cdf0e10cSrcweir class SwTabCols; 178*cdf0e10cSrcweir class SwTable; 179*cdf0e10cSrcweir class SwTableAutoFmt; 180*cdf0e10cSrcweir class SwTableBox; 181*cdf0e10cSrcweir class SwTableBoxFmt; 182*cdf0e10cSrcweir class SwTableFmt; 183*cdf0e10cSrcweir class SwTableLineFmt; 184*cdf0e10cSrcweir class SwTableNode; 185*cdf0e10cSrcweir class SwTextBlocks; 186*cdf0e10cSrcweir class SwTxtFmtColl; 187*cdf0e10cSrcweir class SwTxtFmtColls; 188*cdf0e10cSrcweir class SwURLStateChanged; 189*cdf0e10cSrcweir class SwUnoCrsr; 190*cdf0e10cSrcweir class SwUnoCrsrTbl; 191*cdf0e10cSrcweir class ViewShell; 192*cdf0e10cSrcweir class _SetGetExpFld; 193*cdf0e10cSrcweir class SwDrawContact; 194*cdf0e10cSrcweir class SwLayouter; 195*cdf0e10cSrcweir class SdrView; 196*cdf0e10cSrcweir class SdrMarkList; 197*cdf0e10cSrcweir class SwAuthEntry; 198*cdf0e10cSrcweir class SwLayoutCache; 199*cdf0e10cSrcweir class IStyleAccess; 200*cdf0e10cSrcweir struct SwCallMouseEvent; 201*cdf0e10cSrcweir struct SwDocStat; 202*cdf0e10cSrcweir struct SwHash; 203*cdf0e10cSrcweir struct SwSortOptions; 204*cdf0e10cSrcweir struct SwDefTOXBase_Impl; 205*cdf0e10cSrcweir class SwPrintData; 206*cdf0e10cSrcweir class SwPrintUIOptions; 207*cdf0e10cSrcweir class SdrPageView; 208*cdf0e10cSrcweir struct SwConversionArgs; 209*cdf0e10cSrcweir class SwRewriter; 210*cdf0e10cSrcweir class SwMsgPoolItem; 211*cdf0e10cSrcweir class SwChartDataProvider; 212*cdf0e10cSrcweir class SwChartLockController_Helper; 213*cdf0e10cSrcweir class IGrammarContact; 214*cdf0e10cSrcweir class SwPrintData; 215*cdf0e10cSrcweir class SwRenderData; 216*cdf0e10cSrcweir class SwPageFrm; 217*cdf0e10cSrcweir class SwViewOption; 218*cdf0e10cSrcweir class IDocumentUndoRedo; 219*cdf0e10cSrcweir 220*cdf0e10cSrcweir namespace sw { namespace mark { 221*cdf0e10cSrcweir class MarkManager; 222*cdf0e10cSrcweir }} 223*cdf0e10cSrcweir namespace sw { 224*cdf0e10cSrcweir class MetaFieldManager; 225*cdf0e10cSrcweir class UndoManager; 226*cdf0e10cSrcweir class IShellCursorSupplier; 227*cdf0e10cSrcweir } 228*cdf0e10cSrcweir 229*cdf0e10cSrcweir namespace com { namespace sun { namespace star { 230*cdf0e10cSrcweir namespace i18n { 231*cdf0e10cSrcweir struct ForbiddenCharacters; // comes from the I18N UNO interface 232*cdf0e10cSrcweir } 233*cdf0e10cSrcweir namespace uno { 234*cdf0e10cSrcweir template < class > class Sequence; 235*cdf0e10cSrcweir } 236*cdf0e10cSrcweir namespace container { 237*cdf0e10cSrcweir class XNameContainer; // for getXForms()/isXForms()/initXForms() methods 238*cdf0e10cSrcweir } 239*cdf0e10cSrcweir }}} 240*cdf0e10cSrcweir 241*cdf0e10cSrcweir namespace sfx2 { 242*cdf0e10cSrcweir class SvLinkSource; 243*cdf0e10cSrcweir class IXmlIdRegistry; 244*cdf0e10cSrcweir class LinkManager; 245*cdf0e10cSrcweir } 246*cdf0e10cSrcweir 247*cdf0e10cSrcweir //PageDescriptor-Schnittstelle, Array hier wegen inlines. 248*cdf0e10cSrcweir typedef SwPageDesc* SwPageDescPtr; 249*cdf0e10cSrcweir SV_DECL_PTRARR_DEL( SwPageDescs, SwPageDescPtr, 4, 4 ) 250*cdf0e10cSrcweir 251*cdf0e10cSrcweir // forward declartion 252*cdf0e10cSrcweir void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem ); 253*cdf0e10cSrcweir 254*cdf0e10cSrcweir // global function to start grammar checking in the document 255*cdf0e10cSrcweir void StartGrammarChecking( SwDoc &rDoc ); 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir class SW_DLLPUBLIC SwDoc : 258*cdf0e10cSrcweir public IInterface, 259*cdf0e10cSrcweir public IDocumentSettingAccess, 260*cdf0e10cSrcweir public IDocumentDeviceAccess, 261*cdf0e10cSrcweir public IDocumentRedlineAccess, 262*cdf0e10cSrcweir public IDocumentLinksAdministration, 263*cdf0e10cSrcweir public IDocumentFieldsAccess, 264*cdf0e10cSrcweir public IDocumentContentOperations, 265*cdf0e10cSrcweir public IDocumentStylePoolAccess, 266*cdf0e10cSrcweir public IDocumentLineNumberAccess, 267*cdf0e10cSrcweir public IDocumentStatistics, 268*cdf0e10cSrcweir public IDocumentState, 269*cdf0e10cSrcweir public IDocumentDrawModelAccess, 270*cdf0e10cSrcweir public IDocumentLayoutAccess, 271*cdf0e10cSrcweir public IDocumentTimerAccess, 272*cdf0e10cSrcweir public IDocumentChartDataProviderAccess, 273*cdf0e10cSrcweir // --> OD 2007-10-26 #i83479# 274*cdf0e10cSrcweir public IDocumentListItems, 275*cdf0e10cSrcweir public IDocumentOutlineNodes, 276*cdf0e10cSrcweir // <-- 277*cdf0e10cSrcweir // --> OD 2008-03-12 #refactorlists# 278*cdf0e10cSrcweir public IDocumentListsAccess, 279*cdf0e10cSrcweir // <-- 280*cdf0e10cSrcweir public IDocumentExternalData 281*cdf0e10cSrcweir { 282*cdf0e10cSrcweir 283*cdf0e10cSrcweir friend void _InitCore(); 284*cdf0e10cSrcweir friend void _FinitCore(); 285*cdf0e10cSrcweir 286*cdf0e10cSrcweir //---------------- private Member -------------------------------- 287*cdf0e10cSrcweir 288*cdf0e10cSrcweir // ------------------------------------------------------------------- 289*cdf0e10cSrcweir ::boost::scoped_ptr<SwNodes> m_pNodes; /// document content (Nodes Array) 290*cdf0e10cSrcweir SwAttrPool* mpAttrPool; // der Attribut Pool 291*cdf0e10cSrcweir SwPageDescs aPageDescs; // PageDescriptoren 292*cdf0e10cSrcweir Link aOle2Link; // OLE 2.0-Benachrichtigung 293*cdf0e10cSrcweir /* @@@MAINTAINABILITY-HORROR@@@ 294*cdf0e10cSrcweir Timer should not be members of the model 295*cdf0e10cSrcweir */ 296*cdf0e10cSrcweir Timer aIdleTimer; // der eigene IdleTimer 297*cdf0e10cSrcweir Timer aOLEModifiedTimer; // Timer for update modified OLE-Objecs 298*cdf0e10cSrcweir SwDBData aDBData; // database descriptor 299*cdf0e10cSrcweir ::com::sun::star::uno::Sequence <sal_Int8 > aRedlinePasswd; 300*cdf0e10cSrcweir String sTOIAutoMarkURL; // ::com::sun::star::util::URL of table of index AutoMark file 301*cdf0e10cSrcweir SvStringsDtor aPatternNms; // Array fuer die Namen der Dokument-Vorlagen 302*cdf0e10cSrcweir com::sun::star::uno::Reference<com::sun::star::container::XNameContainer> 303*cdf0e10cSrcweir xXForms; // container with XForms models 304*cdf0e10cSrcweir mutable com::sun::star::uno::Reference< com::sun::star::linguistic2::XProofreadingIterator > m_xGCIterator; 305*cdf0e10cSrcweir 306*cdf0e10cSrcweir const ::boost::scoped_ptr< ::sw::mark::MarkManager> pMarkManager; 307*cdf0e10cSrcweir const ::boost::scoped_ptr< ::sw::MetaFieldManager > m_pMetaFieldManager; 308*cdf0e10cSrcweir const ::boost::scoped_ptr< ::sw::UndoManager > m_pUndoManager; 309*cdf0e10cSrcweir 310*cdf0e10cSrcweir // ------------------------------------------------------------------- 311*cdf0e10cSrcweir // die Pointer 312*cdf0e10cSrcweir //Defaultformate 313*cdf0e10cSrcweir SwFrmFmt *pDfltFrmFmt; 314*cdf0e10cSrcweir SwFrmFmt *pEmptyPageFmt; // Format fuer die Default-Leerseite. 315*cdf0e10cSrcweir SwFrmFmt *pColumnContFmt; // Format fuer Spaltencontainer 316*cdf0e10cSrcweir SwCharFmt *pDfltCharFmt; 317*cdf0e10cSrcweir SwTxtFmtColl *pDfltTxtFmtColl; // Defaultformatcollections 318*cdf0e10cSrcweir SwGrfFmtColl *pDfltGrfFmtColl; 319*cdf0e10cSrcweir 320*cdf0e10cSrcweir SwFrmFmts *pFrmFmtTbl; // Formattabellen 321*cdf0e10cSrcweir SwCharFmts *pCharFmtTbl; 322*cdf0e10cSrcweir SwSpzFrmFmts *pSpzFrmFmtTbl; 323*cdf0e10cSrcweir SwSectionFmts *pSectionFmtTbl; 324*cdf0e10cSrcweir SwFrmFmts *pTblFrmFmtTbl; // spz. fuer Tabellen 325*cdf0e10cSrcweir SwTxtFmtColls *pTxtFmtCollTbl; // FormatCollections 326*cdf0e10cSrcweir SwGrfFmtColls *pGrfFmtCollTbl; 327*cdf0e10cSrcweir 328*cdf0e10cSrcweir SwTOXTypes *pTOXTypes; // Verzeichnisse 329*cdf0e10cSrcweir SwDefTOXBase_Impl * pDefTOXBases; // defaults of SwTOXBase's 330*cdf0e10cSrcweir 331*cdf0e10cSrcweir ViewShell *pCurrentView; // SwDoc should get a new member pCurrentView//swmod 071225 332*cdf0e10cSrcweir SdrModel *pDrawModel; // StarView Drawing 333*cdf0e10cSrcweir 334*cdf0e10cSrcweir SwDocUpdtFld *pUpdtFlds; // Struktur zum Field-Update 335*cdf0e10cSrcweir SwFldTypes *pFldTypes; // Feldtypen 336*cdf0e10cSrcweir SwNewDBMgr *pNewDBMgr; // Pointer auf den neuen DBMgr fuer 337*cdf0e10cSrcweir // Evaluierung der DB-Fields 338*cdf0e10cSrcweir 339*cdf0e10cSrcweir VirtualDevice *pVirDev; // can be used for formatting 340*cdf0e10cSrcweir SfxPrinter *pPrt; // can be used for formatting 341*cdf0e10cSrcweir SwPrintData *pPrtData; // Print configuration 342*cdf0e10cSrcweir 343*cdf0e10cSrcweir SwDoc *pGlossaryDoc; // Pointer auf das Glossary-Dokument. Dieses 344*cdf0e10cSrcweir 345*cdf0e10cSrcweir SwNumRule *pOutlineRule; 346*cdf0e10cSrcweir SwFtnInfo *pFtnInfo; 347*cdf0e10cSrcweir SwEndNoteInfo *pEndNoteInfo; 348*cdf0e10cSrcweir SwLineNumberInfo*pLineNumberInfo; 349*cdf0e10cSrcweir SwFtnIdxs *pFtnIdxs; 350*cdf0e10cSrcweir SwDocStat *pDocStat; // Statistic Informationen 351*cdf0e10cSrcweir SvxMacroTableDtor *pMacroTable; // Tabelle der dokumentglobalen Macros 352*cdf0e10cSrcweir 353*cdf0e10cSrcweir SwDocShell *pDocShell; // Ptr auf die SfxDocShell vom Doc 354*cdf0e10cSrcweir SfxObjectShellLock xTmpDocShell; // A temporary shell that is used to copy OLE-Nodes 355*cdf0e10cSrcweir 356*cdf0e10cSrcweir sfx2::LinkManager *pLinkMgr; // Liste von Verknuepften (Grafiken/DDE/OLE) 357*cdf0e10cSrcweir 358*cdf0e10cSrcweir SwAutoCorrExceptWord *pACEWord; // fuer die automatische Uebernahme von 359*cdf0e10cSrcweir // autokorrigierten Woertern, die "zurueck" 360*cdf0e10cSrcweir // verbessert werden 361*cdf0e10cSrcweir SwURLStateChanged *pURLStateChgd; // SfxClient fuer Aenderungen in der 362*cdf0e10cSrcweir // INetHistory 363*cdf0e10cSrcweir SvNumberFormatter *pNumberFormatter; // NumFormatter fuer die Tabellen/Felder 364*cdf0e10cSrcweir 365*cdf0e10cSrcweir mutable SwNumRuleTbl *pNumRuleTbl; // Liste aller benannten NumRules 366*cdf0e10cSrcweir 367*cdf0e10cSrcweir // Hash map to find numrules by name 368*cdf0e10cSrcweir mutable std::hash_map<String, SwNumRule *, StringHash> maNumRuleMap; 369*cdf0e10cSrcweir 370*cdf0e10cSrcweir // --> OD 2008-03-12 #refactorlists# 371*cdf0e10cSrcweir typedef std::hash_map< String, SwList*, StringHash > tHashMapForLists; 372*cdf0e10cSrcweir // container to hold the lists of the text document 373*cdf0e10cSrcweir tHashMapForLists maLists; 374*cdf0e10cSrcweir // relation between list style and its default list 375*cdf0e10cSrcweir tHashMapForLists maListStyleLists; 376*cdf0e10cSrcweir // <-- 377*cdf0e10cSrcweir 378*cdf0e10cSrcweir SwRedlineTbl *pRedlineTbl; // Liste aller Redlines 379*cdf0e10cSrcweir String *pAutoFmtRedlnComment; // Kommentar fuer Redlines, die 380*cdf0e10cSrcweir // uebers Autoformat eingefuegt werden 381*cdf0e10cSrcweir SwUnoCrsrTbl *pUnoCrsrTbl; 382*cdf0e10cSrcweir 383*cdf0e10cSrcweir SwPagePreViewPrtData *pPgPViewPrtData; // Einzuege/Abstaende fuers 384*cdf0e10cSrcweir // Drucken der Seitenansicht 385*cdf0e10cSrcweir SwPaM *pExtInputRing; 386*cdf0e10cSrcweir 387*cdf0e10cSrcweir SwLayouter *pLayouter; // ::com::sun::star::frame::Controller for complex layout formatting 388*cdf0e10cSrcweir // like footnote/endnote in sections 389*cdf0e10cSrcweir IStyleAccess *pStyleAccess; // handling of automatic styles 390*cdf0e10cSrcweir SwLayoutCache *pLayoutCache; // Layout cache to read and save with the 391*cdf0e10cSrcweir // document for a faster formatting 392*cdf0e10cSrcweir 393*cdf0e10cSrcweir SwModify *pUnoCallBack; 394*cdf0e10cSrcweir IGrammarContact *mpGrammarContact; // for grammar checking in paragraphs during editing 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir mutable comphelper::ImplementationReference< SwChartDataProvider 397*cdf0e10cSrcweir , ::com::sun::star::chart2::data::XDataProvider > 398*cdf0e10cSrcweir aChartDataProviderImplRef; 399*cdf0e10cSrcweir SwChartLockController_Helper *pChartControllerHelper; 400*cdf0e10cSrcweir 401*cdf0e10cSrcweir // table of forbidden characters of this document 402*cdf0e10cSrcweir vos::ORef<SvxForbiddenCharactersTable> xForbiddenCharsTable; 403*cdf0e10cSrcweir #ifdef FUTURE_VBA 404*cdf0e10cSrcweir com::sun::star::uno::Reference< com::sun::star::script::vba::XVBAEventProcessor > mxVbaEvents; 405*cdf0e10cSrcweir #endif 406*cdf0e10cSrcweir // --> OD 2007-10-26 #i83479# 407*cdf0e10cSrcweir public: 408*cdf0e10cSrcweir struct lessThanNodeNum 409*cdf0e10cSrcweir { 410*cdf0e10cSrcweir bool operator()( const SwNodeNum* pNodeNumOne, 411*cdf0e10cSrcweir const SwNodeNum* pNodeNumTwo ) const; 412*cdf0e10cSrcweir }; 413*cdf0e10cSrcweir 414*cdf0e10cSrcweir typedef ::std::set< const SwNodeNum*, lessThanNodeNum > tImplSortedNodeNumList; 415*cdf0e10cSrcweir private: 416*cdf0e10cSrcweir tImplSortedNodeNumList* mpListItemsList; 417*cdf0e10cSrcweir // <-- 418*cdf0e10cSrcweir 419*cdf0e10cSrcweir ::std::auto_ptr< ::sfx2::IXmlIdRegistry > m_pXmlIdRegistry; 420*cdf0e10cSrcweir 421*cdf0e10cSrcweir // ------------------------------------------------------------------- 422*cdf0e10cSrcweir // sonstige 423*cdf0e10cSrcweir 424*cdf0e10cSrcweir sal_uInt16 nAutoFmtRedlnCommentNo; // SeqNo fuers UI-seitige zusammenfassen 425*cdf0e10cSrcweir // von AutoFmt-Redlines. Wird vom SwAutoFmt 426*cdf0e10cSrcweir // verwaltet! 427*cdf0e10cSrcweir sal_uInt16 nLinkUpdMode; // UpdateMode fuer Links 428*cdf0e10cSrcweir SwFldUpdateFlags eFldUpdMode; // Mode fuer Felder/Charts automatisch aktualisieren 429*cdf0e10cSrcweir RedlineMode_t eRedlineMode; // aktueller Redline Modus 430*cdf0e10cSrcweir SwCharCompressType eChrCmprType; // for ASIAN: compress punctuation/kana 431*cdf0e10cSrcweir 432*cdf0e10cSrcweir sal_Int32 mReferenceCount; 433*cdf0e10cSrcweir sal_Int32 mIdleBlockCount; 434*cdf0e10cSrcweir sal_Int8 nLockExpFld; // Wenn != 0 hat UpdateExpFlds() keine Wirkung 435*cdf0e10cSrcweir 436*cdf0e10cSrcweir /* Draw Model Layer IDs 437*cdf0e10cSrcweir * LayerIds, Heaven == ueber dem Dokument 438*cdf0e10cSrcweir * Hell == unter dem Dokument 439*cdf0e10cSrcweir * Controls == ganz oben 440*cdf0e10cSrcweir */ 441*cdf0e10cSrcweir SdrLayerID nHeaven; 442*cdf0e10cSrcweir SdrLayerID nHell; 443*cdf0e10cSrcweir SdrLayerID nControls; 444*cdf0e10cSrcweir SdrLayerID nInvisibleHeaven; 445*cdf0e10cSrcweir SdrLayerID nInvisibleHell; 446*cdf0e10cSrcweir SdrLayerID nInvisibleControls; 447*cdf0e10cSrcweir 448*cdf0e10cSrcweir bool mbGlossDoc : 1; //sal_True: ist ein Textbaustein Dokument 449*cdf0e10cSrcweir bool mbModified : 1; //sal_True: Dokument ist veraendert 450*cdf0e10cSrcweir bool mbDtor : 1; //sal_True: ist im SwDoc DTOR 451*cdf0e10cSrcweir // leider auch temporaer von 452*cdf0e10cSrcweir // SwSwgReader::InLayout(), wenn fehlerhafte 453*cdf0e10cSrcweir // Frames geloescht werden muessen 454*cdf0e10cSrcweir bool mbPageNums : 1; // TRUE: es gibt virtuelle Seitennummern 455*cdf0e10cSrcweir bool mbLoaded : 1; // TRUE: ein geladenes Doc 456*cdf0e10cSrcweir bool mbUpdateExpFld : 1; // TRUE: Expression-Felder updaten 457*cdf0e10cSrcweir bool mbNewDoc : 1; // TRUE: neues Doc 458*cdf0e10cSrcweir bool mbNewFldLst : 1; // TRUE: Felder-Liste neu aufbauen 459*cdf0e10cSrcweir bool mbCopyIsMove : 1; // TRUE: Copy ist ein verstecktes Move 460*cdf0e10cSrcweir bool mbVisibleLinks : 1; // TRUE: Links werden sichtbar eingefuegt 461*cdf0e10cSrcweir bool mbInReading : 1; // TRUE: Dokument wird gerade gelesen 462*cdf0e10cSrcweir bool mbInXMLImport : 1; // TRUE: During xml import, attribute portion building is not necessary 463*cdf0e10cSrcweir bool mbUpdateTOX : 1; // TRUE: nach Dokument laden die TOX Updaten 464*cdf0e10cSrcweir bool mbInLoadAsynchron : 1; // TRUE: Dokument wird gerade asynchron geladen 465*cdf0e10cSrcweir bool mbHTMLMode : 1; // TRUE: Dokument ist im HTMLMode 466*cdf0e10cSrcweir bool mbInCallModified : 1; // TRUE: im Set/Reset-Modified Link 467*cdf0e10cSrcweir bool mbIsGlobalDoc : 1; // TRUE: es ist ein GlobalDokument 468*cdf0e10cSrcweir bool mbGlblDocSaveLinks : 1; // TRUE: im GlobalDoc. gelinkte Sect. mit speichern 469*cdf0e10cSrcweir bool mbIsLabelDoc : 1; // TRUE: es ist ein Etiketten-Dokument 470*cdf0e10cSrcweir bool mbIsAutoFmtRedline : 1; // TRUE: die Redlines werden vom Autoformat aufgezeichnet 471*cdf0e10cSrcweir bool mbOLEPrtNotifyPending : 1; // TRUE: Printer ist geaendert und beim 472*cdf0e10cSrcweir // Erzeugen der ::com::sun::star::sdbcx::View ist eine Benachrichtigung 473*cdf0e10cSrcweir // der OLE-Objekte PrtOLENotify() notwendig. 474*cdf0e10cSrcweir bool mbAllOLENotify : 1; // True: Benachrichtigung aller Objekte ist notwendig 475*cdf0e10cSrcweir bool mbIsRedlineMove : 1; // True: die Redlines werden in/aus der Section verschoben 476*cdf0e10cSrcweir bool mbInsOnlyTxtGlssry : 1; // True: insert 'only text' glossary into doc 477*cdf0e10cSrcweir bool mbContains_MSVBasic : 1; // True: MS-VBasic exist is in our storage 478*cdf0e10cSrcweir bool mbPurgeOLE : 1; // sal_True: Purge OLE-Objects 479*cdf0e10cSrcweir bool mbKernAsianPunctuation : 1; // sal_True: kerning also for ASIAN punctuation 480*cdf0e10cSrcweir bool mbReadlineChecked : 1; // sal_True: if the query was already shown 481*cdf0e10cSrcweir bool mbLinksUpdated : 1; // OD 2005-02-11 #i38810# 482*cdf0e10cSrcweir // flag indicating, that the links have been updated. 483*cdf0e10cSrcweir bool mbClipBoard : 1; // true: this document represents the clipboard 484*cdf0e10cSrcweir bool mbColumnSelection : 1; // true: this content has bee created by a column selection 485*cdf0e10cSrcweir // (clipboard docs only) 486*cdf0e10cSrcweir 487*cdf0e10cSrcweir #ifdef DBG_UTIL 488*cdf0e10cSrcweir bool mbXMLExport : 1; // sal_True: during XML export 489*cdf0e10cSrcweir #endif 490*cdf0e10cSrcweir 491*cdf0e10cSrcweir // --> OD 2006-03-21 #b6375613# 492*cdf0e10cSrcweir // Document flag to trigger conversion, which applys the workaround for documents, 493*cdf0e10cSrcweir // which uses a certain layout defect in OOo 1.x to layout the documents. 494*cdf0e10cSrcweir // This conversion is performed, when the frames for the layout are created. 495*cdf0e10cSrcweir // Thus, this document flag has to be set after load a document and before 496*cdf0e10cSrcweir // creating the document view. 497*cdf0e10cSrcweir bool mbApplyWorkaroundForB6375613 : 1; 498*cdf0e10cSrcweir // <-- 499*cdf0e10cSrcweir 500*cdf0e10cSrcweir // 501*cdf0e10cSrcweir // COMPATIBILITY FLAGS START 502*cdf0e10cSrcweir // 503*cdf0e10cSrcweir // 504*cdf0e10cSrcweir // HISTORY OF THE COMPATIBILITY FLAGS: 505*cdf0e10cSrcweir // 506*cdf0e10cSrcweir // SO5: 507*cdf0e10cSrcweir // mbParaSpaceMax def = sal_False, sal_True since SO8 508*cdf0e10cSrcweir // mbParaSpaceMaxAtPages def = sal_False, sal_True since SO8 509*cdf0e10cSrcweir // 510*cdf0e10cSrcweir // SO6: 511*cdf0e10cSrcweir // mbTabCompat def = sal_False, sal_True since SO8 512*cdf0e10cSrcweir // 513*cdf0e10cSrcweir // SO7: 514*cdf0e10cSrcweir // mbUseVirtualDevice def = sal_True 515*cdf0e10cSrcweir // mbAddFlyOffsets def = sal_False, hidden 516*cdf0e10cSrcweir // 517*cdf0e10cSrcweir // SO7pp1: 518*cdf0e10cSrcweir // bOldNumbering def = sal_False, hidden 519*cdf0e10cSrcweir // 520*cdf0e10cSrcweir // SO8: 521*cdf0e10cSrcweir // mbAddExternalLeading def = sal_True 522*cdf0e10cSrcweir // mbUseHiResolutionVirtualDevice def = sal_True, hidden 523*cdf0e10cSrcweir // mbOldLineSpacing def = sal_False 524*cdf0e10cSrcweir // mbAddParaSpacingToTableCells def = sal_True 525*cdf0e10cSrcweir // mbUseFormerObjectPos def = sal_False 526*cdf0e10cSrcweir // mbUseFormerTextWrapping def = sal_False 527*cdf0e10cSrcweir // mbConsiderWrapOnObjPos def = sal_False 528*cdf0e10cSrcweir // 529*cdf0e10cSrcweir // SO8pp1: 530*cdf0e10cSrcweir // mbIgnoreFirstLineIndentInNumbering def = sal_False, hidden 531*cdf0e10cSrcweir // mbDoNotJustifyLinesWithManualBreak def = sal_False, hidden 532*cdf0e10cSrcweir // mbDoNotResetParaAttrsForNumFont def = sal_False, hidden 533*cdf0e10cSrcweir // 534*cdf0e10cSrcweir // SO8pp3 535*cdf0e10cSrcweir // mbDoNotCaptureDrawObjsOnPage def = sal_False, hidden 536*cdf0e10cSrcweir // - Relevant for drawing objects, which don't follow the text flow, but 537*cdf0e10cSrcweir // whose position is outside the page area: 538*cdf0e10cSrcweir // sal_False: Such drawing objects are captured on the page area of its anchor. 539*cdf0e10cSrcweir // sal_True: Such drawing objects can leave the page area, they aren't captured. 540*cdf0e10cSrcweir // mbTableRowKeep def = sal_False, hidden 541*cdf0e10cSrcweir // mbIgnoreTabsAndBlanksForLineCalculation def = sal_False, hidden 542*cdf0e10cSrcweir // mbClipAsCharacterAnchoredWriterFlyFrame def = sal_False, hidden 543*cdf0e10cSrcweir // - Introduced in order to re-activate clipping of as-character anchored 544*cdf0e10cSrcweir // Writer fly frames in method <SwFlyInCntFrm::MakeAll()> for documents, 545*cdf0e10cSrcweir // which are created with version prior SO8/OOo 2.0 546*cdf0e10cSrcweir // 547*cdf0e10cSrcweir // SO8pp4 548*cdf0e10cSrcweir // mbUnixForceZeroExtLeading def = sal_False, hidden 549*cdf0e10cSrcweir // 550*cdf0e10cSrcweir // SO8pu8 551*cdf0e10cSrcweir // mbOldPrinterMetrics def = sal_False, hidden 552*cdf0e10cSrcweir // 553*cdf0e10cSrcweir // SO9 554*cdf0e10cSrcweir // #i24363# tab stops relative to indent 555*cdf0e10cSrcweir // mbTabRelativeToIndent def = sal_True, hidden 556*cdf0e10cSrcweir // #i89181# suppress tab stop at left indent for paragraphs in lists, whose 557*cdf0e10cSrcweir // list level position and space mode equals LABEL_ALIGNMENT and whose list 558*cdf0e10cSrcweir // label is followed by a tab character. 559*cdf0e10cSrcweir // mbTabAtLeftIndentForParagraphsInList def = sal_False, hidden 560*cdf0e10cSrcweir 561*cdf0e10cSrcweir bool mbParaSpaceMax : 1; 562*cdf0e10cSrcweir bool mbParaSpaceMaxAtPages : 1; 563*cdf0e10cSrcweir bool mbTabCompat : 1; 564*cdf0e10cSrcweir bool mbUseVirtualDevice : 1; 565*cdf0e10cSrcweir bool mbAddFlyOffsets : 1; 566*cdf0e10cSrcweir bool mbAddExternalLeading : 1; 567*cdf0e10cSrcweir bool mbUseHiResolutionVirtualDevice : 1; 568*cdf0e10cSrcweir bool mbOldLineSpacing : 1; // OD 2004-01-06 #i11859# 569*cdf0e10cSrcweir bool mbAddParaSpacingToTableCells : 1; // OD 2004-02-16 #106629# 570*cdf0e10cSrcweir bool mbUseFormerObjectPos : 1; // OD 2004-03-12 #i11860# 571*cdf0e10cSrcweir bool mbUseFormerTextWrapping : 1; // FME 2005-05-11 #108724# 572*cdf0e10cSrcweir bool mbConsiderWrapOnObjPos : 1; // OD 2004-05-05 #i28701# 573*cdf0e10cSrcweir // sal_True: object positioning algorithm has consider the wrapping style of // the floating screen objects as given by its attribute 'WrapInfluenceOnObjPos' 574*cdf0e10cSrcweir bool mbMathBaselineAlignment : 1; // TL 2010-10-29 #i972# 575*cdf0e10cSrcweir 576*cdf0e10cSrcweir // non-ui-compatibility flags: 577*cdf0e10cSrcweir bool mbOldNumbering : 1; // HBRINKM #111955# 578*cdf0e10cSrcweir bool mbIgnoreFirstLineIndentInNumbering : 1; // FME 2005-05-30# i47448# 579*cdf0e10cSrcweir bool mbDoNotJustifyLinesWithManualBreak : 1; // FME 2005-06-08 #i49277# 580*cdf0e10cSrcweir bool mbDoNotResetParaAttrsForNumFont : 1; // FME 2005-08-11 #i53199# 581*cdf0e10cSrcweir bool mbTableRowKeep : 1; // FME 2006-02-10 #131283# 582*cdf0e10cSrcweir bool mbIgnoreTabsAndBlanksForLineCalculation : 1; // FME 2006-03-01 #i3952# 583*cdf0e10cSrcweir bool mbDoNotCaptureDrawObjsOnPage : 1; // OD 2006-03-14 #i62875# 584*cdf0e10cSrcweir bool mbOutlineLevelYieldsOutlineRule : 1; 585*cdf0e10cSrcweir bool mbClipAsCharacterAnchoredWriterFlyFrames : 1; // OD 2006-04-13 #b6402800# 586*cdf0e10cSrcweir bool mbUnixForceZeroExtLeading : 1; // FME 2006-10-09 #i60945# 587*cdf0e10cSrcweir bool mbOldPrinterMetrics : 1; // FME 2007-05-14 #147385# 588*cdf0e10cSrcweir bool mbTabRelativeToIndent : 1; // #i24363# tab stops relative to indent 589*cdf0e10cSrcweir bool mbProtectForm : 1; 590*cdf0e10cSrcweir bool mbTabAtLeftIndentForParagraphsInList; // OD 2008-06-05 #i89181# - see above 591*cdf0e10cSrcweir 592*cdf0e10cSrcweir bool mbLastBrowseMode : 1; 593*cdf0e10cSrcweir 594*cdf0e10cSrcweir // #i78591# 595*cdf0e10cSrcweir sal_uInt32 n32DummyCompatabilityOptions1; 596*cdf0e10cSrcweir sal_uInt32 n32DummyCompatabilityOptions2; 597*cdf0e10cSrcweir // 598*cdf0e10cSrcweir // COMPATIBILITY FLAGS END 599*cdf0e10cSrcweir // 600*cdf0e10cSrcweir 601*cdf0e10cSrcweir sal_Bool mbStartIdleTimer ; // idle timer mode start/stop 602*cdf0e10cSrcweir 603*cdf0e10cSrcweir bool mbSetDrawDefaults ; // set draw pool defaults for freshly created documents 604*cdf0e10cSrcweir 605*cdf0e10cSrcweir static SwAutoCompleteWord *pACmpltWords; // Liste aller Worte fuers AutoComplete 606*cdf0e10cSrcweir 607*cdf0e10cSrcweir //---------------- private Methoden ------------------------------ 608*cdf0e10cSrcweir void checkRedlining(RedlineMode_t& _rReadlineMode); 609*cdf0e10cSrcweir 610*cdf0e10cSrcweir DECL_LINK( AddDrawUndo, SdrUndoAction * ); 611*cdf0e10cSrcweir // DrawModel 612*cdf0e10cSrcweir void DrawNotifyUndoHdl(); // wegen CLOOKs 613*cdf0e10cSrcweir 614*cdf0e10cSrcweir // nur fuer den internen Gebrauch deshalb privat. 615*cdf0e10cSrcweir // Kopieren eines Bereiches im oder in ein anderes Dokument ! 616*cdf0e10cSrcweir // Die Position darf nicht im Bereich liegen !! 617*cdf0e10cSrcweir bool CopyImpl( SwPaM&, SwPosition&, const bool MakeNewFrms /*= true */, 618*cdf0e10cSrcweir const bool bCopyAll, SwPaM *const pCpyRng /*= 0*/ ) const; 619*cdf0e10cSrcweir 620*cdf0e10cSrcweir SwFlyFrmFmt* _MakeFlySection( const SwPosition& rAnchPos, 621*cdf0e10cSrcweir const SwCntntNode& rNode, RndStdIds eRequestId, 622*cdf0e10cSrcweir const SfxItemSet* pFlyAttrSet, 623*cdf0e10cSrcweir SwFrmFmt* = 0 ); 624*cdf0e10cSrcweir 625*cdf0e10cSrcweir SwFlyFrmFmt* _InsNoTxtNode( const SwPosition&rPos, SwNoTxtNode*, 626*cdf0e10cSrcweir const SfxItemSet* pFlyAttrSet, 627*cdf0e10cSrcweir const SfxItemSet* pGrfAttrSet, 628*cdf0e10cSrcweir SwFrmFmt* = 0 ); 629*cdf0e10cSrcweir 630*cdf0e10cSrcweir void CopyFlyInFlyImpl( const SwNodeRange& rRg, 631*cdf0e10cSrcweir const xub_StrLen nEndContentIndex, 632*cdf0e10cSrcweir const SwNodeIndex& rStartIdx, 633*cdf0e10cSrcweir const bool bCopyFlyAtFly = false ) const; 634*cdf0e10cSrcweir sal_Int8 SetFlyFrmAnchor( SwFrmFmt& rFlyFmt, SfxItemSet& rSet, sal_Bool bNewFrms ); 635*cdf0e10cSrcweir 636*cdf0e10cSrcweir // --> OD 2005-01-13 #i40550# 637*cdf0e10cSrcweir typedef SwFmt* (SwDoc:: *FNCopyFmt)( const String&, SwFmt*, sal_Bool, sal_Bool ); 638*cdf0e10cSrcweir // <-- 639*cdf0e10cSrcweir SwFmt* CopyFmt( const SwFmt& rFmt, const SvPtrarr& rFmtArr, 640*cdf0e10cSrcweir FNCopyFmt fnCopyFmt, const SwFmt& rDfltFmt ); 641*cdf0e10cSrcweir void CopyFmtArr( const SvPtrarr& rSourceArr, SvPtrarr& rDestArr, 642*cdf0e10cSrcweir FNCopyFmt fnCopyFmt, SwFmt& rDfltFmt ); 643*cdf0e10cSrcweir void CopyPageDescHeaderFooterImpl( bool bCpyHeader, 644*cdf0e10cSrcweir const SwFrmFmt& rSrcFmt, SwFrmFmt& rDestFmt ); 645*cdf0e10cSrcweir SwFmt* FindFmtByName( const SvPtrarr& rFmtArr, 646*cdf0e10cSrcweir const String& rName ) const; 647*cdf0e10cSrcweir 648*cdf0e10cSrcweir VirtualDevice& CreateVirtualDevice_() const; 649*cdf0e10cSrcweir SfxPrinter& CreatePrinter_() const; 650*cdf0e10cSrcweir void PrtDataChanged(); //Printer oder JobSetup geandert, es muss 651*cdf0e10cSrcweir //fuer entsprechende Invalidierungen und 652*cdf0e10cSrcweir //Benachrichtigungen gesorgt werden. 653*cdf0e10cSrcweir 654*cdf0e10cSrcweir // gcc: aFtnInfo::CopyCtor ist private, also muessen wir uns auch schuetzen 655*cdf0e10cSrcweir SwDoc( const SwDoc &); 656*cdf0e10cSrcweir 657*cdf0e10cSrcweir // fuer Felder: 658*cdf0e10cSrcweir void _InitFieldTypes(); // wird vom CTOR gerufen!! 659*cdf0e10cSrcweir void _MakeFldList( int eMode ); 660*cdf0e10cSrcweir 661*cdf0e10cSrcweir // Datenbankfelder: 662*cdf0e10cSrcweir void UpdateDBNumFlds( SwDBNameInfField& rDBFld, SwCalc& rCalc ); 663*cdf0e10cSrcweir void AddUsedDBToList( SvStringsDtor& rDBNameList, 664*cdf0e10cSrcweir const SvStringsDtor& rUsedDBNames ); 665*cdf0e10cSrcweir void AddUsedDBToList( SvStringsDtor& rDBNameList, const String& rDBName ); 666*cdf0e10cSrcweir sal_Bool IsNameInArray( const SvStringsDtor& rOldNames, const String& rName ); 667*cdf0e10cSrcweir void GetAllDBNames( SvStringsDtor& rAllDBNames ); 668*cdf0e10cSrcweir void ReplaceUsedDBs( const SvStringsDtor& rUsedDBNames, 669*cdf0e10cSrcweir const String& rNewName, String& rFormel ); 670*cdf0e10cSrcweir SvStringsDtor& FindUsedDBs( const SvStringsDtor& rAllDBNames, 671*cdf0e10cSrcweir const String& rFormel, 672*cdf0e10cSrcweir SvStringsDtor& rUsedDBNames ); 673*cdf0e10cSrcweir 674*cdf0e10cSrcweir void InitDrawModel(); 675*cdf0e10cSrcweir void ReleaseDrawModel(); 676*cdf0e10cSrcweir 677*cdf0e10cSrcweir void _CreateNumberFormatter(); 678*cdf0e10cSrcweir 679*cdf0e10cSrcweir sal_Bool _UnProtectTblCells( SwTable& rTbl ); 680*cdf0e10cSrcweir 681*cdf0e10cSrcweir // erzeuge Anhand der vorgebenen Collection Teildokumente 682*cdf0e10cSrcweir // falls keine angegeben ist, nehme die Kapitelvorlage der 1. Ebene 683*cdf0e10cSrcweir sal_Bool SplitDoc( sal_uInt16 eDocType, const String& rPath, 684*cdf0e10cSrcweir const SwTxtFmtColl* pSplitColl ); 685*cdf0e10cSrcweir sal_Bool SplitDoc( sal_uInt16 eDocType, const String& rPath, int nOutlineLevel = 0 ); //#outline level,add by zhaijianwei. 686*cdf0e10cSrcweir 687*cdf0e10cSrcweir 688*cdf0e10cSrcweir // Charts der angegebenen Tabelle updaten 689*cdf0e10cSrcweir void _UpdateCharts( const SwTable& rTbl, ViewShell& rVSh ) const; 690*cdf0e10cSrcweir 691*cdf0e10cSrcweir sal_Bool _SelectNextRubyChars( SwPaM& rPam, SwRubyListEntry& rRubyEntry, 692*cdf0e10cSrcweir sal_uInt16 nMode ); 693*cdf0e10cSrcweir 694*cdf0e10cSrcweir // unser eigener 'IdlTimer' ruft folgende Methode 695*cdf0e10cSrcweir DECL_LINK( DoIdleJobs, Timer * ); 696*cdf0e10cSrcweir // der CharTimer ruft diese Methode 697*cdf0e10cSrcweir DECL_LINK( DoUpdateAllCharts, Timer * ); 698*cdf0e10cSrcweir DECL_LINK( DoUpdateModifiedOLE, Timer * ); 699*cdf0e10cSrcweir 700*cdf0e10cSrcweir SwFmt *_MakeCharFmt(const String &, SwFmt *, sal_Bool, sal_Bool ); 701*cdf0e10cSrcweir SwFmt *_MakeFrmFmt(const String &, SwFmt *, sal_Bool, sal_Bool ); 702*cdf0e10cSrcweir SwFmt *_MakeTxtFmtColl(const String &, SwFmt *, sal_Bool, sal_Bool ); 703*cdf0e10cSrcweir 704*cdf0e10cSrcweir void InitTOXTypes(); 705*cdf0e10cSrcweir void Paste( const SwDoc& ); 706*cdf0e10cSrcweir bool DeleteAndJoinImpl(SwPaM&, const bool); 707*cdf0e10cSrcweir bool DeleteAndJoinWithRedlineImpl(SwPaM&, const bool unused = false); 708*cdf0e10cSrcweir bool DeleteRangeImpl(SwPaM&, const bool unused = false); 709*cdf0e10cSrcweir bool DeleteRangeImplImpl(SwPaM &); 710*cdf0e10cSrcweir bool ReplaceRangeImpl(SwPaM&, String const&, const bool); 711*cdf0e10cSrcweir 712*cdf0e10cSrcweir public: 713*cdf0e10cSrcweir 714*cdf0e10cSrcweir /** Life cycle 715*cdf0e10cSrcweir */ 716*cdf0e10cSrcweir SwDoc(); 717*cdf0e10cSrcweir ~SwDoc(); 718*cdf0e10cSrcweir 719*cdf0e10cSrcweir inline bool IsInDtor() const { return mbDtor; } 720*cdf0e10cSrcweir 721*cdf0e10cSrcweir /* @@@MAINTAINABILITY-HORROR@@@ 722*cdf0e10cSrcweir Implementation details made public. 723*cdf0e10cSrcweir */ 724*cdf0e10cSrcweir SwNodes & GetNodes() { return *m_pNodes; } 725*cdf0e10cSrcweir SwNodes const& GetNodes() const { return *m_pNodes; } 726*cdf0e10cSrcweir 727*cdf0e10cSrcweir /** IInterface 728*cdf0e10cSrcweir */ 729*cdf0e10cSrcweir virtual sal_Int32 acquire(); 730*cdf0e10cSrcweir virtual sal_Int32 release(); 731*cdf0e10cSrcweir virtual sal_Int32 getReferenceCount() const; 732*cdf0e10cSrcweir 733*cdf0e10cSrcweir /** IDocumentSettingAccess 734*cdf0e10cSrcweir */ 735*cdf0e10cSrcweir virtual bool get(/*[in]*/ DocumentSettingId id) const; 736*cdf0e10cSrcweir virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value); 737*cdf0e10cSrcweir virtual const com::sun::star::i18n::ForbiddenCharacters* getForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ bool bLocaleData ) const; 738*cdf0e10cSrcweir virtual void setForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rForbiddenCharacters ); 739*cdf0e10cSrcweir virtual vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable(); 740*cdf0e10cSrcweir virtual const vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const; 741*cdf0e10cSrcweir virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const; 742*cdf0e10cSrcweir virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ); 743*cdf0e10cSrcweir virtual SwFldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const; 744*cdf0e10cSrcweir virtual void setFieldUpdateFlags( /*[in]*/ SwFldUpdateFlags eMode ); 745*cdf0e10cSrcweir virtual SwCharCompressType getCharacterCompressionType() const; 746*cdf0e10cSrcweir virtual void setCharacterCompressionType( /*[in]*/SwCharCompressType nType ); 747*cdf0e10cSrcweir 748*cdf0e10cSrcweir /** IDocumentDeviceAccess 749*cdf0e10cSrcweir */ 750*cdf0e10cSrcweir virtual SfxPrinter* getPrinter(/*[in]*/ bool bCreate ) const; 751*cdf0e10cSrcweir virtual void setPrinter(/*[in]*/ SfxPrinter* pP,/*[in]*/ bool bDeleteOld,/*[in]*/ bool bCallPrtDataChanged ); 752*cdf0e10cSrcweir virtual VirtualDevice* getVirtualDevice(/*[in]*/ bool bCreate ) const; 753*cdf0e10cSrcweir virtual void setVirtualDevice(/*[in]*/ VirtualDevice* pVd,/*[in]*/ bool bDeleteOld, /*[in]*/ bool bCallVirDevDataChanged ); 754*cdf0e10cSrcweir virtual OutputDevice* getReferenceDevice(/*[in]*/ bool bCreate ) const; 755*cdf0e10cSrcweir virtual void setReferenceDeviceType(/*[in]*/ bool bNewVirtual,/*[in]*/ bool bNewHiRes ); 756*cdf0e10cSrcweir virtual const JobSetup* getJobsetup() const; 757*cdf0e10cSrcweir virtual void setJobsetup(/*[in]*/ const JobSetup& rJobSetup ); 758*cdf0e10cSrcweir virtual const SwPrintData & getPrintData() const; 759*cdf0e10cSrcweir virtual void setPrintData(/*[in]*/ const SwPrintData& rPrtData); 760*cdf0e10cSrcweir 761*cdf0e10cSrcweir /** IDocumentMarkAccess 762*cdf0e10cSrcweir */ 763*cdf0e10cSrcweir IDocumentMarkAccess* getIDocumentMarkAccess(); 764*cdf0e10cSrcweir const IDocumentMarkAccess* getIDocumentMarkAccess() const; 765*cdf0e10cSrcweir 766*cdf0e10cSrcweir /** IDocumentRedlineAccess 767*cdf0e10cSrcweir */ 768*cdf0e10cSrcweir virtual RedlineMode_t GetRedlineMode() const; 769*cdf0e10cSrcweir virtual void SetRedlineMode_intern(/*[in]*/RedlineMode_t eMode); 770*cdf0e10cSrcweir virtual void SetRedlineMode(/*[in]*/RedlineMode_t eMode); 771*cdf0e10cSrcweir virtual bool IsRedlineOn() const; 772*cdf0e10cSrcweir virtual bool IsIgnoreRedline() const; 773*cdf0e10cSrcweir virtual bool IsInRedlines(const SwNode& rNode) const; 774*cdf0e10cSrcweir virtual const SwRedlineTbl& GetRedlineTbl() const; 775*cdf0e10cSrcweir virtual bool AppendRedline(/*[in]*/SwRedline* pPtr, /*[in]*/bool bCallDelete); 776*cdf0e10cSrcweir virtual bool SplitRedline(const SwPaM& rPam); 777*cdf0e10cSrcweir virtual bool DeleteRedline(/*[in]*/const SwPaM& rPam, /*[in]*/bool bSaveInUndo, /*[in]*/sal_uInt16 nDelType); 778*cdf0e10cSrcweir virtual bool DeleteRedline(/*[in]*/const SwStartNode& rSection, /*[in]*/bool bSaveInUndo, /*[in]*/sal_uInt16 nDelType); 779*cdf0e10cSrcweir virtual sal_uInt16 GetRedlinePos(/*[in]*/const SwNode& rNode, /*[in]*/sal_uInt16 nType) const; 780*cdf0e10cSrcweir virtual void CompressRedlines(); 781*cdf0e10cSrcweir virtual const SwRedline* GetRedline(/*[in]*/const SwPosition& rPos, /*[in]*/sal_uInt16* pFndPos) const; 782*cdf0e10cSrcweir virtual bool IsRedlineMove() const; 783*cdf0e10cSrcweir virtual void SetRedlineMove(/*[in]*/bool bFlag); 784*cdf0e10cSrcweir virtual bool AcceptRedline(/*[in]*/sal_uInt16 nPos, /*[in]*/bool bCallDelete); 785*cdf0e10cSrcweir virtual bool AcceptRedline(/*[in]*/const SwPaM& rPam, /*[in]*/bool bCallDelete); 786*cdf0e10cSrcweir virtual bool RejectRedline(/*[in]*/sal_uInt16 nPos, /*[in]*/bool bCallDelete); 787*cdf0e10cSrcweir virtual bool RejectRedline(/*[in]*/const SwPaM& rPam, /*[in]*/bool bCallDelete); 788*cdf0e10cSrcweir virtual const SwRedline* SelNextRedline(/*[in]*/SwPaM& rPam) const; 789*cdf0e10cSrcweir virtual const SwRedline* SelPrevRedline(/*[in]*/SwPaM& rPam) const; 790*cdf0e10cSrcweir virtual void UpdateRedlineAttr(); 791*cdf0e10cSrcweir virtual sal_uInt16 GetRedlineAuthor(); 792*cdf0e10cSrcweir virtual sal_uInt16 InsertRedlineAuthor(const String& rAuthor); 793*cdf0e10cSrcweir virtual bool SetRedlineComment(/*[in]*/const SwPaM& rPam, /*[in]*/const String& rComment); 794*cdf0e10cSrcweir virtual const ::com::sun::star::uno::Sequence <sal_Int8>& GetRedlinePassword() const; 795*cdf0e10cSrcweir virtual void SetRedlinePassword(/*[in]*/const ::com::sun::star::uno::Sequence <sal_Int8>& rNewPassword); 796*cdf0e10cSrcweir 797*cdf0e10cSrcweir /** IDocumentUndoRedo 798*cdf0e10cSrcweir */ 799*cdf0e10cSrcweir IDocumentUndoRedo & GetIDocumentUndoRedo(); 800*cdf0e10cSrcweir IDocumentUndoRedo const& GetIDocumentUndoRedo() const; 801*cdf0e10cSrcweir 802*cdf0e10cSrcweir /** IDocumentLinksAdministration 803*cdf0e10cSrcweir */ 804*cdf0e10cSrcweir virtual bool IsVisibleLinks() const; 805*cdf0e10cSrcweir virtual void SetVisibleLinks(bool bFlag); 806*cdf0e10cSrcweir virtual sfx2::LinkManager& GetLinkManager(); 807*cdf0e10cSrcweir virtual const sfx2::LinkManager& GetLinkManager() const; 808*cdf0e10cSrcweir virtual void UpdateLinks(sal_Bool bUI); 809*cdf0e10cSrcweir virtual bool GetData(const String& rItem, const String& rMimeType, ::com::sun::star::uno::Any& rValue) const; 810*cdf0e10cSrcweir virtual bool SetData(const String& rItem, const String& rMimeType, const ::com::sun::star::uno::Any& rValue); 811*cdf0e10cSrcweir virtual ::sfx2::SvLinkSource* CreateLinkSource(const String& rItem); 812*cdf0e10cSrcweir virtual bool EmbedAllLinks(); 813*cdf0e10cSrcweir virtual void SetLinksUpdated(const bool bNewLinksUpdated); 814*cdf0e10cSrcweir virtual bool LinksUpdated() const; 815*cdf0e10cSrcweir 816*cdf0e10cSrcweir /** IDocumentFieldsAccess 817*cdf0e10cSrcweir */ 818*cdf0e10cSrcweir virtual const SwFldTypes *GetFldTypes() const; 819*cdf0e10cSrcweir virtual SwFieldType *InsertFldType(const SwFieldType &); 820*cdf0e10cSrcweir virtual SwFieldType *GetSysFldType( const sal_uInt16 eWhich ) const; 821*cdf0e10cSrcweir virtual SwFieldType* GetFldType(sal_uInt16 nResId, const String& rName, bool bDbFieldMatching) const; 822*cdf0e10cSrcweir virtual void RemoveFldType(sal_uInt16 nFld); 823*cdf0e10cSrcweir virtual void UpdateFlds( SfxPoolItem* pNewHt, bool bCloseDB); 824*cdf0e10cSrcweir virtual void InsDeletedFldType(SwFieldType &); 825*cdf0e10cSrcweir virtual bool PutValueToField(const SwPosition & rPos, const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich); 826*cdf0e10cSrcweir virtual bool UpdateFld(SwTxtFld * rDstFmtFld, SwField & rSrcFld, SwMsgPoolItem * pMsgHnt, bool bUpdateTblFlds); 827*cdf0e10cSrcweir virtual void UpdateRefFlds(SfxPoolItem* pHt); 828*cdf0e10cSrcweir virtual void UpdateTblFlds(SfxPoolItem* pHt); 829*cdf0e10cSrcweir virtual void UpdateExpFlds(SwTxtFld* pFld, bool bUpdateRefFlds); 830*cdf0e10cSrcweir virtual void UpdateUsrFlds(); 831*cdf0e10cSrcweir virtual void UpdatePageFlds(SfxPoolItem*); 832*cdf0e10cSrcweir virtual void LockExpFlds(); 833*cdf0e10cSrcweir virtual void UnlockExpFlds(); 834*cdf0e10cSrcweir virtual bool IsExpFldsLocked() const; 835*cdf0e10cSrcweir virtual SwDocUpdtFld& GetUpdtFlds() const; 836*cdf0e10cSrcweir virtual bool SetFieldsDirty(bool b, const SwNode* pChk, sal_uLong nLen); 837*cdf0e10cSrcweir virtual void SetFixFields(bool bOnlyTimeDate, const DateTime* pNewDateTime); 838*cdf0e10cSrcweir virtual void FldsToCalc(SwCalc& rCalc, sal_uLong nLastNd, sal_uInt16 nLastCnt); 839*cdf0e10cSrcweir virtual void FldsToCalc(SwCalc& rCalc, const _SetGetExpFld& rToThisFld); 840*cdf0e10cSrcweir virtual void FldsToExpand(SwHash**& ppTbl, sal_uInt16& rTblSize, const _SetGetExpFld& rToThisFld); 841*cdf0e10cSrcweir virtual bool IsNewFldLst() const; 842*cdf0e10cSrcweir virtual void SetNewFldLst( bool bFlag); 843*cdf0e10cSrcweir virtual void InsDelFldInFldLst(bool bIns, const SwTxtFld& rFld); 844*cdf0e10cSrcweir 845*cdf0e10cSrcweir /** Returns the field at a certain position. 846*cdf0e10cSrcweir @param rPos position to search at 847*cdf0e10cSrcweir @return pointer to field at the given position or NULL in case no field is found 848*cdf0e10cSrcweir */ 849*cdf0e10cSrcweir static SwField* GetField(const SwPosition& rPos); 850*cdf0e10cSrcweir 851*cdf0e10cSrcweir /** Returns the field at a certain position. 852*cdf0e10cSrcweir @param rPos position to search at 853*cdf0e10cSrcweir @return pointer to field at the given position or NULL in case no field is found 854*cdf0e10cSrcweir */ 855*cdf0e10cSrcweir static SwTxtFld* GetTxtFld(const SwPosition& rPos); 856*cdf0e10cSrcweir 857*cdf0e10cSrcweir /** IDocumentContentOperations 858*cdf0e10cSrcweir */ 859*cdf0e10cSrcweir virtual bool CopyRange(SwPaM&, SwPosition&, const bool bCopyAll) const; 860*cdf0e10cSrcweir virtual void DeleteSection(SwNode* pNode); 861*cdf0e10cSrcweir virtual bool DeleteRange(SwPaM&); 862*cdf0e10cSrcweir virtual bool DelFullPara(SwPaM&); 863*cdf0e10cSrcweir // --> OD 2009-08-20 #i100466# 864*cdf0e10cSrcweir // Add optional parameter <bForceJoinNext>, default value <false> 865*cdf0e10cSrcweir // Needed for hiding of deletion redlines 866*cdf0e10cSrcweir virtual bool DeleteAndJoin( SwPaM&, 867*cdf0e10cSrcweir const bool bForceJoinNext = false ); 868*cdf0e10cSrcweir // <-- 869*cdf0e10cSrcweir virtual bool MoveRange(SwPaM&, SwPosition&, SwMoveFlags); 870*cdf0e10cSrcweir virtual bool MoveNodeRange(SwNodeRange&, SwNodeIndex&, SwMoveFlags); 871*cdf0e10cSrcweir virtual bool MoveAndJoin(SwPaM&, SwPosition&, SwMoveFlags); 872*cdf0e10cSrcweir virtual bool Overwrite(const SwPaM &rRg, const String& rStr); 873*cdf0e10cSrcweir virtual bool InsertString(const SwPaM &rRg, const String&, 874*cdf0e10cSrcweir const enum InsertFlags nInsertMode = INS_EMPTYEXPAND ); 875*cdf0e10cSrcweir virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, 876*cdf0e10cSrcweir const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet, SwFrmFmt*); 877*cdf0e10cSrcweir virtual SwFlyFrmFmt* Insert(const SwPaM& rRg, const GraphicObject& rGrfObj, const SfxItemSet* pFlyAttrSet, 878*cdf0e10cSrcweir const SfxItemSet* pGrfAttrSet, SwFrmFmt*); 879*cdf0e10cSrcweir virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*); 880*cdf0e10cSrcweir virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet, 881*cdf0e10cSrcweir const SfxItemSet* pGrfAttrSet, SwFrmFmt*); 882*cdf0e10cSrcweir virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&, 883*cdf0e10cSrcweir const SetAttrMode nFlags); 884*cdf0e10cSrcweir virtual bool InsertItemSet (const SwPaM &rRg, const SfxItemSet&, 885*cdf0e10cSrcweir const SetAttrMode nFlags); 886*cdf0e10cSrcweir virtual void ReRead(SwPaM&, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj); 887*cdf0e10cSrcweir virtual void TransliterateText(const SwPaM& rPaM, utl::TransliterationWrapper&); 888*cdf0e10cSrcweir virtual SwFlyFrmFmt* InsertOLE(const SwPaM &rRg, const String& rObjName, sal_Int64 nAspect, const SfxItemSet* pFlyAttrSet, 889*cdf0e10cSrcweir const SfxItemSet* pGrfAttrSet, SwFrmFmt*); 890*cdf0e10cSrcweir virtual bool SplitNode(const SwPosition &rPos, bool bChkTableStart); 891*cdf0e10cSrcweir virtual bool AppendTxtNode(SwPosition& rPos); 892*cdf0e10cSrcweir virtual void SetModified(SwPaM &rPaM); 893*cdf0e10cSrcweir virtual bool ReplaceRange(SwPaM& rPam, const String& rNewStr, 894*cdf0e10cSrcweir const bool bRegExReplace); 895*cdf0e10cSrcweir virtual void RemoveLeadingWhiteSpace(const SwPosition & rPos ); 896*cdf0e10cSrcweir 897*cdf0e10cSrcweir /** IDocumentStylePoolAccess 898*cdf0e10cSrcweir */ 899*cdf0e10cSrcweir virtual SwTxtFmtColl* GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage = true ); 900*cdf0e10cSrcweir virtual SwFmt* GetFmtFromPool( sal_uInt16 nId ); 901*cdf0e10cSrcweir virtual SwFrmFmt* GetFrmFmtFromPool( sal_uInt16 nId ); 902*cdf0e10cSrcweir virtual SwCharFmt* GetCharFmtFromPool( sal_uInt16 nId ); 903*cdf0e10cSrcweir virtual SwPageDesc* GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage = true ); 904*cdf0e10cSrcweir virtual SwNumRule* GetNumRuleFromPool( sal_uInt16 nId ); 905*cdf0e10cSrcweir virtual bool IsPoolTxtCollUsed( sal_uInt16 nId ) const; 906*cdf0e10cSrcweir virtual bool IsPoolFmtUsed( sal_uInt16 nId ) const; 907*cdf0e10cSrcweir virtual bool IsPoolPageDescUsed( sal_uInt16 nId ) const; 908*cdf0e10cSrcweir 909*cdf0e10cSrcweir /** IDocumentLineNumberAccess 910*cdf0e10cSrcweir */ 911*cdf0e10cSrcweir virtual const SwLineNumberInfo& GetLineNumberInfo() const; 912*cdf0e10cSrcweir virtual void SetLineNumberInfo(const SwLineNumberInfo& rInfo); 913*cdf0e10cSrcweir 914*cdf0e10cSrcweir /** IDocumentStatistics 915*cdf0e10cSrcweir */ 916*cdf0e10cSrcweir virtual void DocInfoChgd(); 917*cdf0e10cSrcweir virtual const SwDocStat &GetDocStat() const; 918*cdf0e10cSrcweir virtual void SetDocStat(const SwDocStat& rStat); 919*cdf0e10cSrcweir virtual void UpdateDocStat(SwDocStat& rStat); 920*cdf0e10cSrcweir 921*cdf0e10cSrcweir /** IDocumentState 922*cdf0e10cSrcweir */ 923*cdf0e10cSrcweir virtual void SetModified(); 924*cdf0e10cSrcweir virtual void ResetModified(); 925*cdf0e10cSrcweir virtual bool IsModified() const; 926*cdf0e10cSrcweir virtual bool IsLoaded() const; 927*cdf0e10cSrcweir virtual bool IsUpdateExpFld() const; 928*cdf0e10cSrcweir virtual bool IsNewDoc() const; 929*cdf0e10cSrcweir virtual bool IsPageNums() const; 930*cdf0e10cSrcweir virtual void SetPageNums(bool b); 931*cdf0e10cSrcweir virtual void SetNewDoc(bool b); 932*cdf0e10cSrcweir virtual void SetUpdateExpFldStat(bool b); 933*cdf0e10cSrcweir virtual void SetLoaded(bool b); 934*cdf0e10cSrcweir 935*cdf0e10cSrcweir /** IDocumentDrawModelAccess 936*cdf0e10cSrcweir */ 937*cdf0e10cSrcweir virtual const SdrModel* GetDrawModel() const; 938*cdf0e10cSrcweir virtual SdrModel* GetDrawModel(); 939*cdf0e10cSrcweir virtual SdrLayerID GetHeavenId() const; 940*cdf0e10cSrcweir virtual SdrLayerID GetHellId() const; 941*cdf0e10cSrcweir virtual SdrLayerID GetControlsId() const; 942*cdf0e10cSrcweir virtual SdrLayerID GetInvisibleHeavenId() const; 943*cdf0e10cSrcweir virtual SdrLayerID GetInvisibleHellId() const; 944*cdf0e10cSrcweir virtual SdrLayerID GetInvisibleControlsId() const; 945*cdf0e10cSrcweir virtual void NotifyInvisibleLayers( SdrPageView& _rSdrPageView ); 946*cdf0e10cSrcweir virtual bool IsVisibleLayerId( const SdrLayerID& _nLayerId ) const; 947*cdf0e10cSrcweir virtual SdrLayerID GetVisibleLayerIdByInvisibleOne( const SdrLayerID& _nInvisibleLayerId ); 948*cdf0e10cSrcweir virtual SdrLayerID GetInvisibleLayerIdByVisibleOne( const SdrLayerID& _nVisibleLayerId ); 949*cdf0e10cSrcweir virtual SdrModel* _MakeDrawModel(); 950*cdf0e10cSrcweir virtual SdrModel* GetOrCreateDrawModel(); 951*cdf0e10cSrcweir 952*cdf0e10cSrcweir /** IDocumentLayoutAccess 953*cdf0e10cSrcweir */ 954*cdf0e10cSrcweir virtual void SetCurrentViewShell( ViewShell* pNew );//swmod 071225 955*cdf0e10cSrcweir virtual SwLayouter* GetLayouter(); 956*cdf0e10cSrcweir virtual const SwLayouter* GetLayouter() const; 957*cdf0e10cSrcweir virtual void SetLayouter( SwLayouter* pNew ); 958*cdf0e10cSrcweir virtual SwFrmFmt* MakeLayoutFmt( RndStdIds eRequest, const SfxItemSet* pSet ); 959*cdf0e10cSrcweir virtual void DelLayoutFmt( SwFrmFmt *pFmt ); 960*cdf0e10cSrcweir virtual SwFrmFmt* CopyLayoutFmt( const SwFrmFmt& rSrc, const SwFmtAnchor& rNewAnchor, bool bSetTxtFlyAtt, bool bMakeFrms ); 961*cdf0e10cSrcweir virtual const ViewShell *GetCurrentViewShell() const; //swmod 080219 962*cdf0e10cSrcweir virtual ViewShell *GetCurrentViewShell();//swmod 080219 It must be able to communicate to a ViewShell.This is going to be removerd later. 963*cdf0e10cSrcweir virtual const SwRootFrm *GetCurrentLayout() const; 964*cdf0e10cSrcweir virtual SwRootFrm *GetCurrentLayout();//swmod 080219 965*cdf0e10cSrcweir virtual bool HasLayout() const; 966*cdf0e10cSrcweir 967*cdf0e10cSrcweir /** IDocumentTimerAccess 968*cdf0e10cSrcweir */ 969*cdf0e10cSrcweir virtual void StartIdling(); 970*cdf0e10cSrcweir virtual void StopIdling(); 971*cdf0e10cSrcweir virtual void BlockIdling(); 972*cdf0e10cSrcweir virtual void UnblockIdling(); 973*cdf0e10cSrcweir 974*cdf0e10cSrcweir /** IDocumentChartDataProviderAccess 975*cdf0e10cSrcweir */ 976*cdf0e10cSrcweir virtual SwChartDataProvider * GetChartDataProvider( bool bCreate = false ) const; 977*cdf0e10cSrcweir virtual void CreateChartInternalDataProviders( const SwTable *pTable ); 978*cdf0e10cSrcweir virtual SwChartLockController_Helper & GetChartControllerHelper(); 979*cdf0e10cSrcweir 980*cdf0e10cSrcweir /** IDocumentListItems 981*cdf0e10cSrcweir 982*cdf0e10cSrcweir OD 2007-10-26 #i83479# 983*cdf0e10cSrcweir */ 984*cdf0e10cSrcweir virtual void addListItem( const SwNodeNum& rNodeNum ); 985*cdf0e10cSrcweir virtual void removeListItem( const SwNodeNum& rNodeNum ); 986*cdf0e10cSrcweir virtual String getListItemText( const SwNodeNum& rNodeNum, 987*cdf0e10cSrcweir const bool bWithNumber = true, 988*cdf0e10cSrcweir const bool bWithSpacesForLevel = false ) const; 989*cdf0e10cSrcweir virtual void getListItems( IDocumentListItems::tSortedNodeNumList& orNodeNumList ) const; 990*cdf0e10cSrcweir virtual void getNumItems( IDocumentListItems::tSortedNodeNumList& orNodeNumList ) const; 991*cdf0e10cSrcweir 992*cdf0e10cSrcweir /** IDocumentOutlineNodes 993*cdf0e10cSrcweir 994*cdf0e10cSrcweir OD 2007-11-15 #i83479# 995*cdf0e10cSrcweir */ 996*cdf0e10cSrcweir virtual sal_Int32 getOutlineNodesCount() const; 997*cdf0e10cSrcweir virtual int getOutlineLevel( const sal_Int32 nIdx ) const; 998*cdf0e10cSrcweir virtual String getOutlineText( const sal_Int32 nIdx, 999*cdf0e10cSrcweir const bool bWithNumber, 1000*cdf0e10cSrcweir const bool bWithSpacesForLevel ) const; 1001*cdf0e10cSrcweir virtual SwTxtNode* getOutlineNode( const sal_Int32 nIdx ) const; 1002*cdf0e10cSrcweir virtual void getOutlineNodes( IDocumentOutlineNodes::tSortedOutlineNodeList& orOutlineNodeList ) const; 1003*cdf0e10cSrcweir 1004*cdf0e10cSrcweir /** IDocumentListsAccess 1005*cdf0e10cSrcweir 1006*cdf0e10cSrcweir OD 2008-03-26 #refactorlists# 1007*cdf0e10cSrcweir */ 1008*cdf0e10cSrcweir virtual SwList* createList( String sListId, 1009*cdf0e10cSrcweir const String sDefaultListStyleName ); 1010*cdf0e10cSrcweir virtual void deleteList( const String sListId ); 1011*cdf0e10cSrcweir virtual SwList* getListByName( const String sListId ) const; 1012*cdf0e10cSrcweir virtual SwList* createListForListStyle( const String sListStyleName ); 1013*cdf0e10cSrcweir virtual SwList* getListForListStyle( const String sListStyleName ) const; 1014*cdf0e10cSrcweir virtual void deleteListForListStyle( const String sListStyleName ); 1015*cdf0e10cSrcweir // --> OD 2008-07-08 #i91400# 1016*cdf0e10cSrcweir virtual void trackChangeOfListStyleName( const String sListStyleName, 1017*cdf0e10cSrcweir const String sNewListStyleName ); 1018*cdf0e10cSrcweir // <-- 1019*cdf0e10cSrcweir 1020*cdf0e10cSrcweir /** IDocumentExternalData */ 1021*cdf0e10cSrcweir virtual void setExternalData(::sw::tExternalDataType eType, 1022*cdf0e10cSrcweir ::sw::tExternalDataPointer pPayload); 1023*cdf0e10cSrcweir virtual ::sw::tExternalDataPointer getExternalData(::sw::tExternalDataType eType); 1024*cdf0e10cSrcweir 1025*cdf0e10cSrcweir 1026*cdf0e10cSrcweir /** INextInterface here 1027*cdf0e10cSrcweir */ 1028*cdf0e10cSrcweir 1029*cdf0e10cSrcweir DECL_STATIC_LINK( SwDoc, BackgroundDone, SvxBrushItem *); 1030*cdf0e10cSrcweir DECL_LINK(CalcFieldValueHdl, EditFieldInfo*); 1031*cdf0e10cSrcweir 1032*cdf0e10cSrcweir /** OLE ??? 1033*cdf0e10cSrcweir */ 1034*cdf0e10cSrcweir bool IsOLEPrtNotifyPending() const { return mbOLEPrtNotifyPending; } 1035*cdf0e10cSrcweir inline void SetOLEPrtNotifyPending( bool bSet = true ); 1036*cdf0e10cSrcweir void PrtOLENotify( sal_Bool bAll ); //Alle oder nur Markierte 1037*cdf0e10cSrcweir 1038*cdf0e10cSrcweir #ifdef DBG_UTIL 1039*cdf0e10cSrcweir bool InXMLExport() const { return mbXMLExport; } 1040*cdf0e10cSrcweir void SetXMLExport( bool bFlag ) { mbXMLExport = bFlag; } 1041*cdf0e10cSrcweir #endif 1042*cdf0e10cSrcweir 1043*cdf0e10cSrcweir // liefert zu allen fliegenden Rahmen die Position im Dokument. 1044*cdf0e10cSrcweir // Wird ein Pam-Pointer uebergeben, muessen die absatzgebundenen 1045*cdf0e10cSrcweir // FlyFrames von der ::com::sun::star::awt::Selection vollstaendig umschlossen sein 1046*cdf0e10cSrcweir // ( Start < Pos < End ) !!! 1047*cdf0e10cSrcweir // (wird fuer die Writer benoetigt) 1048*cdf0e10cSrcweir void GetAllFlyFmts( SwPosFlyFrms& rPosFlyFmts, const SwPaM* = 0, 1049*cdf0e10cSrcweir sal_Bool bDrawAlso = sal_False ) const; 1050*cdf0e10cSrcweir 1051*cdf0e10cSrcweir // wegen swrtf.cxx und define private public, jetzt hier 1052*cdf0e10cSrcweir SwFlyFrmFmt *MakeFlyFrmFmt (const String &rFmtName, SwFrmFmt *pDerivedFrom); 1053*cdf0e10cSrcweir SwDrawFrmFmt *MakeDrawFrmFmt(const String &rFmtName, SwFrmFmt *pDerivedFrom); 1054*cdf0e10cSrcweir 1055*cdf0e10cSrcweir // JP 08.05.98: fuer Flys muss jetzt diese Schnittstelle benutzt 1056*cdf0e10cSrcweir // werden. pAnchorPos muss gesetzt sein, wenn keine 1057*cdf0e10cSrcweir // Seitenbindung vorliegt UND der ::com::sun::star::chaos::Anchor nicht schon 1058*cdf0e10cSrcweir // im FlySet/FrmFmt mit gueltiger CntntPos gesetzt ist 1059*cdf0e10cSrcweir /* #109161# new parameter bCalledFromShell 1060*cdf0e10cSrcweir 1061*cdf0e10cSrcweir sal_True: An existing adjust item at pAnchorPos is propagated to 1062*cdf0e10cSrcweir the content node of the new fly section. That propagation only 1063*cdf0e10cSrcweir takes place if there is no adjust item in the paragraph style 1064*cdf0e10cSrcweir for the new fly section. 1065*cdf0e10cSrcweir 1066*cdf0e10cSrcweir sal_False: no propagation 1067*cdf0e10cSrcweir */ 1068*cdf0e10cSrcweir SwFlyFrmFmt* MakeFlySection( RndStdIds eAnchorType, 1069*cdf0e10cSrcweir const SwPosition* pAnchorPos, 1070*cdf0e10cSrcweir const SfxItemSet* pSet = 0, 1071*cdf0e10cSrcweir SwFrmFmt *pParent = 0, 1072*cdf0e10cSrcweir sal_Bool bCalledFromShell = sal_False ); 1073*cdf0e10cSrcweir SwFlyFrmFmt* MakeFlyAndMove( const SwPaM& rPam, const SfxItemSet& rSet, 1074*cdf0e10cSrcweir const SwSelBoxes* pSelBoxes = 0, 1075*cdf0e10cSrcweir SwFrmFmt *pParent = 0 ); 1076*cdf0e10cSrcweir 1077*cdf0e10cSrcweir void CopyWithFlyInFly( const SwNodeRange& rRg, 1078*cdf0e10cSrcweir const xub_StrLen nEndContentIndex, 1079*cdf0e10cSrcweir const SwNodeIndex& rInsPos, 1080*cdf0e10cSrcweir sal_Bool bMakeNewFrms = sal_True, 1081*cdf0e10cSrcweir sal_Bool bDelRedlines = sal_True, 1082*cdf0e10cSrcweir sal_Bool bCopyFlyAtFly = sal_False ) const; 1083*cdf0e10cSrcweir 1084*cdf0e10cSrcweir sal_Bool SetFlyFrmAttr( SwFrmFmt& rFlyFmt, SfxItemSet& rSet ); 1085*cdf0e10cSrcweir 1086*cdf0e10cSrcweir sal_Bool SetFrmFmtToFly( SwFrmFmt& rFlyFmt, SwFrmFmt& rNewFmt, 1087*cdf0e10cSrcweir SfxItemSet* pSet = 0, sal_Bool bKeepOrient = sal_False ); 1088*cdf0e10cSrcweir // --> OD 2009-07-20 #i73249# 1089*cdf0e10cSrcweir void SetFlyFrmTitle( SwFlyFrmFmt& rFlyFrmFmt, 1090*cdf0e10cSrcweir const String& sNewTitle ); 1091*cdf0e10cSrcweir void SetFlyFrmDescription( SwFlyFrmFmt& rFlyFrmFmt, 1092*cdf0e10cSrcweir const String& sNewDescription ); 1093*cdf0e10cSrcweir // <-- 1094*cdf0e10cSrcweir 1095*cdf0e10cSrcweir /** Footnotes 1096*cdf0e10cSrcweir */ 1097*cdf0e10cSrcweir // Fussnoten Informationen 1098*cdf0e10cSrcweir const SwFtnInfo& GetFtnInfo() const { return *pFtnInfo; } 1099*cdf0e10cSrcweir void SetFtnInfo(const SwFtnInfo& rInfo); 1100*cdf0e10cSrcweir const SwEndNoteInfo& GetEndNoteInfo() const { return *pEndNoteInfo; } 1101*cdf0e10cSrcweir void SetEndNoteInfo(const SwEndNoteInfo& rInfo); 1102*cdf0e10cSrcweir SwFtnIdxs& GetFtnIdxs() { return *pFtnIdxs; } 1103*cdf0e10cSrcweir const SwFtnIdxs& GetFtnIdxs() const { return *pFtnIdxs; } 1104*cdf0e10cSrcweir // change footnotes in area 1105*cdf0e10cSrcweir bool SetCurFtn( const SwPaM& rPam, const String& rNumStr, 1106*cdf0e10cSrcweir sal_uInt16 nNumber, bool bIsEndNote ); 1107*cdf0e10cSrcweir 1108*cdf0e10cSrcweir /** Operations on the content of the document e.g. 1109*cdf0e10cSrcweir spell-checking/hyphenating/word-counting 1110*cdf0e10cSrcweir */ 1111*cdf0e10cSrcweir ::com::sun::star::uno::Any 1112*cdf0e10cSrcweir Spell( SwPaM&, ::com::sun::star::uno::Reference< 1113*cdf0e10cSrcweir ::com::sun::star::linguistic2::XSpellChecker1 > &, 1114*cdf0e10cSrcweir sal_uInt16* pPageCnt, sal_uInt16* pPageSt, bool bGrammarCheck, 1115*cdf0e10cSrcweir SwConversionArgs *pConvArgs = 0 ) const; 1116*cdf0e10cSrcweir 1117*cdf0e10cSrcweir ::com::sun::star::uno::Reference< 1118*cdf0e10cSrcweir ::com::sun::star::linguistic2::XHyphenatedWord > 1119*cdf0e10cSrcweir Hyphenate( SwPaM *pPam, const Point &rCrsrPos, 1120*cdf0e10cSrcweir sal_uInt16* pPageCnt, sal_uInt16* pPageSt ); 1121*cdf0e10cSrcweir 1122*cdf0e10cSrcweir // count words in pam 1123*cdf0e10cSrcweir void CountWords( const SwPaM& rPaM, SwDocStat& rStat ) const; 1124*cdf0e10cSrcweir 1125*cdf0e10cSrcweir 1126*cdf0e10cSrcweir /** ??? 1127*cdf0e10cSrcweir */ 1128*cdf0e10cSrcweir // Textbaustein Dokument? 1129*cdf0e10cSrcweir void SetGlossDoc( bool bGlssDc = true ) { mbGlossDoc = bGlssDc; } 1130*cdf0e10cSrcweir bool IsInsOnlyTextGlossary() const { return mbInsOnlyTxtGlssry; } 1131*cdf0e10cSrcweir 1132*cdf0e10cSrcweir // Abstakt fuellen 1133*cdf0e10cSrcweir void Summary( SwDoc* pExtDoc, sal_uInt8 nLevel, sal_uInt8 nPara, sal_Bool bImpress ); 1134*cdf0e10cSrcweir 1135*cdf0e10cSrcweir void ChangeAuthorityData(const SwAuthEntry* pNewData); 1136*cdf0e10cSrcweir 1137*cdf0e10cSrcweir bool IsInCallModified() const { return mbInCallModified; } 1138*cdf0e10cSrcweir sal_Bool IsInHeaderFooter( const SwNodeIndex& rIdx ) const; 1139*cdf0e10cSrcweir short GetTextDirection( const SwPosition& rPos, 1140*cdf0e10cSrcweir const Point* pPt = 0 ) const; 1141*cdf0e10cSrcweir sal_Bool IsInVerticalText( const SwPosition& rPos, 1142*cdf0e10cSrcweir const Point* pPt = 0 ) const; 1143*cdf0e10cSrcweir /** Database ??? 1144*cdf0e10cSrcweir */ 1145*cdf0e10cSrcweir 1146*cdf0e10cSrcweir /* Datenbank && DB-Manager */ 1147*cdf0e10cSrcweir void SetNewDBMgr( SwNewDBMgr* pNewMgr ) { pNewDBMgr = pNewMgr; } 1148*cdf0e10cSrcweir SwNewDBMgr* GetNewDBMgr() const { return pNewDBMgr; } 1149*cdf0e10cSrcweir void ChangeDBFields( const SvStringsDtor& rOldNames, 1150*cdf0e10cSrcweir const String& rNewName ); 1151*cdf0e10cSrcweir void SetInitDBFields(sal_Bool b); 1152*cdf0e10cSrcweir // Von Feldern verwendete Datenbanken herausfinden 1153*cdf0e10cSrcweir void GetAllUsedDB( SvStringsDtor& rDBNameList, 1154*cdf0e10cSrcweir const SvStringsDtor* pAllDBNames = 0 ); 1155*cdf0e10cSrcweir 1156*cdf0e10cSrcweir void ChgDBData( const SwDBData& rNewData ); 1157*cdf0e10cSrcweir SwDBData GetDBData(); 1158*cdf0e10cSrcweir const SwDBData& GetDBDesc(); 1159*cdf0e10cSrcweir const SwDBData& _GetDBDesc() const { return aDBData; } 1160*cdf0e10cSrcweir 1161*cdf0e10cSrcweir /** Some helper functions 1162*cdf0e10cSrcweir */ 1163*cdf0e10cSrcweir String GetUniqueGrfName() const; 1164*cdf0e10cSrcweir String GetUniqueOLEName() const; 1165*cdf0e10cSrcweir String GetUniqueFrameName() const; 1166*cdf0e10cSrcweir 1167*cdf0e10cSrcweir std::set<SwRootFrm*> GetAllLayouts();//swmod 080225 1168*cdf0e10cSrcweir 1169*cdf0e10cSrcweir void SetFlyName( SwFlyFrmFmt& rFmt, const String& rName ); 1170*cdf0e10cSrcweir const SwFlyFrmFmt* FindFlyByName( const String& rName, sal_Int8 nNdTyp = 0 ) const; 1171*cdf0e10cSrcweir 1172*cdf0e10cSrcweir void GetGrfNms( const SwFlyFrmFmt& rFmt, String* pGrfName, 1173*cdf0e10cSrcweir String* pFltName ) const; 1174*cdf0e10cSrcweir 1175*cdf0e10cSrcweir // setze bei allen Flys ohne Namen einen gueltigen (Wird von den Readern 1176*cdf0e10cSrcweir // nach dem Einlesen gerufen ) 1177*cdf0e10cSrcweir void SetAllUniqueFlyNames(); 1178*cdf0e10cSrcweir 1179*cdf0e10cSrcweir //Zuruecksetzen der Attribute; es werden alle TxtHints und bei 1180*cdf0e10cSrcweir //vollstaendiger Selektion harte Formatierung (AUTO-Formate) entfernt 1181*cdf0e10cSrcweir // --> OD 2008-11-28 #i96644# 1182*cdf0e10cSrcweir // introduce new optional parameter <bSendDataChangedEvents> in order to 1183*cdf0e10cSrcweir // control, if the side effect "send data changed events" is triggered or not. 1184*cdf0e10cSrcweir void ResetAttrs( const SwPaM &rRg, 1185*cdf0e10cSrcweir sal_Bool bTxtAttr = sal_True, 1186*cdf0e10cSrcweir const SvUShortsSort* = 0, 1187*cdf0e10cSrcweir const bool bSendDataChangedEvents = true ); 1188*cdf0e10cSrcweir // <-- 1189*cdf0e10cSrcweir void RstTxtAttrs(const SwPaM &rRg, sal_Bool bInclRefToxMark = sal_False ); 1190*cdf0e10cSrcweir 1191*cdf0e10cSrcweir // Setze das Attribut im angegebenen Format. Ist Undo aktiv, wird 1192*cdf0e10cSrcweir // das alte in die Undo-History aufgenommen 1193*cdf0e10cSrcweir void SetAttr( const SfxPoolItem&, SwFmt& ); 1194*cdf0e10cSrcweir void SetAttr( const SfxItemSet&, SwFmt& ); 1195*cdf0e10cSrcweir 1196*cdf0e10cSrcweir // --> OD 2008-02-12 #newlistlevelattrs# 1197*cdf0e10cSrcweir // method to reset a certain attribute at the given format 1198*cdf0e10cSrcweir void ResetAttrAtFormat( const sal_uInt16 nWhichId, 1199*cdf0e10cSrcweir SwFmt& rChangedFormat ); 1200*cdf0e10cSrcweir // <-- 1201*cdf0e10cSrcweir 1202*cdf0e10cSrcweir // Setze das Attribut als neues default Attribut in diesem Dokument. 1203*cdf0e10cSrcweir // Ist Undo aktiv, wird das alte in die Undo-History aufgenommen 1204*cdf0e10cSrcweir void SetDefault( const SfxPoolItem& ); 1205*cdf0e10cSrcweir void SetDefault( const SfxItemSet& ); 1206*cdf0e10cSrcweir 1207*cdf0e10cSrcweir // Erfrage das Default Attribut in diesem Dokument. 1208*cdf0e10cSrcweir const SfxPoolItem& GetDefault( sal_uInt16 nFmtHint ) const; 1209*cdf0e10cSrcweir // TextAttribute nicht mehr aufspannen lassen 1210*cdf0e10cSrcweir sal_Bool DontExpandFmt( const SwPosition& rPos, sal_Bool bFlag = sal_True ); 1211*cdf0e10cSrcweir 1212*cdf0e10cSrcweir /* Formate */ 1213*cdf0e10cSrcweir const SwFrmFmts* GetFrmFmts() const { return pFrmFmtTbl; } 1214*cdf0e10cSrcweir SwFrmFmts* GetFrmFmts() { return pFrmFmtTbl; } 1215*cdf0e10cSrcweir const SwCharFmts* GetCharFmts() const { return pCharFmtTbl;} 1216*cdf0e10cSrcweir 1217*cdf0e10cSrcweir /* LayoutFormate (Rahmen, DrawObjecte), mal const mal nicht */ 1218*cdf0e10cSrcweir const SwSpzFrmFmts* GetSpzFrmFmts() const { return pSpzFrmFmtTbl; } 1219*cdf0e10cSrcweir SwSpzFrmFmts* GetSpzFrmFmts() { return pSpzFrmFmtTbl; } 1220*cdf0e10cSrcweir 1221*cdf0e10cSrcweir const SwFrmFmt *GetDfltFrmFmt() const { return pDfltFrmFmt; } 1222*cdf0e10cSrcweir SwFrmFmt *GetDfltFrmFmt() { return pDfltFrmFmt; } 1223*cdf0e10cSrcweir const SwFrmFmt *GetEmptyPageFmt() const { return pEmptyPageFmt; } 1224*cdf0e10cSrcweir SwFrmFmt *GetEmptyPageFmt() { return pEmptyPageFmt; } 1225*cdf0e10cSrcweir const SwFrmFmt *GetColumnContFmt() const{ return pColumnContFmt; } 1226*cdf0e10cSrcweir SwFrmFmt *GetColumnContFmt() { return pColumnContFmt; } 1227*cdf0e10cSrcweir const SwCharFmt *GetDfltCharFmt() const { return pDfltCharFmt;} 1228*cdf0e10cSrcweir SwCharFmt *GetDfltCharFmt() { return pDfltCharFmt;} 1229*cdf0e10cSrcweir 1230*cdf0e10cSrcweir // Returns the interface of the management of (auto)styles 1231*cdf0e10cSrcweir IStyleAccess& GetIStyleAccess() { return *pStyleAccess; } 1232*cdf0e10cSrcweir 1233*cdf0e10cSrcweir // Remove all language dependencies from all existing formats 1234*cdf0e10cSrcweir void RemoveAllFmtLanguageDependencies(); 1235*cdf0e10cSrcweir 1236*cdf0e10cSrcweir SwFrmFmt *MakeFrmFmt(const String &rFmtName, SwFrmFmt *pDerivedFrom, 1237*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False, sal_Bool bAuto = sal_True); 1238*cdf0e10cSrcweir void DelFrmFmt( SwFrmFmt *pFmt, sal_Bool bBroadcast = sal_False ); 1239*cdf0e10cSrcweir SwFrmFmt* FindFrmFmtByName( const String& rName ) const 1240*cdf0e10cSrcweir { return (SwFrmFmt*)FindFmtByName( (SvPtrarr&)*pFrmFmtTbl, rName ); } 1241*cdf0e10cSrcweir 1242*cdf0e10cSrcweir // --> OD 2005-01-13 #i40550# 1243*cdf0e10cSrcweir SwCharFmt *MakeCharFmt(const String &rFmtName, SwCharFmt *pDerivedFrom, 1244*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False, 1245*cdf0e10cSrcweir sal_Bool bAuto = sal_True ); 1246*cdf0e10cSrcweir // <-- 1247*cdf0e10cSrcweir void DelCharFmt(sal_uInt16 nFmt, sal_Bool bBroadcast = sal_False); 1248*cdf0e10cSrcweir void DelCharFmt(SwCharFmt* pFmt, sal_Bool bBroadcast = sal_False); 1249*cdf0e10cSrcweir SwCharFmt* FindCharFmtByName( const String& rName ) const 1250*cdf0e10cSrcweir { return (SwCharFmt*)FindFmtByName( (SvPtrarr&)*pCharFmtTbl, rName ); } 1251*cdf0e10cSrcweir 1252*cdf0e10cSrcweir /* Formatcollections (Vorlagen) */ 1253*cdf0e10cSrcweir // TXT 1254*cdf0e10cSrcweir const SwTxtFmtColl* GetDfltTxtFmtColl() const { return pDfltTxtFmtColl; } 1255*cdf0e10cSrcweir const SwTxtFmtColls *GetTxtFmtColls() const { return pTxtFmtCollTbl; } 1256*cdf0e10cSrcweir // --> OD 2005-01-13 #i40550# 1257*cdf0e10cSrcweir SwTxtFmtColl *MakeTxtFmtColl( const String &rFmtName, 1258*cdf0e10cSrcweir SwTxtFmtColl *pDerivedFrom, 1259*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False, 1260*cdf0e10cSrcweir sal_Bool bAuto = sal_True ); 1261*cdf0e10cSrcweir // <-- 1262*cdf0e10cSrcweir SwConditionTxtFmtColl* MakeCondTxtFmtColl( const String &rFmtName, 1263*cdf0e10cSrcweir SwTxtFmtColl *pDerivedFrom, 1264*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False); 1265*cdf0e10cSrcweir void DelTxtFmtColl(sal_uInt16 nFmt, sal_Bool bBroadcast = sal_False); 1266*cdf0e10cSrcweir void DelTxtFmtColl( SwTxtFmtColl* pColl, sal_Bool bBroadcast = sal_False ); 1267*cdf0e10cSrcweir // --> OD 2007-11-06 #i62675# 1268*cdf0e10cSrcweir // Add 4th optional parameter <bResetListAttrs>. 1269*cdf0e10cSrcweir // 'side effect' of <SetTxtFmtColl> with <bReset = true> is that the hard 1270*cdf0e10cSrcweir // attributes of the affected text nodes are cleared, except the break 1271*cdf0e10cSrcweir // attribute, the page description attribute and the list style attribute. 1272*cdf0e10cSrcweir // The new parameter <bResetListAttrs> indicates, if the list attributes 1273*cdf0e10cSrcweir // (list style, restart at and restart with) are cleared as well in case 1274*cdf0e10cSrcweir // that <bReset = true> and the paragraph style has a list style attribute set. 1275*cdf0e10cSrcweir sal_Bool SetTxtFmtColl( const SwPaM &rRg, SwTxtFmtColl *pFmt, 1276*cdf0e10cSrcweir bool bReset = true, 1277*cdf0e10cSrcweir bool bResetListAttrs = false ); 1278*cdf0e10cSrcweir // <-- 1279*cdf0e10cSrcweir SwTxtFmtColl* FindTxtFmtCollByName( const String& rName ) const 1280*cdf0e10cSrcweir { return (SwTxtFmtColl*)FindFmtByName( (SvPtrarr&)*pTxtFmtCollTbl, rName ); } 1281*cdf0e10cSrcweir 1282*cdf0e10cSrcweir void ChkCondColls(); 1283*cdf0e10cSrcweir 1284*cdf0e10cSrcweir // GRF 1285*cdf0e10cSrcweir const SwGrfFmtColl* GetDfltGrfFmtColl() const { return pDfltGrfFmtColl; } 1286*cdf0e10cSrcweir const SwGrfFmtColls *GetGrfFmtColls() const { return pGrfFmtCollTbl; } 1287*cdf0e10cSrcweir SwGrfFmtColl *MakeGrfFmtColl(const String &rFmtName, 1288*cdf0e10cSrcweir SwGrfFmtColl *pDerivedFrom); 1289*cdf0e10cSrcweir SwGrfFmtColl* FindGrfFmtCollByName( const String& rName ) const 1290*cdf0e10cSrcweir { return (SwGrfFmtColl*)FindFmtByName( (SvPtrarr&)*pGrfFmtCollTbl, rName ); } 1291*cdf0e10cSrcweir 1292*cdf0e10cSrcweir // Tabellen-Formate 1293*cdf0e10cSrcweir const SwFrmFmts* GetTblFrmFmts() const { return pTblFrmFmtTbl; } 1294*cdf0e10cSrcweir SwFrmFmts* GetTblFrmFmts() { return pTblFrmFmtTbl; } 1295*cdf0e10cSrcweir sal_uInt16 GetTblFrmFmtCount( sal_Bool bUsed ) const; 1296*cdf0e10cSrcweir SwFrmFmt& GetTblFrmFmt(sal_uInt16 nFmt, sal_Bool bUsed ) const; 1297*cdf0e10cSrcweir SwTableFmt* MakeTblFrmFmt(const String &rFmtName, SwFrmFmt *pDerivedFrom); 1298*cdf0e10cSrcweir void DelTblFrmFmt( SwTableFmt* pFmt ); 1299*cdf0e10cSrcweir SwTableFmt* FindTblFmtByName( const String& rName, sal_Bool bAll = sal_False ) const; 1300*cdf0e10cSrcweir 1301*cdf0e10cSrcweir //Rahmenzugriff 1302*cdf0e10cSrcweir //iterieren ueber Flys - fuer Basic-Collections 1303*cdf0e10cSrcweir sal_uInt16 GetFlyCount( FlyCntType eType = FLYCNTTYPE_ALL) const; 1304*cdf0e10cSrcweir SwFrmFmt* GetFlyNum(sal_uInt16 nIdx, FlyCntType eType = FLYCNTTYPE_ALL); 1305*cdf0e10cSrcweir 1306*cdf0e10cSrcweir 1307*cdf0e10cSrcweir // kopiere die Formate in die eigenen Arrays und returne diese 1308*cdf0e10cSrcweir SwFrmFmt *CopyFrmFmt ( const SwFrmFmt& ); 1309*cdf0e10cSrcweir SwCharFmt *CopyCharFmt( const SwCharFmt& ); 1310*cdf0e10cSrcweir SwTxtFmtColl* CopyTxtColl( const SwTxtFmtColl& rColl ); 1311*cdf0e10cSrcweir SwGrfFmtColl* CopyGrfColl( const SwGrfFmtColl& rColl ); 1312*cdf0e10cSrcweir 1313*cdf0e10cSrcweir // ersetze alle Formate mit denen aus rSource 1314*cdf0e10cSrcweir void ReplaceStyles( SwDoc& rSource ); 1315*cdf0e10cSrcweir 1316*cdf0e10cSrcweir // erfrage ob die Absatz-/Zeichen-/Rahmen-/Seiten - Vorlage benutzt wird 1317*cdf0e10cSrcweir sal_Bool IsUsed( const SwModify& ) const; 1318*cdf0e10cSrcweir sal_Bool IsUsed( const SwNumRule& ) const; 1319*cdf0e10cSrcweir 1320*cdf0e10cSrcweir // setze den Namen der neu geladenen Dokument-Vorlage 1321*cdf0e10cSrcweir sal_uInt16 SetDocPattern( const String& rPatternName ); 1322*cdf0e10cSrcweir // gebe den Dok-VorlagenNamen zurueck. !!! Kann auch 0 sein !!! 1323*cdf0e10cSrcweir String* GetDocPattern( sal_uInt16 nPos ) const { return aPatternNms[nPos]; } 1324*cdf0e10cSrcweir 1325*cdf0e10cSrcweir // Loesche alle nicht referenzierten FeldTypen 1326*cdf0e10cSrcweir void GCFieldTypes(); // impl. in docfld.cxx 1327*cdf0e10cSrcweir 1328*cdf0e10cSrcweir // akt. Dokument mit Textbausteindokument verbinden/erfragen 1329*cdf0e10cSrcweir void SetGlossaryDoc( SwDoc* pDoc ) { pGlossaryDoc = pDoc; } 1330*cdf0e10cSrcweir 1331*cdf0e10cSrcweir // travel over PaM Ring 1332*cdf0e10cSrcweir sal_Bool InsertGlossary( SwTextBlocks& rBlock, const String& rEntry, 1333*cdf0e10cSrcweir SwPaM& rPaM, SwCrsrShell* pShell = 0); 1334*cdf0e10cSrcweir 1335*cdf0e10cSrcweir // get the set of printable pages for the XRenderable API by 1336*cdf0e10cSrcweir // evaluating the respective settings (see implementation) 1337*cdf0e10cSrcweir void CalculatePagesForPrinting( const SwRootFrm& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, 1338*cdf0e10cSrcweir sal_Int32 nDocPageCount ); 1339*cdf0e10cSrcweir void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, 1340*cdf0e10cSrcweir sal_Int32 nDocPageCount ); 1341*cdf0e10cSrcweir void CalculatePagePairsForProspectPrinting( const SwRootFrm& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, 1342*cdf0e10cSrcweir sal_Int32 nDocPageCount ); 1343*cdf0e10cSrcweir 1344*cdf0e10cSrcweir //PageDescriptor-Schnittstelle 1345*cdf0e10cSrcweir sal_uInt16 GetPageDescCnt() const { return aPageDescs.Count(); } 1346*cdf0e10cSrcweir const SwPageDesc& GetPageDesc( const sal_uInt16 i ) const { return *aPageDescs[i]; } 1347*cdf0e10cSrcweir SwPageDesc* FindPageDescByName( const String& rName, 1348*cdf0e10cSrcweir sal_uInt16* pPos = 0 ) const; 1349*cdf0e10cSrcweir 1350*cdf0e10cSrcweir // kopiere den gesamten PageDesc - ueber Dokumentgrenzen und "tief"! 1351*cdf0e10cSrcweir // optional kann das kopieren der PoolFmtId, -HlpId verhindert werden 1352*cdf0e10cSrcweir void CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc, 1353*cdf0e10cSrcweir sal_Bool bCopyPoolIds = sal_True ); 1354*cdf0e10cSrcweir 1355*cdf0e10cSrcweir // kopiere die Kopzeile (mit dem Inhalt!) aus dem SrcFmt 1356*cdf0e10cSrcweir // ins DestFmt ( auch ueber Doc grenzen hinaus!) 1357*cdf0e10cSrcweir void CopyHeader( const SwFrmFmt& rSrcFmt, SwFrmFmt& rDestFmt ) 1358*cdf0e10cSrcweir { CopyPageDescHeaderFooterImpl( true, rSrcFmt, rDestFmt ); } 1359*cdf0e10cSrcweir // kopiere die Fusszeile (mit dem Inhalt!) aus dem SrcFmt 1360*cdf0e10cSrcweir // ins DestFmt ( auch ueber Doc grenzen hinaus!) 1361*cdf0e10cSrcweir void CopyFooter( const SwFrmFmt& rSrcFmt, SwFrmFmt& rDestFmt ) 1362*cdf0e10cSrcweir { CopyPageDescHeaderFooterImpl( false, rSrcFmt, rDestFmt ); } 1363*cdf0e10cSrcweir 1364*cdf0e10cSrcweir //fuer Reader 1365*cdf0e10cSrcweir 1366*cdf0e10cSrcweir SwPageDesc * GetPageDesc( const String & rName ); 1367*cdf0e10cSrcweir SwPageDesc& _GetPageDesc( sal_uInt16 i ) const { return *aPageDescs[i]; } 1368*cdf0e10cSrcweir void ChgPageDesc( const String & rName, const SwPageDesc& ); 1369*cdf0e10cSrcweir void ChgPageDesc( sal_uInt16 i, const SwPageDesc& ); 1370*cdf0e10cSrcweir sal_Bool FindPageDesc( const String & rName, sal_uInt16 * pFound ); 1371*cdf0e10cSrcweir // -> #116530# 1372*cdf0e10cSrcweir void DelPageDesc( const String & rName, sal_Bool bBroadcast = sal_False); 1373*cdf0e10cSrcweir void DelPageDesc( sal_uInt16 i, sal_Bool bBroadcast = sal_False ); 1374*cdf0e10cSrcweir // <- #116530# 1375*cdf0e10cSrcweir void PreDelPageDesc(SwPageDesc * pDel); // #i7983# 1376*cdf0e10cSrcweir // -> #116530# 1377*cdf0e10cSrcweir sal_uInt16 MakePageDesc( const String &rName, const SwPageDesc* pCpy = 0, 1378*cdf0e10cSrcweir sal_Bool bRegardLanguage = sal_True, 1379*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False); 1380*cdf0e10cSrcweir void BroadcastStyleOperation(String rName, SfxStyleFamily eFamily, 1381*cdf0e10cSrcweir sal_uInt16 nOp); 1382*cdf0e10cSrcweir // <- #116530# 1383*cdf0e10cSrcweir 1384*cdf0e10cSrcweir 1385*cdf0e10cSrcweir // --> FME 2005-03-16 #i44963# The html import sometimes overwrites the 1386*cdf0e10cSrcweir // page sizes set in the page descriptions. This function is used to 1387*cdf0e10cSrcweir // correct this. 1388*cdf0e10cSrcweir void CheckDefaultPageFmt(); 1389*cdf0e10cSrcweir // <-- 1390*cdf0e10cSrcweir 1391*cdf0e10cSrcweir // Methoden fuer die Verzeichnisse: 1392*cdf0e10cSrcweir // - Verzeichnismarke einfuegen loeschen travel 1393*cdf0e10cSrcweir sal_uInt16 GetCurTOXMark( const SwPosition& rPos, SwTOXMarks& ) const; 1394*cdf0e10cSrcweir void DeleteTOXMark( const SwTOXMark* pTOXMark ); 1395*cdf0e10cSrcweir const SwTOXMark& GotoTOXMark( const SwTOXMark& rCurTOXMark, 1396*cdf0e10cSrcweir SwTOXSearch eDir, sal_Bool bInReadOnly ); 1397*cdf0e10cSrcweir 1398*cdf0e10cSrcweir // - Verzeichnis einfuegen, und bei Bedarf erneuern 1399*cdf0e10cSrcweir const SwTOXBaseSection* InsertTableOf( const SwPosition& rPos, 1400*cdf0e10cSrcweir const SwTOXBase& rTOX, 1401*cdf0e10cSrcweir const SfxItemSet* pSet = 0, 1402*cdf0e10cSrcweir sal_Bool bExpand = sal_False ); 1403*cdf0e10cSrcweir const SwTOXBaseSection* InsertTableOf( sal_uLong nSttNd, sal_uLong nEndNd, 1404*cdf0e10cSrcweir const SwTOXBase& rTOX, 1405*cdf0e10cSrcweir const SfxItemSet* pSet = 0 ); 1406*cdf0e10cSrcweir const SwTOXBase* GetCurTOX( const SwPosition& rPos ) const; 1407*cdf0e10cSrcweir const SwAttrSet& GetTOXBaseAttrSet(const SwTOXBase& rTOX) const; 1408*cdf0e10cSrcweir 1409*cdf0e10cSrcweir sal_Bool DeleteTOX( const SwTOXBase& rTOXBase, sal_Bool bDelNodes = sal_False ); 1410*cdf0e10cSrcweir String GetUniqueTOXBaseName( const SwTOXType& rType, 1411*cdf0e10cSrcweir const String* pChkStr = 0 ) const; 1412*cdf0e10cSrcweir 1413*cdf0e10cSrcweir sal_Bool SetTOXBaseName(const SwTOXBase& rTOXBase, const String& rName); 1414*cdf0e10cSrcweir void SetTOXBaseProtection(const SwTOXBase& rTOXBase, sal_Bool bProtect); 1415*cdf0e10cSrcweir 1416*cdf0e10cSrcweir // nach einlesen einer Datei alle Verzeichnisse updaten 1417*cdf0e10cSrcweir void SetUpdateTOX( bool bFlag = true ) { mbUpdateTOX = bFlag; } 1418*cdf0e10cSrcweir bool IsUpdateTOX() const { return mbUpdateTOX; } 1419*cdf0e10cSrcweir 1420*cdf0e10cSrcweir const String& GetTOIAutoMarkURL() const {return sTOIAutoMarkURL;} 1421*cdf0e10cSrcweir void SetTOIAutoMarkURL(const String& rSet) {sTOIAutoMarkURL = rSet;} 1422*cdf0e10cSrcweir void ApplyAutoMark(); 1423*cdf0e10cSrcweir 1424*cdf0e10cSrcweir bool IsInReading() const { return mbInReading; } 1425*cdf0e10cSrcweir void SetInReading( bool bNew ) { mbInReading = bNew; } 1426*cdf0e10cSrcweir 1427*cdf0e10cSrcweir bool IsClipBoard() const { return mbClipBoard; } 1428*cdf0e10cSrcweir // N.B.: must be called right after constructor! (@see GetXmlIdRegistry) 1429*cdf0e10cSrcweir void SetClipBoard( bool bNew ) { mbClipBoard = bNew; } 1430*cdf0e10cSrcweir 1431*cdf0e10cSrcweir bool IsColumnSelection() const { return mbColumnSelection; } 1432*cdf0e10cSrcweir void SetColumnSelection( bool bNew ) { mbColumnSelection = bNew; } 1433*cdf0e10cSrcweir 1434*cdf0e10cSrcweir bool IsInXMLImport() const { return mbInXMLImport; } 1435*cdf0e10cSrcweir void SetInXMLImport( bool bNew ) { mbInXMLImport = bNew; } 1436*cdf0e10cSrcweir 1437*cdf0e10cSrcweir // - Verzeichnis-Typen verwalten 1438*cdf0e10cSrcweir sal_uInt16 GetTOXTypeCount( TOXTypes eTyp ) const; 1439*cdf0e10cSrcweir const SwTOXType* GetTOXType( TOXTypes eTyp, sal_uInt16 nId ) const; 1440*cdf0e10cSrcweir sal_Bool DeleteTOXType( TOXTypes eTyp, sal_uInt16 nId ); 1441*cdf0e10cSrcweir const SwTOXType* InsertTOXType( const SwTOXType& rTyp ); 1442*cdf0e10cSrcweir const SwTOXTypes& GetTOXTypes() const { return *pTOXTypes; } 1443*cdf0e10cSrcweir 1444*cdf0e10cSrcweir const SwTOXBase* GetDefaultTOXBase( TOXTypes eTyp, sal_Bool bCreate = sal_False ); 1445*cdf0e10cSrcweir void SetDefaultTOXBase(const SwTOXBase& rBase); 1446*cdf0e10cSrcweir 1447*cdf0e10cSrcweir // - Schluessel fuer die Indexverwaltung 1448*cdf0e10cSrcweir sal_uInt16 GetTOIKeys( SwTOIKeyType eTyp, SvStringsSort& rArr ) const; 1449*cdf0e10cSrcweir 1450*cdf0e10cSrcweir // Sortieren Tabellen Text 1451*cdf0e10cSrcweir sal_Bool SortTbl(const SwSelBoxes& rBoxes, const SwSortOptions&); 1452*cdf0e10cSrcweir sal_Bool SortText(const SwPaM&, const SwSortOptions&); 1453*cdf0e10cSrcweir 1454*cdf0e10cSrcweir // korrigiere die im Dokument angemeldeten SwPosition-Objecte, 1455*cdf0e10cSrcweir // wie z.B. die ::com::sun::star::text::Bookmarks oder die Verzeichnisse. 1456*cdf0e10cSrcweir // JP 22.06.95: ist bMoveCrsr gesetzt, verschiebe auch die Crsr 1457*cdf0e10cSrcweir 1458*cdf0e10cSrcweir // Setzt alles in rOldNode auf rNewPos + Offset 1459*cdf0e10cSrcweir void CorrAbs( const SwNodeIndex& rOldNode, const SwPosition& rNewPos, 1460*cdf0e10cSrcweir const xub_StrLen nOffset = 0, sal_Bool bMoveCrsr = sal_False ); 1461*cdf0e10cSrcweir // Setzt alles im Bereich von [rStartNode, rEndNode] nach rNewPos 1462*cdf0e10cSrcweir void CorrAbs( const SwNodeIndex& rStartNode, const SwNodeIndex& rEndNode, 1463*cdf0e10cSrcweir const SwPosition& rNewPos, sal_Bool bMoveCrsr = sal_False ); 1464*cdf0e10cSrcweir // Setzt alles im Bereich von rRange nach rNewPos 1465*cdf0e10cSrcweir void CorrAbs( const SwPaM& rRange, const SwPosition& rNewPos, 1466*cdf0e10cSrcweir sal_Bool bMoveCrsr = sal_False ); 1467*cdf0e10cSrcweir // Setzt alles in rOldNode auf relative Pos 1468*cdf0e10cSrcweir void CorrRel( const SwNodeIndex& rOldNode, const SwPosition& rNewPos, 1469*cdf0e10cSrcweir const xub_StrLen nOffset = 0, sal_Bool bMoveCrsr = sal_False ); 1470*cdf0e10cSrcweir 1471*cdf0e10cSrcweir // GliederungsRegeln erfragen / setzen 1472*cdf0e10cSrcweir // --> OD 2005-11-02 #i51089 - TUNING# 1473*cdf0e10cSrcweir inline SwNumRule* GetOutlineNumRule() const 1474*cdf0e10cSrcweir { 1475*cdf0e10cSrcweir return pOutlineRule; 1476*cdf0e10cSrcweir } 1477*cdf0e10cSrcweir // <-- 1478*cdf0e10cSrcweir void SetOutlineNumRule( const SwNumRule& rRule ); 1479*cdf0e10cSrcweir void PropagateOutlineRule(); 1480*cdf0e10cSrcweir 1481*cdf0e10cSrcweir // Gliederung - hoch-/runterstufen 1482*cdf0e10cSrcweir sal_Bool OutlineUpDown( const SwPaM& rPam, short nOffset = 1 ); 1483*cdf0e10cSrcweir // Gliederung - hoch-/runtermoven 1484*cdf0e10cSrcweir sal_Bool MoveOutlinePara( const SwPaM& rPam, short nOffset = 1); 1485*cdf0e10cSrcweir // zu diesem Gliederungspunkt 1486*cdf0e10cSrcweir sal_Bool GotoOutline( SwPosition& rPos, const String& rName ) const; 1487*cdf0e10cSrcweir // die Aenderungen an den Gliederungsvorlagen in die OutlineRule uebernehmen 1488*cdf0e10cSrcweir 1489*cdf0e10cSrcweir // setzt, wenn noch keine Numerierung, sonst wird geaendert 1490*cdf0e10cSrcweir // arbeitet mit alten und neuen Regeln, nur Differenzen aktualisieren 1491*cdf0e10cSrcweir // --> OD 2005-02-18 #i42921# - re-use unused 3rd parameter 1492*cdf0e10cSrcweir // --> OD 2008-02-08 #newlistlevelattrs# 1493*cdf0e10cSrcweir // Add optional parameter <bResetIndentAttrs> - default value sal_False. 1494*cdf0e10cSrcweir // If <bResetIndentAttrs> equals true, the indent attributes "before text" 1495*cdf0e10cSrcweir // and "first line indent" are additionally reset at the provided PaM, if 1496*cdf0e10cSrcweir // the list style makes use of the new list level attributes. 1497*cdf0e10cSrcweir // --> OD 2008-03-17 #refactorlists# 1498*cdf0e10cSrcweir // introduce parameters <bCreateNewList> and <sContinuedListId> 1499*cdf0e10cSrcweir // <bCreateNewList> indicates, if a new list is created by applying the 1500*cdf0e10cSrcweir // given list style. 1501*cdf0e10cSrcweir void SetNumRule( const SwPaM&, 1502*cdf0e10cSrcweir const SwNumRule&, 1503*cdf0e10cSrcweir const bool bCreateNewList, 1504*cdf0e10cSrcweir const String sContinuedListId = String(), 1505*cdf0e10cSrcweir sal_Bool bSetItem = sal_True, 1506*cdf0e10cSrcweir const bool bResetIndentAttrs = false ); 1507*cdf0e10cSrcweir // <-- 1508*cdf0e10cSrcweir void SetCounted( const SwPaM&, bool bCounted); 1509*cdf0e10cSrcweir 1510*cdf0e10cSrcweir // --> OD 2009-08-25 #i86492# 1511*cdf0e10cSrcweir // no longer needed. 1512*cdf0e10cSrcweir // SwDoc::SetNumRule( rPaM, rNumRule, false, <ListId>, sal_True, true ) have to be used instead. 1513*cdf0e10cSrcweir // /** 1514*cdf0e10cSrcweir // Replace numbering rules in a PaM by another numbering rule. 1515*cdf0e10cSrcweir 1516*cdf0e10cSrcweir // \param rPaM PaM to replace the numbering rules in 1517*cdf0e10cSrcweir // \param rNumRule numbering rule to replace the present numbering rules 1518*cdf0e10cSrcweir // */ 1519*cdf0e10cSrcweir // void ReplaceNumRule(const SwPaM & rPaM, const SwNumRule & rNumRule); 1520*cdf0e10cSrcweir 1521*cdf0e10cSrcweir void MakeUniqueNumRules(const SwPaM & rPaM); 1522*cdf0e10cSrcweir 1523*cdf0e10cSrcweir void SetNumRuleStart( const SwPosition& rPos, sal_Bool bFlag = sal_True ); 1524*cdf0e10cSrcweir void SetNodeNumStart( const SwPosition& rPos, sal_uInt16 nStt ); 1525*cdf0e10cSrcweir 1526*cdf0e10cSrcweir SwNumRule* GetCurrNumRule( const SwPosition& rPos ) const; 1527*cdf0e10cSrcweir 1528*cdf0e10cSrcweir const SwNumRuleTbl& GetNumRuleTbl() const { return *pNumRuleTbl; } 1529*cdf0e10cSrcweir 1530*cdf0e10cSrcweir // #i36749# 1531*cdf0e10cSrcweir /** 1532*cdf0e10cSrcweir Add numbering rule to document. 1533*cdf0e10cSrcweir 1534*cdf0e10cSrcweir @param pRule rule to add 1535*cdf0e10cSrcweir */ 1536*cdf0e10cSrcweir void AddNumRule(SwNumRule * pRule); 1537*cdf0e10cSrcweir 1538*cdf0e10cSrcweir // --> OD 2008-02-11 #newlistlevelattrs# 1539*cdf0e10cSrcweir // add optional parameter <eDefaultNumberFormatPositionAndSpaceMode> 1540*cdf0e10cSrcweir sal_uInt16 MakeNumRule( const String &rName, 1541*cdf0e10cSrcweir const SwNumRule* pCpy = 0, 1542*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False, 1543*cdf0e10cSrcweir const SvxNumberFormat::SvxNumPositionAndSpaceMode eDefaultNumberFormatPositionAndSpaceMode = 1544*cdf0e10cSrcweir SvxNumberFormat::LABEL_WIDTH_AND_POSITION ); 1545*cdf0e10cSrcweir // <-- 1546*cdf0e10cSrcweir sal_uInt16 FindNumRule( const String& rName ) const; 1547*cdf0e10cSrcweir SwNumRule* FindNumRulePtr( const String& rName ) const; 1548*cdf0e10cSrcweir 1549*cdf0e10cSrcweir // loeschen geht nur, wenn die ::com::sun::star::chaos::Rule niemand benutzt! 1550*cdf0e10cSrcweir // #106897# 1551*cdf0e10cSrcweir sal_Bool RenameNumRule(const String & aOldName, const String & aNewName, 1552*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False); 1553*cdf0e10cSrcweir sal_Bool DelNumRule( const String& rName, sal_Bool bBroadCast = sal_False ); 1554*cdf0e10cSrcweir String GetUniqueNumRuleName( const String* pChkStr = 0, sal_Bool bAutoNum = sal_True ) const; 1555*cdf0e10cSrcweir 1556*cdf0e10cSrcweir void UpdateNumRule(); // alle invaliden Updaten 1557*cdf0e10cSrcweir // #106897# 1558*cdf0e10cSrcweir void ChgNumRuleFmts( const SwNumRule& rRule, const String * pOldName = 0 ); 1559*cdf0e10cSrcweir sal_Bool ReplaceNumRule( const SwPosition& rPos, const String& rOldRule, 1560*cdf0e10cSrcweir const String& rNewRule ); 1561*cdf0e10cSrcweir 1562*cdf0e10cSrcweir // zum naechsten/vorhergehenden Punkt auf gleicher Ebene 1563*cdf0e10cSrcweir sal_Bool GotoNextNum( SwPosition&, sal_Bool bOverUpper = sal_True, 1564*cdf0e10cSrcweir sal_uInt8* pUpper = 0, sal_uInt8* pLower = 0 ); 1565*cdf0e10cSrcweir sal_Bool GotoPrevNum( SwPosition&, sal_Bool bOverUpper = sal_True, 1566*cdf0e10cSrcweir sal_uInt8* pUpper = 0, sal_uInt8* pLower = 0 ); 1567*cdf0e10cSrcweir 1568*cdf0e10cSrcweir // #i23731# 1569*cdf0e10cSrcweir /** Searches for a text node with a numbering rule. 1570*cdf0e10cSrcweir 1571*cdf0e10cSrcweir OD 2005-10-24 #i55391# - add optional parameter <bInvestigateStartNode> 1572*cdf0e10cSrcweir OD 2008-03-18 #refactorlists# - add output parameter <sListId> 1573*cdf0e10cSrcweir 1574*cdf0e10cSrcweir \param rPos position to start search 1575*cdf0e10cSrcweir \param bForward - sal_True: search forward 1576*cdf0e10cSrcweir - sal_False: search backward 1577*cdf0e10cSrcweir \param bNum - sal_True: search for enumeration 1578*cdf0e10cSrcweir - sal_False: search for itemize 1579*cdf0e10cSrcweir \param bOutline - sal_True: search for outline numbering rule 1580*cdf0e10cSrcweir - sal_False: search for non-outline numbering rule 1581*cdf0e10cSrcweir \param nNonEmptyAllowed number of non-empty paragraphs allowed between 1582*cdf0e10cSrcweir rPos and found paragraph 1583*cdf0e10cSrcweir 1584*cdf0e10cSrcweir @param sListId 1585*cdf0e10cSrcweir output parameter - in case a list style is found, <sListId> holds the 1586*cdf0e10cSrcweir list id, to which the text node belongs, which applies the found list style. 1587*cdf0e10cSrcweir 1588*cdf0e10cSrcweir @param bInvestigateStartNode 1589*cdf0e10cSrcweir input parameter - boolean, indicating, if start node, determined by given 1590*cdf0e10cSrcweir start position has to be investigated or not. 1591*cdf0e10cSrcweir */ 1592*cdf0e10cSrcweir const SwNumRule * SearchNumRule(const SwPosition & rPos, 1593*cdf0e10cSrcweir const bool bForward, 1594*cdf0e10cSrcweir const bool bNum, 1595*cdf0e10cSrcweir const bool bOutline, 1596*cdf0e10cSrcweir int nNonEmptyAllowed, 1597*cdf0e10cSrcweir String& sListId, 1598*cdf0e10cSrcweir const bool bInvestigateStartNode = false ); 1599*cdf0e10cSrcweir 1600*cdf0e10cSrcweir // Absaetze ohne Numerierung, aber mit Einzuegen 1601*cdf0e10cSrcweir sal_Bool NoNum( const SwPaM& ); 1602*cdf0e10cSrcweir // Loeschen, Splitten der Aufzaehlungsliste 1603*cdf0e10cSrcweir void DelNumRules( const SwPaM& ); 1604*cdf0e10cSrcweir 1605*cdf0e10cSrcweir // Invalidates all numrules 1606*cdf0e10cSrcweir void InvalidateNumRules(); 1607*cdf0e10cSrcweir 1608*cdf0e10cSrcweir // Hoch-/Runterstufen 1609*cdf0e10cSrcweir sal_Bool NumUpDown( const SwPaM&, sal_Bool bDown = sal_True ); 1610*cdf0e10cSrcweir // Bewegt selektierte Absaetze (nicht nur Numerierungen) 1611*cdf0e10cSrcweir // entsprechend des Offsets. (negativ: zum Doc-Anf.) 1612*cdf0e10cSrcweir sal_Bool MoveParagraph( const SwPaM&, long nOffset = 1, sal_Bool bIsOutlMv = sal_False ); 1613*cdf0e10cSrcweir // No-/Numerierung ueber Delete/Backspace ein/abschalten #115901# 1614*cdf0e10cSrcweir sal_Bool NumOrNoNum( const SwNodeIndex& rIdx, sal_Bool bDel = sal_False); 1615*cdf0e10cSrcweir // Animation der Grafiken stoppen 1616*cdf0e10cSrcweir void StopNumRuleAnimations( OutputDevice* ); 1617*cdf0e10cSrcweir 1618*cdf0e10cSrcweir // fuege eine neue Tabelle auf der Position rPos ein. (es 1619*cdf0e10cSrcweir // wird vor dem Node eingefuegt !!) 1620*cdf0e10cSrcweir //JP 28.10.96: 1621*cdf0e10cSrcweir // fuer AutoFormat bei der Eingabe: dann muessen die Spalten 1622*cdf0e10cSrcweir // auf die vordefinierten Breite gesetzt werden. Im Array stehen die 1623*cdf0e10cSrcweir // Positionen der Spalten!! (nicht deren Breite!) 1624*cdf0e10cSrcweir /* #109161# new parameter bCalledFromShell: 1625*cdf0e10cSrcweir 1626*cdf0e10cSrcweir sal_True: called from shell -> propagate existing adjust item at 1627*cdf0e10cSrcweir rPos to every new cell. A existing adjust item in the table 1628*cdf0e10cSrcweir heading or table contents paragraph style prevent that 1629*cdf0e10cSrcweir propagation. 1630*cdf0e10cSrcweir 1631*cdf0e10cSrcweir sal_False: do not propagate 1632*cdf0e10cSrcweir */ 1633*cdf0e10cSrcweir const SwTable* InsertTable( const SwInsertTableOptions& rInsTblOpts, // HEADLINE_NO_BORDER 1634*cdf0e10cSrcweir const SwPosition& rPos, sal_uInt16 nRows, 1635*cdf0e10cSrcweir sal_uInt16 nCols, short eAdjust, 1636*cdf0e10cSrcweir const SwTableAutoFmt* pTAFmt = 0, 1637*cdf0e10cSrcweir const SvUShorts* pColArr = 0, 1638*cdf0e10cSrcweir sal_Bool bCalledFromShell = sal_False, 1639*cdf0e10cSrcweir sal_Bool bNewModel = sal_True ); 1640*cdf0e10cSrcweir 1641*cdf0e10cSrcweir // steht der Index in einer Tabelle, dann returne den TableNode sonst 0 1642*cdf0e10cSrcweir SwTableNode* IsIdxInTbl( const SwNodeIndex& rIdx ); 1643*cdf0e10cSrcweir inline const SwTableNode* IsIdxInTbl( const SwNodeIndex& rIdx ) const; 1644*cdf0e10cSrcweir 1645*cdf0e10cSrcweir // erzeuge aus dem makierten Bereich eine ausgeglichene Tabelle 1646*cdf0e10cSrcweir const SwTable* TextToTable( const SwInsertTableOptions& rInsTblOpts, // HEADLINE_NO_BORDER, 1647*cdf0e10cSrcweir const SwPaM& rRange, sal_Unicode cCh, 1648*cdf0e10cSrcweir short eAdjust, 1649*cdf0e10cSrcweir const SwTableAutoFmt* = 0 ); 1650*cdf0e10cSrcweir // text to table conversion - API support 1651*cdf0e10cSrcweir const SwTable* TextToTable( const std::vector< std::vector<SwNodeRange> >& rTableNodes ); 1652*cdf0e10cSrcweir // erzeuge aus der Tabelle wieder normalen Text 1653*cdf0e10cSrcweir sal_Bool TableToText( const SwTableNode* pTblNd, sal_Unicode cCh ); 1654*cdf0e10cSrcweir // einfuegen von Spalten/Zeilen in der Tabelle 1655*cdf0e10cSrcweir sal_Bool InsertCol( const SwCursor& rCursor, 1656*cdf0e10cSrcweir sal_uInt16 nCnt = 1, sal_Bool bBehind = sal_True ); 1657*cdf0e10cSrcweir sal_Bool InsertCol( const SwSelBoxes& rBoxes, 1658*cdf0e10cSrcweir sal_uInt16 nCnt = 1, sal_Bool bBehind = sal_True ); 1659*cdf0e10cSrcweir sal_Bool InsertRow( const SwCursor& rCursor, 1660*cdf0e10cSrcweir sal_uInt16 nCnt = 1, sal_Bool bBehind = sal_True ); 1661*cdf0e10cSrcweir sal_Bool InsertRow( const SwSelBoxes& rBoxes, 1662*cdf0e10cSrcweir sal_uInt16 nCnt = 1, sal_Bool bBehind = sal_True ); 1663*cdf0e10cSrcweir // loeschen von Spalten/Zeilen in der Tabelle 1664*cdf0e10cSrcweir sal_Bool DeleteRowCol( const SwSelBoxes& rBoxes, bool bColumn = false ); 1665*cdf0e10cSrcweir sal_Bool DeleteRow( const SwCursor& rCursor ); 1666*cdf0e10cSrcweir sal_Bool DeleteCol( const SwCursor& rCursor ); 1667*cdf0e10cSrcweir // teilen / zusammenfassen von Boxen in der Tabelle 1668*cdf0e10cSrcweir sal_Bool SplitTbl( const SwSelBoxes& rBoxes, sal_Bool bVert = sal_True, 1669*cdf0e10cSrcweir sal_uInt16 nCnt = 1, sal_Bool bSameHeight = sal_False ); 1670*cdf0e10cSrcweir // returnt den enum TableMergeErr 1671*cdf0e10cSrcweir sal_uInt16 MergeTbl( SwPaM& rPam ); 1672*cdf0e10cSrcweir String GetUniqueTblName() const; 1673*cdf0e10cSrcweir sal_Bool IsInsTblFormatNum() const; 1674*cdf0e10cSrcweir sal_Bool IsInsTblChangeNumFormat() const; 1675*cdf0e10cSrcweir sal_Bool IsInsTblAlignNum() const; 1676*cdf0e10cSrcweir 1677*cdf0e10cSrcweir // aus der FEShell wg.. Undo und bModified 1678*cdf0e10cSrcweir void GetTabCols( SwTabCols &rFill, const SwCursor* pCrsr, 1679*cdf0e10cSrcweir const SwCellFrm* pBoxFrm = 0 ) const; 1680*cdf0e10cSrcweir void SetTabCols( const SwTabCols &rNew, sal_Bool bCurRowOnly, 1681*cdf0e10cSrcweir const SwCursor* pCrsr, const SwCellFrm* pBoxFrm = 0 ); 1682*cdf0e10cSrcweir void GetTabRows( SwTabCols &rFill, const SwCursor* pCrsr, 1683*cdf0e10cSrcweir const SwCellFrm* pBoxFrm = 0 ) const; 1684*cdf0e10cSrcweir void SetTabRows( const SwTabCols &rNew, sal_Bool bCurColOnly, const SwCursor* pCrsr, 1685*cdf0e10cSrcweir const SwCellFrm* pBoxFrm = 0 ); 1686*cdf0e10cSrcweir 1687*cdf0e10cSrcweir 1688*cdf0e10cSrcweir // Direktzugriff fuer Uno 1689*cdf0e10cSrcweir void SetTabCols(SwTable& rTab, const SwTabCols &rNew, const SwTabCols &rOld, 1690*cdf0e10cSrcweir const SwTableBox *pStart, sal_Bool bCurRowOnly); 1691*cdf0e10cSrcweir 1692*cdf0e10cSrcweir void SetRowsToRepeat( SwTable &rTable, sal_uInt16 nSet ); 1693*cdf0e10cSrcweir 1694*cdf0e10cSrcweir // AutoFormat fuer die Tabelle/TabellenSelection 1695*cdf0e10cSrcweir sal_Bool SetTableAutoFmt( const SwSelBoxes& rBoxes, const SwTableAutoFmt& rNew ); 1696*cdf0e10cSrcweir // Erfrage wie attributiert ist 1697*cdf0e10cSrcweir sal_Bool GetTableAutoFmt( const SwSelBoxes& rBoxes, SwTableAutoFmt& rGet ); 1698*cdf0e10cSrcweir // setze das InsertDB als Tabelle Undo auf: 1699*cdf0e10cSrcweir void AppendUndoForInsertFromDB( const SwPaM& rPam, sal_Bool bIsTable ); 1700*cdf0e10cSrcweir // setze die Spalten/Zeilen/ZTellen Breite/Hoehe 1701*cdf0e10cSrcweir sal_Bool SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType, 1702*cdf0e10cSrcweir SwTwips nAbsDiff, SwTwips nRelDiff ); 1703*cdf0e10cSrcweir SwTableBoxFmt* MakeTableBoxFmt(); 1704*cdf0e10cSrcweir SwTableLineFmt* MakeTableLineFmt(); 1705*cdf0e10cSrcweir // teste ob die Box ein numerischen Wert darstellt und aender dann ggfs. 1706*cdf0e10cSrcweir // das Format der Box 1707*cdf0e10cSrcweir void ChkBoxNumFmt( SwTableBox& rAktBox, sal_Bool bCallUpdate ); 1708*cdf0e10cSrcweir void SetTblBoxFormulaAttrs( SwTableBox& rBox, const SfxItemSet& rSet ); 1709*cdf0e10cSrcweir void ClearBoxNumAttrs( const SwNodeIndex& rNode ); 1710*cdf0e10cSrcweir 1711*cdf0e10cSrcweir sal_Bool InsCopyOfTbl( SwPosition& rInsPos, const SwSelBoxes& rBoxes, 1712*cdf0e10cSrcweir const SwTable* pCpyTbl = 0, sal_Bool bCpyName = sal_False, 1713*cdf0e10cSrcweir sal_Bool bCorrPos = sal_False ); 1714*cdf0e10cSrcweir 1715*cdf0e10cSrcweir sal_Bool UnProtectCells( const String& rTblName ); 1716*cdf0e10cSrcweir sal_Bool UnProtectCells( const SwSelBoxes& rBoxes ); 1717*cdf0e10cSrcweir sal_Bool UnProtectTbls( const SwPaM& rPam ); 1718*cdf0e10cSrcweir sal_Bool HasTblAnyProtection( const SwPosition* pPos, 1719*cdf0e10cSrcweir const String* pTblName = 0, 1720*cdf0e10cSrcweir sal_Bool* pFullTblProtection = 0 ); 1721*cdf0e10cSrcweir 1722*cdf0e10cSrcweir // Tabelle an der Position in der GrundLine aufsplitten, sprich eine 1723*cdf0e10cSrcweir // neue Tabelle erzeugen. 1724*cdf0e10cSrcweir sal_Bool SplitTable( const SwPosition& rPos, sal_uInt16 eMode = 0, 1725*cdf0e10cSrcweir sal_Bool bCalcNewSize = sal_False ); 1726*cdf0e10cSrcweir // und die Umkehrung davon. rPos muss in der Tabelle stehen, die bestehen 1727*cdf0e10cSrcweir // bleibt. Das Flag besagt ob die aktuelle mit der davor oder dahinter 1728*cdf0e10cSrcweir // stehenden vereint wird. 1729*cdf0e10cSrcweir sal_Bool MergeTable( const SwPosition& rPos, sal_Bool bWithPrev = sal_True, 1730*cdf0e10cSrcweir sal_uInt16 nMode = 0 ); 1731*cdf0e10cSrcweir 1732*cdf0e10cSrcweir // Charts der angegebenen Tabelle zum Update bewegen 1733*cdf0e10cSrcweir void UpdateCharts( const String &rName ) const; 1734*cdf0e10cSrcweir // update all charts, for that exists any table 1735*cdf0e10cSrcweir void UpdateAllCharts() { DoUpdateAllCharts( 0 ); } 1736*cdf0e10cSrcweir // Tabelle wird umbenannt und aktualisiert die Charts 1737*cdf0e10cSrcweir void SetTableName( SwFrmFmt& rTblFmt, const String &rNewName ); 1738*cdf0e10cSrcweir 1739*cdf0e10cSrcweir // returne zum Namen die im Doc gesetzte Referenz 1740*cdf0e10cSrcweir const SwFmtRefMark* GetRefMark( const String& rName ) const; 1741*cdf0e10cSrcweir // returne die RefMark per Index - fuer Uno 1742*cdf0e10cSrcweir const SwFmtRefMark* GetRefMark( sal_uInt16 nIndex ) const; 1743*cdf0e10cSrcweir // returne die Namen aller im Doc gesetzten Referenzen. 1744*cdf0e10cSrcweir // Ist der ArrayPointer 0 dann returne nur, ob im Doc. eine RefMark 1745*cdf0e10cSrcweir // gesetzt ist 1746*cdf0e10cSrcweir sal_uInt16 GetRefMarks( SvStringsDtor* = 0 ) const; 1747*cdf0e10cSrcweir 1748*cdf0e10cSrcweir //Einfuegen einer Beschriftung - falls ein FlyFormat erzeugt wird, so 1749*cdf0e10cSrcweir // returne dieses. 1750*cdf0e10cSrcweir SwFlyFrmFmt* InsertLabel( const SwLabelType eType, const String &rTxt, const String& rSeparator, 1751*cdf0e10cSrcweir const String& rNumberingSeparator, 1752*cdf0e10cSrcweir const sal_Bool bBefore, const sal_uInt16 nId, const sal_uLong nIdx, 1753*cdf0e10cSrcweir const String& rCharacterStyle, 1754*cdf0e10cSrcweir const sal_Bool bCpyBrd = sal_True ); 1755*cdf0e10cSrcweir SwFlyFrmFmt* InsertDrawLabel( 1756*cdf0e10cSrcweir const String &rTxt, const String& rSeparator, const String& rNumberSeparator, 1757*cdf0e10cSrcweir const sal_uInt16 nId, const String& rCharacterStyle, SdrObject& rObj ); 1758*cdf0e10cSrcweir 1759*cdf0e10cSrcweir // erfrage den Attribut Pool 1760*cdf0e10cSrcweir const SwAttrPool& GetAttrPool() const { return *mpAttrPool; } 1761*cdf0e10cSrcweir SwAttrPool& GetAttrPool() { return *mpAttrPool; } 1762*cdf0e10cSrcweir 1763*cdf0e10cSrcweir // suche ueber das Layout eine EditShell und ggfs. eine ViewShell 1764*cdf0e10cSrcweir SwEditShell* GetEditShell( ViewShell** ppSh = 0 ) const; 1765*cdf0e10cSrcweir ::sw::IShellCursorSupplier * GetIShellCursorSupplier(); 1766*cdf0e10cSrcweir 1767*cdf0e10cSrcweir // OLE 2.0-Benachrichtung 1768*cdf0e10cSrcweir inline void SetOle2Link(const Link& rLink) {aOle2Link = rLink;} 1769*cdf0e10cSrcweir inline const Link& GetOle2Link() const {return aOle2Link;} 1770*cdf0e10cSrcweir 1771*cdf0e10cSrcweir // insert section (the ODF kind of section, not the nodesarray kind) 1772*cdf0e10cSrcweir SwSection * InsertSwSection(SwPaM const& rRange, SwSectionData &, 1773*cdf0e10cSrcweir SwTOXBase const*const pTOXBase = 0, 1774*cdf0e10cSrcweir SfxItemSet const*const pAttr = 0, bool const bUpdate = true); 1775*cdf0e10cSrcweir sal_uInt16 IsInsRegionAvailable( const SwPaM& rRange, 1776*cdf0e10cSrcweir const SwNode** ppSttNd = 0 ) const; 1777*cdf0e10cSrcweir SwSection* GetCurrSection( const SwPosition& rPos ) const; 1778*cdf0e10cSrcweir SwSectionFmts& GetSections() { return *pSectionFmtTbl; } 1779*cdf0e10cSrcweir const SwSectionFmts& GetSections() const { return *pSectionFmtTbl; } 1780*cdf0e10cSrcweir SwSectionFmt *MakeSectionFmt( SwSectionFmt *pDerivedFrom ); 1781*cdf0e10cSrcweir void DelSectionFmt( SwSectionFmt *pFmt, sal_Bool bDelNodes = sal_False ); 1782*cdf0e10cSrcweir void UpdateSection(sal_uInt16 const nSect, SwSectionData &, 1783*cdf0e10cSrcweir SfxItemSet const*const = 0, bool const bPreventLinkUpdate = false); 1784*cdf0e10cSrcweir String GetUniqueSectionName( const String* pChkStr = 0 ) const; 1785*cdf0e10cSrcweir 1786*cdf0e10cSrcweir /* @@@MAINTAINABILITY-HORROR@@@ 1787*cdf0e10cSrcweir The model should not have anything to do with a shell. 1788*cdf0e10cSrcweir Unnecessary compile/link time dependency. 1789*cdf0e10cSrcweir */ 1790*cdf0e10cSrcweir // Pointer auf die SfxDocShell vom Doc, kann 0 sein !!! 1791*cdf0e10cSrcweir SwDocShell* GetDocShell() { return pDocShell; } 1792*cdf0e10cSrcweir const SwDocShell* GetDocShell() const { return pDocShell; } 1793*cdf0e10cSrcweir void SetDocShell( SwDocShell* pDSh ); 1794*cdf0e10cSrcweir 1795*cdf0e10cSrcweir // in case during copying of embedded object a new shell is created, 1796*cdf0e10cSrcweir // it should be set here and cleaned later 1797*cdf0e10cSrcweir void SetTmpDocShell( SfxObjectShellLock rLock ) { xTmpDocShell = rLock; } 1798*cdf0e10cSrcweir SfxObjectShellLock GetTmpDocShell() { return xTmpDocShell; } 1799*cdf0e10cSrcweir 1800*cdf0e10cSrcweir // fuer die TextBausteine - diese habe nur ein SvPersist zur 1801*cdf0e10cSrcweir // Verfuegung 1802*cdf0e10cSrcweir SfxObjectShell* GetPersist() const; 1803*cdf0e10cSrcweir 1804*cdf0e10cSrcweir // Pointer auf den Storage des SfxDocShells, kann 0 sein !!! 1805*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > GetDocStorage(); 1806*cdf0e10cSrcweir 1807*cdf0e10cSrcweir // abfrage/setze Flag, ob das Dokument im asynchronen Laden ist 1808*cdf0e10cSrcweir bool IsInLoadAsynchron() const { return mbInLoadAsynchron; } 1809*cdf0e10cSrcweir void SetInLoadAsynchron( bool bFlag ) { mbInLoadAsynchron = bFlag; } 1810*cdf0e10cSrcweir 1811*cdf0e10cSrcweir // erzeuge um das zu Servende Object eine Selektion 1812*cdf0e10cSrcweir sal_Bool SelectServerObj( const String& rStr, SwPaM*& rpPam, 1813*cdf0e10cSrcweir SwNodeRange*& rpRange ) const; 1814*cdf0e10cSrcweir 1815*cdf0e10cSrcweir // fuer Drag&Move: ( z.B. RefMarks "verschieben" erlauben ) 1816*cdf0e10cSrcweir bool IsCopyIsMove() const { return mbCopyIsMove; } 1817*cdf0e10cSrcweir void SetCopyIsMove( bool bFlag ) { mbCopyIsMove = bFlag; } 1818*cdf0e10cSrcweir 1819*cdf0e10cSrcweir SwDrawContact* GroupSelection( SdrView& ); 1820*cdf0e10cSrcweir void UnGroupSelection( SdrView& ); 1821*cdf0e10cSrcweir sal_Bool DeleteSelection( SwDrawView& ); 1822*cdf0e10cSrcweir 1823*cdf0e10cSrcweir // Invalidiert OnlineSpell-WrongListen 1824*cdf0e10cSrcweir void SpellItAgainSam( sal_Bool bInvalid, sal_Bool bOnlyWrong, sal_Bool bSmartTags ); 1825*cdf0e10cSrcweir void InvalidateAutoCompleteFlag(); 1826*cdf0e10cSrcweir 1827*cdf0e10cSrcweir // <-- 1828*cdf0e10cSrcweir void SetCalcFieldValueHdl(Outliner* pOutliner); 1829*cdf0e10cSrcweir 1830*cdf0e10cSrcweir // erfrage ob die ::com::sun::star::util::URL besucht war. Uebers Doc, falls nur ein ::com::sun::star::text::Bookmark 1831*cdf0e10cSrcweir // angegeben ist. Dann muss der Doc. Name davor gesetzt werden! 1832*cdf0e10cSrcweir sal_Bool IsVisitedURL( const String& rURL ) const; 1833*cdf0e10cSrcweir 1834*cdf0e10cSrcweir // speicher die akt. Werte fuer die automatische Aufnahme von Ausnahmen 1835*cdf0e10cSrcweir // in die Autokorrektur 1836*cdf0e10cSrcweir void SetAutoCorrExceptWord( SwAutoCorrExceptWord* pNew ); 1837*cdf0e10cSrcweir SwAutoCorrExceptWord* GetAutoCorrExceptWord() { return pACEWord; } 1838*cdf0e10cSrcweir 1839*cdf0e10cSrcweir const SwFmtINetFmt* FindINetAttr( const String& rName ) const; 1840*cdf0e10cSrcweir 1841*cdf0e10cSrcweir // rufe ins dunkle Basic, mit evt. Return String 1842*cdf0e10cSrcweir sal_Bool ExecMacro( const SvxMacro& rMacro, String* pRet = 0, SbxArray* pArgs = 0 ); 1843*cdf0e10cSrcweir // rufe ins dunkle Basic/JavaScript 1844*cdf0e10cSrcweir sal_uInt16 CallEvent( sal_uInt16 nEvent, const SwCallMouseEvent& rCallEvent, 1845*cdf0e10cSrcweir sal_Bool bChkPtr = sal_False, SbxArray* pArgs = 0, 1846*cdf0e10cSrcweir const Link* pCallBack = 0 ); 1847*cdf0e10cSrcweir 1848*cdf0e10cSrcweir // linken Rand ueber Objectleiste einstellen (aenhlich dem Stufen von 1849*cdf0e10cSrcweir // Numerierungen), optional kann man "um" den Offset stufen oder "auf" 1850*cdf0e10cSrcweir // die Position gestuft werden (bModulus = sal_True) 1851*cdf0e10cSrcweir void MoveLeftMargin( const SwPaM& rPam, sal_Bool bRight = sal_True, 1852*cdf0e10cSrcweir sal_Bool bModulus = sal_True ); 1853*cdf0e10cSrcweir 1854*cdf0e10cSrcweir // Numberformatter erfragen 1855*cdf0e10cSrcweir inline SvNumberFormatter* GetNumberFormatter( sal_Bool bCreate = sal_True ); 1856*cdf0e10cSrcweir inline const SvNumberFormatter* GetNumberFormatter( sal_Bool bCreate = sal_True ) const; 1857*cdf0e10cSrcweir 1858*cdf0e10cSrcweir bool HasInvisibleContent() const; 1859*cdf0e10cSrcweir /// delete invisible content, like hidden sections and paragraphs 1860*cdf0e10cSrcweir bool RemoveInvisibleContent(); 1861*cdf0e10cSrcweir /// restore the invisible content if it's available on the undo stack 1862*cdf0e10cSrcweir bool RestoreInvisibleContent(); 1863*cdf0e10cSrcweir // replace fields by text - mailmerge support 1864*cdf0e10cSrcweir sal_Bool ConvertFieldsToText(); 1865*cdf0e10cSrcweir 1866*cdf0e10cSrcweir // erzeuge Anhand der vorgebenen Collection Teildokumente 1867*cdf0e10cSrcweir // falls keine angegeben ist, nehme die Kapitelvorlage der 1. Ebene 1868*cdf0e10cSrcweir sal_Bool GenerateGlobalDoc( const String& rPath, 1869*cdf0e10cSrcweir const SwTxtFmtColl* pSplitColl = 0 ); 1870*cdf0e10cSrcweir sal_Bool GenerateGlobalDoc( const String& rPath, int nOutlineLevel = 0 ); //#outline level,add by zhaojianwei 1871*cdf0e10cSrcweir sal_Bool GenerateHTMLDoc( const String& rPath, 1872*cdf0e10cSrcweir const SwTxtFmtColl* pSplitColl = 0 ); 1873*cdf0e10cSrcweir sal_Bool GenerateHTMLDoc( const String& rPath, int nOutlineLevel = 0 ); //#outline level,add by zhaojianwei 1874*cdf0e10cSrcweir 1875*cdf0e10cSrcweir // vergleiche zwei Dokument miteinander 1876*cdf0e10cSrcweir long CompareDoc( const SwDoc& rDoc ); 1877*cdf0e10cSrcweir // merge zweier Dokumente 1878*cdf0e10cSrcweir long MergeDoc( const SwDoc& rDoc ); 1879*cdf0e10cSrcweir // setze Kommentar-Text fuers Redline, das dann per AppendRedline 1880*cdf0e10cSrcweir // hereinkommt. Wird vom Autoformat benutzt. 0-Pointer setzt den Modus 1881*cdf0e10cSrcweir // wieder zurueck. Die SequenceNummer ist fuers UI-seitige zusammen- 1882*cdf0e10cSrcweir // fassen von Redlines. 1883*cdf0e10cSrcweir void SetAutoFmtRedlineComment( const String* pTxt, sal_uInt16 nSeqNo = 0 ); 1884*cdf0e10cSrcweir 1885*cdf0e10cSrcweir bool IsAutoFmtRedline() const { return mbIsAutoFmtRedline; } 1886*cdf0e10cSrcweir void SetAutoFmtRedline( bool bFlag ) { mbIsAutoFmtRedline = bFlag; } 1887*cdf0e10cSrcweir 1888*cdf0e10cSrcweir // fuer AutoFormat: mit Undo/Redlining - Behandlung 1889*cdf0e10cSrcweir void SetTxtFmtCollByAutoFmt( const SwPosition& rPos, sal_uInt16 nPoolId, 1890*cdf0e10cSrcweir const SfxItemSet* pSet = 0 ); 1891*cdf0e10cSrcweir void SetFmtItemByAutoFmt( const SwPaM& rPam, const SfxItemSet& ); 1892*cdf0e10cSrcweir 1893*cdf0e10cSrcweir // !!!NUR fuer die SW-Textblocks!! beachtet kein LAYOUT!!! 1894*cdf0e10cSrcweir void ClearDoc(); // loescht den gesamten Inhalt. 1895*cdf0e10cSrcweir 1896*cdf0e10cSrcweir // erfrage / setze die Daten fuer die PagePreView 1897*cdf0e10cSrcweir const SwPagePreViewPrtData* GetPreViewPrtData() const { return pPgPViewPrtData; } 1898*cdf0e10cSrcweir // wenn der Pointer == 0 ist, dann wird im Doc der Pointer zerstoert, 1899*cdf0e10cSrcweir // ansonsten wird das Object kopiert. 1900*cdf0e10cSrcweir // Der Pointer geht NICHT in den Besitz des Doc's!! 1901*cdf0e10cSrcweir void SetPreViewPrtData( const SwPagePreViewPrtData* pData ); 1902*cdf0e10cSrcweir 1903*cdf0e10cSrcweir // update all modified OLE-Objects. The modification is called over the 1904*cdf0e10cSrcweir // StarOne - Interface --> Bug 67026 1905*cdf0e10cSrcweir void SetOLEObjModified() 1906*cdf0e10cSrcweir { if( GetCurrentViewShell() ) aOLEModifiedTimer.Start(); } //swmod 071107//swmod 071225 1907*cdf0e10cSrcweir 1908*cdf0e10cSrcweir // -------------------- Uno - Schnittstellen --------------------------- 1909*cdf0e10cSrcweir const SwUnoCrsrTbl& GetUnoCrsrTbl() const { return *pUnoCrsrTbl; } 1910*cdf0e10cSrcweir SwUnoCrsr* CreateUnoCrsr( const SwPosition& rPos, sal_Bool bTblCrsr = sal_False ); 1911*cdf0e10cSrcweir // -------------------- Uno - Schnittstellen --------------------------- 1912*cdf0e10cSrcweir 1913*cdf0e10cSrcweir // -------------------- FeShell - Schnittstellen ----------------------- 1914*cdf0e10cSrcweir // !!!!! diese gehen immer davon aus, das ein Layout existiert !!!! 1915*cdf0e10cSrcweir sal_Bool ChgAnchor( const SdrMarkList& _rMrkList, 1916*cdf0e10cSrcweir RndStdIds _eAnchorType, 1917*cdf0e10cSrcweir const sal_Bool _bSameOnly, 1918*cdf0e10cSrcweir const sal_Bool _bPosCorr ); 1919*cdf0e10cSrcweir 1920*cdf0e10cSrcweir void SetRowHeight( const SwCursor& rCursor, const SwFmtFrmSize &rNew ); 1921*cdf0e10cSrcweir void GetRowHeight( const SwCursor& rCursor, SwFmtFrmSize *& rpSz ) const; 1922*cdf0e10cSrcweir void SetRowSplit( const SwCursor& rCursor, const SwFmtRowSplit &rNew ); 1923*cdf0e10cSrcweir void GetRowSplit( const SwCursor& rCursor, SwFmtRowSplit *& rpSz ) const; 1924*cdf0e10cSrcweir sal_Bool BalanceRowHeight( const SwCursor& rCursor, sal_Bool bTstOnly = sal_True ); 1925*cdf0e10cSrcweir void SetRowBackground( const SwCursor& rCursor, const SvxBrushItem &rNew ); 1926*cdf0e10cSrcweir sal_Bool GetRowBackground( const SwCursor& rCursor, SvxBrushItem &rToFill ) const; 1927*cdf0e10cSrcweir void SetTabBorders( const SwCursor& rCursor, const SfxItemSet& rSet ); 1928*cdf0e10cSrcweir void SetTabLineStyle( const SwCursor& rCursor, 1929*cdf0e10cSrcweir const Color* pColor, sal_Bool bSetLine, 1930*cdf0e10cSrcweir const SvxBorderLine* pBorderLine ); 1931*cdf0e10cSrcweir void GetTabBorders( const SwCursor& rCursor, SfxItemSet& rSet ) const; 1932*cdf0e10cSrcweir void SetBoxAttr( const SwCursor& rCursor, const SfxPoolItem &rNew ); 1933*cdf0e10cSrcweir sal_Bool GetBoxAttr( const SwCursor& rCursor, SfxPoolItem &rToFill ) const; 1934*cdf0e10cSrcweir void SetBoxAlign( const SwCursor& rCursor, sal_uInt16 nAlign ); 1935*cdf0e10cSrcweir sal_uInt16 GetBoxAlign( const SwCursor& rCursor ) const; 1936*cdf0e10cSrcweir void AdjustCellWidth( const SwCursor& rCursor, sal_Bool bBalance = sal_False ); 1937*cdf0e10cSrcweir 1938*cdf0e10cSrcweir int Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest ); 1939*cdf0e10cSrcweir int Chain( SwFrmFmt &rSource, const SwFrmFmt &rDest ); 1940*cdf0e10cSrcweir void Unchain( SwFrmFmt &rFmt ); 1941*cdf0e10cSrcweir 1942*cdf0e10cSrcweir // fuers Copy/Move aus der FrmShell 1943*cdf0e10cSrcweir SdrObject* CloneSdrObj( const SdrObject&, sal_Bool bMoveWithinDoc = sal_False, 1944*cdf0e10cSrcweir sal_Bool bInsInPage = sal_True ); 1945*cdf0e10cSrcweir 1946*cdf0e10cSrcweir // 1947*cdf0e10cSrcweir // -------------------- FeShell - Schnittstellen Ende ------------------ 1948*cdf0e10cSrcweir 1949*cdf0e10cSrcweir 1950*cdf0e10cSrcweir // Schnittstelle fuer die TextInputDaten - ( fuer die Texteingabe 1951*cdf0e10cSrcweir // von japanischen/chinesischen Zeichen) 1952*cdf0e10cSrcweir SwExtTextInput* CreateExtTextInput( const SwPaM& rPam ); 1953*cdf0e10cSrcweir void DeleteExtTextInput( SwExtTextInput* pDel ); 1954*cdf0e10cSrcweir SwExtTextInput* GetExtTextInput( const SwNode& rNd, 1955*cdf0e10cSrcweir xub_StrLen nCntntPos = STRING_NOTFOUND) const; 1956*cdf0e10cSrcweir SwExtTextInput* GetExtTextInput() const; 1957*cdf0e10cSrcweir 1958*cdf0e10cSrcweir // Schnistelle fuer den Zugriff auf die AutoComplete-Liste 1959*cdf0e10cSrcweir static SwAutoCompleteWord& GetAutoCompleteWords() { return *pACmpltWords; } 1960*cdf0e10cSrcweir 1961*cdf0e10cSrcweir bool ContainsMSVBasic() const { return mbContains_MSVBasic; } 1962*cdf0e10cSrcweir void SetContainsMSVBasic( bool bFlag ) { mbContains_MSVBasic = bFlag; } 1963*cdf0e10cSrcweir 1964*cdf0e10cSrcweir // Interface for the list of Ruby - texts/attributes 1965*cdf0e10cSrcweir sal_uInt16 FillRubyList( const SwPaM& rPam, SwRubyList& rList, 1966*cdf0e10cSrcweir sal_uInt16 nMode ); 1967*cdf0e10cSrcweir sal_uInt16 SetRubyList( const SwPaM& rPam, const SwRubyList& rList, 1968*cdf0e10cSrcweir sal_uInt16 nMode ); 1969*cdf0e10cSrcweir 1970*cdf0e10cSrcweir void ReadLayoutCache( SvStream& rStream ); 1971*cdf0e10cSrcweir void WriteLayoutCache( SvStream& rStream ); 1972*cdf0e10cSrcweir SwLayoutCache* GetLayoutCache() const { return pLayoutCache; } 1973*cdf0e10cSrcweir 1974*cdf0e10cSrcweir /** Checks if any of the text node contains hidden characters. 1975*cdf0e10cSrcweir Used for optimization. Changing the view option 'view hidden text' 1976*cdf0e10cSrcweir has to trigger a reformatting only if some of the text is hidden. 1977*cdf0e10cSrcweir */ 1978*cdf0e10cSrcweir bool ContainsHiddenChars() const; 1979*cdf0e10cSrcweir 1980*cdf0e10cSrcweir // call back for API wrapper 1981*cdf0e10cSrcweir SwModify* GetUnoCallBack() const; 1982*cdf0e10cSrcweir 1983*cdf0e10cSrcweir IGrammarContact* getGrammarContact() const { return mpGrammarContact; } 1984*cdf0e10cSrcweir 1985*cdf0e10cSrcweir // -> #i27615# 1986*cdf0e10cSrcweir /** Marks/Unmarks a list level of a certain list 1987*cdf0e10cSrcweir 1988*cdf0e10cSrcweir OD 2008-04-02 #refactorlists# 1989*cdf0e10cSrcweir levels of a certain lists are marked now 1990*cdf0e10cSrcweir 1991*cdf0e10cSrcweir @param sListId list Id of the list whose level has to be marked/unmarked 1992*cdf0e10cSrcweir @param nListLevel level to mark 1993*cdf0e10cSrcweir @param bValue - sal_True mark the level 1994*cdf0e10cSrcweir - sal_False unmark the level 1995*cdf0e10cSrcweir */ 1996*cdf0e10cSrcweir void MarkListLevel( const String& sListId, 1997*cdf0e10cSrcweir const int nListLevel, 1998*cdf0e10cSrcweir const sal_Bool bValue ); 1999*cdf0e10cSrcweir 2000*cdf0e10cSrcweir /** Marks/Unmarks a list level of a certain list 2001*cdf0e10cSrcweir 2002*cdf0e10cSrcweir OD 2008-04-02 #refactorlists# 2003*cdf0e10cSrcweir levels of a certain lists are marked now 2004*cdf0e10cSrcweir 2005*cdf0e10cSrcweir @param rList list whose level has to be marked/unmarked 2006*cdf0e10cSrcweir @param nListLevel level to mark 2007*cdf0e10cSrcweir @param bValue - sal_True mark the level 2008*cdf0e10cSrcweir - sal_False unmark the level 2009*cdf0e10cSrcweir */ 2010*cdf0e10cSrcweir void MarkListLevel( SwList& rList, 2011*cdf0e10cSrcweir const int nListLevel, 2012*cdf0e10cSrcweir const sal_Bool bValue ); 2013*cdf0e10cSrcweir // <- #i27615# 2014*cdf0e10cSrcweir 2015*cdf0e10cSrcweir // Change a format undoable. 2016*cdf0e10cSrcweir void ChgFmt(SwFmt & rFmt, const SfxItemSet & rSet); 2017*cdf0e10cSrcweir 2018*cdf0e10cSrcweir void RenameFmt(SwFmt & rFmt, const String & sNewName, 2019*cdf0e10cSrcweir sal_Bool bBroadcast = sal_False); 2020*cdf0e10cSrcweir 2021*cdf0e10cSrcweir // Change a TOX undoable. 2022*cdf0e10cSrcweir void ChgTOX(SwTOXBase & rTOX, const SwTOXBase & rNew); 2023*cdf0e10cSrcweir 2024*cdf0e10cSrcweir // #111827# 2025*cdf0e10cSrcweir /** 2026*cdf0e10cSrcweir Returns a textual description of a PaM. 2027*cdf0e10cSrcweir 2028*cdf0e10cSrcweir @param rPaM the PaM to describe 2029*cdf0e10cSrcweir 2030*cdf0e10cSrcweir If rPaM only spans one paragraph the result is: 2031*cdf0e10cSrcweir 2032*cdf0e10cSrcweir '<text in the PaM>' 2033*cdf0e10cSrcweir 2034*cdf0e10cSrcweir <text in the PaM> is shortened to nUndoStringLength characters. 2035*cdf0e10cSrcweir 2036*cdf0e10cSrcweir If rPaM spans more than one paragraph the result is: 2037*cdf0e10cSrcweir 2038*cdf0e10cSrcweir paragraphs (STR_PARAGRAPHS) 2039*cdf0e10cSrcweir 2040*cdf0e10cSrcweir @return the textual description of rPaM 2041*cdf0e10cSrcweir */ 2042*cdf0e10cSrcweir String GetPaMDescr(const SwPaM & rPaM) const; 2043*cdf0e10cSrcweir 2044*cdf0e10cSrcweir // -> #i23726# 2045*cdf0e10cSrcweir sal_Bool IsFirstOfNumRule(SwPosition & rPos); 2046*cdf0e10cSrcweir // <- #i23726# 2047*cdf0e10cSrcweir 2048*cdf0e10cSrcweir // --> #i31958# access methods for XForms model(s) 2049*cdf0e10cSrcweir 2050*cdf0e10cSrcweir /// access container for XForms model; will be NULL if !isXForms() 2051*cdf0e10cSrcweir com::sun::star::uno::Reference<com::sun::star::container::XNameContainer> 2052*cdf0e10cSrcweir getXForms() const; 2053*cdf0e10cSrcweir 2054*cdf0e10cSrcweir com::sun::star::uno::Reference< com::sun::star::linguistic2::XProofreadingIterator > GetGCIterator() const; 2055*cdf0e10cSrcweir 2056*cdf0e10cSrcweir /// is this an XForms document? 2057*cdf0e10cSrcweir bool isXForms() const; 2058*cdf0e10cSrcweir 2059*cdf0e10cSrcweir /// initialize XForms models; turn this into an XForms document 2060*cdf0e10cSrcweir void initXForms( bool bCreateDefaultModel ); 2061*cdf0e10cSrcweir // <-- #i31958# access methods for XForms model(s) 2062*cdf0e10cSrcweir 2063*cdf0e10cSrcweir // --> OD 2006-03-21 #b6375613# 2064*cdf0e10cSrcweir inline bool ApplyWorkaroundForB6375613() const 2065*cdf0e10cSrcweir { 2066*cdf0e10cSrcweir return mbApplyWorkaroundForB6375613; 2067*cdf0e10cSrcweir } 2068*cdf0e10cSrcweir void SetApplyWorkaroundForB6375613( bool p_bApplyWorkaroundForB6375613 ); 2069*cdf0e10cSrcweir // <-- 2070*cdf0e10cSrcweir 2071*cdf0e10cSrcweir //Update all the page masters 2072*cdf0e10cSrcweir void SetDefaultPageMode(bool bSquaredPageMode); 2073*cdf0e10cSrcweir sal_Bool IsSquaredPageMode() const; 2074*cdf0e10cSrcweir 2075*cdf0e10cSrcweir // i#78591# 2076*cdf0e10cSrcweir void Setn32DummyCompatabilityOptions1( sal_uInt32 CompatabilityOptions1 ) 2077*cdf0e10cSrcweir { 2078*cdf0e10cSrcweir n32DummyCompatabilityOptions1 = CompatabilityOptions1; 2079*cdf0e10cSrcweir } 2080*cdf0e10cSrcweir sal_uInt32 Getn32DummyCompatabilityOptions1( ) 2081*cdf0e10cSrcweir { 2082*cdf0e10cSrcweir return n32DummyCompatabilityOptions1; 2083*cdf0e10cSrcweir } 2084*cdf0e10cSrcweir void Setn32DummyCompatabilityOptions2( sal_uInt32 CompatabilityOptions2 ) 2085*cdf0e10cSrcweir { 2086*cdf0e10cSrcweir n32DummyCompatabilityOptions2 = CompatabilityOptions2; 2087*cdf0e10cSrcweir } 2088*cdf0e10cSrcweir sal_uInt32 Getn32DummyCompatabilityOptions2( ) 2089*cdf0e10cSrcweir { 2090*cdf0e10cSrcweir return n32DummyCompatabilityOptions2; 2091*cdf0e10cSrcweir } 2092*cdf0e10cSrcweir #ifdef FUTURE_VBA 2093*cdf0e10cSrcweir com::sun::star::uno::Reference< com::sun::star::script::vba::XVBAEventProcessor > GetVbaEventProcessor(); 2094*cdf0e10cSrcweir #endif 2095*cdf0e10cSrcweir ::sfx2::IXmlIdRegistry& GetXmlIdRegistry(); 2096*cdf0e10cSrcweir ::sw::MetaFieldManager & GetMetaFieldManager(); 2097*cdf0e10cSrcweir ::sw::UndoManager & GetUndoManager(); 2098*cdf0e10cSrcweir ::sw::UndoManager const& GetUndoManager() const; 2099*cdf0e10cSrcweir SfxObjectShell* CreateCopy(bool bCallInitNew) const; 2100*cdf0e10cSrcweir 2101*cdf0e10cSrcweir /// must be called only in SwDocShell::InitNew, causes UpdateDrawDefaults to be called when drawing layer is created 2102*cdf0e10cSrcweir void SetDrawDefaults(); 2103*cdf0e10cSrcweir 2104*cdf0e10cSrcweir private: 2105*cdf0e10cSrcweir /// method to set new graphics pool defaults, must only be called by SetDrawDefaults! 2106*cdf0e10cSrcweir void UpdateDrawDefaults(); 2107*cdf0e10cSrcweir }; 2108*cdf0e10cSrcweir 2109*cdf0e10cSrcweir 2110*cdf0e10cSrcweir // Diese Methode wird im Dtor vom SwDoc gerufen und loescht den Cache 2111*cdf0e10cSrcweir // der Konturobjekte 2112*cdf0e10cSrcweir void ClrContourCache(); 2113*cdf0e10cSrcweir 2114*cdf0e10cSrcweir 2115*cdf0e10cSrcweir //------------------ inline impl. --------------------------------- 2116*cdf0e10cSrcweir 2117*cdf0e10cSrcweir inline const SwTableNode* SwDoc::IsIdxInTbl( const SwNodeIndex& rIdx ) const 2118*cdf0e10cSrcweir { 2119*cdf0e10cSrcweir return ((SwDoc*)this)->IsIdxInTbl( rIdx ); 2120*cdf0e10cSrcweir } 2121*cdf0e10cSrcweir 2122*cdf0e10cSrcweir inline SvNumberFormatter* SwDoc::GetNumberFormatter( sal_Bool bCreate ) 2123*cdf0e10cSrcweir { 2124*cdf0e10cSrcweir if( bCreate && !pNumberFormatter ) 2125*cdf0e10cSrcweir _CreateNumberFormatter(); 2126*cdf0e10cSrcweir return pNumberFormatter; 2127*cdf0e10cSrcweir } 2128*cdf0e10cSrcweir 2129*cdf0e10cSrcweir inline const SvNumberFormatter* SwDoc::GetNumberFormatter( sal_Bool bCreate ) const 2130*cdf0e10cSrcweir { 2131*cdf0e10cSrcweir return ((SwDoc*)this)->GetNumberFormatter( bCreate ); 2132*cdf0e10cSrcweir } 2133*cdf0e10cSrcweir 2134*cdf0e10cSrcweir inline void SwDoc::SetOLEPrtNotifyPending( bool bSet ) 2135*cdf0e10cSrcweir { 2136*cdf0e10cSrcweir mbOLEPrtNotifyPending = bSet; 2137*cdf0e10cSrcweir if( !bSet ) 2138*cdf0e10cSrcweir mbAllOLENotify = sal_False; 2139*cdf0e10cSrcweir } 2140*cdf0e10cSrcweir 2141*cdf0e10cSrcweir // --> OD 2006-03-14 #i62875# 2142*cdf0e10cSrcweir // namespace <docfunc> for functions and procedures working on a Writer document. 2143*cdf0e10cSrcweir namespace docfunc 2144*cdf0e10cSrcweir { 2145*cdf0e10cSrcweir /** method to check, if given Writer document contains at least one drawing object 2146*cdf0e10cSrcweir 2147*cdf0e10cSrcweir OD 2006-03-17 #i62875# 2148*cdf0e10cSrcweir 2149*cdf0e10cSrcweir @author OD 2150*cdf0e10cSrcweir 2151*cdf0e10cSrcweir @param p_rDoc 2152*cdf0e10cSrcweir input parameter - reference to the Writer document, which is investigated. 2153*cdf0e10cSrcweir */ 2154*cdf0e10cSrcweir bool ExistsDrawObjs( SwDoc& p_rDoc ); 2155*cdf0e10cSrcweir 2156*cdf0e10cSrcweir /** method to check, if given Writer document contains only drawing objects, 2157*cdf0e10cSrcweir which are completely on its page. 2158*cdf0e10cSrcweir 2159*cdf0e10cSrcweir OD 2006-03-17 #i62875# 2160*cdf0e10cSrcweir 2161*cdf0e10cSrcweir @author OD 2162*cdf0e10cSrcweir 2163*cdf0e10cSrcweir @param p_rDoc 2164*cdf0e10cSrcweir input parameter - reference to the Writer document, which is investigated. 2165*cdf0e10cSrcweir */ 2166*cdf0e10cSrcweir bool AllDrawObjsOnPage( SwDoc& p_rDoc ); 2167*cdf0e10cSrcweir 2168*cdf0e10cSrcweir /** method to check, if the outline style has to written as a normal list style 2169*cdf0e10cSrcweir 2170*cdf0e10cSrcweir OD 2006-09-27 #i69627# 2171*cdf0e10cSrcweir The outline style has to written as a normal list style, if a parent 2172*cdf0e10cSrcweir paragraph style of one of the paragraph styles, which are assigned to 2173*cdf0e10cSrcweir the list levels of the outline style, has a list style set or inherits 2174*cdf0e10cSrcweir a list style from its parent paragraphs style. 2175*cdf0e10cSrcweir This information is needed for the OpenDocument file format export. 2176*cdf0e10cSrcweir 2177*cdf0e10cSrcweir @author OD 2178*cdf0e10cSrcweir 2179*cdf0e10cSrcweir @param rDoc 2180*cdf0e10cSrcweir input parameter - reference to the text document, which is investigated. 2181*cdf0e10cSrcweir 2182*cdf0e10cSrcweir @return boolean 2183*cdf0e10cSrcweir indicating, if the outline style has to written as a normal list style 2184*cdf0e10cSrcweir */ 2185*cdf0e10cSrcweir bool HasOutlineStyleToBeWrittenAsNormalListStyle( SwDoc& rDoc ); 2186*cdf0e10cSrcweir } 2187*cdf0e10cSrcweir // <-- 2188*cdf0e10cSrcweir #endif //_DOC_HXX 2189