diff options
Diffstat (limited to 'src/libpcp_qwt/src/qwt_analog_clock.h')
-rw-r--r-- | src/libpcp_qwt/src/qwt_analog_clock.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/libpcp_qwt/src/qwt_analog_clock.h b/src/libpcp_qwt/src/qwt_analog_clock.h new file mode 100644 index 0000000..f20c3f1 --- /dev/null +++ b/src/libpcp_qwt/src/qwt_analog_clock.h @@ -0,0 +1,96 @@ +/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** + * Qwt Widget Library + * Copyright (C) 1997 Josef Wilgen + * Copyright (C) 2002 Uwe Rathmann + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the Qwt License, Version 1.0 + *****************************************************************************/ + +#ifndef QWT_ANALOG_CLOCK_H +#define QWT_ANALOG_CLOCK_H + +#include "qwt_global.h" +#include "qwt_dial.h" +#include "qwt_dial_needle.h" +#include <qdatetime.h> + +/*! + \brief An analog clock + + \image html analogclock.png + + \par Example + \verbatim #include <qwt_analog_clock.h> + + QwtAnalogClock *clock = new QwtAnalogClock(...); + clock->scaleDraw()->setPenWidth(3); + clock->setLineWidth(6); + clock->setFrameShadow(QwtDial::Sunken); + clock->setTime(); + + // update the clock every second + QTimer *timer = new QTimer(clock); + timer->connect(timer, SIGNAL(timeout()), clock, SLOT(setCurrentTime())); + timer->start(1000); + + \endverbatim + + Qwt is missing a set of good looking hands. + Contributions are very welcome. + + \note The examples/dials example shows how to use QwtAnalogClock. +*/ + +class QWT_EXPORT QwtAnalogClock: public QwtDial +{ + Q_OBJECT + +public: + /*! + Hand type + \sa setHand(), hand() + */ + enum Hand + { + //! Needle displaying the seconds + SecondHand, + + //! Needle displaying the minutes + MinuteHand, + + //! Needle displaying the hours + HourHand, + + //! Number of needles + NHands + }; + + explicit QwtAnalogClock( QWidget* parent = NULL ); + virtual ~QwtAnalogClock(); + + virtual void setHand( Hand, QwtDialNeedle * ); + const QwtDialNeedle *hand( Hand ) const; + QwtDialNeedle *hand( Hand ); + +public Q_SLOTS: + void setCurrentTime(); + void setTime( const QTime & = QTime::currentTime() ); + +protected: + virtual QwtText scaleLabel( double ) const; + + virtual void drawNeedle( QPainter *, const QPointF &, + double radius, double direction, QPalette::ColorGroup ) const; + + virtual void drawHand( QPainter *, Hand, const QPointF &, + double radius, double direction, QPalette::ColorGroup ) const; + +private: + virtual void setNeedle( QwtDialNeedle * ); + void initClock(); + + QwtDialNeedle *d_hand[NHands]; +}; + +#endif |