kdatetbl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KDATETBL_H
00021 #define KDATETBL_H
00022
00023
00024
00025 #include <qvalidator.h>
00026 #include <qgridview.h>
00027 #include <qlineedit.h>
00028 #include <qdatetime.h>
00029 #include <qcolor.h>
00030
00031 #include <kdelibs_export.h>
00032
00033 class KPopupMenu;
00034
00040 class KDEUI_EXPORT KDateInternalWeekSelector : public QLineEdit
00041 {
00042 Q_OBJECT
00043 protected:
00044 QIntValidator *val;
00045 int result;
00046 public slots:
00047 void weekEnteredSlot();
00048 void setMaxWeek(int max);
00049 signals:
00050 void closeMe(int);
00051 public:
00052 KDateInternalWeekSelector( QWidget* parent=0, const char* name=0);
00053 int getWeek();
00054 void setWeek(int week);
00055
00056 private:
00057 class KDateInternalWeekPrivate;
00058 KDateInternalWeekPrivate *d;
00059 };
00060
00067 class KDEUI_EXPORT KDateInternalMonthPicker : public QGridView
00068 {
00069 Q_OBJECT
00070 protected:
00074 int result;
00078 short int activeCol;
00079 short int activeRow;
00083 QRect max;
00084 signals:
00088 void closeMe(int);
00089 public:
00093 KDateInternalMonthPicker(const QDate& date, QWidget* parent, const char* name=0);
00097 ~KDateInternalMonthPicker();
00101 QSize sizeHint() const;
00106 int getResult() const;
00107 protected:
00111 void setupPainter(QPainter *p);
00115 virtual void viewportResizeEvent(QResizeEvent*);
00119 virtual void paintCell(QPainter* painter, int row, int col);
00123 virtual void contentsMousePressEvent(QMouseEvent *e);
00124 virtual void contentsMouseMoveEvent(QMouseEvent *e);
00128 virtual void contentsMouseReleaseEvent(QMouseEvent *e);
00129
00130 private:
00131 class KDateInternalMonthPrivate;
00132 KDateInternalMonthPrivate *d;
00133 };
00134
00140 class KDEUI_EXPORT KDateInternalYearSelector : public QLineEdit
00141 {
00142 Q_OBJECT
00143 protected:
00144 QIntValidator *val;
00145 int result;
00146 public slots:
00147 void yearEnteredSlot();
00148 signals:
00149 void closeMe(int);
00150 public:
00151 KDateInternalYearSelector( QWidget* parent=0, const char* name=0);
00152 int getYear();
00153 void setYear(int year);
00154
00155 private:
00156 class KDateInternalYearPrivate;
00157 KDateInternalYearPrivate *d;
00158
00159 };
00160
00166 class KDEUI_EXPORT KPopupFrame : public QFrame
00167 {
00168 Q_OBJECT
00169 protected:
00173 int result;
00177 virtual void keyPressEvent(QKeyEvent* e);
00181 QWidget *main;
00182 public slots:
00187 void close(int r);
00188 public:
00192 KPopupFrame(QWidget* parent=0, const char* name=0);
00200 void setMainWidget(QWidget* m);
00205 virtual void resizeEvent(QResizeEvent*);
00209 void popup(const QPoint &pos);
00213 int exec(QPoint p);
00217 int exec(int x, int y);
00218
00219 private:
00220
00221 virtual bool close(bool alsoDelete) { return QFrame::close(alsoDelete); }
00222 protected:
00223 virtual void virtual_hook( int id, void* data );
00224 private:
00225 class KPopupFramePrivate;
00226 KPopupFramePrivate *d;
00227 };
00228
00232 class KDEUI_EXPORT KDateValidator : public QValidator
00233 {
00234 public:
00235 KDateValidator(QWidget* parent=0, const char* name=0);
00236 virtual State validate(QString&, int&) const;
00237 virtual void fixup ( QString & input ) const;
00238 State date(const QString&, QDate&) const;
00239 };
00240
00254 class KDEUI_EXPORT KDateTable : public QGridView
00255 {
00256 Q_OBJECT
00257 Q_PROPERTY( QDate date READ getDate WRITE setDate )
00258 Q_PROPERTY( bool popupMenu READ popupMenuEnabled WRITE setPopupMenuEnabled )
00259
00260 public:
00264 KDateTable(QWidget *parent=0, QDate date=QDate::currentDate(),
00265 const char* name=0, WFlags f=0);
00266
00271 KDateTable(QWidget *parent, const char* name, WFlags f=0);
00272
00276 ~KDateTable();
00277
00285 virtual QSize sizeHint() const;
00289 void setFontSize(int size);
00293 bool setDate(const QDate&);
00294
00295 const QDate& getDate() const;
00296
00305 void setPopupMenuEnabled( bool enable );
00306
00310 bool popupMenuEnabled() const;
00311
00312 enum BackgroundMode { NoBgMode=0, RectangleMode, CircleMode };
00313
00320 void setCustomDatePainting( const QDate &date, const QColor &fgColor, BackgroundMode bgMode=NoBgMode, const QColor &bgColor=QColor());
00321
00327 void unsetCustomDatePainting( const QDate &date );
00328
00329 protected:
00333 int posFromDate( const QDate &date );
00338 QDate dateFromPos( int pos );
00339
00343 virtual void paintCell(QPainter*, int, int);
00347 virtual void viewportResizeEvent(QResizeEvent *);
00351 virtual void contentsMousePressEvent(QMouseEvent *);
00352 virtual void wheelEvent( QWheelEvent * e );
00353 virtual void keyPressEvent( QKeyEvent *e );
00354 virtual void focusInEvent( QFocusEvent *e );
00355 virtual void focusOutEvent( QFocusEvent *e );
00356
00357
00358
00362 int fontsize;
00366 QDate date;
00370 int firstday;
00374 int numdays;
00378 int numDaysPrevMonth;
00383 bool unused_hasSelection;
00387 QRect maxCell;
00388 signals:
00392
00393 void dateChanged(QDate);
00400 void dateChanged(const QDate& cur, const QDate& old);
00404 void tableClicked();
00405
00413 void aboutToShowContextMenu( KPopupMenu * menu, const QDate &date);
00414
00415 private slots:
00416 void nextMonth();
00417 void previousMonth();
00418 void beginningOfMonth();
00419 void endOfMonth();
00420 void beginningOfWeek();
00421 void endOfWeek();
00422
00423 protected:
00424 virtual void virtual_hook( int id, void* data );
00425 private:
00426 class KDateTablePrivate;
00427 KDateTablePrivate *d;
00428
00429 void initAccels();
00430 };
00431
00432 #endif // KDATETBL_H
This file is part of the documentation for kdeui Library Version 3.4.3.