1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir #ifndef SW_USRFLD_HXX 28*cdf0e10cSrcweir #define SW_USRFLD_HXX 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir #include "swdllapi.h" 31*cdf0e10cSrcweir #include "fldbas.hxx" 32*cdf0e10cSrcweir 33*cdf0e10cSrcweir class SfxPoolItem; 34*cdf0e10cSrcweir class SwCalc; 35*cdf0e10cSrcweir class SwDoc; 36*cdf0e10cSrcweir 37*cdf0e10cSrcweir /*-------------------------------------------------------------------- 38*cdf0e10cSrcweir Beschreibung: Benutzerfelder 39*cdf0e10cSrcweir --------------------------------------------------------------------*/ 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir class SW_DLLPUBLIC SwUserFieldType : public SwValueFieldType 42*cdf0e10cSrcweir { 43*cdf0e10cSrcweir sal_Bool bValidValue : 1; 44*cdf0e10cSrcweir sal_Bool bDeleted : 1; 45*cdf0e10cSrcweir double nValue; 46*cdf0e10cSrcweir String aName; 47*cdf0e10cSrcweir String aContent; 48*cdf0e10cSrcweir sal_uInt16 nType; 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir public: 51*cdf0e10cSrcweir SwUserFieldType( SwDoc* pDocPtr, const String& ); 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir virtual const String& GetName() const; 54*cdf0e10cSrcweir virtual SwFieldType* Copy() const; 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir String Expand(sal_uInt32 nFmt, sal_uInt16 nSubType, sal_uInt16 nLng); 57*cdf0e10cSrcweir 58*cdf0e10cSrcweir String GetContent( sal_uInt32 nFmt = 0 ); 59*cdf0e10cSrcweir void SetContent( const String& rStr, sal_uInt32 nFmt = 0 ); 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir inline sal_Bool IsValid() const; 62*cdf0e10cSrcweir inline void ChgValid( sal_Bool bNew ); 63*cdf0e10cSrcweir 64*cdf0e10cSrcweir double GetValue(SwCalc& rCalc); // Member nValue neu berrechnen 65*cdf0e10cSrcweir inline double GetValue() const; 66*cdf0e10cSrcweir inline void SetValue(const double nVal); 67*cdf0e10cSrcweir 68*cdf0e10cSrcweir inline sal_uInt16 GetType() const; 69*cdf0e10cSrcweir inline void SetType(sal_uInt16); 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir sal_Bool IsDeleted() const { return bDeleted; } 72*cdf0e10cSrcweir void SetDeleted( sal_Bool b ) { bDeleted = b; } 73*cdf0e10cSrcweir 74*cdf0e10cSrcweir virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nMId ) const; 75*cdf0e10cSrcweir virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nMId ); 76*cdf0e10cSrcweir 77*cdf0e10cSrcweir protected: 78*cdf0e10cSrcweir virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); 79*cdf0e10cSrcweir }; 80*cdf0e10cSrcweir 81*cdf0e10cSrcweir inline sal_Bool SwUserFieldType::IsValid() const 82*cdf0e10cSrcweir { return bValidValue; } 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir inline void SwUserFieldType::ChgValid( sal_Bool bNew ) 85*cdf0e10cSrcweir { bValidValue = bNew; } 86*cdf0e10cSrcweir 87*cdf0e10cSrcweir inline double SwUserFieldType::GetValue() const 88*cdf0e10cSrcweir { return nValue; } 89*cdf0e10cSrcweir 90*cdf0e10cSrcweir inline void SwUserFieldType::SetValue(const double nVal) 91*cdf0e10cSrcweir { nValue = nVal; } 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir inline sal_uInt16 SwUserFieldType::GetType() const 94*cdf0e10cSrcweir { return nType; } 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir inline void SwUserFieldType::SetType(sal_uInt16 nSub) 97*cdf0e10cSrcweir { 98*cdf0e10cSrcweir nType = nSub; 99*cdf0e10cSrcweir EnableFormat(!(nSub & nsSwGetSetExpType::GSE_STRING)); 100*cdf0e10cSrcweir } 101*cdf0e10cSrcweir 102*cdf0e10cSrcweir /*-------------------------------------------------------------------- 103*cdf0e10cSrcweir Beschreibung: Benutzerfelder 104*cdf0e10cSrcweir --------------------------------------------------------------------*/ 105*cdf0e10cSrcweir 106*cdf0e10cSrcweir class SW_DLLPUBLIC SwUserField : public SwValueField 107*cdf0e10cSrcweir { 108*cdf0e10cSrcweir sal_uInt16 nSubType; 109*cdf0e10cSrcweir 110*cdf0e10cSrcweir virtual String Expand() const; 111*cdf0e10cSrcweir virtual SwField* Copy() const; 112*cdf0e10cSrcweir 113*cdf0e10cSrcweir public: 114*cdf0e10cSrcweir SwUserField(SwUserFieldType*, sal_uInt16 nSub = 0, sal_uInt32 nFmt = 0); 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir virtual sal_uInt16 GetSubType() const; 117*cdf0e10cSrcweir virtual void SetSubType(sal_uInt16 nSub); 118*cdf0e10cSrcweir 119*cdf0e10cSrcweir virtual double GetValue() const; 120*cdf0e10cSrcweir virtual void SetValue( const double& rVal ); 121*cdf0e10cSrcweir 122*cdf0e10cSrcweir virtual String GetFieldName() const; 123*cdf0e10cSrcweir 124*cdf0e10cSrcweir // Name kann nicht geaendert werden 125*cdf0e10cSrcweir virtual const String& GetPar1() const; 126*cdf0e10cSrcweir 127*cdf0e10cSrcweir // Inhalt 128*cdf0e10cSrcweir virtual String GetPar2() const; 129*cdf0e10cSrcweir virtual void SetPar2(const String& rStr); 130*cdf0e10cSrcweir virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ) const; 131*cdf0e10cSrcweir virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ); 132*cdf0e10cSrcweir }; 133*cdf0e10cSrcweir 134*cdf0e10cSrcweir #endif // SW_USRFLD_HXX 135