/**************************************************************************** ** ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. ** ** This file is part of the QtGui module of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://trolltech.com/products/qt/licenses/licensing/opensource/ ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview ** or contact the sales department at sales@trolltech.com. ** ** In addition, as a special exception, Trolltech gives you certain ** additional rights. These rights are described in the Trolltech GPL ** Exception version 1.0, which can be found at ** http://www.trolltech.com/products/qt/gplexception/ and in the file ** GPL_EXCEPTION.txt in this package. ** ** In addition, as a special exception, Trolltech, as the sole copyright ** holder for Qt Designer, grants users of the Qt/Eclipse Integration ** plug-in the right for the Qt/Eclipse Integration to link to ** functionality provided by Qt Designer and its related libraries. ** ** Trolltech reserves all rights not expressly granted herein. ** ** Trolltech ASA (c) 2007 ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef QDATETIMEEDIT_H #define QDATETIMEEDIT_H #include #include QT_BEGIN_HEADER QT_MODULE(Gui) #ifndef QT_NO_DATETIMEEDIT class QDateTimeEditPrivate; class QStyleOptionSpinBox; class Q_GUI_EXPORT QDateTimeEdit : public QAbstractSpinBox { Q_OBJECT Q_ENUMS(Section) Q_FLAGS(Sections) Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime NOTIFY dateTimeChanged USER true) Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged) Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChanged) Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate RESET clearMaximumDate) Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate RESET clearMinimumDate) Q_PROPERTY(QTime maximumTime READ maximumTime WRITE setMaximumTime RESET clearMaximumTime) Q_PROPERTY(QTime minimumTime READ minimumTime WRITE setMinimumTime RESET clearMinimumTime) Q_PROPERTY(Section currentSection READ currentSection WRITE setCurrentSection) Q_PROPERTY(Sections displayedSections READ displayedSections) Q_PROPERTY(QString displayFormat READ displayFormat WRITE setDisplayFormat) Q_PROPERTY(bool calendarPopup READ calendarPopup WRITE setCalendarPopup) Q_PROPERTY(int currentSectionIndex READ currentSectionIndex WRITE setCurrentSectionIndex) Q_PROPERTY(int sectionCount READ sectionCount) public: enum Section { NoSection = 0x0000, AmPmSection = 0x0001, MSecSection = 0x0002, SecondSection = 0x0004, MinuteSection = 0x0008, HourSection = 0x0010, DaySection = 0x0100, MonthSection = 0x0200, YearSection = 0x0400, TimeSections_Mask = AmPmSection|MSecSection|SecondSection|MinuteSection|HourSection, DateSections_Mask = DaySection|MonthSection|YearSection }; Q_DECLARE_FLAGS(Sections, Section) explicit QDateTimeEdit(QWidget *parent = 0); explicit QDateTimeEdit(const QDateTime &dt, QWidget *parent = 0); explicit QDateTimeEdit(const QDate &d, QWidget *parent = 0); explicit QDateTimeEdit(const QTime &t, QWidget *parent = 0); QDateTime dateTime() const; QDate date() const; QTime time() const; QDate minimumDate() const; void setMinimumDate(const QDate &min); void clearMinimumDate(); QDate maximumDate() const; void setMaximumDate(const QDate &max); void clearMaximumDate(); void setDateRange(const QDate &min, const QDate &max); QTime minimumTime() const; void setMinimumTime(const QTime &min); void clearMinimumTime(); QTime maximumTime() const; void setMaximumTime(const QTime &max); void clearMaximumTime(); void setTimeRange(const QTime &min, const QTime &max); Sections displayedSections() const; Section currentSection() const; Section sectionAt(int index) const; void setCurrentSection(Section section); int currentSectionIndex() const; void setCurrentSectionIndex(int index); int sectionCount() const; void setSelectedSection(Section section); QString sectionText(Section section) const; QString displayFormat() const; void setDisplayFormat(const QString &format); bool calendarPopup() const; void setCalendarPopup(bool enable); QSize sizeHint() const; virtual void clear(); virtual void stepBy(int steps); bool event(QEvent *event); Q_SIGNALS: void dateTimeChanged(const QDateTime &date); void timeChanged(const QTime &date); void dateChanged(const QDate &date); public Q_SLOTS: void setDateTime(const QDateTime &dateTime); void setDate(const QDate &date); void setTime(const QTime &time); protected: virtual void keyPressEvent(QKeyEvent *event); #ifndef QT_NO_WHEELEVENT virtual void wheelEvent(QWheelEvent *event); #endif virtual void focusInEvent(QFocusEvent *event); virtual bool focusNextPrevChild(bool next); virtual QValidator::State validate(QString &input, int &pos) const; virtual void fixup(QString &input) const; virtual QDateTime dateTimeFromText(const QString &text) const; virtual QString textFromDateTime(const QDateTime &dt) const; virtual StepEnabled stepEnabled() const; virtual void mousePressEvent(QMouseEvent *event); virtual void paintEvent(QPaintEvent *event); void initStyleOption(QStyleOptionSpinBox *option) const; private: Q_DECLARE_PRIVATE(QDateTimeEdit) Q_DISABLE_COPY(QDateTimeEdit) Q_PRIVATE_SLOT(d_func(), void _q_resetButton()) }; class Q_GUI_EXPORT QTimeEdit : public QDateTimeEdit { Q_OBJECT Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChangedu USER true) // ### typo: timeChangedu public: QTimeEdit(QWidget *parent = 0); QTimeEdit(const QTime &time, QWidget *parent = 0); }; class Q_GUI_EXPORT QDateEdit : public QDateTimeEdit { Q_OBJECT Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged USER true) public: QDateEdit(QWidget *parent = 0); QDateEdit(const QDate &date, QWidget *parent = 0); }; Q_DECLARE_OPERATORS_FOR_FLAGS(QDateTimeEdit::Sections) #endif // QT_NO_DATETIMEEDIT QT_END_HEADER #endif // QDATETIMEEDIT_H