00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_ANALOG_CLOCK_H
00011 #define QWT_ANALOG_CLOCK_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_dial.h"
00015 #include "qwt_dial_needle.h"
00016 #include <qdatetime.h>
00017
00045 class QWT_EXPORT QwtAnalogClock: public QwtDial
00046 {
00047 Q_OBJECT
00048
00049 public:
00055 enum Hand
00056 {
00057 SecondHand,
00058 MinuteHand,
00059 HourHand,
00060
00061 NHands
00062 };
00063
00064 explicit QwtAnalogClock( QWidget* parent = NULL );
00065 virtual ~QwtAnalogClock();
00066
00067 virtual void setHand( Hand, QwtDialNeedle * );
00068 const QwtDialNeedle *hand( Hand ) const;
00069 QwtDialNeedle *hand( Hand );
00070
00071 public Q_SLOTS:
00072 void setCurrentTime();
00073 void setTime( const QTime & = QTime::currentTime() );
00074
00075 protected:
00076 virtual QwtText scaleLabel( double ) const;
00077
00078 virtual void drawNeedle( QPainter *, const QPoint &,
00079 int radius, double direction, QPalette::ColorGroup ) const;
00080
00081 virtual void drawHand( QPainter *, Hand, const QPoint &,
00082 int radius, double direction, QPalette::ColorGroup ) const;
00083
00084 private:
00085 virtual void setNeedle( QwtDialNeedle * );
00086 void initClock();
00087
00088 QwtDialNeedle *d_hand[NHands];
00089 };
00090
00091 #endif