/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Charts module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QABSTRACTAXIS_H #define QABSTRACTAXIS_H #include #include #include #include QT_CHARTS_BEGIN_NAMESPACE class QAbstractAxisPrivate; class Q_CHARTS_EXPORT QAbstractAxis : public QObject { Q_OBJECT //visibility Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) //arrow Q_PROPERTY(bool lineVisible READ isLineVisible WRITE setLineVisible NOTIFY lineVisibleChanged) Q_PROPERTY(QPen linePen READ linePen WRITE setLinePen NOTIFY linePenChanged) Q_PROPERTY(QColor color READ linePenColor WRITE setLinePenColor NOTIFY colorChanged) //labels Q_PROPERTY(bool labelsVisible READ labelsVisible WRITE setLabelsVisible NOTIFY labelsVisibleChanged) Q_PROPERTY(QBrush labelsBrush READ labelsBrush WRITE setLabelsBrush NOTIFY labelsBrushChanged) Q_PROPERTY(int labelsAngle READ labelsAngle WRITE setLabelsAngle NOTIFY labelsAngleChanged) Q_PROPERTY(QFont labelsFont READ labelsFont WRITE setLabelsFont NOTIFY labelsFontChanged) Q_PROPERTY(QColor labelsColor READ labelsColor WRITE setLabelsColor NOTIFY labelsColorChanged) //grid Q_PROPERTY(bool gridVisible READ isGridLineVisible WRITE setGridLineVisible NOTIFY gridVisibleChanged) Q_PROPERTY(QPen gridLinePen READ gridLinePen WRITE setGridLinePen NOTIFY gridLinePenChanged) Q_PROPERTY(bool minorGridVisible READ isMinorGridLineVisible WRITE setMinorGridLineVisible NOTIFY minorGridVisibleChanged) Q_PROPERTY(QPen minorGridLinePen READ minorGridLinePen WRITE setMinorGridLinePen NOTIFY minorGridLinePenChanged) Q_PROPERTY(QColor gridLineColor READ gridLineColor WRITE setGridLineColor NOTIFY gridLineColorChanged) Q_PROPERTY(QColor minorGridLineColor READ minorGridLineColor WRITE setMinorGridLineColor NOTIFY minorGridLineColorChanged) //shades Q_PROPERTY(bool shadesVisible READ shadesVisible WRITE setShadesVisible NOTIFY shadesVisibleChanged) Q_PROPERTY(QColor shadesColor READ shadesColor WRITE setShadesColor NOTIFY shadesColorChanged) Q_PROPERTY(QColor shadesBorderColor READ shadesBorderColor WRITE setShadesBorderColor NOTIFY shadesBorderColorChanged) Q_PROPERTY(QPen shadesPen READ shadesPen WRITE setShadesPen NOTIFY shadesPenChanged) Q_PROPERTY(QBrush shadesBrush READ shadesBrush WRITE setShadesBrush NOTIFY shadesBrushChanged) //title Q_PROPERTY(QString titleText READ titleText WRITE setTitleText NOTIFY titleTextChanged) Q_PROPERTY(QBrush titleBrush READ titleBrush WRITE setTitleBrush NOTIFY titleBrushChanged) Q_PROPERTY(bool titleVisible READ isTitleVisible WRITE setTitleVisible NOTIFY titleVisibleChanged) Q_PROPERTY(QFont titleFont READ titleFont WRITE setTitleFont NOTIFY titleFontChanged) //orientation Q_PROPERTY(Qt::Orientation orientation READ orientation) //aligment Q_PROPERTY(Qt::Alignment alignment READ alignment) Q_PROPERTY(bool reverse READ isReverse WRITE setReverse NOTIFY reverseChanged) public: enum AxisType { AxisTypeNoAxis = 0x0, AxisTypeValue = 0x1, AxisTypeBarCategory = 0x2, AxisTypeCategory = 0x4, AxisTypeDateTime = 0x8, AxisTypeLogValue = 0x10 }; Q_DECLARE_FLAGS(AxisTypes, AxisType) protected: explicit QAbstractAxis(QAbstractAxisPrivate &d, QObject *parent = nullptr); public: ~QAbstractAxis(); virtual AxisType type() const = 0; //visibility handling bool isVisible() const; void setVisible(bool visible = true); void show(); void hide(); //arrow handling bool isLineVisible() const; void setLineVisible(bool visible = true); void setLinePen(const QPen &pen); QPen linePen() const; void setLinePenColor(QColor color); QColor linePenColor() const; //grid handling bool isGridLineVisible() const; void setGridLineVisible(bool visible = true); void setGridLinePen(const QPen &pen); QPen gridLinePen() const; bool isMinorGridLineVisible() const; void setMinorGridLineVisible(bool visible = true); void setMinorGridLinePen(const QPen &pen); QPen minorGridLinePen() const; void setGridLineColor(const QColor &color); QColor gridLineColor(); void setMinorGridLineColor(const QColor &color); QColor minorGridLineColor(); //labels handling bool labelsVisible() const; void setLabelsVisible(bool visible = true); void setLabelsBrush(const QBrush &brush); QBrush labelsBrush() const; void setLabelsFont(const QFont &font); QFont labelsFont() const; void setLabelsAngle(int angle); int labelsAngle() const; void setLabelsColor(QColor color); QColor labelsColor() const; //title handling bool isTitleVisible() const; void setTitleVisible(bool visible = true); void setTitleBrush(const QBrush &brush); QBrush titleBrush() const; void setTitleFont(const QFont &font); QFont titleFont() const; void setTitleText(const QString &title); QString titleText() const; //shades handling bool shadesVisible() const; void setShadesVisible(bool visible = true); void setShadesPen(const QPen &pen); QPen shadesPen() const; void setShadesBrush(const QBrush &brush); QBrush shadesBrush() const; void setShadesColor(QColor color); QColor shadesColor() const; void setShadesBorderColor(QColor color); QColor shadesBorderColor() const; Qt::Orientation orientation() const; Qt::Alignment alignment() const; //range handling void setMin(const QVariant &min); void setMax(const QVariant &max); void setRange(const QVariant &min, const QVariant &max); //reverse handling void setReverse(bool reverse = true); bool isReverse() const; //label editable handling void setLabelsEditable(bool editable = true); bool labelsEditable() const; Q_SIGNALS: void visibleChanged(bool visible); void linePenChanged(const QPen &pen); void lineVisibleChanged(bool visible); void labelsVisibleChanged(bool visible); void labelsBrushChanged(const QBrush &brush); void labelsFontChanged(const QFont &pen); void labelsAngleChanged(int angle); void gridLinePenChanged(const QPen &pen); void gridVisibleChanged(bool visible); void minorGridVisibleChanged(bool visible); void minorGridLinePenChanged(const QPen &pen); void gridLineColorChanged(const QColor &color); void minorGridLineColorChanged(const QColor &color); void colorChanged(QColor color); void labelsColorChanged(QColor color); void titleTextChanged(const QString &title); void titleBrushChanged(const QBrush &brush); void titleVisibleChanged(bool visible); void titleFontChanged(const QFont &font); void shadesVisibleChanged(bool visible); void shadesColorChanged(QColor color); void shadesBorderColorChanged(QColor color); void shadesPenChanged(const QPen &pen); void shadesBrushChanged(const QBrush &brush); void reverseChanged(bool reverse); void labelsEditableChanged(bool editable); protected: QScopedPointer d_ptr; friend class ChartDataSet; friend class ChartPresenter; friend class ChartThemeManager; friend class AbstractDomain; friend class ChartAxisElement; friend class XYChart; private: Q_DISABLE_COPY(QAbstractAxis) }; QT_CHARTS_END_NAMESPACE #endif // QABSTRACTAXIS_H