00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_ABSTRACT_SLIDER_H
00011 #define QWT_ABSTRACT_SLIDER_H
00012
00013 #include <qwidget.h>
00014 #include "qwt_global.h"
00015 #include "qwt_double_range.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 #ifndef Q_MOC_RUN
00035 #define QWT_PROPERTY Q_PROPERTY
00036 Q_PROPERTY( Orientation orientation
00037 READ orientation WRITE setOrientation )
00038 #else
00039
00040 Q_PROPERTY( Qt::Orientation orientation
00041 READ orientation WRITE setOrientation )
00042
00043 #endif
00044
00045 public:
00046 enum ScrollMode { ScrNone, ScrMouse,
00047 ScrTimer, ScrDirect, ScrPage };
00048
00049 explicit QwtAbstractSlider(Qt::Orientation, QWidget *parent = NULL);
00050 virtual ~QwtAbstractSlider();
00051
00052 void setUpdateTime(int t);
00053 void stopMoving();
00054 void setTracking(bool enable);
00055
00056 virtual void setMass(double val);
00057 virtual double mass() const;
00058
00059 #if QT_VERSION >= 0x040000
00060 virtual void setOrientation(Qt::Orientation o);
00061 Qt::Orientation orientation() const;
00062 #else
00063 virtual void setOrientation(Orientation o);
00064 Orientation orientation() const;
00065 #endif
00066
00067 bool isReadOnly() const;
00068
00069
00070
00071
00072
00073
00077 bool isValid() const { return QwtDoubleRange::isValid(); }
00078
00082 void setValid(bool valid) { QwtDoubleRange::setValid(valid); }
00083
00084 public slots:
00085 virtual void setValue(double val);
00086 virtual void fitValue(double val);
00087 virtual void incValue(int steps);
00088
00089 virtual void setReadOnly(bool);
00090
00091 signals:
00092
00101 void valueChanged(double value);
00102
00107 void sliderPressed();
00108
00114 void sliderReleased();
00120 void sliderMoved(double value);
00121
00122 protected:
00123 void setPosition(const QPoint &p);
00124 virtual void valueChange();
00125
00126 virtual void timerEvent(QTimerEvent *e);
00127 virtual void mousePressEvent(QMouseEvent *e);
00128 virtual void mouseReleaseEvent(QMouseEvent *e);
00129 virtual void mouseMoveEvent(QMouseEvent *e);
00130 virtual void keyPressEvent(QKeyEvent *e);
00131 virtual void wheelEvent(QWheelEvent *e);
00132
00141 virtual double getValue(const QPoint & p) = 0;
00167 virtual void getScrollMode( const QPoint &p,
00168 int &scrollMode, int &direction) = 0;
00169
00170 void setMouseOffset(double);
00171 double mouseOffset() const;
00172
00173 int scrollMode() const;
00174
00175 private:
00176 void buttonReleased();
00177
00178 class PrivateData;
00179 PrivateData *d_data;
00180 };
00181
00182 #endif