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 {
00045 ScrNone,
00046
00051 ScrMouse,
00052
00057 ScrTimer,
00058
00059 ScrDirect,
00060
00062 ScrPage
00063 };
00064
00065 explicit QwtAbstractSlider( Qt::Orientation, QWidget *parent = NULL );
00066 virtual ~QwtAbstractSlider();
00067
00068 void setUpdateTime( int t );
00069 void stopMoving();
00070 void setTracking( bool enable );
00071
00072 virtual void setMass( double val );
00073 virtual double mass() const;
00074
00075 virtual void setOrientation( Qt::Orientation o );
00076 Qt::Orientation orientation() const;
00077
00078 bool isReadOnly() const;
00079
00080
00081
00082
00083
00084
00088 bool isValid() const
00089 {
00090 return QwtDoubleRange::isValid();
00091 }
00092
00097 void setValid( bool valid )
00098 {
00099 QwtDoubleRange::setValid( valid );
00100 }
00101
00102 public Q_SLOTS:
00103 virtual void setValue( double val );
00104 virtual void fitValue( double val );
00105 virtual void incValue( int steps );
00106
00107 virtual void setReadOnly( bool );
00108
00109 Q_SIGNALS:
00110
00119 void valueChanged( double value );
00120
00125 void sliderPressed();
00126
00132 void sliderReleased();
00138 void sliderMoved( double value );
00139
00140 protected:
00141 virtual void setPosition( const QPoint & );
00142 virtual void valueChange();
00143
00144 virtual void timerEvent( QTimerEvent *e );
00145 virtual void mousePressEvent( QMouseEvent *e );
00146 virtual void mouseReleaseEvent( QMouseEvent *e );
00147 virtual void mouseMoveEvent( QMouseEvent *e );
00148 virtual void keyPressEvent( QKeyEvent *e );
00149 virtual void wheelEvent( QWheelEvent *e );
00150
00159 virtual double getValue( const QPoint & p ) = 0;
00160
00173 virtual void getScrollMode( const QPoint &pos,
00174 ScrollMode &scrollMode, int &direction ) const = 0;
00175
00176 void setMouseOffset( double );
00177 double mouseOffset() const;
00178
00179 int scrollMode() const;
00180
00181 private:
00182 void buttonReleased();
00183
00184 class PrivateData;
00185 PrivateData *d_data;
00186 };
00187
00188 #endif