LCOV - code coverage report
Current view: top level - sw/inc - doc.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 90 118 76.3 %
Date: 2012-08-25 Functions: 70 90 77.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 5 12 41.7 %

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

Generated by: LCOV version 1.10