You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.2 KiB
88 lines
2.2 KiB
/* -*- 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
|
|
|