LCOV - code coverage report
Current view: top level - sw/inc - docufld.hxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 40 65 61.5 %
Date: 2014-11-03 Functions: 61 94 64.9 %
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_DOCUFLD_HXX
      20             : #define INCLUDED_SW_INC_DOCUFLD_HXX
      21             : 
      22             : #include <tools/date.hxx>
      23             : #include <tools/datetime.hxx>
      24             : 
      25             : #include <svl/macitem.hxx>
      26             : 
      27             : #include "fldbas.hxx"
      28             : #include "numrule.hxx"
      29             : 
      30             : class _SetGetExpFlds;
      31             : class SwTxtFld;
      32             : class SwFrm;
      33             : class OutlinerParaObject;
      34             : class SwTextAPIObject;
      35             : class SwFmtFld;
      36             : 
      37             : enum SwAuthorFormat
      38             : {
      39             :     AF_BEGIN,
      40             :     AF_NAME = AF_BEGIN,
      41             :     AF_SHORTCUT,
      42             :     AF_END,
      43             :     AF_FIXED = 0x8000
      44             : };
      45             : 
      46             : // Subtype of document statistics.
      47             : enum SwDocStatSubType
      48             : {
      49             :     DS_BEGIN,
      50             :     DS_PAGE = DS_BEGIN,
      51             :     DS_PARA,
      52             :     DS_WORD,
      53             :     DS_CHAR,
      54             :     DS_TBL,
      55             :     DS_GRF,
      56             :     DS_OLE,
      57             :     DS_END
      58             : };
      59             : 
      60             : typedef sal_uInt16  SwDocInfoSubType;
      61             : namespace nsSwDocInfoSubType
      62             : {
      63             :     /** NB: these must denote consecutive integers!
      64             :      NB2: these are extended by 4 DI_INFO values for backward compatibility
      65             :           in filter/html/htmlfld.cxx, so make sure that DI_SUBTYPE_END
      66             :           really is the end, and is at least 4 less than DI_SUB_*! */
      67             :     const SwDocInfoSubType DI_SUBTYPE_BEGIN =  0;
      68             :     const SwDocInfoSubType DI_TITEL         =  DI_SUBTYPE_BEGIN;
      69             :     const SwDocInfoSubType DI_THEMA         =  1;
      70             :     const SwDocInfoSubType DI_KEYS          =  2;
      71             :     const SwDocInfoSubType DI_COMMENT       =  3;
      72             :     const SwDocInfoSubType DI_CREATE        =  4;
      73             :     const SwDocInfoSubType DI_CHANGE        =  5;
      74             :     const SwDocInfoSubType DI_PRINT         =  6;
      75             :     const SwDocInfoSubType DI_DOCNO         =  7;
      76             :     const SwDocInfoSubType DI_EDIT          =  8;
      77             :     const SwDocInfoSubType DI_CUSTOM        =  9;
      78             :     const SwDocInfoSubType DI_SUBTYPE_END   = 10;
      79             : 
      80             :     const SwDocInfoSubType DI_SUB_AUTHOR    = 0x0100;
      81             :     const SwDocInfoSubType DI_SUB_TIME      = 0x0200;
      82             :     const SwDocInfoSubType DI_SUB_DATE      = 0x0300;
      83             :     const SwDocInfoSubType DI_SUB_FIXED     = 0x1000;
      84             :     const SwDocInfoSubType DI_SUB_MASK      = 0xff00;
      85             : }
      86             : 
      87             : enum RegInfoFormat  ///< Only for loading of old documents!!!
      88             : {
      89             :     RF_AUTHOR,
      90             :     RF_TIME,
      91             :     RF_DATE,
      92             :     RF_ALL
      93             : };
      94             : 
      95             : enum SwPageNumSubType
      96             : {
      97             :     PG_RANDOM,
      98             :     PG_NEXT,
      99             :     PG_PREV
     100             : };
     101             : 
     102             : enum SwExtUserSubType
     103             : {
     104             :     EU_COMPANY,
     105             :     EU_FIRSTNAME,
     106             :     EU_NAME,
     107             :     EU_SHORTCUT,
     108             :     EU_STREET,
     109             :     EU_COUNTRY,
     110             :     EU_ZIP,
     111             :     EU_CITY,
     112             :     EU_TITLE,
     113             :     EU_POSITION,
     114             :     EU_PHONE_PRIVATE,
     115             :     EU_PHONE_COMPANY,
     116             :     EU_FAX,
     117             :     EU_EMAIL,
     118             :     EU_STATE,
     119             :     EU_FATHERSNAME,
     120             :     EU_APARTMENT
     121             : };
     122             : 
     123             : enum SwJumpEditFormat
     124             : {
     125             :     JE_FMT_TEXT,
     126             :     JE_FMT_TABLE,
     127             :     JE_FMT_FRAME,
     128             :     JE_FMT_GRAPHIC,
     129             :     JE_FMT_OLE
     130             : };
     131             : 
     132       10090 : class SwPageNumberFieldType : public SwFieldType
     133             : {
     134             :     sal_Int16   nNumberingType;
     135             :     bool            bVirtuell;
     136             : 
     137             : public:
     138             :     SwPageNumberFieldType();
     139             : 
     140             :     OUString Expand( sal_uInt32 nFmt, short nOff, sal_uInt16 const nPageNumber,
     141             :                      sal_uInt16 const nMaxPage, const OUString& ) const;
     142             :     void ChangeExpansion( SwDoc* pDoc,
     143             :                             bool bVirtPageNum, const sal_Int16* pNumFmt = 0 );
     144             :     virtual SwFieldType* Copy() const SAL_OVERRIDE;
     145             : };
     146             : 
     147             : // Page numbering.
     148       15242 : class SW_DLLPUBLIC SwPageNumberField : public SwField
     149             : {
     150             :     OUString sUserStr;
     151             :     sal_uInt16  nSubType;
     152             :     short   nOffset;
     153             :     // fdo#58074 store page number in SwField, not SwFieldType
     154             :     sal_uInt16 m_nPageNumber;
     155             :     sal_uInt16 m_nMaxPage;
     156             : 
     157             : public:
     158             :     SwPageNumberField(SwPageNumberFieldType*, sal_uInt16 nSub = PG_RANDOM,
     159             :                       sal_uInt32 nFmt = 0, short nOff = 0,
     160             :                       sal_uInt16 const nPageNumber = 0,
     161             :                       sal_uInt16 const nMaxPage = 0);
     162             : 
     163             :     void ChangeExpansion(sal_uInt16 const nPageNumber,
     164             :             sal_uInt16 const nMaxPage);
     165             : 
     166             :     virtual OUString    Expand() const SAL_OVERRIDE;
     167             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     168             : 
     169             :     virtual OUString GetPar2() const SAL_OVERRIDE;
     170             :     virtual void        SetPar2(const OUString& rStr) SAL_OVERRIDE;
     171             : 
     172             :     virtual sal_uInt16  GetSubType() const SAL_OVERRIDE;
     173             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     174             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     175             : 
     176           0 :     OUString GetUserString() const            { return sUserStr; }
     177        7144 :     void SetUserString( const OUString& rS )  { sUserStr = rS; }
     178             : };
     179             : 
     180       10090 : class SwAuthorFieldType : public SwFieldType
     181             : {
     182             : public:
     183             :     SwAuthorFieldType();
     184             : 
     185             :     OUString                Expand(sal_uLong) const;
     186             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     187             : };
     188             : 
     189         536 : class SwAuthorField : public SwField
     190             : {
     191             :     OUString aContent;
     192             : 
     193             : public:
     194             :     SwAuthorField(SwAuthorFieldType*, sal_uInt32 nFmt = 0);
     195             : 
     196             :     virtual OUString    Expand() const SAL_OVERRIDE;
     197             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     198             : 
     199         268 :     inline void         SetExpansion(const OUString& rStr) { aContent = rStr; }
     200          40 :     inline OUString     GetContent() const { return aContent; }
     201             : 
     202             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     203             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     204             : };
     205             : 
     206       10092 : class SwFileNameFieldType : public SwFieldType
     207             : {
     208             :     SwDoc *pDoc;
     209             : public:
     210             :     SwFileNameFieldType(SwDoc*);
     211             : 
     212             :     OUString                Expand(sal_uLong) const;
     213             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     214             : };
     215             : 
     216         288 : class SW_DLLPUBLIC SwFileNameField : public SwField
     217             : {
     218             :     OUString aContent;
     219             : 
     220             : public:
     221             :     SwFileNameField(SwFileNameFieldType*, sal_uInt32 nFmt = 0);
     222             : 
     223             :     virtual OUString    Expand() const SAL_OVERRIDE;
     224             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     225             : 
     226         144 :     inline void         SetExpansion(const OUString& rStr) { aContent = rStr; }
     227           0 :     inline OUString     GetContent() const { return aContent; }
     228             : 
     229             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     230             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     231             : };
     232             : 
     233       20180 : class SwTemplNameFieldType : public SwFieldType
     234             : {
     235             :     SwDoc *pDoc;
     236             : public:
     237             :     SwTemplNameFieldType(SwDoc*);
     238             : 
     239             :     OUString                Expand(sal_uLong) const;
     240             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     241             : };
     242             : 
     243           0 : class SW_DLLPUBLIC SwTemplNameField : public SwField
     244             : {
     245             : public:
     246             :     SwTemplNameField(SwTemplNameFieldType*, sal_uInt32 nFmt = 0);
     247             : 
     248             :     virtual OUString    Expand() const SAL_OVERRIDE;
     249             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     250             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     251             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     252             : };
     253             : 
     254             : // Document statistics
     255       10090 : class SwDocStatFieldType : public SwFieldType
     256             : {
     257             :     SwDoc*          pDoc;
     258             :     sal_Int16       nNumberingType; ///< com::sun::star::style::NumberingType
     259             : 
     260             : public:
     261             :     SwDocStatFieldType(SwDoc*);
     262             :     OUString                Expand(sal_uInt16 nSubType, sal_uInt32 nFmt) const;
     263             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     264             : 
     265         230 :     inline void             SetNumFormat( sal_Int16 eFmt )  { nNumberingType = eFmt; }
     266             : };
     267             : 
     268         792 : class SW_DLLPUBLIC SwDocStatField : public SwField
     269             : {
     270             :     sal_uInt16 nSubType;
     271             : 
     272             : public:
     273             :     SwDocStatField( SwDocStatFieldType*,
     274             :                     sal_uInt16 nSubType = 0, sal_uInt32 nFmt = 0);
     275             : 
     276             :     void ChangeExpansion( const SwFrm* pFrm );
     277             : 
     278             :     virtual OUString    Expand() const SAL_OVERRIDE;
     279             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     280             : 
     281             :     virtual sal_uInt16      GetSubType() const SAL_OVERRIDE;
     282             :     virtual void        SetSubType(sal_uInt16 nSub) SAL_OVERRIDE;
     283             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     284             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     285             : };
     286             : 
     287       10090 : class SwHiddenTxtFieldType : public SwFieldType
     288             : {
     289             :     bool bHidden;
     290             : public:
     291             :     SwHiddenTxtFieldType(bool bSetHidden = true);
     292             : 
     293             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     294             : 
     295             :     void                    SetHiddenFlag( bool bSetHidden = true );
     296           0 :     inline bool             GetHiddenFlag() const { return bHidden; }
     297             : };
     298             : 
     299           0 : class SwHiddenTxtField : public SwField
     300             : {
     301             :     OUString aTRUETxt;         ///< Text if condition sal_True.
     302             :     OUString aFALSETxt;        ///< If condition false.
     303             :     OUString aContent;         ///< Evaluated DB-text.
     304             : 
     305             :     OUString aCond;            ///< Condition.
     306             :     sal_uInt16  nSubType;
     307             : 
     308             :     bool    bCanToggle : 1;     ///< Can field be toggled alone?
     309             :     bool    bIsHidden  : 1;     ///< Is it not visible?
     310             :     bool    bValid     : 1;     ///< Is DB-field evaluated?
     311             : 
     312             :     virtual OUString    Expand() const SAL_OVERRIDE;
     313             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     314             : 
     315             : public:
     316             :     SwHiddenTxtField( SwHiddenTxtFieldType*,
     317             :                      bool   bConditional,
     318             :                      const OUString& rCond,
     319             :                      const OUString& rTxt,
     320             :                      bool   bHidden  = false,
     321             :                      sal_uInt16 nSubType = TYP_HIDDENTXTFLD);
     322             : 
     323             :     SwHiddenTxtField( SwHiddenTxtFieldType*,
     324             :                       const OUString& rCond,
     325             :                       const OUString& rTrue,
     326             :                       const OUString& rFalse,
     327             :                       sal_uInt16 nSubType = TYP_HIDDENTXTFLD);
     328             : 
     329             :     virtual OUString    GetFieldName() const SAL_OVERRIDE;
     330             : 
     331             :     void                Evaluate(SwDoc*);
     332             : 
     333           0 :     inline void         SetValue(bool bHidden)  { bIsHidden = bHidden; }
     334             :     OUString            GetColumnName(const OUString& rName);
     335             :     OUString            GetDBName(const OUString& rName, SwDoc *pDoc);
     336             : 
     337             :     /// Condition
     338             :     virtual void        SetPar1(const OUString& rStr) SAL_OVERRIDE;
     339             :     virtual OUString    GetPar1() const SAL_OVERRIDE;
     340             : 
     341             :     /// True/False - String
     342             :     virtual void        SetPar2(const OUString& rStr) SAL_OVERRIDE;
     343             :     virtual OUString GetPar2() const SAL_OVERRIDE;
     344             : 
     345             :     virtual sal_uInt16      GetSubType() const SAL_OVERRIDE;
     346             : 
     347             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     348             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     349             : };
     350             : 
     351             : // Field that expands to an empty line (without height).
     352       10090 : class SwHiddenParaFieldType : public SwFieldType
     353             : {
     354             : public:
     355             :     SwHiddenParaFieldType();
     356             : 
     357             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     358             : };
     359             : 
     360           0 : class SwHiddenParaField : public SwField
     361             : {
     362             :     OUString           aCond;
     363             :     bool                bIsHidden:1;
     364             : public:
     365             :     /// Direct input, delete old value.
     366             :     SwHiddenParaField(SwHiddenParaFieldType*, const OUString& rCond);
     367             : 
     368             :     virtual OUString    Expand() const SAL_OVERRIDE;
     369             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     370             : 
     371           0 :     void                SetHidden(bool bHidden)     { bIsHidden = bHidden; }
     372           0 :     bool                IsHidden() const            { return bIsHidden;    }
     373             : 
     374             :     /// Query, set condition.
     375             :     virtual OUString    GetPar1() const SAL_OVERRIDE;
     376             :     virtual void        SetPar1(const OUString& rStr) SAL_OVERRIDE;
     377             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     378             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     379             : };
     380             : 
     381       10090 : class SwMacroFieldType : public SwFieldType
     382             : {
     383             :     SwDoc* pDoc;
     384             : 
     385             : public:
     386             :     SwMacroFieldType(SwDoc*);
     387             : 
     388             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     389             : };
     390             : 
     391          72 : class SW_DLLPUBLIC SwMacroField : public SwField
     392             : {
     393             :     OUString aMacro;
     394             :     OUString aText;
     395             :     bool      bIsScriptURL;
     396             : 
     397             :     virtual OUString Expand() const SAL_OVERRIDE;
     398             :     virtual SwField* Copy() const SAL_OVERRIDE;
     399             : 
     400             : public:
     401             :     /// Direct input, delete old value.
     402             :     SwMacroField( SwMacroFieldType*, const OUString& rLibAndName,
     403             :                   const OUString& rTxt);
     404             : 
     405           0 :     inline OUString  GetMacro() const { return aMacro; }
     406             :     OUString         GetLibName() const;
     407             :     OUString         GetMacroName() const;
     408             :     SvxMacro         GetSvxMacro() const;
     409             : 
     410             :     virtual OUString GetFieldName() const SAL_OVERRIDE;
     411             : 
     412             :     /// Library and FileName
     413             :     virtual OUString GetPar1() const SAL_OVERRIDE;
     414             :     virtual void     SetPar1(const OUString& rStr) SAL_OVERRIDE;
     415             : 
     416             :     /// Macrotext
     417             :     virtual OUString  GetPar2() const SAL_OVERRIDE;
     418             :     virtual void    SetPar2(const OUString& rStr) SAL_OVERRIDE;
     419             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     420             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     421             : 
     422             :     static void CreateMacroString( OUString& rMacro,
     423             :                                    const OUString& rMacroName,
     424             :                                    const OUString& rLibraryName );
     425             : 
     426             :     static bool isScriptURL( const OUString& str );
     427             : };
     428             : 
     429       10090 : class SwPostItFieldType : public SwFieldType
     430             : {
     431             : private:
     432             :     SwDoc* mpDoc;
     433             : public:
     434             :     SwPostItFieldType(SwDoc* pDoc);
     435             : 
     436             :     virtual SwFieldType* Copy() const SAL_OVERRIDE;
     437             : 
     438        1510 :     SwDoc* GetDoc() const
     439             :     {
     440        1510 :         return mpDoc;
     441             :     };
     442             : };
     443             : 
     444             : class SW_DLLPUBLIC SwPostItField : public SwField
     445             : {
     446             :     OUString sTxt;
     447             :     OUString sAuthor;
     448             :     OUString sInitials; ///< Initials of the author.
     449             :     OUString sName;     ///< Name of the comment.
     450             :     DateTime    aDateTime;
     451             :     OutlinerParaObject* mpText;
     452             :     SwTextAPIObject* m_pTextObject;
     453             : 
     454             : public:
     455             :     SwPostItField( SwPostItFieldType*,
     456             :                    const OUString& rAuthor,
     457             :                    const OUString& rTxt,
     458             :                    const OUString& rInitials,
     459             :                    const OUString& rName,
     460             :                    const DateTime& rDate);
     461             :     virtual ~SwPostItField();
     462             : 
     463             :     virtual OUString        Expand() const SAL_OVERRIDE;
     464             :     virtual SwField*        Copy() const SAL_OVERRIDE;
     465             : 
     466          24 :     inline const DateTime   GetDateTime() const             { return aDateTime; }
     467         140 :     inline const Date       GetDate() const                 { return aDateTime.GetDate(); }
     468         256 :     inline const tools::Time GetTime() const                 { return aDateTime.GetTime(); }
     469             : 
     470             :     /// Author
     471             :     virtual OUString        GetPar1() const SAL_OVERRIDE;
     472             :     virtual void            SetPar1(const OUString& rStr) SAL_OVERRIDE;
     473             : 
     474             :     /// Text
     475             :     virtual OUString   GetPar2() const SAL_OVERRIDE;
     476             :     virtual void            SetPar2(const OUString& rStr) SAL_OVERRIDE;
     477           8 :     const OUString&         GetTxt() const { return sTxt; }
     478          34 :     const OUString&         GetInitials() const { return sInitials;}
     479             :     void                    SetName(const OUString& rStr);
     480        1864 :     const OUString&         GetName() const { return sName;}
     481             : 
     482         280 :     const OutlinerParaObject* GetTextObject() const { return mpText;}
     483             :     void SetTextObject( OutlinerParaObject* pText );
     484             : 
     485             :     sal_Int32 GetNumberOfParagraphs() const;
     486             : 
     487             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     488             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     489             :     virtual OUString    GetDescription() const SAL_OVERRIDE;
     490             : };
     491             : 
     492       10090 : class SwDocInfoFieldType : public SwValueFieldType
     493             : {
     494             : public:
     495             :     SwDocInfoFieldType(SwDoc* pDc);
     496             : 
     497             :     OUString                Expand(sal_uInt16 nSubType, sal_uInt32 nFormat, sal_uInt16 nLang, const OUString& rName) const;
     498             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     499             : };
     500             : 
     501         538 : class SW_DLLPUBLIC SwDocInfoField : public SwValueField
     502             : {
     503             :     sal_uInt16  nSubType;
     504             :     OUString  aContent;
     505             :     OUString  aName;
     506             : 
     507             :     virtual OUString        Expand() const SAL_OVERRIDE;
     508             :     virtual SwField*        Copy() const SAL_OVERRIDE;
     509             : 
     510             : public:
     511             :     SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const OUString& rName, sal_uInt32 nFmt=0);
     512             :     SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const OUString& rName, const OUString& rValue, sal_uInt32 nFmt=0);
     513             : 
     514             :     virtual void            SetSubType(sal_uInt16) SAL_OVERRIDE;
     515             :     virtual sal_uInt16          GetSubType() const SAL_OVERRIDE;
     516             :     virtual void            SetLanguage(sal_uInt16 nLng) SAL_OVERRIDE;
     517             :     virtual OUString        GetFieldName() const SAL_OVERRIDE;
     518           0 :     OUString                GetName() const { return aName; }
     519           0 :     void                    SetName( const OUString& rName ) { aName = rName; }
     520          24 :     inline void             SetExpansion(const OUString& rStr) { aContent = rStr; }
     521             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     522             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     523             : };
     524             : 
     525             : // Extended User settings.
     526       10090 : class SwExtUserFieldType : public SwFieldType
     527             : {
     528             :     OUString aData;
     529             : public:
     530             :     SwExtUserFieldType();
     531             : 
     532             :     inline void             SetData(const OUString& rStr)     { aData = rStr; }
     533             : 
     534             :     OUString                Expand(sal_uInt16 nSubType, sal_uInt32 nFormat) const;
     535             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     536             : };
     537             : 
     538           0 : class SwExtUserField : public SwField
     539             : {
     540             :     OUString aContent;
     541             :     sal_uInt16  nType;
     542             : 
     543             : public:
     544             :     SwExtUserField(SwExtUserFieldType*, sal_uInt16 nSub, sal_uInt32 nFmt=0);
     545             : 
     546             :     virtual OUString    Expand() const SAL_OVERRIDE;
     547             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     548             : 
     549             :     virtual sal_uInt16      GetSubType() const SAL_OVERRIDE;
     550             :     virtual void        SetSubType(sal_uInt16 nSub) SAL_OVERRIDE;
     551             : 
     552           0 :     inline void         SetExpansion(const OUString& rStr) { aContent = rStr; }
     553             : 
     554             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     555             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     556             : };
     557             : 
     558             : // Relative page numbers - field.
     559       10090 : class SwRefPageSetFieldType : public SwFieldType
     560             : {
     561             : public:
     562             :     SwRefPageSetFieldType();
     563             : 
     564             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     565             : 
     566             : protected:
     567             :    /// Overlay, because there is nothing to update!
     568             :    virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ) SAL_OVERRIDE;
     569             : };
     570             : 
     571             : // Relative page numbering.
     572           0 : class SwRefPageSetField : public SwField
     573             : {
     574             :     short   nOffset;
     575             :     bool    bOn;
     576             : 
     577             : public:
     578             :     SwRefPageSetField( SwRefPageSetFieldType*, short nOff = 0,
     579             :                         bool bOn = true );
     580             : 
     581             :     virtual OUString    Expand() const SAL_OVERRIDE;
     582             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     583             : 
     584             :     virtual OUString  GetPar2() const SAL_OVERRIDE;
     585             :     virtual void    SetPar2(const OUString& rStr) SAL_OVERRIDE;
     586             : 
     587           0 :     bool IsOn() const               { return bOn; }
     588             : 
     589           0 :     short GetOffset() const         { return nOffset; }
     590           0 :     void SetOffset( short nOff )    { nOffset = nOff; }
     591             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     592             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     593             : };
     594             : 
     595             : // Relative page numbers - query field.
     596       10090 : class SwRefPageGetFieldType : public SwFieldType
     597             : {
     598             :     SwDoc*          pDoc;
     599             :     sal_Int16       nNumberingType;
     600             : 
     601             :     void UpdateField( SwTxtFld* pTxtFld, _SetGetExpFlds& rSetList );
     602             : protected:
     603             :     /// overwritten to update all RefPageGet fields
     604             :    virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ) SAL_OVERRIDE;
     605             : public:
     606             :     SwRefPageGetFieldType( SwDoc* pDoc );
     607             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     608             :     sal_uInt16 MakeSetList( _SetGetExpFlds& rTmpLst );
     609           0 :     SwDoc*  GetDoc() const                  { return pDoc; }
     610             : };
     611             : 
     612             : // Query relative page numbering.
     613           0 : class SwRefPageGetField : public SwField
     614             : {
     615             :     OUString sTxt;
     616             : public:
     617             :     SwRefPageGetField( SwRefPageGetFieldType*, sal_uInt32 nFmt );
     618             : 
     619             :     virtual OUString    Expand() const SAL_OVERRIDE;
     620             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     621             : 
     622           0 :     void SetText( const OUString& rTxt )      { sTxt = rTxt; }
     623             : 
     624             :     void ChangeExpansion( const SwFrm* pFrm, const SwTxtFld* pFld );
     625             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     626             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     627             : };
     628             : 
     629             : // Field to jump to and edit.
     630       10090 : class SwJumpEditFieldType : public SwFieldType
     631             : {
     632             :     SwDoc* pDoc;
     633             :     SwDepend aDep;
     634             : 
     635             : public:
     636             :     SwJumpEditFieldType( SwDoc* pDoc );
     637             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     638             : 
     639             :     SwCharFmt* GetCharFmt();
     640             : };
     641             : 
     642         148 : class SwJumpEditField : public SwField
     643             : {
     644             :     OUString sTxt, sHelp;
     645             : public:
     646             :     SwJumpEditField( SwJumpEditFieldType*, sal_uInt32 nFormat,
     647             :                      const OUString& sText, const OUString& sHelp );
     648             : 
     649             :     virtual OUString    Expand() const SAL_OVERRIDE;
     650             :     virtual SwField*    Copy() const SAL_OVERRIDE;
     651             : 
     652             :     /// Placeholder-Text
     653             :     virtual OUString GetPar1() const SAL_OVERRIDE;
     654             :     virtual void    SetPar1(const OUString& rStr) SAL_OVERRIDE;
     655             : 
     656             :     /// Hint-Text
     657             :     virtual OUString  GetPar2() const SAL_OVERRIDE;
     658             :     virtual void    SetPar2(const OUString& rStr) SAL_OVERRIDE;
     659             : 
     660           2 :     SwCharFmt* GetCharFmt() const
     661           2 :         { return ((SwJumpEditFieldType*)GetTyp())->GetCharFmt(); }
     662             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     663             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     664             : };
     665             : 
     666       10090 : class SwScriptFieldType : public SwFieldType
     667             : {
     668             :     SwDoc* pDoc;
     669             : public:
     670             :     SwScriptFieldType( SwDoc* pDoc );
     671             : 
     672             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     673             : };
     674             : 
     675           0 : class SwScriptField : public SwField
     676             : {
     677             :     OUString sType;  ///< Type of Code (Java/VBScript/...)
     678             :     OUString sCode;  /**< Code as text.
     679             :                           Code as JavaCode ? */
     680             : 
     681             :     bool    bCodeURL; ///< Code contains URL of a script.
     682             : 
     683             : public:
     684             :     SwScriptField( SwScriptFieldType*, const OUString& rType,
     685             :                    const OUString& rCode, bool bURL=false );
     686             : 
     687             :     virtual OUString        GetDescription() const SAL_OVERRIDE;
     688             : 
     689             :     virtual OUString        Expand() const SAL_OVERRIDE;
     690             :     virtual SwField*        Copy() const SAL_OVERRIDE;
     691             : 
     692             :     /// Type
     693             :     virtual OUString        GetPar1() const SAL_OVERRIDE;
     694             :     virtual void            SetPar1(const OUString& rStr) SAL_OVERRIDE;
     695             :     /// Text
     696             :     virtual OUString   GetPar2() const SAL_OVERRIDE;
     697             :     virtual void            SetPar2(const OUString& rStr) SAL_OVERRIDE;
     698             : 
     699           0 :     bool                    IsCodeURL() const { return bCodeURL; }
     700           0 :     void                    SetCodeURL( bool bURL ) { bCodeURL = bURL; }
     701             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     702             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     703             : };
     704             : 
     705             : // Combined Character Fieldtype
     706       10090 : class SwCombinedCharFieldType : public SwFieldType
     707             : {
     708             : public:
     709             :     SwCombinedCharFieldType();
     710             : 
     711             :     virtual SwFieldType*    Copy() const SAL_OVERRIDE;
     712             : };
     713             : 
     714             : // ScriptField
     715             : #define MAX_COMBINED_CHARACTERS     6
     716             : 
     717           0 : class SW_DLLPUBLIC SwCombinedCharField : public SwField
     718             : {
     719             :     OUString sCharacters;    ///< combine these characters
     720             : 
     721             : public:
     722             :     SwCombinedCharField( SwCombinedCharFieldType*, const OUString& rChars );
     723             : 
     724             :     virtual OUString        Expand() const SAL_OVERRIDE;
     725             :     virtual SwField*        Copy() const SAL_OVERRIDE;
     726             : 
     727             :     /// Characters
     728             :     virtual OUString    GetPar1() const SAL_OVERRIDE;
     729             :     virtual void        SetPar1(const OUString& rStr) SAL_OVERRIDE;
     730             : 
     731             :     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const SAL_OVERRIDE;
     732             :     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) SAL_OVERRIDE;
     733             : };
     734             : 
     735             : #endif // INCLUDED_SW_INC_DOCUFLD_HXX
     736             : 
     737             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10