LCOV - code coverage report
Current view: top level - sw/inc - tox.hxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 110 155 71.0 %
Date: 2015-06-13 12:38:46 Functions: 73 96 76.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : #ifndef INCLUDED_SW_INC_TOX_HXX
      20             : #define INCLUDED_SW_INC_TOX_HXX
      21             : 
      22             : #include <cppuhelper/weakref.hxx>
      23             : #include <sal/log.hxx>
      24             : 
      25             : #include <i18nlangtag/lang.h>
      26             : #include <svl/poolitem.hxx>
      27             : 
      28             : #include <editeng/svxenum.hxx>
      29             : #include <swtypes.hxx>
      30             : #include <toxe.hxx>
      31             : #include <calbck.hxx>
      32             : 
      33             : #include <vector>
      34             : 
      35             : namespace com { namespace sun { namespace star {
      36             :     namespace text { class XDocumentIndexMark; }
      37             : } } }
      38             : 
      39             : class SwTOXType;
      40             : class SwTOXMark;
      41             : class SwTextTOXMark;
      42             : class SwDoc;
      43             : 
      44             : typedef std::vector<SwTOXMark*> SwTOXMarks;
      45             : 
      46             : // Entry of content index, alphabetical index or user defined index
      47             : 
      48             : extern const sal_Unicode C_NUM_REPL;
      49             : extern const sal_Unicode C_END_PAGE_NUM;
      50             : extern const OUString S_PAGE_DELI;
      51             : 
      52             : class SW_DLLPUBLIC SwTOXMark
      53             :     : public SfxPoolItem
      54             :     , public SwModify
      55             : {
      56             :     friend void _InitCore();
      57             :     friend class SwTextTOXMark;
      58             : 
      59             :     OUString aAltText;    // Text of caption is different.
      60             :     OUString aPrimaryKey;
      61             :     OUString aSecondaryKey;
      62             :     OUString aCitationKeyReading;
      63             : 
      64             :     // three more strings for phonetic sorting
      65             :     OUString aTextReading;
      66             :     OUString aPrimaryKeyReading;
      67             :     OUString aSecondaryKeyReading;
      68             : 
      69             :     SwTextTOXMark* pTextAttr;
      70             : 
      71             :     sal_uInt16  nLevel;
      72             :     OUString    m_aBookmarkName;
      73             :     OUString    m_aEntryTypeName;       // stored specific entry type name for INDEX field \f
      74             :     bool    bAutoGenerated : 1;     // generated using a concordance file
      75             :     bool    bMainEntry : 1;         // main entry emphasized by character style
      76             : 
      77             :     ::com::sun::star::uno::WeakReference<
      78             :         ::com::sun::star::text::XDocumentIndexMark> m_wXDocumentIndexMark;
      79             : 
      80             :     SwTOXMark();                    // to create the default attribute in _InitCore
      81             : 
      82             : protected:
      83             :     // SwClient
      84             :    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ) SAL_OVERRIDE;
      85             : 
      86             : public:
      87             :     TYPEINFO_OVERRIDE();   // rtti
      88             : 
      89             :     // single argument ctors shall be explicit.
      90             :     explicit SwTOXMark( const SwTOXType* pTyp );
      91             :     virtual ~SwTOXMark();
      92             : 
      93             :     SwTOXMark( const SwTOXMark& rCopy );
      94             :     SwTOXMark& operator=( const SwTOXMark& rCopy );
      95             : 
      96             :     // "pure virtual methods" of SfxPoolItem
      97             :     virtual bool            operator==( const SfxPoolItem& ) const SAL_OVERRIDE;
      98             :     virtual SfxPoolItem*    Clone( SfxItemPool* pPool = 0 ) const SAL_OVERRIDE;
      99             : 
     100             :     void InvalidateTOXMark();
     101             : 
     102             :     OUString                GetText() const;
     103             : 
     104             :     inline bool             IsAlternativeText() const;
     105             :     inline OUString         GetAlternativeText() const;
     106             : 
     107             :     inline void             SetAlternativeText( const OUString& rAlt );
     108             : 
     109             :     // content or user defined index
     110             :     inline void             SetLevel(sal_uInt16 nLevel);
     111             :     inline sal_uInt16           GetLevel() const;
     112             :     inline void             SetBookmarkName( const OUString& bName);
     113             :     inline OUString         GetBookmarkName() const;
     114             :     inline void             SetEntryTypeName( const OUString& sName);
     115             :     inline OUString         GetEntryTypeName() const;
     116             : 
     117             :     // for alphabetical index only
     118             :     inline void             SetPrimaryKey(const OUString& rStr );
     119             :     inline void             SetSecondaryKey(const OUString& rStr);
     120             :     inline void             SetTextReading(const OUString& rStr);
     121             :     inline void             SetPrimaryKeyReading(const OUString& rStr );
     122             :     inline void             SetSecondaryKeyReading(const OUString& rStr);
     123             :     inline void             SetCitationKeyReading(const OUString& rStr);
     124             : 
     125             :     inline OUString         GetPrimaryKey() const;
     126             :     inline OUString         GetSecondaryKey() const;
     127             :     inline OUString         GetTextReading() const;
     128             :     inline OUString         GetPrimaryKeyReading() const;
     129             :     inline OUString         GetSecondaryKeyReading() const;
     130             :     inline OUString         GetCitationKeyReading() const;
     131             : 
     132           0 :     bool                    IsAutoGenerated() const {return bAutoGenerated;}
     133           0 :     void                    SetAutoGenerated(bool bSet) {bAutoGenerated = bSet;}
     134             : 
     135           3 :     bool                    IsMainEntry() const {return bMainEntry;}
     136         169 :     void                    SetMainEntry(bool bSet) { bMainEntry = bSet;}
     137             : 
     138             :     inline const SwTOXType*    GetTOXType() const;
     139             : 
     140          55 :     const SwTextTOXMark* GetTextTOXMark() const   { return pTextAttr; }
     141           2 :           SwTextTOXMark* GetTextTOXMark()         { return pTextAttr; }
     142             : 
     143             :     SAL_DLLPRIVATE ::com::sun::star::uno::WeakReference<
     144          47 :         ::com::sun::star::text::XDocumentIndexMark> const& GetXTOXMark() const
     145          47 :             { return m_wXDocumentIndexMark; }
     146          34 :     SAL_DLLPRIVATE void SetXTOXMark(::com::sun::star::uno::Reference<
     147             :                     ::com::sun::star::text::XDocumentIndexMark> const& xMark)
     148          34 :             { m_wXDocumentIndexMark = xMark; }
     149          13 :     void DeRegister() { GetRegisteredInNonConst()->Remove( this ); }
     150             :     void RegisterToTOXType( SwTOXType& rMark );
     151             :     static void InsertTOXMarks( SwTOXMarks& aMarks, const SwTOXType& rType );
     152             : };
     153             : 
     154             : // index types
     155       47520 : class SwTOXType : public SwModify
     156             : {
     157             : public:
     158             :     SwTOXType(TOXTypes eTyp, const OUString& aName);
     159             : 
     160             :     // @@@ public copy ctor, but no copy assignment?
     161             :     SwTOXType(const SwTOXType& rCopy);
     162             : 
     163             :     inline OUString         GetTypeName() const;
     164             :     inline TOXTypes         GetType() const;
     165             : 
     166             : private:
     167             :     OUString        aName;
     168             :     TOXTypes        eType;
     169             : 
     170             :     // @@@ public copy ctor, but no copy assignment?
     171             :     SwTOXType & operator= (const SwTOXType &) SAL_DELETED_FUNCTION;
     172             : };
     173             : 
     174             : // Structure of the index lines
     175             : #define FORM_TITLE              0
     176             : #define FORM_ALPHA_DELIMITTER   1
     177             : #define FORM_PRIMARY_KEY        2
     178             : #define FORM_SECONDARY_KEY      3
     179             : #define FORM_ENTRY              4
     180             : 
     181             : /*
     182             :  Pattern structure
     183             : 
     184             :  <E#> - entry number                    <E# CharStyleName,PoolId>
     185             :  <ET> - entry text                      <ET CharStyleName,PoolId>
     186             :  <E>  - entry text and number           <E CharStyleName,PoolId>
     187             :  <T>  - tab stop                        <T,,Position,Adjust>
     188             :  <C>  - chapter info n = {0, 1, 2, 3, 4 } values of SwChapterFormat <C CharStyleName,PoolId>
     189             :  <TX> - text token                      <X CharStyleName,PoolId, TOX_STYLE_DELIMITERTextContentTOX_STYLE_DELIMITER>
     190             :  <#>  - Page number                     <# CharStyleName,PoolId>
     191             :  <LS> - Link start                      <LS>
     192             :  <LE> - Link end                        <LE>
     193             :  <A00> - Authority entry field          <A02 CharStyleName, PoolId>
     194             :  */
     195             : 
     196             : // These enum values are stored and must not be changed!
     197             : enum FormTokenType
     198             : {
     199             :     TOKEN_ENTRY_NO,
     200             :     TOKEN_ENTRY_TEXT,
     201             :     TOKEN_ENTRY,
     202             :     TOKEN_TAB_STOP,
     203             :     TOKEN_TEXT,
     204             :     TOKEN_PAGE_NUMS,
     205             :     TOKEN_CHAPTER_INFO,
     206             :     TOKEN_LINK_START,
     207             :     TOKEN_LINK_END,
     208             :     TOKEN_AUTHORITY,
     209             :     TOKEN_END
     210             : };
     211             : 
     212      381265 : struct SW_DLLPUBLIC SwFormToken
     213             : {
     214             :     OUString        sText;
     215             :     OUString        sCharStyleName;
     216             :     SwTwips         nTabStopPosition;
     217             :     FormTokenType   eTokenType;
     218             :     sal_uInt16          nPoolId;
     219             :     SvxTabAdjust    eTabAlign;
     220             :     sal_uInt16          nChapterFormat;     //SwChapterFormat;
     221             :     sal_uInt16          nOutlineLevel;//the maximum permitted outline level in numbering
     222             :     sal_uInt16          nAuthorityField;    //enum ToxAuthorityField
     223             :     sal_Unicode     cTabFillChar;
     224             :     bool        bWithTab;      // true: do generate tab
     225             :                                    // character only the tab stop
     226             :                                    // #i21237#
     227             : 
     228       13529 :     SwFormToken(FormTokenType eType ) :
     229             :         nTabStopPosition(0),
     230             :         eTokenType(eType),
     231             :         nPoolId(USHRT_MAX),
     232             :         eTabAlign( SVX_TAB_ADJUST_LEFT ),
     233             :         nChapterFormat(0 /*CF_NUMBER*/),
     234             :         nOutlineLevel(MAXLEVEL),   //default to maximum outline level
     235             :         nAuthorityField(0 /*AUTH_FIELD_IDENTIFIER*/),
     236             :         cTabFillChar(' '),
     237       13529 :         bWithTab(true)  // #i21237#
     238       13529 :     {}
     239             : 
     240             :     OUString GetString() const;
     241             : };
     242             : 
     243             : struct SwFormTokenEqualToFormTokenType
     244             : {
     245             :     FormTokenType eType;
     246             : 
     247           0 :     SwFormTokenEqualToFormTokenType(FormTokenType _eType) : eType(_eType) {}
     248           0 :     bool operator()(const SwFormToken & rToken)
     249             :     {
     250           0 :         return rToken.eTokenType == eType;
     251             :     }
     252             : };
     253             : 
     254             : /// Vector of tokens.
     255             : typedef std::vector<SwFormToken> SwFormTokens;
     256             : 
     257             : /**
     258             :    Helper class that converts vectors of tokens to strings and vice
     259             :    versa.
     260             :  */
     261         678 : class SW_DLLPUBLIC SwFormTokensHelper
     262             : {
     263             :     /// the tokens
     264             :     SwFormTokens m_Tokens;
     265             : 
     266             : public:
     267             :     /**
     268             :        constructor
     269             : 
     270             :        @param rTokens       vector of tokens
     271             :     */
     272             :     SwFormTokensHelper(const SwFormTokens & rTokens) : m_Tokens(rTokens) {}
     273             : 
     274             :     /**
     275             :        constructor
     276             : 
     277             :        @param rStr   string representation of the tokens
     278             :     */
     279             :     SwFormTokensHelper(const OUString & rStr);
     280             : 
     281             :     /**
     282             :        Returns vector of tokens.
     283             : 
     284             :        @return vector of tokens
     285             :     */
     286         678 :     const SwFormTokens & GetTokens() const { return m_Tokens; }
     287             : };
     288             : 
     289        1901 : class SW_DLLPUBLIC SwForm
     290             : {
     291             :     SwFormTokens    aPattern[ AUTH_TYPE_END + 1 ]; // #i21237#
     292             :     OUString  aTemplate[ AUTH_TYPE_END + 1 ];
     293             : 
     294             :     TOXTypes    eType;
     295             :     sal_uInt16      nFormMaxLevel;
     296             : 
     297             :     bool    bGenerateTabPos : 1;
     298             :     bool    bIsRelTabPos : 1;
     299             :     bool    bCommaSeparated : 1;
     300             : 
     301             : public:
     302             :     SwForm( TOXTypes eTOXType = TOX_CONTENT );
     303             :     SwForm( const SwForm& rForm );
     304             : 
     305             :     SwForm& operator=( const SwForm& rForm );
     306             : 
     307             :     inline void SetTemplate(sal_uInt16 nLevel, const OUString& rName);
     308             :     inline OUString GetTemplate(sal_uInt16 nLevel) const;
     309             : 
     310             :     // #i21237#
     311             :     void    SetPattern(sal_uInt16 nLevel, const SwFormTokens& rName);
     312             :     void    SetPattern(sal_uInt16 nLevel, const OUString& rStr);
     313             :     const SwFormTokens& GetPattern(sal_uInt16 nLevel) const;
     314             : 
     315             :     // fill tab stop positions from template to pattern- #i21237#
     316             :     void AdjustTabStops( SwDoc& rDoc );
     317             : 
     318             :     inline TOXTypes GetTOXType() const;
     319             :     inline sal_uInt16   GetFormMax() const;
     320             : 
     321          12 :     bool IsRelTabPos() const    {   return bIsRelTabPos; }
     322          20 :     void SetRelTabPos( bool b ) {   bIsRelTabPos = b;       }
     323             : 
     324          18 :     bool IsCommaSeparated() const       { return bCommaSeparated;}
     325           3 :     void SetCommaSeparated( bool b)     { bCommaSeparated = b;}
     326             : 
     327             :     static sal_uInt16 GetFormMaxLevel( TOXTypes eType );
     328             : 
     329             :     static OUString GetFormEntry();
     330             :     static OUString GetFormTab();
     331             :     static OUString GetFormPageNums();
     332             :     static OUString GetFormLinkStt();
     333             :     static OUString GetFormLinkEnd();
     334             :     static OUString GetFormEntryNum();
     335             :     static OUString GetFormEntryText();
     336             :     static OUString GetFormChapterMark();
     337             :     static OUString GetFormText();
     338             :     static OUString GetFormAuth();
     339             : };
     340             : 
     341             : // Content to create indexes of
     342             : typedef sal_uInt16 SwTOXElement;
     343             : namespace nsSwTOXElement
     344             : {
     345             :     const SwTOXElement TOX_MARK             = 1;
     346             :     const SwTOXElement TOX_OUTLINELEVEL     = 2;
     347             :     const SwTOXElement TOX_TEMPLATE         = 4;
     348             :     const SwTOXElement TOX_OLE              = 8;
     349             :     const SwTOXElement TOX_TABLE            = 16;
     350             :     const SwTOXElement TOX_GRAPHIC          = 32;
     351             :     const SwTOXElement TOX_FRAME            = 64;
     352             :     const SwTOXElement TOX_SEQUENCE         = 128;
     353             :     const SwTOXElement TOX_TABLEADER        = 256;
     354             :     const SwTOXElement TOX_TAB_IN_TOC       = 512;
     355             :     const SwTOXElement TOX_BOOKMARK         = 1024;
     356             :     const SwTOXElement TOX_NEWLINE          = 2048;
     357             :     const SwTOXElement TOX_PARAGRAPH_OUTLINE_LEVEL = 4096;
     358             :     const SwTOXElement TOX_INDEX_ENTRY_TYPE       = 8192;
     359             : }
     360             : 
     361             : typedef sal_uInt16 SwTOIOptions;
     362             : namespace nsSwTOIOptions
     363             : {
     364             :     const SwTOIOptions TOI_SAME_ENTRY       = 1;
     365             :     const SwTOIOptions TOI_FF               = 2;
     366             :     const SwTOIOptions TOI_CASE_SENSITIVE   = 4;
     367             :     const SwTOIOptions TOI_KEY_AS_ENTRY     = 8;
     368             :     const SwTOIOptions TOI_ALPHA_DELIMITTER = 16;
     369             :     const SwTOIOptions TOI_DASH             = 32;
     370             :     const SwTOIOptions TOI_INITIAL_CAPS     = 64;
     371             : }
     372             : 
     373             : //which part of the caption is to be displayed
     374             : enum SwCaptionDisplay
     375             : {
     376             :     CAPTION_COMPLETE,
     377             :     CAPTION_NUMBER,
     378             :     CAPTION_TEXT
     379             : };
     380             : 
     381             : typedef sal_uInt16 SwTOOElements;
     382             : namespace nsSwTOOElements
     383             : {
     384             :     const SwTOOElements TOO_MATH            = 0x01;
     385             :     const SwTOOElements TOO_CHART           = 0x02;
     386             :     const SwTOOElements TOO_CALC            = 0x08;
     387             :     const SwTOOElements TOO_DRAW_IMPRESS    = 0x10;
     388             :     const SwTOOElements TOO_OTHER           = 0x80;
     389             : }
     390             : 
     391             : #define TOX_STYLE_DELIMITER ((sal_Unicode)0x01)
     392             : 
     393             : // Class for all indexes
     394             : class SW_DLLPUBLIC SwTOXBase : public SwClient
     395             : {
     396             :     SwForm      aForm;              // description of the lines
     397             :     OUString    aName;              // unique name
     398             :     OUString    aTitle;             // title
     399             :     OUString    m_aBookmarkName;      //Bookmark Name
     400             :     OUString    m_aEntryTypeName;   // Type name
     401             : 
     402             :     OUString    sMainEntryCharStyle; // name of the character style applied to main index entries
     403             : 
     404             :     OUString    aStyleNames[MAXLEVEL]; // (additional) style names TOX_CONTENT, TOX_USER
     405             :     OUString    sSequenceName;      // FieldTypeName of a caption sequence
     406             : 
     407             :     LanguageType    eLanguage;
     408             :     OUString        sSortAlgorithm;
     409             : 
     410             :     union {
     411             :         sal_uInt16      nLevel;             // consider outline levels
     412             :         sal_uInt16      nOptions;           // options of alphabetical index
     413             :     } aData;
     414             : 
     415             :     sal_uInt16      nCreateType;        // sources to create the index from
     416             :     sal_uInt16      nOLEOptions;        // OLE sources
     417             :     SwCaptionDisplay eCaptionDisplay;
     418             :     bool        bProtected : 1;         // index protected ?
     419             :     bool        bFromChapter : 1;       // create from chapter or document
     420             :     bool        bFromObjectNames : 1;   // create a table or object index
     421             :                                     // from the names rather than the caption
     422             :     bool        bLevelFromChapter : 1; // User index: get the level from the source chapter
     423             : 
     424             : protected:
     425             :     // Add a data member, for record the TOC field expression of MS Word binary format
     426             :     // For keeping fedality and may giving a better exporting performance
     427             :     OUString maMSTOCExpression;
     428             :     bool mbKeepExpression;
     429             : 
     430             : public:
     431             :     SwTOXBase( const SwTOXType* pTyp, const SwForm& rForm,
     432             :                sal_uInt16 nCreaType, const OUString& rTitle );
     433             :     SwTOXBase( const SwTOXBase& rCopy, SwDoc* pDoc = 0 );
     434             :     virtual ~SwTOXBase();
     435             : 
     436             :     virtual bool GetInfo( SfxPoolItem& rInfo ) const SAL_OVERRIDE;
     437             : 
     438             :     // a kind of CopyCtor - check if the TOXBase is at TOXType of the doc.
     439             :     // If not, so create it an copy all other used things. The return is this
     440             :     SwTOXBase& CopyTOXBase( SwDoc*, const SwTOXBase& );
     441             : 
     442             :     const SwTOXType*    GetTOXType() const;
     443             : 
     444             :     sal_uInt16              GetCreateType() const;      // creation types
     445             : 
     446         554 :     OUString            GetTOXName() const {return aName;}
     447         142 :     void                SetTOXName(const OUString& rSet) {aName = rSet;}
     448             : 
     449             :     // for record the TOC field expression of MS Word binary format
     450          31 :     const OUString&     GetMSTOCExpression() const{return maMSTOCExpression;}
     451           0 :     void                SetMSTOCExpression(const OUString& rExp) {maMSTOCExpression = rExp;}
     452           0 :     void                EnableKeepExpression() {mbKeepExpression = true;}
     453           0 :     void                DisableKeepExpression() {mbKeepExpression = false;}
     454             : 
     455             :     OUString            GetTitle() const;           // Title
     456             :     OUString         GetBookmarkName() const;
     457             :     OUString            GetTypeName() const;        // Name
     458             :     const SwForm&       GetTOXForm() const;         // description of the lines
     459             : 
     460             :     void                SetCreate(sal_uInt16);
     461             :     void                SetTitle(const OUString& rTitle);
     462             :     void                SetTOXForm(const SwForm& rForm);
     463             :     void  SetBookmarkName(const OUString& bName);
     464             : 
     465             :     TOXTypes            GetType() const;
     466             : 
     467           3 :     OUString            GetMainEntryCharStyle() const {return sMainEntryCharStyle;}
     468           2 :     void                SetMainEntryCharStyle(const OUString& rSet)  {sMainEntryCharStyle = rSet;}
     469             : 
     470             :     // for record the Index field expression of MS Word
     471             :     OUString         GetEntryTypeName() const;
     472             :     void  SetEntryTypeName(const OUString& sName);
     473             : 
     474             :     // content index only
     475             :     inline void             SetLevel(sal_uInt16);                   // consider outline level
     476             :     inline sal_uInt16           GetLevel() const;
     477             : 
     478             :     // alphabetical index only
     479             :     inline sal_uInt16           GetOptions() const;                 // alphabetical index options
     480             :     inline void             SetOptions(sal_uInt16 nOpt);
     481             : 
     482             :     // index of objects
     483        1441 :     sal_uInt16      GetOLEOptions() const {return nOLEOptions;}
     484         860 :     void        SetOLEOptions(sal_uInt16 nOpt) {nOLEOptions = nOpt;}
     485             : 
     486             :     // index of objects
     487             : 
     488             :     // user defined index only
     489             :     inline void             SetTemplateName(const OUString& rName); // Absatzlayout beachten
     490             : 
     491          54 :     OUString                GetStyleNames(sal_uInt16 nLevel) const
     492             :                                 {
     493             :                                 SAL_WARN_IF( nLevel >= MAXLEVEL, "sw", "Which level?");
     494          54 :                                 return aStyleNames[nLevel];
     495             :                                 }
     496           6 :     void                    SetStyleNames(const OUString& rSet, sal_uInt16 nLevel)
     497             :                                 {
     498             :                                 SAL_WARN_IF( nLevel >= MAXLEVEL, "sw", "Which level?");
     499           6 :                                 aStyleNames[nLevel] = rSet;
     500           6 :                                 }
     501          18 :     bool                    IsFromChapter() const { return bFromChapter;}
     502          21 :     void                    SetFromChapter(bool bSet) { bFromChapter = bSet;}
     503             : 
     504           4 :     bool                    IsFromObjectNames() const {return bFromObjectNames;}
     505           5 :     void                    SetFromObjectNames(bool bSet) {bFromObjectNames = bSet;}
     506             : 
     507           1 :     bool                    IsLevelFromChapter() const {return bLevelFromChapter;}
     508           2 :     void                    SetLevelFromChapter(bool bSet) {bLevelFromChapter = bSet;}
     509             : 
     510         134 :     bool                    IsProtected() const { return bProtected; }
     511          24 :     void                    SetProtected(bool bSet) { bProtected = bSet; }
     512             : 
     513           8 :     OUString                GetSequenceName() const {return sSequenceName;}
     514           8 :     void                    SetSequenceName(const OUString& rSet) {sSequenceName = rSet;}
     515             : 
     516           2 :     SwCaptionDisplay        GetCaptionDisplay() const { return eCaptionDisplay;}
     517           5 :     void                    SetCaptionDisplay(SwCaptionDisplay eSet) {eCaptionDisplay = eSet;}
     518             : 
     519             :     bool                    IsTOXBaseInReadonly() const;
     520             : 
     521             :     const SfxItemSet*       GetAttrSet() const;
     522             :     void                    SetAttrSet( const SfxItemSet& );
     523             : 
     524          10 :     LanguageType    GetLanguage() const {return eLanguage;}
     525           4 :     void            SetLanguage(LanguageType nLang)  {eLanguage = nLang;}
     526             : 
     527          10 :     OUString        GetSortAlgorithm()const {return sSortAlgorithm;}
     528           4 :     void            SetSortAlgorithm(const OUString& rSet) {sSortAlgorithm = rSet;}
     529             :     // #i21237#
     530           0 :     void AdjustTabStops( SwDoc & rDoc )
     531             :     {
     532           0 :         aForm.AdjustTabStops( rDoc );
     533           0 :     }
     534             : 
     535             :     SwTOXBase& operator=(const SwTOXBase& rSource);
     536             :     void RegisterToTOXType( SwTOXType& rMark );
     537             : };
     538             : 
     539             : //SwTOXMark
     540             : 
     541         392 : inline OUString SwTOXMark::GetAlternativeText() const
     542         392 :     {   return aAltText;    }
     543             : 
     544           0 : inline OUString SwTOXMark::GetBookmarkName() const
     545           0 :     {   return m_aBookmarkName;    }
     546             : 
     547           0 : inline OUString SwTOXMark::GetEntryTypeName() const
     548           0 :     {   return m_aEntryTypeName;    }
     549             : 
     550         106 : inline const SwTOXType* SwTOXMark::GetTOXType() const
     551         106 :     { return static_cast<const SwTOXType*>(GetRegisteredIn()); }
     552             : 
     553           0 : inline bool SwTOXMark::IsAlternativeText() const
     554           0 :     { return !aAltText.isEmpty(); }
     555             : 
     556         156 : inline void SwTOXMark::SetAlternativeText(const OUString& rAlt)
     557             : {
     558         156 :     aAltText = rAlt;
     559         156 : }
     560             : 
     561           0 : inline void SwTOXMark::SetBookmarkName(const OUString& bName)
     562             : {
     563           0 :     m_aBookmarkName = bName;
     564           0 : }
     565             : 
     566           0 : inline void SwTOXMark::SetEntryTypeName(const OUString& sName)
     567             : {
     568           0 :     m_aEntryTypeName = sName;
     569           0 : }
     570           1 : inline void SwTOXMark::SetLevel( sal_uInt16 nLvl )
     571             : {
     572             :     SAL_WARN_IF( GetTOXType() && GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
     573           1 :     nLevel = nLvl;
     574           1 : }
     575             : 
     576         166 : inline void SwTOXMark::SetPrimaryKey( const OUString& rKey )
     577             : {
     578             :     SAL_WARN_IF( GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     579         166 :     aPrimaryKey = rKey;
     580         166 : }
     581             : 
     582           1 : inline void SwTOXMark::SetSecondaryKey( const OUString& rKey )
     583             : {
     584             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     585           1 :     aSecondaryKey = rKey;
     586           1 : }
     587             : 
     588           0 : inline void SwTOXMark::SetTextReading( const OUString& rText )
     589             : {
     590             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     591           0 :     aTextReading = rText;
     592           0 : }
     593             : 
     594           0 : inline void SwTOXMark::SetPrimaryKeyReading( const OUString& rKey )
     595             : {
     596             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     597           0 :     aPrimaryKeyReading = rKey;
     598           0 : }
     599             : 
     600           0 : inline void SwTOXMark::SetCitationKeyReading( const OUString& rKey )
     601             : {
     602             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_CITATION, "sw", "Wrong type");
     603           0 :     aCitationKeyReading = rKey;
     604           0 : }
     605             : 
     606           0 : inline void SwTOXMark::SetSecondaryKeyReading( const OUString& rKey )
     607             : {
     608             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     609           0 :     aSecondaryKeyReading = rKey;
     610           0 : }
     611             : 
     612           0 : inline sal_uInt16 SwTOXMark::GetLevel() const
     613             : {
     614             :     SAL_WARN_IF( GetTOXType() && GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
     615           0 :     return nLevel;
     616             : }
     617             : 
     618         137 : inline OUString SwTOXMark::GetPrimaryKey() const
     619             : {
     620             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     621         137 :     return aPrimaryKey;
     622             : }
     623             : 
     624          46 : inline OUString SwTOXMark::GetSecondaryKey() const
     625             : {
     626             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     627          46 :     return aSecondaryKey;
     628             : }
     629             : 
     630           1 : inline OUString SwTOXMark::GetTextReading() const
     631             : {
     632             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     633           1 :     return aTextReading;
     634             : }
     635             : 
     636           0 : inline OUString SwTOXMark::GetPrimaryKeyReading() const
     637             : {
     638             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     639           0 :     return aPrimaryKeyReading;
     640             : }
     641             : 
     642           0 : inline OUString SwTOXMark::GetSecondaryKeyReading() const
     643             : {
     644             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     645           0 :     return aSecondaryKeyReading;
     646             : }
     647             : 
     648             : inline OUString SwTOXMark::GetCitationKeyReading() const
     649             : {
     650             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_CITATION, "sw", "Wrong type");
     651             :     return aCitationKeyReading;
     652             : }
     653             : 
     654             : //SwForm
     655             : 
     656        2727 : inline void SwForm::SetTemplate(sal_uInt16 nLevel, const OUString& rTemplate)
     657             : {
     658             :     SAL_WARN_IF(nLevel >= GetFormMax(), "sw", "Index >= GetFormMax()");
     659        2727 :     aTemplate[nLevel] = rTemplate;
     660        2727 : }
     661             : 
     662          95 : inline OUString SwForm::GetTemplate(sal_uInt16 nLevel) const
     663             : {
     664             :     SAL_WARN_IF(nLevel >= GetFormMax(), "sw", "Index >= GetFormMax()");
     665          95 :     return aTemplate[nLevel];
     666             : }
     667             : 
     668           0 : inline TOXTypes SwForm::GetTOXType() const
     669             : {
     670           0 :     return eType;
     671             : }
     672             : 
     673        3808 : inline sal_uInt16 SwForm::GetFormMax() const
     674             : {
     675        3808 :     return nFormMaxLevel;
     676             : }
     677             : 
     678             : //SwTOXType
     679             : 
     680         494 : inline OUString SwTOXType::GetTypeName() const
     681         494 :     {   return aName;   }
     682             : 
     683        4363 : inline TOXTypes SwTOXType::GetType() const
     684        4363 :     {   return eType;   }
     685             : 
     686             : // SwTOXBase
     687             : 
     688        3706 : inline const SwTOXType* SwTOXBase::GetTOXType() const
     689        3706 :     { return static_cast<const SwTOXType*>(GetRegisteredIn()); }
     690             : 
     691        1619 : inline sal_uInt16 SwTOXBase::GetCreateType() const
     692        1619 :     { return nCreateType; }
     693             : 
     694         138 : inline OUString SwTOXBase::GetTitle() const
     695         138 :     { return aTitle; }
     696             : 
     697           1 : inline OUString SwTOXBase::GetBookmarkName() const
     698           1 :     { return m_aBookmarkName; }
     699             : 
     700           1 : inline OUString SwTOXBase::GetEntryTypeName() const
     701           1 :     { return m_aEntryTypeName; }
     702             : 
     703           0 : inline OUString SwTOXBase::GetTypeName() const
     704           0 :     { return GetTOXType()->GetTypeName();  }
     705             : 
     706        4124 : inline const SwForm& SwTOXBase::GetTOXForm() const
     707        4124 :     { return aForm; }
     708             : 
     709         866 : inline void SwTOXBase::SetCreate(sal_uInt16 nCreate)
     710         866 :     { nCreateType = nCreate; }
     711             : 
     712         783 : inline void SwTOXBase::SetTOXForm(const SwForm& rForm)
     713         783 :     {  aForm = rForm; }
     714             : 
     715         909 : inline TOXTypes SwTOXBase::GetType() const
     716         909 :     { return GetTOXType()->GetType(); }
     717             : 
     718         126 : inline void SwTOXBase::SetLevel(sal_uInt16 nLev)
     719             : {
     720             :     SAL_WARN_IF(GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
     721         126 :     aData.nLevel = nLev;
     722         126 : }
     723             : 
     724          24 : inline sal_uInt16 SwTOXBase::GetLevel() const
     725             : {
     726             :     SAL_WARN_IF(GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
     727          24 :     return aData.nLevel;
     728             : }
     729             : 
     730             : inline void SwTOXBase::SetTemplateName(const OUString& rName)
     731             : {
     732             :     SAL_WARN("sw", "SwTOXBase::SetTemplateName obsolete");
     733             :     aStyleNames[0] = rName;
     734             : }
     735             : 
     736         281 : inline sal_uInt16 SwTOXBase::GetOptions() const
     737             : {
     738             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     739         281 :     return aData.nOptions;
     740             : }
     741             : 
     742         139 : inline void SwTOXBase::SetOptions(sal_uInt16 nOpt)
     743             : {
     744             :     SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
     745         139 :     aData.nOptions = nOpt;
     746         139 : }
     747             : 
     748             : #endif // INCLUDED_SW_INC_TOX_HXX
     749             : 
     750             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11