diff options
Diffstat (limited to 'src/datavisualizationqml/declarativebars_p.h')
-rw-r--r-- | src/datavisualizationqml/declarativebars_p.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/datavisualizationqml/declarativebars_p.h b/src/datavisualizationqml/declarativebars_p.h new file mode 100644 index 00000000..82653ab2 --- /dev/null +++ b/src/datavisualizationqml/declarativebars_p.h @@ -0,0 +1,109 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +// +// W A R N I N G +// ------------- +// +// This file is not part of the QtDataVisualization API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +#ifndef DECLARATIVEBARS_P_H +#define DECLARATIVEBARS_P_H + +#include "abstractdeclarative_p.h" + +#include <private/datavisualizationglobal_p.h> +#include <private/bars3dcontroller_p.h> + +QT_BEGIN_NAMESPACE +class DeclarativeBars : public AbstractDeclarative +{ + Q_OBJECT + Q_PROPERTY(QCategory3DAxis *rowAxis READ rowAxis WRITE setRowAxis NOTIFY rowAxisChanged) + Q_PROPERTY(QValue3DAxis *valueAxis READ valueAxis WRITE setValueAxis NOTIFY valueAxisChanged) + Q_PROPERTY(QCategory3DAxis *columnAxis READ columnAxis WRITE setColumnAxis NOTIFY columnAxisChanged) + Q_PROPERTY(bool multiSeriesUniform READ isMultiSeriesUniform WRITE setMultiSeriesUniform NOTIFY multiSeriesUniformChanged) + Q_PROPERTY(float barThickness READ barThickness WRITE setBarThickness NOTIFY barThicknessChanged) + Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing NOTIFY barSpacingChanged) + Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative NOTIFY barSpacingRelativeChanged) + Q_PROPERTY(QSizeF barSeriesMargin READ barSeriesMargin WRITE setBarSeriesMargin NOTIFY barSeriesMarginChanged REVISION(6, 3)) + Q_PROPERTY(QQmlListProperty<QBar3DSeries> seriesList READ seriesList) + Q_PROPERTY(QBar3DSeries *selectedSeries READ selectedSeries NOTIFY selectedSeriesChanged) + Q_PROPERTY(QBar3DSeries *primarySeries READ primarySeries WRITE setPrimarySeries NOTIFY primarySeriesChanged) + Q_PROPERTY(float floorLevel READ floorLevel WRITE setFloorLevel NOTIFY floorLevelChanged REVISION(1, 2)) + Q_CLASSINFO("DefaultProperty", "seriesList") + + QML_NAMED_ELEMENT(Bars3D) + QML_ADDED_IN_VERSION(1, 0) + +public: + explicit DeclarativeBars(QQuickItem *parent = 0); + ~DeclarativeBars(); + + QCategory3DAxis *rowAxis() const; + void setRowAxis(QCategory3DAxis *axis); + QValue3DAxis *valueAxis() const; + void setValueAxis(QValue3DAxis *axis); + QCategory3DAxis *columnAxis() const; + void setColumnAxis(QCategory3DAxis *axis); + + void setMultiSeriesUniform(bool uniform); + bool isMultiSeriesUniform() const; + + void setBarThickness(float thicknessRatio); + float barThickness() const; + + void setBarSpacing(const QSizeF &spacing); + QSizeF barSpacing() const; + + void setBarSpacingRelative(bool relative); + bool isBarSpacingRelative() const; + + void setBarSeriesMargin(const QSizeF &margin); + QSizeF barSeriesMargin() const; + + QQmlListProperty<QBar3DSeries> seriesList(); + static void appendSeriesFunc(QQmlListProperty<QBar3DSeries> *list, QBar3DSeries *series); + static qsizetype countSeriesFunc(QQmlListProperty<QBar3DSeries> *list); + static QBar3DSeries *atSeriesFunc(QQmlListProperty<QBar3DSeries> *list, qsizetype index); + static void clearSeriesFunc(QQmlListProperty<QBar3DSeries> *list); + Q_INVOKABLE void addSeries(QBar3DSeries *series); + Q_INVOKABLE void removeSeries(QBar3DSeries *series); + Q_INVOKABLE void insertSeries(int index, QBar3DSeries *series); + void setPrimarySeries(QBar3DSeries *series); + QBar3DSeries *primarySeries() const; + QBar3DSeries *selectedSeries() const; + + void setFloorLevel(float level); + float floorLevel() const; + +public Q_SLOTS: + void handleAxisXChanged(QAbstract3DAxis *axis) override; + void handleAxisYChanged(QAbstract3DAxis *axis) override; + void handleAxisZChanged(QAbstract3DAxis *axis) override; + +Q_SIGNALS: + void rowAxisChanged(QCategory3DAxis *axis); + void valueAxisChanged(QValue3DAxis *axis); + void columnAxisChanged(QCategory3DAxis *axis); + void multiSeriesUniformChanged(bool uniform); + void barThicknessChanged(float thicknessRatio); + void barSpacingChanged(const QSizeF &spacing); + void barSpacingRelativeChanged(bool relative); + Q_REVISION(6, 3) void barSeriesMarginChanged(const QSizeF &margin); + void meshFileNameChanged(const QString &filename); + void primarySeriesChanged(QBar3DSeries *series); + void selectedSeriesChanged(QBar3DSeries *series); + Q_REVISION(1, 2) void floorLevelChanged(float level); + +private: + Bars3DController *m_barsController; +}; + +QT_END_NAMESPACE + +#endif |