// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #ifndef CALLOUT_H #define CALLOUT_H #include #include QT_FORWARD_DECLARE_CLASS(QChart) QT_FORWARD_DECLARE_CLASS(QGraphicsSceneMouseEvent) class Callout : public QGraphicsItem { public: Callout(QChart *parent); void setText(const QString &text); void setAnchor(QPointF point); void updateGeometry(); QRectF boundingRect() const override; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; protected: void mousePressEvent(QGraphicsSceneMouseEvent *event) override; void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; private: QString m_text; QRectF m_textRect; QRectF m_rect; QPointF m_anchor; QFont m_font; QChart *m_chart = nullptr; }; #endif