00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_DOUBLE_RANGE_H
00011 #define QWT_DOUBLE_RANGE_H
00012
00013 #include "qwt_global.h"
00014
00031 class QWT_EXPORT QwtDoubleRange
00032 {
00033 public:
00034 QwtDoubleRange();
00035 virtual ~QwtDoubleRange();
00036
00037 void setRange( double vmin, double vmax,
00038 double vstep = 0.0, int pagesize = 1 );
00039
00040 void setValid( bool );
00041 bool isValid() const;
00042
00043 virtual void setValue( double );
00044 double value() const;
00045
00046 void setPeriodic( bool tf );
00047 bool periodic() const;
00048
00049 void setStep( double );
00050 double step() const;
00051
00052 double maxValue() const;
00053 double minValue() const;
00054
00055 int pageSize() const;
00056
00057 virtual void incValue( int );
00058 virtual void incPages( int );
00059 virtual void fitValue( double );
00060
00061 protected:
00062
00063 double exactValue() const;
00064 double exactPrevValue() const;
00065 double prevValue() const;
00066
00067 virtual void valueChange();
00068 virtual void stepChange();
00069 virtual void rangeChange();
00070
00071 private:
00072 void setNewValue( double x, bool align = false );
00073
00074 double d_minValue;
00075 double d_maxValue;
00076 double d_step;
00077 int d_pageSize;
00078
00079 bool d_isValid;
00080 double d_value;
00081 double d_exactValue;
00082 double d_exactPrevValue;
00083 double d_prevValue;
00084
00085 bool d_periodic;
00086 };
00087
00088 #endif