KD Chart API Documentation
3.1
Loading...
Searching...
No Matches
source
src
KDChart
KDChartLayoutItems.h
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** This file is part of the KD Chart library.
4
**
5
** SPDX-FileCopyrightText: 2001 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6
**
7
** SPDX-License-Identifier: MIT
8
**
9
****************************************************************************/
10
11
#ifndef KDCHARTLAYOUTITEMS_H
12
#define KDCHARTLAYOUTITEMS_H
13
14
#include <QBrush>
15
#include <QFont>
16
#include <QFontMetricsF>
17
#include <QLayout>
18
#include <QLayoutItem>
19
#include <QPen>
20
21
#include "
KDChartMarkerAttributes.h
"
22
#include "
KDChartTextAttributes.h
"
23
24
QT_BEGIN_NAMESPACE
25
class
QPainter
;
26
QT_END_NAMESPACE
27
28
// TODO remove
29
QRectF
rotatedRect
(
const
QRectF
&pt, qreal rotation);
30
31
namespace
KDChart
{
32
class
AbstractDiagram;
33
class
PaintContext;
34
39
class
KDCHART_EXPORT
AbstractLayoutItem
:
public
QLayoutItem
40
{
41
public
:
42
AbstractLayoutItem
(
Qt::Alignment
itemAlignment = {})
43
:
QLayoutItem
(itemAlignment)
44
{
45
}
46
53
virtual
void
paintAll(
QPainter
&painter);
54
55
virtual
void
paint
(
QPainter
*) = 0;
56
57
virtual
void
paintCtx(
PaintContext
*context);
58
virtual
void
setParentWidget(
QWidget
*widget);
59
virtual
void
sizeHintChanged()
const
;
60
61
void
setParentLayout
(
QLayout
*lay)
62
{
63
mParentLayout = lay;
64
}
65
QLayout
*
parentLayout
()
66
{
67
return
mParentLayout;
68
}
69
void
removeFromParentLayout
()
70
{
71
if
(mParentLayout) {
72
if
(widget())
73
mParentLayout->removeWidget(widget());
74
else
75
mParentLayout->removeItem(
this
);
76
}
77
}
78
79
protected
:
80
QWidget
*mParent =
nullptr
;
81
QLayout
*mParentLayout =
nullptr
;
82
};
83
88
class
KDCHART_EXPORT
TextLayoutItem
:
public
AbstractLayoutItem
89
{
90
public
:
91
TextLayoutItem
();
92
TextLayoutItem
(
const
QString
&text,
93
const
TextAttributes
&attributes,
94
const
QObject
*autoReferenceArea,
95
KDChartEnums::MeasureOrientation
autoReferenceOrientation,
96
Qt::Alignment
alignment = {});
97
98
void
setAutoReferenceArea(
const
QObject
*area);
99
const
QObject
*autoReferenceArea()
const
;
100
101
void
setText(
const
QString
&text);
102
QString
text()
const
;
103
104
void
setTextAlignment(
Qt::Alignment
);
105
Qt::Alignment
textAlignment()
const
;
106
107
void
setTextAttributes(
const
TextAttributes
&a);
108
TextAttributes
textAttributes()
const
;
109
111
bool
isEmpty()
const override
;
113
Qt::Orientations
expandingDirections()
const override
;
115
QSize
maximumSize()
const override
;
117
QSize
minimumSize()
const override
;
119
QSize
sizeHint()
const override
;
121
void
setGeometry(
const
QRect
&r)
override
;
123
QRect
geometry()
const override
;
124
125
virtual
int
marginWidth()
const
;
126
127
virtual
QSize
sizeHintUnrotated()
const
;
128
129
virtual
bool
intersects(
const
TextLayoutItem
&other,
const
QPointF
&myPos,
const
QPointF
&otherPos)
const
;
130
virtual
bool
intersects(
const
TextLayoutItem
&other,
const
QPoint
&myPos,
const
QPoint
&otherPos)
const
;
131
132
virtual
qreal realFontSize()
const
;
133
virtual
QFont
realFont()
const
;
134
135
void
paint(
QPainter
*)
override
;
136
137
QPolygon
boundingPolygon()
const
;
138
139
private
:
140
bool
maybeUpdateRealFont()
const
;
141
QSize
unrotatedSizeHint(
const
QFont
&fnt =
QFont
())
const
;
142
QSize
unrotatedTextSize(
QFont
fnt =
QFont
())
const
;
143
QSize
calcSizeHint(
const
QFont
&font)
const
;
144
int
marginWidth(
const
QSize
&textSize)
const
;
145
146
qreal
fitFontSizeToGeometry
()
const
;
147
148
QRect
mRect;
149
QString
mText;
150
Qt::Alignment
mTextAlignment;
151
TextAttributes
mAttributes;
152
const
QObject
*mAutoReferenceArea =
nullptr
;
153
KDChartEnums::MeasureOrientation
mAutoReferenceOrientation =
KDChartEnums::MeasureOrientationHorizontal
;
154
mutable
QSize
cachedSizeHint;
155
mutable
QPolygon
mCachedBoundingPolygon;
156
mutable
qreal cachedFontSize = 0.0;
157
mutable
QFont
cachedFont;
158
};
159
160
class
KDCHART_EXPORT
TextBubbleLayoutItem
:
public
AbstractLayoutItem
161
{
162
public
:
163
TextBubbleLayoutItem
();
164
TextBubbleLayoutItem
(
const
QString
&text,
165
const
TextAttributes
&attributes,
166
const
QObject
*autoReferenceArea,
167
KDChartEnums::MeasureOrientation
autoReferenceOrientation,
168
Qt::Alignment
alignment = {});
169
170
~TextBubbleLayoutItem
()
override
;
171
172
void
setAutoReferenceArea(
const
QObject
*area);
173
const
QObject
*autoReferenceArea()
const
;
174
175
void
setText(
const
QString
&text);
176
QString
text()
const
;
177
178
void
setTextAttributes(
const
TextAttributes
&a);
179
TextAttributes
textAttributes()
const
;
180
182
bool
isEmpty()
const override
;
184
Qt::Orientations
expandingDirections()
const override
;
186
QSize
maximumSize()
const override
;
188
QSize
minimumSize()
const override
;
190
QSize
sizeHint()
const override
;
192
void
setGeometry(
const
QRect
&r)
override
;
194
QRect
geometry()
const override
;
195
196
void
paint(
QPainter
*painter)
override
;
197
198
protected
:
199
int
borderWidth()
const
;
200
201
private
:
202
TextLayoutItem
*
const
m_text;
203
};
204
209
class
KDCHART_EXPORT
MarkerLayoutItem
:
public
AbstractLayoutItem
210
{
211
public
:
212
MarkerLayoutItem
(
AbstractDiagram
*diagram,
213
const
MarkerAttributes
&marker,
214
const
QBrush
&brush,
215
const
QPen
&pen,
216
Qt::Alignment
alignment = {});
217
218
Qt::Orientations
expandingDirections()
const override
;
219
QRect
geometry()
const override
;
220
bool
isEmpty()
const override
;
221
QSize
maximumSize()
const override
;
222
QSize
minimumSize()
const override
;
223
void
setGeometry(
const
QRect
&r)
override
;
224
QSize
sizeHint()
const override
;
225
226
void
paint(
QPainter
*)
override
;
227
228
static
void
paintIntoRect(
229
QPainter
*painter,
230
const
QRect
&rect,
231
AbstractDiagram
*diagram,
232
const
MarkerAttributes
&marker,
233
const
QBrush
&brush,
234
const
QPen
&pen);
235
236
private
:
237
AbstractDiagram
*mDiagram;
238
QRect
mRect;
239
MarkerAttributes
mMarker;
240
QBrush
mBrush;
241
QPen
mPen;
242
};
243
248
class
KDCHART_EXPORT
LineLayoutItem
:
public
AbstractLayoutItem
249
{
250
public
:
251
LineLayoutItem
(
AbstractDiagram
*diagram,
252
int
length,
253
const
QPen
&pen,
254
Qt::Alignment
mLegendLineSymbolAlignment,
255
Qt::Alignment
alignment = {});
256
257
Qt::Orientations
expandingDirections()
const override
;
258
QRect
geometry()
const override
;
259
bool
isEmpty()
const override
;
260
QSize
maximumSize()
const override
;
261
QSize
minimumSize()
const override
;
262
void
setGeometry(
const
QRect
&r)
override
;
263
QSize
sizeHint()
const override
;
264
265
void
setLegendLineSymbolAlignment(
Qt::Alignment
legendLineSymbolAlignment);
266
virtual
Qt::Alignment
legendLineSymbolAlignment()
const
;
267
268
void
paint(
QPainter
*)
override
;
269
270
static
void
paintIntoRect(
271
QPainter
*painter,
272
const
QRect
&rect,
273
const
QPen
&pen,
274
Qt::Alignment
lineAlignment);
275
276
private
:
277
AbstractDiagram
*mDiagram;
// TODO: not used. remove it
278
int
mLength;
279
QPen
mPen;
280
QRect
mRect;
281
Qt::Alignment
mLegendLineSymbolAlignment;
282
};
283
288
class
KDCHART_EXPORT
LineWithMarkerLayoutItem
:
public
AbstractLayoutItem
289
{
290
public
:
291
LineWithMarkerLayoutItem
(
AbstractDiagram
*diagram,
292
int
lineLength,
293
const
QPen
&linePen,
294
int
markerOffs,
295
const
MarkerAttributes
&marker,
296
const
QBrush
&markerBrush,
297
const
QPen
&markerPen,
298
Qt::Alignment
alignment = {});
299
300
Qt::Orientations
expandingDirections()
const override
;
301
QRect
geometry()
const override
;
302
bool
isEmpty()
const override
;
303
QSize
maximumSize()
const override
;
304
QSize
minimumSize()
const override
;
305
void
setGeometry(
const
QRect
&r)
override
;
306
QSize
sizeHint()
const override
;
307
308
void
paint(
QPainter
*)
override
;
309
310
private
:
311
AbstractDiagram
*mDiagram;
312
QRect
mRect;
313
int
mLineLength;
314
QPen
mLinePen;
315
int
mMarkerOffs;
316
MarkerAttributes
mMarker;
317
QBrush
mMarkerBrush;
318
QPen
mMarkerPen;
319
};
320
325
class
KDCHART_EXPORT
HorizontalLineLayoutItem
:
public
AbstractLayoutItem
326
{
327
public
:
328
HorizontalLineLayoutItem
();
329
330
Qt::Orientations
expandingDirections()
const override
;
331
QRect
geometry()
const override
;
332
bool
isEmpty()
const override
;
333
QSize
maximumSize()
const override
;
334
QSize
minimumSize()
const override
;
335
void
setGeometry(
const
QRect
&r)
override
;
336
QSize
sizeHint()
const override
;
337
338
void
paint(
QPainter
*)
override
;
339
340
private
:
341
QRect
mRect;
342
};
343
348
class
KDCHART_EXPORT
VerticalLineLayoutItem
:
public
AbstractLayoutItem
349
{
350
public
:
351
VerticalLineLayoutItem
();
352
353
Qt::Orientations
expandingDirections()
const override
;
354
QRect
geometry()
const override
;
355
bool
isEmpty()
const override
;
356
QSize
maximumSize()
const override
;
357
QSize
minimumSize()
const override
;
358
void
setGeometry(
const
QRect
&r)
override
;
359
QSize
sizeHint()
const override
;
360
361
void
paint(
QPainter
*)
override
;
362
363
private
:
364
QRect
mRect;
365
};
366
437
class
KDCHART_EXPORT
AutoSpacerLayoutItem
:
public
AbstractLayoutItem
438
{
439
public
:
440
AutoSpacerLayoutItem
(
441
bool
layoutIsAtTopPosition,
QHBoxLayout
*rightLeftLayout,
442
bool
layoutIsAtLeftPosition,
QVBoxLayout
*topBottomLayout);
443
444
Qt::Orientations
expandingDirections()
const override
;
445
QRect
geometry()
const override
;
446
bool
isEmpty()
const override
;
447
QSize
maximumSize()
const override
;
448
QSize
minimumSize()
const override
;
449
void
setGeometry(
const
QRect
&r)
override
;
450
QSize
sizeHint()
const override
;
451
452
void
paint(
QPainter
*)
override
;
453
454
private
:
455
QRect
mRect;
456
bool
mLayoutIsAtTopPosition;
457
QHBoxLayout
*mRightLeftLayout;
458
bool
mLayoutIsAtLeftPosition;
459
QVBoxLayout
*mTopBottomLayout;
460
461
mutable
QBrush
mCommonBrush;
462
mutable
QSize
mCachedSize;
463
};
464
}
465
466
#endif
/* KDCHARTLAYOUTITEMS_H */
rotatedRect
QT_END_NAMESPACE QRectF rotatedRect(const QRectF &pt, qreal rotation)
Definition
KDChartLayoutItems.cpp:311
KDChartMarkerAttributes.h
fitFontSizeToGeometry
static qreal fitFontSizeToGeometry(const QString &text, const QFont &font, const QRectF &geometry, const TextAttributes &ta)
Definition
KDChartRadarDiagram.cpp:94
KDChartTextAttributes.h
KDChartEnums::MeasureOrientation
MeasureOrientation
Definition
KDChartEnums.h:286
KDChartEnums::MeasureOrientationHorizontal
@ MeasureOrientationHorizontal
Definition
KDChartEnums.h:288
KDChart::AbstractDiagram
AbstractDiagram defines the interface for diagram classes.
Definition
KDChartAbstractDiagram.h:39
KDChart::AbstractLayoutItem
Definition
KDChartLayoutItems.h:40
KDChart::AbstractLayoutItem::removeFromParentLayout
void removeFromParentLayout()
Definition
KDChartLayoutItems.h:69
KDChart::AbstractLayoutItem::AbstractLayoutItem
AbstractLayoutItem(Qt::Alignment itemAlignment={})
Definition
KDChartLayoutItems.h:42
KDChart::AbstractLayoutItem::parentLayout
QLayout * parentLayout()
Definition
KDChartLayoutItems.h:65
KDChart::AbstractLayoutItem::setParentLayout
void setParentLayout(QLayout *lay)
Definition
KDChartLayoutItems.h:61
KDChart::AbstractLayoutItem::paint
virtual void paint(QPainter *)=0
KDChart::AutoSpacerLayoutItem
Definition
KDChartLayoutItems.h:438
KDChart::HorizontalLineLayoutItem
Definition
KDChartLayoutItems.h:326
KDChart::LineLayoutItem
Definition
KDChartLayoutItems.h:249
KDChart::LineWithMarkerLayoutItem
Definition
KDChartLayoutItems.h:289
KDChart::MarkerAttributes
A set of attributes controlling the appearance of data set markers.
Definition
KDChartMarkerAttributes.h:33
KDChart::MarkerLayoutItem
Definition
KDChartLayoutItems.h:210
KDChart::PaintContext
Stores information about painting diagrams.
Definition
KDChartPaintContext.h:30
KDChart::TextAttributes
A set of text attributes.
Definition
KDChartTextAttributes.h:35
KDChart::TextBubbleLayoutItem
Definition
KDChartLayoutItems.h:161
KDChart::TextLayoutItem
Definition
KDChartLayoutItems.h:89
KDChart::VerticalLineLayoutItem
Definition
KDChartLayoutItems.h:349
KDChart
Definition
CartesianCoordinateTransformation.h:23
QBrush
QFont
QHBoxLayout
QLayout
QLayoutItem
QObject
QPainter
QPen
QPoint
QPointF
QPolygon
QRect
QRectF
QSize
QString
Qt::Alignment
typedef Alignment
Qt::Orientations
typedef Orientations
QVBoxLayout
QWidget
© 2001 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-chart/
Generated on Wed May 1 2024 00:01:10 for KD Chart API Documentation by doxygen 1.9.8