00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KDATEPICKER_H
00021 #define KDATEPICKER_H
00022 #include <qdatetime.h>
00023 #include <qframe.h>
00024
00025 class QLineEdit;
00026 class QToolButton;
00027 class KDateValidator;
00028 class KDateTable;
00029
00049 class KDatePicker: public QFrame
00050 {
00051 Q_OBJECT
00052 Q_PROPERTY( QDate date READ date WRITE setDate)
00053 Q_PROPERTY( bool closeButton READ hasCloseButton WRITE setCloseButton )
00054
00055 public:
00059 KDatePicker(QWidget *parent=0,
00060 QDate=QDate::currentDate(),
00061 const char *name=0);
00062
00067 KDatePicker(QWidget *parent,
00068 QDate,
00069 const char *name,
00070 WFlags f);
00071
00077 KDatePicker( QWidget *parent, const char *name );
00078
00082 virtual ~KDatePicker();
00083
00090 QSize sizeHint() const;
00091
00098 bool setDate(const QDate&);
00099
00104 const QDate& getDate() const;
00105
00109 const QDate &date() const;
00110
00114 void setEnabled(bool);
00115
00119 void setFontSize(int);
00123 int fontSize() const
00124 { return fontsize; }
00125
00135 void setCloseButton( bool enable );
00136
00142 bool hasCloseButton() const;
00143
00144 protected:
00146 virtual bool eventFilter(QObject *o, QEvent *e );
00148 virtual void resizeEvent(QResizeEvent*);
00150 QToolButton *yearForward;
00152 QToolButton *yearBackward;
00154 QToolButton *monthForward;
00156 QToolButton *monthBackward;
00158 QToolButton *selectMonth;
00160 QToolButton *selectYear;
00162 QLineEdit *line;
00164 KDateValidator *val;
00166 KDateTable *table;
00168
00170
00171 protected slots:
00172 void dateChangedSlot(QDate);
00173 void tableClickedSlot();
00174 void monthForwardClicked();
00175 void monthBackwardClicked();
00176 void yearForwardClicked();
00177 void yearBackwardClicked();
00179 void selectWeekClicked();
00180 void selectMonthClicked();
00181 void selectYearClicked();
00182 void lineEnterPressed();
00183 signals:
00190 void dateChanged(QDate);
00196 void dateSelected(QDate);
00202 void dateEntered(QDate);
00206 void tableClicked();
00207
00208 private:
00210 int fontsize;
00211
00212 protected:
00213 virtual void virtual_hook( int id, void* data );
00214 private:
00215 void init( const QDate &dt );
00216 class KDatePickerPrivate;
00217 KDatePickerPrivate *d;
00218
00219 int weekOfYear(QDate);
00220 };
00221
00222 #endif // KDATEPICKER_H