Qwt User's Guide
qwt_wheel.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_WHEEL_H
00011 #define QWT_WHEEL_H
00012 
00013 #include "qwt_global.h"
00014 #include <qwidget.h>
00015 
00027 class QWT_EXPORT QwtWheel: public QWidget
00028 {
00029     Q_OBJECT
00030 
00031     Q_PROPERTY( Qt::Orientation orientation
00032                 READ orientation WRITE setOrientation )
00033 
00034     Q_PROPERTY( double value READ value WRITE setValue )
00035     Q_PROPERTY( double minimum READ minimum WRITE setMinimum )
00036     Q_PROPERTY( double maximum READ maximum WRITE setMaximum )
00037 
00038     Q_PROPERTY( double singleStep READ singleStep WRITE setSingleStep )
00039     Q_PROPERTY( int pageStepCount READ pageStepCount WRITE setPageStepCount )
00040     Q_PROPERTY( bool stepAlignment READ stepAlignment WRITE setStepAlignment )
00041 
00042     Q_PROPERTY( bool tracking READ isTracking WRITE setTracking )
00043     Q_PROPERTY( bool wrapping READ wrapping WRITE setWrapping )
00044     Q_PROPERTY( bool inverted READ isInverted WRITE setInverted )
00045 
00046     Q_PROPERTY( double mass READ mass WRITE setMass )
00047     Q_PROPERTY( int updateInterval READ updateInterval WRITE setUpdateInterval )
00048 
00049     Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle )
00050     Q_PROPERTY( double viewAngle READ viewAngle WRITE setViewAngle )
00051     Q_PROPERTY( int tickCount READ tickCount WRITE setTickCount )
00052     Q_PROPERTY( int wheelWidth READ wheelWidth WRITE setWheelWidth )
00053     Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
00054     Q_PROPERTY( int wheelBorderWidth READ wheelBorderWidth WRITE setWheelBorderWidth )
00055 
00056 public:
00057     explicit QwtWheel( QWidget *parent = NULL );
00058     virtual ~QwtWheel();
00059 
00060     double value() const;
00061 
00062     void setOrientation( Qt::Orientation );
00063     Qt::Orientation orientation() const;
00064 
00065     double totalAngle() const;
00066     double viewAngle() const;
00067 
00068     void setTickCount( int );
00069     int tickCount() const;
00070 
00071     void setWheelWidth( int );
00072     int wheelWidth() const;
00073 
00074     void setWheelBorderWidth( int );
00075     int wheelBorderWidth() const;
00076 
00077     void setBorderWidth( int );
00078     int borderWidth() const;
00079 
00080     void setInverted( bool tf );
00081     bool isInverted() const;
00082 
00083     void setWrapping( bool tf );
00084     bool wrapping() const;
00085 
00086     void setSingleStep( double );
00087     double singleStep() const;
00088 
00089     void setPageStepCount( int );
00090     int pageStepCount() const;
00091 
00092     void setStepAlignment( bool on );
00093     bool stepAlignment() const;
00094 
00095     void setRange( double vmin, double vmax );
00096 
00097     void setMinimum( double min );
00098     double minimum() const;
00099 
00100     void setMaximum( double max );
00101     double maximum() const;
00102 
00103     void setUpdateInterval( int );
00104     int updateInterval() const;
00105 
00106     void setTracking( bool enable );
00107     bool isTracking() const;
00108 
00109     double mass() const;
00110 
00111 public Q_SLOTS:
00112     void setValue( double );
00113     void setTotalAngle ( double );
00114     void setViewAngle( double );
00115     void setMass( double );
00116 
00117 Q_SIGNALS:
00118 
00128     void valueChanged( double value );
00129 
00134     void wheelPressed();
00135 
00139     void wheelReleased();
00140 
00147     void wheelMoved( double value );
00148 
00149 protected:
00150     virtual void paintEvent( QPaintEvent * );
00151     virtual void mousePressEvent( QMouseEvent * );
00152     virtual void mouseReleaseEvent( QMouseEvent * );
00153     virtual void mouseMoveEvent( QMouseEvent * );
00154     virtual void keyPressEvent( QKeyEvent * );
00155     virtual void wheelEvent( QWheelEvent * );
00156     virtual void timerEvent( QTimerEvent * );
00157 
00158     void stopFlying();
00159 
00160     QRect wheelRect() const;
00161 
00162     virtual QSize sizeHint() const;
00163     virtual QSize minimumSizeHint() const;
00164 
00165     virtual void drawTicks( QPainter *, const QRectF & );
00166     virtual void drawWheelBackground( QPainter *, const QRectF & );
00167 
00168     virtual double valueAt( const QPoint & ) const;
00169 
00170 private:
00171     double alignedValue( double ) const;
00172     double boundedValue( double ) const;
00173 
00174     class PrivateData;
00175     PrivateData *d_data;
00176 };
00177 
00178 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator