source: pacpusframework/branches/2.0-beta1/include/extlib/qwt-5.2.1/qwt_abstract_scale_draw.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 3.7 KB
Line 
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_ABSTRACT_SCALE_DRAW_H
11#define QWT_ABSTRACT_SCALE_DRAW_H
12
13#include "qwt_global.h"
14#include "qwt_scale_div.h"
15#include "qwt_text.h"
16
17
18#if QT_VERSION < 0x040000
19class QColorGroup;
20#else
21class QPalette;
22#endif
23class QPainter;
24class QFont;
25class QwtScaleTransformation;
26class QwtScaleMap;
27
28/*!
29 \brief A abstract base class for drawing scales
30
31 QwtAbstractScaleDraw can be used to draw linear or logarithmic scales.
32
33 After a scale division has been specified as a QwtScaleDiv object
34 using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s),
35 the scale can be drawn with the QwtAbstractScaleDraw::draw() member.
36*/
37class QWT_EXPORT QwtAbstractScaleDraw
38{
39public:
40
41 /*!
42 Components of a scale
43
44 - Backbone
45 - Ticks
46 - Labels
47
48 \sa enableComponent(), hasComponent
49 */
50
51 enum ScaleComponent
52 {
53 Backbone = 1,
54 Ticks = 2,
55 Labels = 4
56 };
57
58 QwtAbstractScaleDraw();
59 QwtAbstractScaleDraw( const QwtAbstractScaleDraw & );
60 virtual ~QwtAbstractScaleDraw();
61
62 QwtAbstractScaleDraw &operator=(const QwtAbstractScaleDraw &);
63
64 void setScaleDiv(const QwtScaleDiv &s);
65 const QwtScaleDiv& scaleDiv() const;
66
67 void setTransformation(QwtScaleTransformation *);
68 const QwtScaleMap &map() const;
69
70 void enableComponent(ScaleComponent, bool enable = true);
71 bool hasComponent(ScaleComponent) const;
72
73 void setTickLength(QwtScaleDiv::TickType, int length);
74 int tickLength(QwtScaleDiv::TickType) const;
75 int majTickLength() const;
76
77 void setSpacing(int margin);
78 int spacing() const;
79
80#if QT_VERSION < 0x040000
81 virtual void draw(QPainter *, const QColorGroup &) const;
82#else
83 virtual void draw(QPainter *, const QPalette &) const;
84#endif
85
86 virtual QwtText label(double) const;
87
88 /*!
89 Calculate the extent
90
91 The extent is the distcance from the baseline to the outermost
92 pixel of the scale draw in opposite to its orientation.
93 It is at least minimumExtent() pixels.
94
95 \sa setMinimumExtent(), minimumExtent()
96 */
97 virtual int extent(const QPen &, const QFont &) const = 0;
98
99 void setMinimumExtent(int);
100 int minimumExtent() const;
101
102 QwtScaleMap &scaleMap();
103
104protected:
105 /*!
106 Draw a tick
107
108 \param painter Painter
109 \param value Value of the tick
110 \param len Lenght of the tick
111
112 \sa drawBackbone(), drawLabel()
113 */
114 virtual void drawTick(QPainter *painter, double value, int len) const = 0;
115
116 /*!
117 Draws the baseline of the scale
118 \param painter Painter
119
120 \sa drawTick(), drawLabel()
121 */
122 virtual void drawBackbone(QPainter *painter) const = 0;
123
124 /*!
125 Draws the label for a major scale tick
126
127 \param painter Painter
128 \param value Value
129
130 \sa drawTick, drawBackbone
131 */
132 virtual void drawLabel(QPainter *painter, double value) const = 0;
133
134 void invalidateCache();
135 const QwtText &tickLabel(const QFont &, double value) const;
136
137private:
138 int operator==(const QwtAbstractScaleDraw &) const;
139 int operator!=(const QwtAbstractScaleDraw &) const;
140
141 class PrivateData;
142 PrivateData *d_data;
143};
144
145#endif
Note: See TracBrowser for help on using the repository browser.