// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef QABSTRACTBARSERIES_H #define QABSTRACTBARSERIES_H #include #include QT_BEGIN_NAMESPACE class QBarSet; class QAbstractBarSeriesPrivate; // Container for series class Q_CHARTS_EXPORT QAbstractBarSeries : public QAbstractSeries { Q_OBJECT Q_PROPERTY(qreal barWidth READ barWidth WRITE setBarWidth) Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(bool labelsVisible READ isLabelsVisible WRITE setLabelsVisible NOTIFY labelsVisibleChanged) Q_PROPERTY(QString labelsFormat READ labelsFormat WRITE setLabelsFormat NOTIFY labelsFormatChanged) Q_PROPERTY(LabelsPosition labelsPosition READ labelsPosition WRITE setLabelsPosition NOTIFY labelsPositionChanged) Q_PROPERTY(qreal labelsAngle READ labelsAngle WRITE setLabelsAngle NOTIFY labelsAngleChanged) Q_PROPERTY(int labelsPrecision READ labelsPrecision WRITE setLabelsPrecision NOTIFY labelsPrecisionChanged) Q_ENUMS(LabelsPosition) public: enum LabelsPosition { LabelsCenter = 0, LabelsInsideEnd, LabelsInsideBase, LabelsOutsideEnd }; public: virtual ~QAbstractBarSeries(); void setBarWidth(qreal width); qreal barWidth() const; bool append(QBarSet *set); bool remove(QBarSet *set); bool take(QBarSet *set); bool append(const QList &sets); bool insert(int index, QBarSet *set); int count() const; QList barSets() const; void clear(); void setLabelsVisible(bool visible = true); bool isLabelsVisible() const; void setLabelsFormat(const QString &format); QString labelsFormat() const; void setLabelsAngle(qreal angle); qreal labelsAngle() const; void setLabelsPosition(QAbstractBarSeries::LabelsPosition position); QAbstractBarSeries::LabelsPosition labelsPosition() const; void setLabelsPrecision(int precision); int labelsPrecision() const; protected: explicit QAbstractBarSeries(QAbstractBarSeriesPrivate &d, QObject *parent = nullptr); Q_SIGNALS: void clicked(int index, QBarSet *barset); void hovered(bool status, int index, QBarSet *barset); void pressed(int index, QBarSet *barset); void released(int index, QBarSet *barset); void doubleClicked(int index, QBarSet *barset); void countChanged(); void labelsVisibleChanged(); void labelsFormatChanged(const QString &format); void labelsPositionChanged(QAbstractBarSeries::LabelsPosition position); void labelsAngleChanged(qreal angle); void labelsPrecisionChanged(int precision); void barsetsAdded(const QList &sets); void barsetsRemoved(const QList &sets); protected: Q_DECLARE_PRIVATE(QAbstractBarSeries) friend class AbstractBarChartItem; friend class PercentBarChartItem; friend class StackedBarChartItem; friend class BoxPlotChartItem; friend class BarChartItem; friend class HorizontalBarChartItem; friend class HorizontalStackedBarChartItem; friend class HorizontalPercentBarChartItem; friend class BarSet; }; QT_END_NAMESPACE #endif // QABSTRACTBARSERIES_H