# qwt_double_range.h

    00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
    00002  * Qwt Widget Library
    00003  * Copyright (C) 1997   Josef Wilgen
    00004  * Copyright (C) 2002   Uwe Rathmann
    00005  *
    00006  * This library is free software; you can redistribute it and/or
    00007  * modify it under the terms of the Qwt License, Version 1.0
    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, double vstep = 0.0,
    00038         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