qwt_analog_clock.h

00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_ANALOG_CLOCK_H
00011 #define QWT_ANALOG_CLOCK_H
00012 
00013 #include <qdatetime.h>
00014 #include "qwt_global.h"
00015 #include "qwt_dial.h"
00016 #include "qwt_dial_needle.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 #if QT_VERSION < 0x040000
00066     explicit QwtAnalogClock(QWidget* parent, const char *name);
00067 #endif
00068     virtual ~QwtAnalogClock();
00069 
00070     virtual void setHand(Hand, QwtDialNeedle *);
00071     const QwtDialNeedle *hand(Hand) const;
00072     QwtDialNeedle *hand(Hand);
00073 
00074 public slots:
00075     void setCurrentTime();
00076     void setTime(const QTime & = QTime::currentTime());
00077 
00078 protected:
00079     virtual QwtText scaleLabel(double) const;
00080 
00081     virtual void drawNeedle(QPainter *, const QPoint &,
00082         int radius, double direction, QPalette::ColorGroup) const;
00083 
00084     virtual void drawHand(QPainter *, Hand, const QPoint &,
00085         int radius, double direction, QPalette::ColorGroup) const;
00086 
00087 private:
00088     virtual void setNeedle(QwtDialNeedle *);
00089     void initClock();
00090 
00091     QwtDialNeedle *d_hand[NHands];
00092 };
00093 
00094 #endif

Generated on Mon Feb 26 21:22:36 2007 for Qwt User's Guide by  doxygen 1.4.6