source: trunk/include/qdatetimeedit.h

Last change on this file was 2, checked in by dmik, 20 years ago

Imported xplatform parts of the official release 3.3.1 from Trolltech

  • Property svn:keywords set to Id
File size: 8.3 KB
Line 
1/****************************************************************************
2** $Id: qdatetimeedit.h 2 2005-11-16 15:49:26Z dmik $
3**
4** Definition of date and time edit classes
5**
6** Created : 001103
7**
8** Copyright (C) 2000 Trolltech AS. All rights reserved.
9**
10** This file is part of the widgets module of the Qt GUI Toolkit.
11**
12** This file may be distributed under the terms of the Q Public License
13** as defined by Trolltech AS of Norway and appearing in the file
14** LICENSE.QPL included in the packaging of this file.
15**
16** This file may be distributed and/or modified under the terms of the
17** GNU General Public License version 2 as published by the Free Software
18** Foundation and appearing in the file LICENSE.GPL included in the
19** packaging of this file.
20**
21** Licensees holding valid Qt Enterprise Edition licenses may use this
22** file in accordance with the Qt Commercial License Agreement provided
23** with the Software.
24**
25** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27**
28** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29** information about Qt Commercial License Agreements.
30** See http://www.trolltech.com/qpl/ for QPL licensing information.
31** See http://www.trolltech.com/gpl/ for GPL licensing information.
32**
33** Contact info@trolltech.com if any conditions of this licensing are
34** not clear to you.
35**
36**********************************************************************/
37
38#ifndef QDATETIMEEDIT_H
39#define QDATETIMEEDIT_H
40
41#ifndef QT_H
42#include "qwidget.h"
43#include "qstring.h"
44#include "qdatetime.h"
45#endif // QT_H
46
47#ifndef QT_NO_DATETIMEEDIT
48
49class Q_EXPORT QDateTimeEditBase : public QWidget
50{
51 Q_OBJECT
52public:
53 QDateTimeEditBase( QWidget* parent=0, const char* name=0 )
54 : QWidget( parent, name ) {}
55
56 virtual bool setFocusSection( int sec ) = 0;
57 virtual QString sectionFormattedText( int sec ) = 0;
58 virtual void addNumber( int sec, int num ) = 0;
59 virtual void removeLastNumber( int sec ) = 0;
60
61public slots:
62 virtual void stepUp() = 0;
63 virtual void stepDown() = 0;
64
65private:
66#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
67 QDateTimeEditBase( const QDateTimeEditBase & );
68 QDateTimeEditBase &operator=( const QDateTimeEditBase & );
69#endif
70};
71
72class QDateEditPrivate;
73
74class Q_EXPORT QDateEdit : public QDateTimeEditBase
75{
76 Q_OBJECT
77 Q_ENUMS( Order )
78 Q_PROPERTY( Order order READ order WRITE setOrder )
79 Q_PROPERTY( QDate date READ date WRITE setDate )
80 Q_PROPERTY( bool autoAdvance READ autoAdvance WRITE setAutoAdvance )
81 Q_PROPERTY( QDate maxValue READ maxValue WRITE setMaxValue )
82 Q_PROPERTY( QDate minValue READ minValue WRITE setMinValue )
83
84public:
85 QDateEdit( QWidget* parent=0, const char* name=0 );
86 QDateEdit( const QDate& date, QWidget* parent=0, const char* name=0 );
87 ~QDateEdit();
88
89 enum Order { DMY, MDY, YMD, YDM };
90
91 QSize sizeHint() const;
92 QSize minimumSizeHint() const;
93
94public slots:
95 virtual void setDate( const QDate& date );
96
97public:
98 QDate date() const;
99 virtual void setOrder( Order order );
100 Order order() const;
101 virtual void setAutoAdvance( bool advance );
102 bool autoAdvance() const;
103
104 virtual void setMinValue( const QDate& d ) { setRange( d, maxValue() ); }
105 QDate minValue() const;
106 virtual void setMaxValue( const QDate& d ) { setRange( minValue(), d ); }
107 QDate maxValue() const;
108 virtual void setRange( const QDate& min, const QDate& max );
109 QString separator() const;
110 virtual void setSeparator( const QString& s );
111
112 // Make removeFirstNumber() virtual in QDateTimeEditBase in 4.0
113 void removeFirstNumber( int sec );
114
115signals:
116 void valueChanged( const QDate& date );
117
118protected:
119 bool event( QEvent *e );
120 void timerEvent( QTimerEvent * );
121 void resizeEvent( QResizeEvent * );
122 void stepUp();
123 void stepDown();
124 QString sectionFormattedText( int sec );
125 void addNumber( int sec, int num );
126
127 void removeLastNumber( int sec );
128 bool setFocusSection( int s );
129
130 virtual void setYear( int year );
131 virtual void setMonth( int month );
132 virtual void setDay( int day );
133 virtual void fix();
134 virtual bool outOfRange( int y, int m, int d ) const;
135
136protected slots:
137 void updateButtons();
138
139private:
140 void init();
141 int sectionOffsetEnd( int sec ) const;
142 int sectionLength( int sec ) const;
143 QString sectionText( int sec ) const;
144 QDateEditPrivate* d;
145
146#if defined(Q_DISABLE_COPY)
147 QDateEdit( const QDateEdit & );
148 QDateEdit &operator=( const QDateEdit & );
149#endif
150};
151
152class QTimeEditPrivate;
153
154class Q_EXPORT QTimeEdit : public QDateTimeEditBase
155{
156 Q_OBJECT
157 Q_SETS( Display )
158 Q_PROPERTY( QTime time READ time WRITE setTime )
159 Q_PROPERTY( bool autoAdvance READ autoAdvance WRITE setAutoAdvance )
160 Q_PROPERTY( QTime maxValue READ maxValue WRITE setMaxValue )
161 Q_PROPERTY( QTime minValue READ minValue WRITE setMinValue )
162 Q_PROPERTY( Display display READ display WRITE setDisplay )
163
164public:
165 enum Display {
166 Hours = 0x01,
167 Minutes = 0x02,
168 Seconds = 0x04,
169 /*Reserved = 0x08,*/
170 AMPM = 0x10
171 };
172
173 QTimeEdit( QWidget* parent=0, const char* name=0 );
174 QTimeEdit( const QTime& time, QWidget* parent=0, const char* name=0 );
175 ~QTimeEdit();
176
177 QSize sizeHint() const;
178 QSize minimumSizeHint() const;
179
180public slots:
181 virtual void setTime( const QTime& time );
182
183public:
184 QTime time() const;
185 virtual void setAutoAdvance( bool advance );
186 bool autoAdvance() const;
187
188 virtual void setMinValue( const QTime& d ) { setRange( d, maxValue() ); }
189 QTime minValue() const;
190 virtual void setMaxValue( const QTime& d ) { setRange( minValue(), d ); }
191 QTime maxValue() const;
192 virtual void setRange( const QTime& min, const QTime& max );
193 QString separator() const;
194 virtual void setSeparator( const QString& s );
195
196 uint display() const;
197 void setDisplay( uint disp );
198
199 // Make removeFirstNumber() virtual in QDateTimeEditBase in 4.0
200 void removeFirstNumber( int sec );
201
202signals:
203 void valueChanged( const QTime& time );
204
205protected:
206 bool event( QEvent *e );
207 void timerEvent( QTimerEvent *e );
208 void resizeEvent( QResizeEvent * );
209 void stepUp();
210 void stepDown();
211 QString sectionFormattedText( int sec );
212 void addNumber( int sec, int num );
213 void removeLastNumber( int sec );
214 bool setFocusSection( int s );
215
216 virtual bool outOfRange( int h, int m, int s ) const;
217 virtual void setHour( int h );
218 virtual void setMinute( int m );
219 virtual void setSecond( int s );
220
221protected slots:
222 void updateButtons();
223
224private:
225 void init();
226 QString sectionText( int sec );
227 QTimeEditPrivate* d;
228
229#if defined(Q_DISABLE_COPY)
230 QTimeEdit( const QTimeEdit & );
231 QTimeEdit &operator=( const QTimeEdit & );
232#endif
233};
234
235
236class QDateTimeEditPrivate;
237
238class Q_EXPORT QDateTimeEdit : public QWidget
239{
240 Q_OBJECT
241 Q_PROPERTY( QDateTime dateTime READ dateTime WRITE setDateTime )
242
243public:
244 QDateTimeEdit( QWidget* parent=0, const char* name=0 );
245 QDateTimeEdit( const QDateTime& datetime, QWidget* parent=0,
246 const char* name=0 );
247 ~QDateTimeEdit();
248
249 QSize sizeHint() const;
250 QSize minimumSizeHint() const;
251
252public slots:
253 virtual void setDateTime( const QDateTime & dt );
254
255public:
256 QDateTime dateTime() const;
257
258 QDateEdit* dateEdit() { return de; }
259 QTimeEdit* timeEdit() { return te; }
260
261 virtual void setAutoAdvance( bool advance );
262 bool autoAdvance() const;
263
264signals:
265 void valueChanged( const QDateTime& datetime );
266
267protected:
268 // ### make init() private in Qt 4.0
269 void init();
270 void resizeEvent( QResizeEvent * );
271
272protected slots:
273 // ### make these two functions private in Qt 4.0,
274 // and merge them into one with no parameter
275 void newValue( const QDate& d );
276 void newValue( const QTime& t );
277
278private:
279 QDateEdit* de;
280 QTimeEdit* te;
281 QDateTimeEditPrivate* d;
282
283#if defined(Q_DISABLE_COPY)
284 QDateTimeEdit( const QDateTimeEdit & );
285 QDateTimeEdit &operator=( const QDateTimeEdit & );
286#endif
287};
288
289#endif
290#endif
Note: See TracBrowser for help on using the repository browser.