declarativecategoryaxis.h
96 lines
| 3.0 KiB
| text/x-c
|
CLexer
Titta Heikkala
|
r2845 | /****************************************************************************** | ||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2845 | ** Copyright (C) 2015 The Qt Company Ltd. | ||
** Contact: http://www.qt.io/licensing/ | ||||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2740 | ** This file is part of the Qt Charts module. | ||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2845 | ** $QT_BEGIN_LICENSE:COMM$ | ||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2845 | ** 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 http://www.qt.io/terms-conditions. For further | ||||
** information use the contact form at http://www.qt.io/contact-us. | ||||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2845 | ** $QT_END_LICENSE$ | ||
** | ||||
******************************************************************************/ | ||||
Tero Ahola
|
r1872 | |||
#ifndef DECLARATIVECATEGORYAXIS_H | ||||
#define DECLARATIVECATEGORYAXIS_H | ||||
Titta Heikkala
|
r2714 | #include <QtCharts/QCategoryAxis> | ||
Miikka Heikkinen
|
r2488 | |||
#include <QtQml/QQmlListProperty> | ||||
#include <QtQml/QQmlParserStatus> | ||||
Tero Ahola
|
r1872 | |||
Titta Heikkala
|
r2712 | QT_CHARTS_BEGIN_NAMESPACE | ||
Tero Ahola
|
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; | ||||
}; | ||||
Titta Heikkala
|
r2712 | class DeclarativeCategoryAxis : public QCategoryAxis, public QQmlParserStatus | ||
Tero Ahola
|
r1872 | { | ||
Q_OBJECT | ||||
Miikka Heikkinen
|
r2488 | Q_INTERFACES(QQmlParserStatus) | ||
Q_PROPERTY(QQmlListProperty<QObject> axisChildren READ axisChildren) | ||||
Tero Ahola
|
r1872 | Q_CLASSINFO("DefaultProperty", "axisChildren") | ||
Titta Heikkala
|
r2780 | Q_PROPERTY(AxisLabelsPosition labelsPosition READ labelsPosition WRITE setLabelsPosition NOTIFY labelsPositionChanged REVISION 1) | ||
Q_ENUMS(AxisLabelsPosition) | ||||
Tero Ahola
|
r1872 | |||
public: | ||||
Titta Heikkala
|
r2780 | // duplicating enums from QChart to make the QML api namings 1-to-1 with the C++ api | ||
enum AxisLabelsPosition { | ||||
AxisLabelsPositionCenter = 0x0, | ||||
AxisLabelsPositionOnValue = 0x1 | ||||
}; | ||||
Tero Ahola
|
r1872 | explicit DeclarativeCategoryAxis(QObject *parent = 0); | ||
Titta Heikkala
|
r2712 | QQmlListProperty<QObject> axisChildren(); | ||
Tero Ahola
|
r1872 | |||
Titta Heikkala
|
r2780 | |||
Tero Ahola
|
r1872 | public: // from QDeclarativeParserStatus | ||
void classBegin(); | ||||
void componentComplete(); | ||||
Titta Heikkala
|
r2780 | public: | ||
AxisLabelsPosition labelsPosition() const; | ||||
void setLabelsPosition(AxisLabelsPosition position); | ||||
Q_SIGNALS: | ||||
Q_REVISION(1) void labelsPositionChanged(AxisLabelsPosition position); | ||||
Tero Ahola
|
r1872 | public Q_SLOTS: | ||
Q_INVOKABLE void append(const QString &label, qreal categoryEndValue); | ||||
Q_INVOKABLE void remove(const QString &label); | ||||
Jani Honkonen
|
r2101 | Q_INVOKABLE void replace(const QString &oldLabel, const QString &newLabel); | ||
Titta Heikkala
|
r2712 | static void appendAxisChildren(QQmlListProperty<QObject> *list, QObject *element); | ||
Tero Ahola
|
r2080 | |||
private: | ||||
static bool endValueLessThan(const QPair<QString, qreal> &value1, const QPair<QString, qreal> &value2); | ||||
Titta Heikkala
|
r2780 | |||
private: | ||||
AxisLabelsPosition m_labelsPosition; | ||||
Tero Ahola
|
r1872 | }; | ||
Titta Heikkala
|
r2712 | QT_CHARTS_END_NAMESPACE | ||
Tero Ahola
|
r1872 | |||
#endif // DECLARATIVECATEGORYAXIS_H | ||||