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

Generated by: LCOV version 1.10