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(
bool valid READ isValid WRITE setValid )
00035 Q_PROPERTY(
double mass READ mass WRITE setMass )
00036 Q_PROPERTY( Orientation orientation READ orientation WRITE setOrientation )
00037
00038
public:
00039
enum ScrollMode { ScrNone, ScrMouse,
00040 ScrTimer, ScrDirect, ScrPage };
00041
00042 QwtSliderBase(Qt::Orientation orientation, QWidget *parent = 0,
00043
const char *name = 0, Qt::WFlags flags = 0 );
00044
virtual ~QwtSliderBase();
00045
00046
void setUpdateTime(
int t);
00047
void stopMoving();
00048
void setTracking(
bool enable);
00049
00050
virtual void setMass(
double val);
00051
virtual double mass()
const;
00052
00053
virtual void setOrientation(Orientation o);
00054 Orientation orientation()
const;
00055
00056
bool isReadOnly()
const;
00057
00058
00059
00060
00061
00062
00066 bool isValid()
const {
return QwtDblRange::isValid(); }
00067
00071 void setValid(
bool valid) {
QwtDblRange::setValid(valid); }
00072
00073
public slots:
00074
virtual void setValue(
double val);
00075
virtual void fitValue(
double val);
00076
virtual void incValue(
int steps);
00077
00078
virtual void setReadOnly(
bool);
00079
00080 signals:
00081
00090
void valueChanged(
double value);
00091
00096
void sliderPressed();
00097
00103
void sliderReleased();
00109
void sliderMoved(
double value);
00110
00111
protected:
00112
void setPosition(
const QPoint &p);
00113
virtual void valueChange();
00114
00115
virtual void timerEvent(QTimerEvent *e);
00116
virtual void mousePressEvent(QMouseEvent *e);
00117
virtual void mouseReleaseEvent(QMouseEvent *e);
00118
virtual void mouseMoveEvent(QMouseEvent *e);
00119
virtual void keyPressEvent(QKeyEvent *e);
00120
virtual void wheelEvent(QWheelEvent *e);
00121
00130
virtual double getValue(
const QPoint & p) = 0;
00156
virtual void getScrollMode(
const QPoint &p,
00157
int &scrollMode,
int &direction) = 0;
00158
00159
int d_scrollMode;
00160
double d_mouseOffset;
00161
int d_direction;
00162
int d_tracking;
00163
00164
private:
00165
void buttonReleased();
00166
00167
int d_tmrID;
00168
int d_updTime;
00169
int d_timerTick;
00170 QTime d_time;
00171
double d_speed;
00172
double d_mass;
00173 Qt::Orientation d_orientation;
00174
bool d_readOnly;
00175 };
00176
00177
#endif