-
Notifications
You must be signed in to change notification settings - Fork 298
/
qwt_scale_div.h
110 lines (79 loc) · 2.69 KB
/
qwt_scale_div.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* -*- 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_SCALE_DIV_H
#define QWT_SCALE_DIV_H
#include "qwt_global.h"
#include "qwt_interval.h"
#include <qlist.h>
#ifndef QT_NO_DEBUG_STREAM
#include <qdebug.h>
#endif
/*!
\brief A class representing a scale division
A Qwt scale is defined by its boundaries and 3 list
for the positions of the major, medium and minor ticks.
The upperBound() might be smaller than the lowerBound()
to indicate inverted scales.
Scale divisions can be calculated from a QwtScaleEngine.
\sa QwtScaleEngine::divideScale(), QwtPlot::setAxisScaleDiv(),
QwtAbstractSlider::setScaleDiv()
*/
class QWT_EXPORT QwtScaleDiv
{
public:
//! Scale tick types
enum TickType
{
//! No ticks
NoTick = -1,
//! Minor ticks
MinorTick,
//! Medium ticks
MediumTick,
//! Major ticks
MajorTick,
//! Number of valid tick types
NTickTypes
};
explicit QwtScaleDiv( double lowerBound = 0.0,
double upperBound = 0.0 );
explicit QwtScaleDiv( const QwtInterval &, QList<double>[NTickTypes] );
explicit QwtScaleDiv( double lowerBound, double upperBound,
QList<double>[NTickTypes] );
explicit QwtScaleDiv( double lowerBound, double upperBound,
const QList<double> &minorTicks, const QList<double> &mediumTicks,
const QList<double> &majorTicks );
bool operator==( const QwtScaleDiv & ) const;
bool operator!=( const QwtScaleDiv & ) const;
void setInterval( double lowerBound, double upperBound );
void setInterval( const QwtInterval & );
QwtInterval interval() const;
void setLowerBound( double );
double lowerBound() const;
void setUpperBound( double );
double upperBound() const;
double range() const;
bool contains( double value ) const;
void setTicks( int tickType, const QList<double> & );
QList<double> ticks( int tickType ) const;
bool isEmpty() const;
bool isIncreasing() const;
void invert();
QwtScaleDiv inverted() const;
QwtScaleDiv bounded( double lowerBound, double upperBound ) const;
private:
double d_lowerBound;
double d_upperBound;
QList<double> d_ticks[NTickTypes];
};
Q_DECLARE_TYPEINFO( QwtScaleDiv, Q_MOVABLE_TYPE );
#ifndef QT_NO_DEBUG_STREAM
QWT_EXPORT QDebug operator<<( QDebug, const QwtScaleDiv & );
#endif
#endif