Qwt User's Guide
|
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