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
#include <qvalidator.h>
00024
#include <qgridview.h>
00025
#include <qlineedit.h>
00026
#include <qdatetime.h>
00027
#include <qcolor.h>
00028
00029
class KPopupMenu;
00030
00036 class KDateInternalWeekSelector :
public QLineEdit
00037 {
00038 Q_OBJECT
00039
protected:
00040
QIntValidator *val;
00041
int result;
00042
public slots:
00043
void weekEnteredSlot();
00044
void setMaxWeek(
int max);
00045 signals:
00046
void closeMe(
int);
00047
public:
00048
KDateInternalWeekSelector(
QWidget* parent=0,
const char* name=0);
00049
int getWeek();
00050
void setWeek(
int week);
00051
00052
private:
00053
class KDateInternalWeekPrivate;
00054 KDateInternalWeekPrivate *d;
00055 };
00056
00063 class KDateInternalMonthPicker :
public QGridView
00064 {
00065 Q_OBJECT
00066
protected:
00070 int result;
00074 short int activeCol;
00075
short int activeRow;
00079 QRect max;
00080 signals:
00084
void closeMe(
int);
00085
public:
00089
KDateInternalMonthPicker(
const QDate& date,
QWidget* parent,
const char* name=0);
00093
~KDateInternalMonthPicker();
00097
QSize sizeHint() const;
00102
int getResult() const;
00103 protected:
00107
void setupPainter(
QPainter *p);
00111 virtual
void viewportResizeEvent(
QResizeEvent*);
00115 virtual
void paintCell(
QPainter* painter,
int row,
int col);
00119 virtual
void contentsMousePressEvent(
QMouseEvent *e);
00120 virtual
void contentsMouseMoveEvent(
QMouseEvent *e);
00124 virtual
void contentsMouseReleaseEvent(
QMouseEvent *e);
00125
00126 private:
00127 class KDateInternalMonthPrivate;
00128 KDateInternalMonthPrivate *d;
00129 };
00130
00136 class
KDateInternalYearSelector : public
QLineEdit
00137 {
00138 Q_OBJECT
00139
protected:
00140
QIntValidator *val;
00141
int result;
00142
public slots:
00143
void yearEnteredSlot();
00144 signals:
00145
void closeMe(
int);
00146
public:
00147
KDateInternalYearSelector(
QWidget* parent=0,
const char* name=0);
00148
int getYear();
00149
void setYear(
int year);
00150
00151
private:
00152
class KDateInternalYearPrivate;
00153 KDateInternalYearPrivate *d;
00154
00155 };
00156
00162 class KPopupFrame :
public QFrame
00163 {
00164 Q_OBJECT
00165
protected:
00169 int result;
00173
virtual void keyPressEvent(
QKeyEvent* e);
00177 QWidget *main;
00178
public slots:
00183
void close(
int r);
00184
public:
00188
KPopupFrame(
QWidget* parent=0,
const char* name=0);
00196
void setMainWidget(
QWidget* m);
00201
virtual void resizeEvent(
QResizeEvent*);
00205
void popup(
const QPoint &pos);
00209
int exec(
QPoint p);
00213
int exec(
int x,
int y);
00214
00215
private:
00216
00217
virtual bool close(
bool alsoDelete) {
return QFrame::close(alsoDelete); }
00218
protected:
00219
virtual void virtual_hook(
int id,
void* data );
00220
private:
00221
class KPopupFramePrivate;
00222 KPopupFramePrivate *d;
00223 };
00224
00228 class KDateValidator :
public QValidator
00229 {
00230
public:
00231
KDateValidator(
QWidget* parent=0,
const char* name=0);
00232
virtual State validate(
QString&,
int&)
const;
00233
virtual void fixup (
QString & input )
const;
00234 State date(
const QString&,
QDate&)
const;
00235 };
00236
00250 class KDateTable :
public QGridView
00251 {
00252 Q_OBJECT
00253 Q_PROPERTY(
QDate date READ getDate WRITE setDate )
00254 Q_PROPERTY(
bool popupMenu READ popupMenuEnabled WRITE setPopupMenuEnabled )
00255
00256
public:
00260
KDateTable(
QWidget *parent=0,
00261
QDate date=QDate::currentDate(),
00262
const char* name=0, WFlags f=0);
00263
00267 ~
KDateTable();
00268
00276
virtual QSize sizeHint() const;
00280
void setFontSize(
int size);
00284
bool setDate(const
QDate&);
00285
00286 const QDate& getDate() const;
00287
00296
void setPopupMenuEnabled(
bool enable );
00297
00301
bool popupMenuEnabled() const;
00302
00303 enum BackgroundMode { NoBgMode=0, RectangleMode, CircleMode };
00304
00311
void setCustomDatePainting(
const QDate &date,
const QColor &fgColor, BackgroundMode bgMode=NoBgMode,
const QColor &bgColor=
QColor());
00312
00318
void unsetCustomDatePainting(
const QDate &date );
00319
00320
protected:
00324
int posFromDate(
const QDate &date );
00329
QDate dateFromPos(
int pos );
00330
00334
virtual void paintCell(
QPainter*,
int,
int);
00338
virtual void viewportResizeEvent(
QResizeEvent *);
00342
virtual void contentsMousePressEvent(
QMouseEvent *);
00343
virtual void wheelEvent(
QWheelEvent * e );
00344
virtual void keyPressEvent(
QKeyEvent *e );
00345
virtual void focusInEvent(
QFocusEvent *e );
00346
virtual void focusOutEvent(
QFocusEvent *e );
00347
00348
00349
00353 int fontsize;
00357
QDate date;
00361 int firstday;
00365 int numdays;
00369 int numDaysPrevMonth;
00374 bool unused_hasSelection;
00378 QRect maxCell;
00379 signals:
00383
00384
void dateChanged(
QDate);
00391
void dateChanged(
const QDate& cur,
const QDate& old);
00395
void tableClicked();
00396
00404
void aboutToShowContextMenu(
KPopupMenu * menu,
const QDate &date);
00405
00406
protected:
00407
virtual void virtual_hook(
int id,
void* data );
00408
private:
00409
class KDateTablePrivate;
00410 KDateTablePrivate *d;
00411 };
00412
00413
#endif // KDATETBL_H