123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /* -*- 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
- \code
- #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);
- \endcode
- \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();
- void setHand( Hand, QwtDialNeedle * );
- const QwtDialNeedle *hand( Hand ) const;
- QwtDialNeedle *hand( Hand );
- public Q_SLOTS:
- void setCurrentTime();
- void setTime( const QTime & );
- protected:
- 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:
- // use setHand instead
- void setNeedle( QwtDialNeedle * );
- QwtDialNeedle *d_hand[NHands];
- };
- #endif
|