123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- /* -*- 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_WHEEL_H
- #define QWT_WHEEL_H
- #include "qwt_global.h"
- #include <qwidget.h>
- /*!
- \brief The Wheel Widget
- The wheel widget can be used to change values over a very large range
- in very small steps. Using the setMass() member, it can be configured
- as a flying wheel.
- The default range of the wheel is [0.0, 100.0]
- \sa The radio example.
- */
- class QWT_EXPORT QwtWheel: public QWidget
- {
- Q_OBJECT
- Q_PROPERTY( Qt::Orientation orientation
- READ orientation WRITE setOrientation )
- Q_PROPERTY( double value READ value WRITE setValue )
- Q_PROPERTY( double minimum READ minimum WRITE setMinimum )
- Q_PROPERTY( double maximum READ maximum WRITE setMaximum )
- Q_PROPERTY( double singleStep READ singleStep WRITE setSingleStep )
- Q_PROPERTY( int pageStepCount READ pageStepCount WRITE setPageStepCount )
- Q_PROPERTY( bool stepAlignment READ stepAlignment WRITE setStepAlignment )
- Q_PROPERTY( bool tracking READ isTracking WRITE setTracking )
- Q_PROPERTY( bool wrapping READ wrapping WRITE setWrapping )
- Q_PROPERTY( bool inverted READ isInverted WRITE setInverted )
- Q_PROPERTY( double mass READ mass WRITE setMass )
- Q_PROPERTY( int updateInterval READ updateInterval WRITE setUpdateInterval )
- Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle )
- Q_PROPERTY( double viewAngle READ viewAngle WRITE setViewAngle )
- Q_PROPERTY( int tickCount READ tickCount WRITE setTickCount )
- Q_PROPERTY( int wheelWidth READ wheelWidth WRITE setWheelWidth )
- Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
- Q_PROPERTY( int wheelBorderWidth READ wheelBorderWidth WRITE setWheelBorderWidth )
- public:
- explicit QwtWheel( QWidget *parent = NULL );
- virtual ~QwtWheel();
- double value() const;
- void setOrientation( Qt::Orientation );
- Qt::Orientation orientation() const;
- double totalAngle() const;
- double viewAngle() const;
- void setTickCount( int );
- int tickCount() const;
- void setWheelWidth( int );
- int wheelWidth() const;
- void setWheelBorderWidth( int );
- int wheelBorderWidth() const;
- void setBorderWidth( int );
- int borderWidth() const;
- void setInverted( bool );
- bool isInverted() const;
- void setWrapping( bool );
- bool wrapping() const;
- void setSingleStep( double );
- double singleStep() const;
- void setPageStepCount( int );
- int pageStepCount() const;
- void setStepAlignment( bool on );
- bool stepAlignment() const;
- void setRange( double min, double max );
- void setMinimum( double );
- double minimum() const;
- void setMaximum( double );
- double maximum() const;
- void setUpdateInterval( int );
- int updateInterval() const;
- void setTracking( bool );
- bool isTracking() const;
- double mass() const;
- public Q_SLOTS:
- void setValue( double );
- void setTotalAngle ( double );
- void setViewAngle( double );
- void setMass( double );
- Q_SIGNALS:
- /*!
- \brief Notify a change of value.
- When tracking is enabled this signal will be emitted every
- time the value changes.
- \param value new value
- \sa setTracking()
- */
- void valueChanged( double value );
- /*!
- This signal is emitted when the user presses the
- the wheel with the mouse
- */
- void wheelPressed();
- /*!
- This signal is emitted when the user releases the mouse
- */
- void wheelReleased();
- /*!
- This signal is emitted when the user moves the
- wheel with the mouse.
- \param value new value
- */
- void wheelMoved( double value );
- protected:
- virtual void paintEvent( QPaintEvent * );
- virtual void mousePressEvent( QMouseEvent * );
- virtual void mouseReleaseEvent( QMouseEvent * );
- virtual void mouseMoveEvent( QMouseEvent * );
- virtual void keyPressEvent( QKeyEvent * );
- virtual void wheelEvent( QWheelEvent * );
- virtual void timerEvent( QTimerEvent * );
- void stopFlying();
- QRect wheelRect() const;
- virtual QSize sizeHint() const;
- virtual QSize minimumSizeHint() const;
- virtual void drawTicks( QPainter *, const QRectF & );
- virtual void drawWheelBackground( QPainter *, const QRectF & );
- virtual double valueAt( const QPoint & ) const;
- private:
- double alignedValue( double ) const;
- double boundedValue( double ) const;
- class PrivateData;
- PrivateData *d_data;
- };
- #endif
|