xref: /aoo4110/main/sw/inc/flddat.hxx (revision b1cdbd2c)
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 
24 #ifndef SW_FLDDAT_HXX
25 #define SW_FLDDAT_HXX
26 
27 #include <tools/string.hxx>
28 
29 #include "fldbas.hxx"
30 
31 class DateTime;
32 class Date;
33 class Time;
34 
35 /*--------------------------------------------------------------------
36 	Beschreibung: Formate
37  --------------------------------------------------------------------*/
38 
39 enum SwDateFormat
40 {
41 	DF_BEGIN,
42 	//neue Formate:
43 	DFF_SSYS = DF_BEGIN,
44 	DFF_LSYS ,
45 	DFF_DMY ,
46 	DFF_DMYY ,
47 	DFF_DMMY ,
48 	DFF_DMMYY,
49 	DFF_DMMMY ,
50 	DFF_DMMMYY,
51 	DFF_DDMMY ,
52 	DFF_DDMMMY ,
53 	DFF_DDMMMYY ,
54 	DFF_DDDMMMY ,
55 	DFF_DDDMMMYY ,
56 	DFF_MY ,
57 	DFF_MD ,
58 	DFF_YMD ,
59 	DFF_YYMD ,
60 	DF_END ,
61 //	Kompatibilitaet:
62 	DF_SSYS 	= DFF_SSYS,
63 	DF_LSYS 	= DFF_LSYS,
64 	DF_SHORT 	= DFF_DMY,
65 	DF_SCENT 	= DFF_DMYY,
66 	DF_LMON		= DFF_DMMYY,
67 	DF_LMONTH	= DFF_DMMMYY,
68 	DF_LDAYMON	= DFF_DDMMMYY,
69 	DF_LDAYMONTH= DFF_DDDMMMYY
70 };
71 
72 enum SwTimeFormat
73 {
74 	TF_BEGIN,
75 	TF_SYSTEM=TF_BEGIN,
76 	TF_SSMM_24,
77 	TF_SSMM_12,
78 	TF_END
79 };
80 
81 enum SwTimeSubFormat
82 {
83 	TIME_FIX,
84 	TIME_VAR
85 };
86 
87 enum SwDateSubFormat
88 {
89 	DATE_FIX,
90 	DATE_VAR
91 };
92 
93 /*--------------------------------------------------------------------
94 	Beschreibung: Datum/Uhrzeitfeld
95  --------------------------------------------------------------------*/
96 
97 class SwDateTimeFieldType : public SwValueFieldType
98 {
99 public:
100 		SwDateTimeFieldType(SwDoc* pDoc);
101 
102 		virtual SwFieldType*    Copy() const;
103 };
104 
105 /*--------------------------------------------------------------------
106 	Beschreibung: Datum/Uhrzeitfeld
107  --------------------------------------------------------------------*/
108 
109 class SW_DLLPUBLIC SwDateTimeField : public SwValueField
110 {
111 		sal_uInt16				nSubType;
112 		long				nOffset;	// Offset in Minuten
113 
114         virtual String      Expand() const;
115         virtual SwField*    Copy() const;
116 
117 public:
118 		SwDateTimeField(SwDateTimeFieldType* pType, sal_uInt16 nSubType = DATEFLD,
119 					sal_uLong nFmt = 0, sal_uInt16 nLng = 0);
120 
121 		virtual sal_uInt16			GetSubType() const;
122 		virtual void			SetSubType(sal_uInt16 nSub);
123 
124 		virtual double			GetValue() const;
125 
126 		virtual void			SetPar2(const String& rStr);
127 		virtual String			GetPar2() const;
128 
IsDate() const129 		inline sal_Bool				IsDate() const
130 								{ return (nSubType & DATEFLD) != 0; }
131 
SetOffset(long nMinutes)132 		inline void				SetOffset(long nMinutes)	{ nOffset = nMinutes; }
GetOffset() const133 		inline long				GetOffset() const			{ return nOffset; }
134 
135         Date                    GetDate(sal_Bool bUseOffset = sal_False) const;
136         Time                    GetTime(sal_Bool bUseOffset = sal_False) const;
137         void                    SetDateTime(const DateTime& rDT);
138         static double           GetDateTime(SwDoc* pDoc, const DateTime& rDT);
139 
140     virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nMId ) const;
141     virtual sal_Bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nMId );
142 };
143 
144 #endif // SW_FLDDAT_HXX
145