dateeditwidget.h

00001 /*
00002     This file is part of Akonadi Contact.
00003 
00004     Copyright (c) 2009 Tobias Koenig <tokoe@kde.org>
00005 
00006     This library is free software; you can redistribute it and/or modify it
00007     under the terms of the GNU Library General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or (at your
00009     option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful, but WITHOUT
00012     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00013     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00014     License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public License
00017     along with this library; see the file COPYING.LIB.  If not, write to the
00018     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00019     02110-1301, USA.
00020 */
00021 
00022 #ifndef DATEEDITWIDGET_H
00023 #define DATEEDITWIDGET_H
00024 
00025 #include <QtCore/QDate>
00026 #include <QtGui/QLabel>
00027 #include <QtGui/QWidget>
00028 
00029 namespace KPIM
00030 {
00031 class KDatePickerPopup;
00032 }
00033 
00034 class QContextMenuEvent;
00035 class QToolButton;
00036 
00037 class DateView : public QLabel
00038 {
00039   Q_OBJECT
00040 
00041   public:
00042     DateView( QWidget *parent = 0 );
00043 
00044   Q_SIGNALS:
00045     void resetDate();
00046 
00047   protected:
00048     virtual void contextMenuEvent( QContextMenuEvent* );
00049 
00050   private Q_SLOTS:
00051     void emitSignal();
00052 };
00053 
00054 class DateEditWidget : public QWidget
00055 {
00056   Q_OBJECT
00057 
00058   public:
00059     enum Type {
00060       General,
00061       Birthday,
00062       Anniversary
00063     };
00064 
00065     explicit DateEditWidget( Type type = General, QWidget *parent = 0 );
00066     ~DateEditWidget();
00067 
00068     void setDate( const QDate &date );
00069     QDate date() const;
00070 
00071     void setReadOnly( bool readOnly );
00072 
00073   private Q_SLOTS:
00074     void dateSelected( const QDate& );
00075     void resetDate();
00076     void updateView();
00077 
00078   private:
00079     QDate mDate;
00080     DateView *mView;
00081     QToolButton *mSelectButton;
00082     QToolButton *mClearButton;
00083     KPIM::KDatePickerPopup *mMenu;
00084     bool mReadOnly;
00085 };
00086 
00087 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys