1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
- * Qwt Widget Library
- * Copyright (C) 1997 Josef Wilgen
- * Copyright (C) 2002 Uwe Rathmann
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Qwt License, Version 1.0
- *****************************************************************************/
- #ifndef QWT_DOUBLE_RANGE_H
- #define QWT_DOUBLE_RANGE_H
- #include "qwt_global.h"
- /*!
- \brief A class which controls a value within an interval
- This class is useful as a base class or a member for sliders.
- It represents an interval of type double within which a value can
- be moved. The value can be either an arbitrary point inside
- the interval (see QwtDoubleRange::setValue), or it can be fitted
- into a step raster (see QwtDoubleRange::fitValue and
- QwtDoubleRange::incValue).
- As a special case, a QwtDoubleRange can be periodic, which means that
- a value outside the interval will be mapped to a value inside the
- interval when QwtDoubleRange::setValue(), QwtDoubleRange::fitValue(),
- QwtDoubleRange::incValue() or QwtDoubleRange::incPages() are called.
- */
- class QWT_EXPORT QwtDoubleRange
- {
- public:
- QwtDoubleRange();
- virtual ~QwtDoubleRange();
- void setRange( double vmin, double vmax,
- double vstep = 0.0, int pagesize = 1 );
- void setValid( bool );
- bool isValid() const;
- virtual void setValue( double );
- double value() const;
- void setPeriodic( bool tf );
- bool periodic() const;
- void setStep( double );
- double step() const;
- double maxValue() const;
- double minValue() const;
- int pageSize() const;
- virtual void incValue( int );
- virtual void incPages( int );
- virtual void fitValue( double );
- protected:
- double exactValue() const;
- double exactPrevValue() const;
- double prevValue() const;
- virtual void valueChange();
- virtual void stepChange();
- virtual void rangeChange();
- private:
- void setNewValue( double x, bool align = false );
- double d_minValue;
- double d_maxValue;
- double d_step;
- int d_pageSize;
- bool d_isValid;
- double d_value;
- double d_exactValue;
- double d_exactPrevValue;
- double d_prevValue;
- bool d_periodic;
- };
- #endif
|