00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_ABSTRACT_SLIDER_H
00011 #define QWT_ABSTRACT_SLIDER_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_double_range.h"
00015 #include <qwidget.h>
00016
00028 class QWT_EXPORT QwtAbstractSlider : public QWidget, public QwtDoubleRange
00029 {
00030 Q_OBJECT
00031 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
00032 Q_PROPERTY( bool valid READ isValid WRITE setValid )
00033 Q_PROPERTY( double mass READ mass WRITE setMass )
00034 Q_PROPERTY( Qt::Orientation orientation
00035 READ orientation WRITE setOrientation )
00036
00037 public:
00042 enum ScrollMode
00043 {
00044 ScrNone,
00045 ScrMouse,
00046 ScrTimer,
00047 ScrDirect,
00048 ScrPage
00049 };
00050
00051 explicit QwtAbstractSlider( Qt::Orientation, QWidget *parent = NULL );
00052 virtual ~QwtAbstractSlider();
00053
00054 void setUpdateTime( int t );
00055 void stopMoving();
00056 void setTracking( bool enable );
00057
00058 virtual void setMass( double val );
00059 virtual double mass() const;
00060
00061 virtual void setOrientation( Qt::Orientation o );
00062 Qt::Orientation orientation() const;
00063
00064 bool isReadOnly() const;
00065
00066
00067
00068
00069
00070
00074 bool isValid() const
00075 {
00076 return QwtDoubleRange::isValid();
00077 }
00078
00083 void setValid( bool valid )
00084 {
00085 QwtDoubleRange::setValid( valid );
00086 }
00087
00088 public Q_SLOTS:
00089 virtual void setValue( double val );
00090 virtual void fitValue( double val );
00091 virtual void incValue( int steps );
00092
00093 virtual void setReadOnly( bool );
00094
00095 Q_SIGNALS:
00096
00105 void valueChanged( double value );
00106
00111 void sliderPressed();
00112
00118 void sliderReleased();
00124 void sliderMoved( double value );
00125
00126 protected:
00127 virtual void setPosition( const QPoint & );
00128 virtual void valueChange();
00129
00130 virtual void timerEvent( QTimerEvent *e );
00131 virtual void mousePressEvent( QMouseEvent *e );
00132 virtual void mouseReleaseEvent( QMouseEvent *e );
00133 virtual void mouseMoveEvent( QMouseEvent *e );
00134 virtual void keyPressEvent( QKeyEvent *e );
00135 virtual void wheelEvent( QWheelEvent *e );
00136
00145 virtual double getValue( const QPoint & p ) = 0;
00146
00174 virtual void getScrollMode( const QPoint &p,
00175 int &scrollMode, int &direction ) = 0;
00176
00177 void setMouseOffset( double );
00178 double mouseOffset() const;
00179
00180 int scrollMode() const;
00181
00182 private:
00183 void buttonReleased();
00184
00185 class PrivateData;
00186 PrivateData *d_data;
00187 };
00188
00189 #endif