11 #ifndef KDCHARTLAYOUTITEMS_H
12 #define KDCHARTLAYOUTITEMS_H
16 #include <QFontMetricsF>
18 #include <QLayoutItem>
29 QRectF
rotatedRect(
const QRectF &pt, qreal rotation);
32 class AbstractDiagram;
43 : QLayoutItem(itemAlignment)
53 virtual void paintAll(QPainter &painter);
55 virtual void paint(QPainter *) = 0;
58 virtual void setParentWidget(QWidget *widget);
59 virtual void sizeHintChanged()
const;
73 mParentLayout->removeWidget(widget());
75 mParentLayout->removeItem(
this);
80 QWidget *mParent =
nullptr;
81 QLayout *mParentLayout =
nullptr;
94 const QObject *autoReferenceArea,
96 Qt::Alignment alignment = {});
98 void setAutoReferenceArea(
const QObject *area);
99 const QObject *autoReferenceArea()
const;
101 void setText(
const QString &text);
102 QString text()
const;
104 void setTextAlignment(Qt::Alignment);
105 Qt::Alignment textAlignment()
const;
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;
125 virtual int marginWidth()
const;
127 virtual QSize sizeHintUnrotated()
const;
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;
132 virtual qreal realFontSize()
const;
133 virtual QFont realFont()
const;
135 void paint(QPainter *)
override;
137 QPolygon boundingPolygon()
const;
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;
150 Qt::Alignment mTextAlignment;
152 const QObject *mAutoReferenceArea =
nullptr;
154 mutable QSize cachedSizeHint;
155 mutable QPolygon mCachedBoundingPolygon;
156 mutable qreal cachedFontSize = 0.0;
157 mutable QFont cachedFont;
166 const QObject *autoReferenceArea,
168 Qt::Alignment alignment = {});
172 void setAutoReferenceArea(
const QObject *area);
173 const QObject *autoReferenceArea()
const;
175 void setText(
const QString &text);
176 QString text()
const;
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;
196 void paint(QPainter *painter)
override;
199 int borderWidth()
const;
216 Qt::Alignment alignment = {});
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;
226 void paint(QPainter *)
override;
228 static void paintIntoRect(
254 Qt::Alignment mLegendLineSymbolAlignment,
255 Qt::Alignment alignment = {});
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;
265 void setLegendLineSymbolAlignment(Qt::Alignment legendLineSymbolAlignment);
266 virtual Qt::Alignment legendLineSymbolAlignment()
const;
268 void paint(QPainter *)
override;
270 static void paintIntoRect(
274 Qt::Alignment lineAlignment);
281 Qt::Alignment mLegendLineSymbolAlignment;
296 const QBrush &markerBrush,
297 const QPen &markerPen,
298 Qt::Alignment alignment = {});
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;
308 void paint(QPainter *)
override;
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;
338 void paint(QPainter *)
override;
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;
361 void paint(QPainter *)
override;
441 bool layoutIsAtTopPosition, QHBoxLayout *rightLeftLayout,
442 bool layoutIsAtLeftPosition, QVBoxLayout *topBottomLayout);
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;
452 void paint(QPainter *)
override;
456 bool mLayoutIsAtTopPosition;
457 QHBoxLayout *mRightLeftLayout;
458 bool mLayoutIsAtLeftPosition;
459 QVBoxLayout *mTopBottomLayout;
461 mutable QBrush mCommonBrush;
462 mutable QSize mCachedSize;
QT_END_NAMESPACE QRectF rotatedRect(const QRectF &pt, qreal rotation)
static qreal fitFontSizeToGeometry(const QString &text, const QFont &font, const QRectF &geometry, const TextAttributes &ta)
@ MeasureOrientationHorizontal
AbstractDiagram defines the interface for diagram classes.
void removeFromParentLayout()
AbstractLayoutItem(Qt::Alignment itemAlignment={})
void setParentLayout(QLayout *lay)
virtual void paint(QPainter *)=0
A set of attributes controlling the appearance of data set markers.
Stores information about painting diagrams.
A set of text attributes.