~showard314/ubuntu/natty/qtiplot/Python2.7_fix

« back to all changes in this revision

Viewing changes to 3rdparty/qwt/src/qwt_double_range.h

  • Committer: Bazaar Package Importer
  • Author(s): Fathi Boudra
  • Date: 2008-04-04 15:11:55 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20080404151155-rjp12ziov4tryj0o
Tags: 0.9.4-1
* New upstream release.
* Refresh patches.
* Remove 04_homepage_url patch. Merged upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 
2
 * Qwt Widget Library
 
3
 * Copyright (C) 1997   Josef Wilgen
 
4
 * Copyright (C) 2002   Uwe Rathmann
 
5
 * 
 
6
 * This library is free software; you can redistribute it and/or
 
7
 * modify it under the terms of the Qwt License, Version 1.0
 
8
 *****************************************************************************/
 
9
 
 
10
#ifndef QWT_DOUBLE_RANGE_H
 
11
#define QWT_DOUBLE_RANGE_H
 
12
 
 
13
#include "qwt_global.h"
 
14
 
 
15
/*!
 
16
  \brief A class which controls a value within an interval
 
17
 
 
18
  This class is useful as a base class or a member for sliders.
 
19
  It represents an interval of type double within which a value can
 
20
  be moved. The value can be either an arbitrary point inside 
 
21
  the interval (see QwtDoubleRange::setValue), or it can be fitted
 
22
  into a step raster (see QwtDoubleRange::fitValue and
 
23
  QwtDoubleRange::incValue).
 
24
 
 
25
  As a special case, a QwtDoubleRange can be periodic, which means that
 
26
  a value outside the interval will be mapped to a value inside the
 
27
  interval when QwtDoubleRange::setValue(), QwtDoubleRange::fitValue(), 
 
28
  QwtDoubleRange::incValue() or QwtDoubleRange::incPages() are called.
 
29
*/
 
30
 
 
31
class QWT_EXPORT QwtDoubleRange
 
32
{
 
33
public:
 
34
    QwtDoubleRange();
 
35
    virtual ~QwtDoubleRange();
 
36
 
 
37
    void setRange(double vmin, double vmax, double vstep = 0.0,
 
38
        int pagesize = 1);
 
39
 
 
40
    void setValid(bool);
 
41
    bool isValid() const;
 
42
 
 
43
    virtual void setValue(double);
 
44
    double value() const;
 
45
 
 
46
    void setPeriodic(bool tf);
 
47
    bool periodic() const;
 
48
 
 
49
    void setStep(double);
 
50
    double step() const;
 
51
 
 
52
    double maxValue() const;
 
53
    double minValue() const; 
 
54
 
 
55
    int pageSize() const;
 
56
 
 
57
    virtual void incValue(int);
 
58
    virtual void incPages(int);
 
59
    virtual void fitValue(double);
 
60
 
 
61
protected:
 
62
 
 
63
    double exactValue() const;
 
64
    double exactPrevValue() const;
 
65
    double prevValue() const;
 
66
 
 
67
    virtual void valueChange();
 
68
    virtual void stepChange();
 
69
    virtual void rangeChange();
 
70
 
 
71
private:
 
72
    void setNewValue(double x, bool align = false);
 
73
 
 
74
    double d_minValue;
 
75
    double d_maxValue;
 
76
    double d_step;
 
77
    int d_pageSize;
 
78
 
 
79
    bool d_isValid;
 
80
    double d_value;
 
81
    double d_exactValue;
 
82
    double d_exactPrevValue;
 
83
    double d_prevValue;
 
84
 
 
85
    bool d_periodic;
 
86
};
 
87
 
 
88
#endif