QWT 7.0.1
Loading...
Searching...
No Matches
qwt_plot_layout_engine.h
1#ifndef QWTPLOTLAYOUTENGINE_H
2#define QWTPLOTLAYOUTENGINE_H
3#include <QRectF>
4#include <QFont>
5class QWidget;
6// qwt
7#include "qwt_global.h"
8#include "qwt_axis.h"
9#include "qwt_axis_id.h"
10#include "qwt_text.h"
11#include "qwt_plot.h"
13class QwtTextLabel;
14class QwtScaleWidget;
20class QWT_EXPORT QwtPlotLayoutEngine
21{
22public:
24 {
25 Dimensions();
26 int dimAxis(QwtAxisId axisId) const;
27 void setDimAxis(QwtAxisId axisId, int dim);
28 int dimAxes(int axisPos) const;
29 int dimYAxes() const;
30 int dimXAxes() const;
31 QRectF centered(const QRectF& rect, const QRectF& labelRect) const;
32 QRectF innerRect(const QRectF& rect) const;
33 int dimTitle;
34 int dimFooter;
35
36 private:
37 int m_dimAxes[ QwtAxis::AxisPositions ];
38 };
39
41 {
42 public:
44 {
45 void init(const QwtAbstractLegend* legend);
46 QSize legendHint(const QwtAbstractLegend* legend, const QRectF& rect) const;
47 int frameWidth;
48 int hScrollExtent;
49 int vScrollExtent;
50 QSize hint;
51 };
52
53 struct LabelData
54 {
55 void init(const QwtTextLabel* label);
56 QwtText text;
57 int frameWidth;
58 };
59
60 struct ScaleData
61 {
62 void init(const QwtScaleWidget* axisWidget);
63 void reset();
64 bool isVisible;
65 const QwtScaleWidget* scaleWidget;
66 QFont scaleFont;
67 int start;
68 int end;
69 int baseLineOffset;
70 double tickOffset;
71 int dimWithoutTitle;
72 int edgeMargin;
73 };
74
76 {
77 void init(const QWidget* canvas);
78 int contentsMargins[ QwtAxis::AxisPositions ];
79 };
80
81 public:
82 enum Label
83 {
84 Title,
85 Footer,
86
87 NumLabels
88 };
89
90 LayoutData(const QwtPlot* plot);
91 bool hasSymmetricYAxes() const;
92 ScaleData& axisData(QwtAxisId axisId);
93 const ScaleData& axisData(QwtAxisId axisId) const;
94 double tickOffset(int axisPos) const;
95
96 LegendData legendData;
97 LabelData labelData[ NumLabels ];
98 CanvasData canvasData;
99
100 private:
101 ScaleData m_scaleData[ QwtAxis::AxisPositions ];
102 };
103
104public:
106
107 QRectF layoutLegend(int plotLayoutOptions,
108 const LayoutData::LegendData& legendData,
109 const QRectF& rect,
110 const QSize& legendHint) const;
111
112 QRectF alignLegend(const QSize& legendHint, const QRectF& canvasRect, const QRectF& legendRect) const;
113
114 void alignScales(int plotLayoutOptions,
115 const LayoutData& layoutData,
116 QRectF& canvasRect,
117 QRectF scaleRect[ QwtAxis::AxisPositions ]) const;
118 void alignScalesToCanvas(int plotLayoutOptions,
119 const LayoutData& layoutData,
120 const QRectF& canvasRect,
121 QRectF scaleRect[ QwtAxis::AxisPositions ]) const;
122
123 Dimensions layoutDimensions(int plotLayoutOptions, const LayoutData& layoutData, const QRectF& rect) const;
124
125 void setSpacing(unsigned int spacing);
126 unsigned int spacing() const;
127
128 void setAlignCanvas(int axisPos, bool on);
129 bool alignCanvas(int axisPos) const;
130
131 void setCanvasMargin(int axisPos, int margin);
132 int canvasMargin(int axisPos) const;
133
134 void setLegendPos(QwtPlot::LegendPosition pos);
135 QwtPlot::LegendPosition legendPos() const;
136
137 void setLegendRatio(double ratio);
138 double legendRatio() const;
139
140private:
141 int heightForWidth(LayoutData::Label labelType,
142 const LayoutData& layoutData,
143 int plotLayoutOptions,
144 double width,
145 int axesWidth) const;
146
147 QwtPlot::LegendPosition m_legendPos;
148 double m_legendRatio;
149
150 unsigned int m_canvasMargin[ QwtAxis::AxisPositions ] = { 0, 0, 0, 0 };
151 bool m_alignCanvas[ QwtAxis::AxisPositions ];
152
153 unsigned int m_spacing;
154};
155
156#endif // QWTPLOTLAYOUTENGINE_H
Abstract base class for legend widgets.
Definition qwt_abstract_legend.h:50
Definition qwt_plot_layout_engine.h:41
The QwtPlotLayoutEngine class.
Definition qwt_plot_layout_engine.h:21
A 2-D plotting widget.
Definition qwt_plot.h:99
LegendPosition
Position of the legend, relative to the canvas.
Definition qwt_plot.h:114
A Widget which contains a scale.
Definition qwt_scale_widget.h:74
A Widget which displays a QwtText.
Definition qwt_text_label.h:44
A class representing a text.
Definition qwt_text.h:69
Definition qwt_plot_layout_engine.h:24
Definition qwt_plot_layout_engine.h:76
Definition qwt_plot_layout_engine.h:54
Definition qwt_plot_layout_engine.h:44
Definition qwt_plot_layout_engine.h:61