00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SLDBASE_H
00011 #define QWT_SLDBASE_H
00012
00013 #include <qframe.h>
00014 #include <qpixmap.h>
00015 #include <qdatetime.h>
00016 #include "qwt_global.h"
00017 #include "qwt_drange.h"
00018
00030 class QWT_EXPORT QwtSliderBase : public QWidget, public QwtDblRange
00031 {
00032 Q_OBJECT
00033 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
00034 Q_PROPERTY( double mass READ mass WRITE setMass )
00035 Q_PROPERTY( Orientation orientation READ orientation WRITE setOrientation )
00036
00037 public:
00038 enum ScrollMode { ScrNone, ScrMouse,
00039 ScrTimer, ScrDirect, ScrPage };
00040
00041 QwtSliderBase(Qt::Orientation orientation, QWidget *parent = 0,
00042 const char *name = 0, WFlags flags = 0 );
00043 virtual ~QwtSliderBase();
00044
00045 void setUpdateTime(int t);
00046 void stopMoving();
00047 void setTracking(bool enable);
00048
00049 virtual void setMass(double val);
00050 virtual double mass() const;
00051
00052 virtual void setOrientation(Orientation o);
00053 Orientation orientation() const;
00054
00055 bool isReadOnly() const;
00056
00057 public slots:
00058 virtual void setValue(double val);
00059 virtual void fitValue(double val);
00060 virtual void incValue(int steps);
00061
00062 virtual void setReadOnly(bool);
00063
00064 signals:
00065
00074 void valueChanged(double value);
00075
00080 void sliderPressed();
00081
00087 void sliderReleased();
00093 void sliderMoved(double value);
00094
00095 protected:
00096 void setPosition(const QPoint &p);
00097 virtual void valueChange();
00098
00099 virtual void timerEvent(QTimerEvent *e);
00100 virtual void mousePressEvent(QMouseEvent *e);
00101 virtual void mouseReleaseEvent(QMouseEvent *e);
00102 virtual void mouseMoveEvent(QMouseEvent *e);
00103 virtual void keyPressEvent(QKeyEvent *e);
00104 virtual void wheelEvent(QWheelEvent *e);
00105
00114 virtual double getValue(const QPoint & p) = 0;
00140 virtual void getScrollMode( const QPoint &p,
00141 int &scrollMode, int &direction) = 0;
00142
00143 int d_scrollMode;
00144 double d_mouseOffset;
00145 int d_direction;
00146 int d_tracking;
00147
00148 private:
00149 void buttonReleased();
00150
00151 int d_tmrID;
00152 int d_updTime;
00153 int d_timerTick;
00154 QTime d_time;
00155 double d_speed;
00156 double d_mass;
00157 Orientation d_orientation;
00158 bool d_readOnly;
00159 };
00160
00161 #endif