00001 #ifndef DATECALENDAR_H 00002 #define DATECALENDAR_H 00003 00004 #include <QCalendarWidget> 00005 #include <QLineEdit> 00006 #include <QList> 00007 #include <QObject> 00008 #include <QWidget> 00009 #include <QMainWindow> 00010 class ALineEdit; 00011 00012 class DateCalendar: public QCalendarWidget 00013 { 00014 Q_OBJECT 00015 00016 public: 00017 DateCalendar(QWidget *parent = 0); 00018 virtual ~DateCalendar(); 00019 void enableOn(ALineEdit *editor); 00020 void disableOn(ALineEdit *editor); 00021 void setMainWindow(QMainWindow *mw) { mainWindow = mw; } 00022 00023 public slots: 00024 void dateClicked(const QDate &date); 00025 void editReturnPressed(); 00026 void textChanged(const QString &text); 00027 void focusChanged(QWidget *old, QWidget *now); 00028 00029 private: 00030 ALineEdit *current; 00031 QList<ALineEdit *> editors; 00032 QWidget *mainWindow; 00033 int count; 00034 bool singleSkip; 00035 00036 QPoint addPS(const QPoint& p, const QSize& s); 00037 QPoint subPS(const QPoint& p, const QSize& s); 00038 QPoint widgetPos(QWidget *widget, int depth = 10); 00039 }; 00040 00041 #endif // DATECALENDAR_H