1
/****************************************************************************
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
5
** This file is part of the Qt 3 compatibility classes of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
29
#ifndef Q3DATETIMEEDIT_H
30
#define Q3DATETIMEEDIT_H
32
#include "QtGui/qwidget.h"
33
#include "QtCore/qstring.h"
34
#include "QtCore/qdatetime.h"
36
#ifndef QT_NO_DATETIMEEDIT
38
class Q_COMPAT_EXPORT Q3DateTimeEditBase : public QWidget
42
Q3DateTimeEditBase(QWidget* parent=0, const char* name=0)
43
: QWidget(parent) { setObjectName(name); }
45
virtual bool setFocusSection(int sec) = 0;
46
virtual QString sectionFormattedText(int sec) = 0;
47
virtual void addNumber(int sec, int num) = 0;
48
virtual void removeLastNumber(int sec) = 0;
51
virtual void stepUp() = 0;
52
virtual void stepDown() = 0;
55
Q_DISABLE_COPY(Q3DateTimeEditBase)
58
class Q3DateEditPrivate;
60
class Q_COMPAT_EXPORT Q3DateEdit : public Q3DateTimeEditBase
64
Q_PROPERTY(Order order READ order WRITE setOrder)
65
Q_PROPERTY(QDate date READ date WRITE setDate)
66
Q_PROPERTY(bool autoAdvance READ autoAdvance WRITE setAutoAdvance)
67
Q_PROPERTY(QDate maxValue READ maxValue WRITE setMaxValue)
68
Q_PROPERTY(QDate minValue READ minValue WRITE setMinValue)
71
Q3DateEdit(QWidget* parent=0, const char* name=0);
72
Q3DateEdit(const QDate& date, QWidget* parent=0, const char* name=0);
75
enum Order { DMY, MDY, YMD, YDM };
77
QSize sizeHint() const;
78
QSize minimumSizeHint() const;
81
virtual void setDate(const QDate& date);
85
virtual void setOrder(Order order);
87
virtual void setAutoAdvance(bool advance);
88
bool autoAdvance() const;
90
virtual void setMinValue(const QDate& d) { setRange(d, maxValue()); }
91
QDate minValue() const;
92
virtual void setMaxValue(const QDate& d) { setRange(minValue(), d); }
93
QDate maxValue() const;
94
virtual void setRange(const QDate& min, const QDate& max);
95
QString separator() const;
96
virtual void setSeparator(const QString& s);
98
// Make removeFirstNumber() virtual in Q3DateTimeEditBase in 4.0
99
void removeFirstNumber(int sec);
102
void valueChanged(const QDate& date);
105
bool event(QEvent *e);
106
void timerEvent(QTimerEvent *);
107
void resizeEvent(QResizeEvent *);
110
QString sectionFormattedText(int sec);
111
void addNumber(int sec, int num);
113
void removeLastNumber(int sec);
114
bool setFocusSection(int s);
116
virtual void setYear(int year);
117
virtual void setMonth(int month);
118
virtual void setDay(int day);
120
virtual bool outOfRange(int y, int m, int d) const;
123
void updateButtons();
126
Q_DISABLE_COPY(Q3DateEdit)
129
int sectionOffsetEnd(int sec) const;
130
int sectionLength(int sec) const;
131
QString sectionText(int sec) const;
132
Q3DateEditPrivate* d;
135
class Q3TimeEditPrivate;
137
class Q_COMPAT_EXPORT Q3TimeEdit : public Q3DateTimeEditBase
141
Q_PROPERTY(QTime time READ time WRITE setTime)
142
Q_PROPERTY(bool autoAdvance READ autoAdvance WRITE setAutoAdvance)
143
Q_PROPERTY(QTime maxValue READ maxValue WRITE setMaxValue)
144
Q_PROPERTY(QTime minValue READ minValue WRITE setMinValue)
145
Q_PROPERTY(Display display READ display WRITE setDisplay)
156
Q3TimeEdit(QWidget* parent=0, const char* name=0);
157
Q3TimeEdit(const QTime& time, QWidget* parent=0, const char* name=0);
160
QSize sizeHint() const;
161
QSize minimumSizeHint() const;
164
virtual void setTime(const QTime& time);
168
virtual void setAutoAdvance(bool advance);
169
bool autoAdvance() const;
171
virtual void setMinValue(const QTime& d) { setRange(d, maxValue()); }
172
QTime minValue() const;
173
virtual void setMaxValue(const QTime& d) { setRange(minValue(), d); }
174
QTime maxValue() const;
175
virtual void setRange(const QTime& min, const QTime& max);
176
QString separator() const;
177
virtual void setSeparator(const QString& s);
179
uint display() const;
180
void setDisplay(uint disp);
182
// Make removeFirstNumber() virtual in Q3DateTimeEditBase in 4.0
183
void removeFirstNumber(int sec);
186
void valueChanged(const QTime& time);
189
bool event(QEvent *e);
190
void timerEvent(QTimerEvent *e);
191
void resizeEvent(QResizeEvent *);
194
QString sectionFormattedText(int sec);
195
void addNumber(int sec, int num);
196
void removeLastNumber(int sec);
197
bool setFocusSection(int s);
199
virtual bool outOfRange(int h, int m, int s) const;
200
virtual void setHour(int h);
201
virtual void setMinute(int m);
202
virtual void setSecond(int s);
205
void updateButtons();
208
Q_DISABLE_COPY(Q3TimeEdit)
211
QString sectionText(int sec);
212
Q3TimeEditPrivate* d;
216
class Q3DateTimeEditPrivate;
218
class Q_COMPAT_EXPORT Q3DateTimeEdit : public QWidget
221
Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime)
224
Q3DateTimeEdit(QWidget* parent=0, const char* name=0);
225
Q3DateTimeEdit(const QDateTime& datetime, QWidget* parent=0,
229
QSize sizeHint() const;
230
QSize minimumSizeHint() const;
233
virtual void setDateTime(const QDateTime & dt);
236
QDateTime dateTime() const;
238
Q3DateEdit* dateEdit() { return de; }
239
Q3TimeEdit* timeEdit() { return te; }
241
virtual void setAutoAdvance(bool advance);
242
bool autoAdvance() const;
245
void valueChanged(const QDateTime& datetime);
249
void resizeEvent(QResizeEvent *);
252
void newValue(const QDate& d);
253
void newValue(const QTime& t);
256
Q_DISABLE_COPY(Q3DateTimeEdit)
260
Q3DateTimeEditPrivate* d;