xref: /AOO41X/main/sw/inc/usrfld.hxx (revision 1d2dbeb0b7301723c6d13094e87a8714ef81a328)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef SW_USRFLD_HXX
24 #define SW_USRFLD_HXX
25 
26 #include "swdllapi.h"
27 #include "fldbas.hxx"
28 
29 class SfxPoolItem;
30 class SwCalc;
31 class SwDoc;
32 
33 /*--------------------------------------------------------------------
34     Beschreibung: Benutzerfelder
35  --------------------------------------------------------------------*/
36 
37 class SW_DLLPUBLIC SwUserFieldType : public SwValueFieldType
38 {
39     sal_Bool    bValidValue : 1;
40     sal_Bool    bDeleted : 1;
41     double  nValue;
42     String  aName;
43     String  aContent;
44     sal_uInt16  nType;
45 
46 public:
47     SwUserFieldType( SwDoc* pDocPtr, const String& );
48 
49     virtual const String&   GetName() const;
50     virtual SwFieldType*    Copy() const;
51 
52     String                  Expand(sal_uInt32 nFmt, sal_uInt16 nSubType, sal_uInt16 nLng);
53 
54     String                  GetContent( sal_uInt32 nFmt = 0 );
55            void             SetContent( const String& rStr, sal_uInt32 nFmt = 0 );
56 
57     inline sal_Bool             IsValid() const;
58     inline void             ChgValid( sal_Bool bNew );
59 
60            double           GetValue(SwCalc& rCalc);    // Member nValue neu berrechnen
61     inline double           GetValue() const;
62     inline void             SetValue(const double nVal);
63 
64     inline sal_uInt16           GetType() const;
65     inline void             SetType(sal_uInt16);
66 
IsDeleted() const67     sal_Bool                    IsDeleted() const       { return bDeleted; }
SetDeleted(sal_Bool b)68     void                    SetDeleted( sal_Bool b )    { bDeleted = b; }
69 
70     virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nMId ) const;
71     virtual sal_Bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nMId );
72 
73 protected:
74    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew );
75 };
76 
IsValid() const77 inline sal_Bool SwUserFieldType::IsValid() const
78     { return bValidValue; }
79 
ChgValid(sal_Bool bNew)80 inline void SwUserFieldType::ChgValid( sal_Bool bNew )
81     { bValidValue = bNew; }
82 
GetValue() const83 inline double SwUserFieldType::GetValue() const
84     { return nValue; }
85 
SetValue(const double nVal)86 inline void SwUserFieldType::SetValue(const double nVal)
87     { nValue = nVal; }
88 
GetType() const89 inline sal_uInt16 SwUserFieldType::GetType() const
90     { return nType; }
91 
SetType(sal_uInt16 nSub)92 inline void SwUserFieldType::SetType(sal_uInt16 nSub)
93 {
94     nType = nSub;
95     EnableFormat(!(nSub & nsSwGetSetExpType::GSE_STRING));
96 }
97 
98 /*--------------------------------------------------------------------
99     Beschreibung: Benutzerfelder
100  --------------------------------------------------------------------*/
101 
102 class SW_DLLPUBLIC SwUserField : public SwValueField
103 {
104     sal_uInt16  nSubType;
105 
106     virtual String          Expand() const;
107     virtual SwField*        Copy() const;
108 
109 public:
110     SwUserField(SwUserFieldType*, sal_uInt16 nSub = 0, sal_uInt32 nFmt = 0);
111 
112     virtual sal_uInt16          GetSubType() const;
113     virtual void            SetSubType(sal_uInt16 nSub);
114 
115     virtual double          GetValue() const;
116     virtual void            SetValue( const double& rVal );
117 
118     virtual String          GetFieldName() const;
119 
120     // Name kann nicht geaendert werden
121     virtual const String&   GetPar1() const;
122 
123     // Inhalt
124     virtual String          GetPar2() const;
125     virtual void            SetPar2(const String& rStr);
126     virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ) const;
127     virtual sal_Bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId );
128 };
129 
130 #endif // SW_USRFLD_HXX
131