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

Generated by: LCOV version 1.10