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:
00054 enum Hand
00055 {
00057 SecondHand,
00058
00060 MinuteHand,
00061
00063 HourHand,
00064
00066 NHands
00067 };
00068
00069 explicit QwtAnalogClock( QWidget* parent = NULL );
00070 virtual ~QwtAnalogClock();
00071
00072 virtual void setHand( Hand, QwtDialNeedle * );
00073 const QwtDialNeedle *hand( Hand ) const;
00074 QwtDialNeedle *hand( Hand );
00075
00076 public Q_SLOTS:
00077 void setCurrentTime();
00078 void setTime( const QTime & = QTime::currentTime() );
00079
00080 protected:
00081 virtual QwtText scaleLabel( double ) const;
00082
00083 virtual void drawNeedle( QPainter *, const QPointF &,
00084 double radius, double direction, QPalette::ColorGroup ) const;
00085
00086 virtual void drawHand( QPainter *, Hand, const QPointF &,
00087 double radius, double direction, QPalette::ColorGroup ) const;
00088
00089 private:
00090 virtual void setNeedle( QwtDialNeedle * );
00091 void initClock();
00092
00093 QwtDialNeedle *d_hand[NHands];
00094 };
00095
00096 #endif