declarativecategoryaxis.h
93 lines
| 2.9 KiB
| text/x-c
|
CLexer
|
r1872 | /**************************************************************************** | ||
** | ||||
|
r2776 | ** Copyright (C) 2015 The Qt Company Ltd | ||
|
r1872 | ** All rights reserved. | ||
|
r2776 | ** For any questions to The Qt Company, please use contact form at http://qt.io | ||
|
r1872 | ** | ||
|
r2740 | ** This file is part of the Qt Charts module. | ||
|
r1872 | ** | ||
|
r2740 | ** Licensees holding valid commercial license for Qt may use this file in | ||
** accordance with the Qt License Agreement provided with the Software | ||||
** or, alternatively, in accordance with the terms contained in a written | ||||
|
r2776 | ** agreement between you and The Qt Company. | ||
|
r1872 | ** | ||
** If you have questions regarding the use of this file, please use | ||||
|
r2740 | ** contact form at http://qt.io | ||
|
r1872 | ** | ||
****************************************************************************/ | ||||
#ifndef DECLARATIVECATEGORYAXIS_H | ||||
#define DECLARATIVECATEGORYAXIS_H | ||||
|
r2714 | #include <QtCharts/QCategoryAxis> | ||
|
r2488 | |||
#include <QtQml/QQmlListProperty> | ||||
#include <QtQml/QQmlParserStatus> | ||||
|
r1872 | |||
|
r2712 | QT_CHARTS_BEGIN_NAMESPACE | ||
|
r1872 | |||
class DeclarativeCategoryRange : public QObject | ||||
{ | ||||
Q_OBJECT | ||||
Q_PROPERTY(qreal endValue READ endValue WRITE setEndValue) | ||||
Q_PROPERTY(QString label READ label WRITE setLabel) | ||||
public: | ||||
explicit DeclarativeCategoryRange(QObject *parent = 0); | ||||
qreal endValue() { return m_endValue; } | ||||
void setEndValue(qreal endValue) { m_endValue = endValue; } | ||||
QString label() { return m_label; } | ||||
void setLabel(QString label) { m_label = label; } | ||||
private: | ||||
qreal m_endValue; | ||||
QString m_label; | ||||
}; | ||||
|
r2712 | class DeclarativeCategoryAxis : public QCategoryAxis, public QQmlParserStatus | ||
|
r1872 | { | ||
Q_OBJECT | ||||
|
r2488 | Q_INTERFACES(QQmlParserStatus) | ||
Q_PROPERTY(QQmlListProperty<QObject> axisChildren READ axisChildren) | ||||
|
r1872 | Q_CLASSINFO("DefaultProperty", "axisChildren") | ||
|
r2780 | Q_PROPERTY(AxisLabelsPosition labelsPosition READ labelsPosition WRITE setLabelsPosition NOTIFY labelsPositionChanged REVISION 1) | ||
Q_ENUMS(AxisLabelsPosition) | ||||
|
r1872 | |||
public: | ||||
|
r2780 | // duplicating enums from QChart to make the QML api namings 1-to-1 with the C++ api | ||
enum AxisLabelsPosition { | ||||
AxisLabelsPositionCenter = 0x0, | ||||
AxisLabelsPositionOnValue = 0x1 | ||||
}; | ||||
|
r1872 | explicit DeclarativeCategoryAxis(QObject *parent = 0); | ||
|
r2712 | QQmlListProperty<QObject> axisChildren(); | ||
|
r1872 | |||
|
r2780 | |||
|
r1872 | public: // from QDeclarativeParserStatus | ||
void classBegin(); | ||||
void componentComplete(); | ||||
|
r2780 | public: | ||
AxisLabelsPosition labelsPosition() const; | ||||
void setLabelsPosition(AxisLabelsPosition position); | ||||
Q_SIGNALS: | ||||
Q_REVISION(1) void labelsPositionChanged(AxisLabelsPosition position); | ||||
|
r1872 | public Q_SLOTS: | ||
Q_INVOKABLE void append(const QString &label, qreal categoryEndValue); | ||||
Q_INVOKABLE void remove(const QString &label); | ||||
|
r2101 | Q_INVOKABLE void replace(const QString &oldLabel, const QString &newLabel); | ||
|
r2712 | static void appendAxisChildren(QQmlListProperty<QObject> *list, QObject *element); | ||
|
r2080 | |||
private: | ||||
static bool endValueLessThan(const QPair<QString, qreal> &value1, const QPair<QString, qreal> &value2); | ||||
|
r2780 | |||
private: | ||||
AxisLabelsPosition m_labelsPosition; | ||||
|
r1872 | }; | ||
|
r2712 | QT_CHARTS_END_NAMESPACE | ||
|
r1872 | |||
#endif // DECLARATIVECATEGORYAXIS_H | ||||