summaryrefslogtreecommitdiff
path: root/libopie/otimepicker.h
blob: 8df7d10c1783218aa4e8fbc40e1655374e86394c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#ifndef OTIMEPICKER_H
#define OTIMEPICKER_H

#include <qwidget.h>
#include <qvaluelist.h>
#include <qdatetime.h>
#include <qdialog.h>

#include <opie/oclickablelabel.h>
#include "otimepickerbase.h"

/**
 * A class to pick time. It uses clickable labels
 * internally to allow a quick selection of a time.
 * A time can be selected by two clicks of a user
 *
 * @short A widget to quickly pick a QTime
 * @version 1.0
 * @see QWidget
 * @see QTime
 * @author Hakan Ardo, Stefan Eilers
 */
class OTimePicker: public QWidget {
  Q_OBJECT

 public:
    OTimePicker(QWidget* parent = 0, const char* name = 0,
	       WFlags fl = 0);

 public slots:
    void setHour(int h);
    void setMinute(int m);
    void setTime( const QTime& );
    void setTime( int h,  int m );

 public:
    QTime time()const;

 private:
    QValueList<OClickableLabel *> hourLst;
    QValueList<OClickableLabel *> minuteLst;
    QTime tm;
    struct Private;
    Private *d;

 private slots:
    void slotHour(bool b);
    void slotMinute(bool b);

 signals:
    /**
     * gets emitted when the time got changed by the user
     */
    void timeChanged(const QTime &);
};

/**
 *
 * @short A small dialog to pick a time
 * @version 1.0
 * @author Stefan Eilers
 */

class OTimePickerDialog: public OTimePickerDialogBase {
  Q_OBJECT

 public:
	OTimePickerDialog ( QWidget* parent = 0, const char* name = NULL, WFlags fl = 0 );
	/**
	 * @todo make it non line! See KDE guide for BC
	 */
	~OTimePickerDialog() { };

	QTime time()const;

 public slots:
	void setTime( const QTime& time );
        void setHour( const QString& hour );
        void setMinute( const QString& minute );

 private:
	QTime m_time;
	class Private;
	Private* d;
};
#endif