qchart.h
203 lines
| 6.9 KiB
| text/x-c
|
CLexer
Miikka Heikkinen
|
r2854 | /**************************************************************************** | ||
Michal Klocek
|
r742 | ** | ||
Miikka Heikkinen
|
r2854 | ** Copyright (C) 2016 The Qt Company Ltd. | ||
** Contact: https://www.qt.io/licensing/ | ||||
Michal Klocek
|
r742 | ** | ||
Miikka Heikkinen
|
r2854 | ** This file is part of the Qt Charts module of the Qt Toolkit. | ||
Michal Klocek
|
r742 | ** | ||
Miikka Heikkinen
|
r2854 | ** $QT_BEGIN_LICENSE:GPL$ | ||
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 | ||||
Miikka Heikkinen
|
r2854 | ** 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. | ||||
Michal Klocek
|
r742 | ** | ||
Titta Heikkala
|
r2845 | ** $QT_END_LICENSE$ | ||
** | ||||
Miikka Heikkinen
|
r2854 | ****************************************************************************/ | ||
Michal Klocek
|
r742 | |||
Tero Ahola
|
r264 | #ifndef QCHART_H | ||
#define QCHART_H | ||||
Michal Klocek
|
r12 | |||
Titta Heikkala
|
r2712 | #include <QtCharts/QAbstractSeries> | ||
#include <QtCharts/QLegend> | ||||
Titta Heikkala
|
r2714 | #include <QtWidgets/QGraphicsWidget> | ||
#include <QtCore/QMargins> | ||||
Michal Klocek
|
r12 | |||
Christian Kandeler
|
r2774 | QT_BEGIN_NAMESPACE | ||
Michal Klocek
|
r115 | class QGraphicsSceneResizeEvent; | ||
Christian Kandeler
|
r2774 | QT_END_NAMESPACE | ||
Michal Klocek
|
r115 | |||
Titta Heikkala
|
r2712 | QT_CHARTS_BEGIN_NAMESPACE | ||
Michal Klocek
|
r12 | |||
Tero Ahola
|
r988 | class QAbstractSeries; | ||
Michal Klocek
|
r1541 | class QAbstractAxis; | ||
sauimone
|
r524 | class QLegend; | ||
Jani Honkonen
|
r2277 | class QChartPrivate; | ||
Mika Salmela
|
r2548 | class QBoxPlotSeries; | ||
Michal Klocek
|
r21 | |||
Titta Heikkala
|
r2712 | class QT_CHARTS_EXPORT QChart : public QGraphicsWidget | ||
Tero Ahola
|
r38 | { | ||
Tero Ahola
|
r48 | Q_OBJECT | ||
Tero Ahola
|
r1524 | Q_PROPERTY(QChart::ChartTheme theme READ theme WRITE setTheme) | ||
Q_PROPERTY(QString title READ title WRITE setTitle) | ||||
Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible) | ||||
Q_PROPERTY(bool dropShadowEnabled READ isDropShadowEnabled WRITE setDropShadowEnabled) | ||||
Miikka Heikkinen
|
r2549 | Q_PROPERTY(qreal backgroundRoundness READ backgroundRoundness WRITE setBackgroundRoundness) | ||
Tero Ahola
|
r1524 | Q_PROPERTY(QChart::AnimationOptions animationOptions READ animationOptions WRITE setAnimationOptions) | ||
Titta Heikkala
|
r2804 | Q_PROPERTY(int animationDuration READ animationDuration WRITE setAnimationDuration) | ||
Q_PROPERTY(QEasingCurve animationEasingCurve READ animationEasingCurve WRITE setAnimationEasingCurve) | ||||
Michal Klocek
|
r1965 | Q_PROPERTY(QMargins margins READ margins WRITE setMargins) | ||
Miikka Heikkinen
|
r2483 | Q_PROPERTY(QChart::ChartType chartType READ chartType) | ||
Miikka Heikkinen
|
r2498 | Q_PROPERTY(bool plotAreaBackgroundVisible READ isPlotAreaBackgroundVisible WRITE setPlotAreaBackgroundVisible) | ||
Miikka Heikkinen
|
r2707 | Q_PROPERTY(bool localizeNumbers READ localizeNumbers WRITE setLocalizeNumbers) | ||
Miikka Heikkinen
|
r2708 | Q_PROPERTY(QLocale locale READ locale WRITE setLocale) | ||
Miikka Heikkinen
|
r2716 | Q_PROPERTY(QRectF plotArea READ plotArea NOTIFY plotAreaChanged) | ||
Tero Ahola
|
r836 | Q_ENUMS(ChartTheme) | ||
Tero Ahola
|
r1094 | Q_ENUMS(AnimationOption) | ||
Miikka Heikkinen
|
r2483 | Q_ENUMS(ChartType) | ||
Tero Ahola
|
r836 | |||
Tero Ahola
|
r64 | public: | ||
Miikka Heikkinen
|
r2483 | enum ChartType { | ||
ChartTypeUndefined = 0, | ||||
ChartTypeCartesian, | ||||
ChartTypePolar | ||||
}; | ||||
Michal Klocek
|
r298 | enum ChartTheme { | ||
Tero Ahola
|
r853 | ChartThemeLight = 0, | ||
Tero Ahola
|
r651 | ChartThemeBlueCerulean, | ||
ChartThemeDark, | ||||
ChartThemeBrownSand, | ||||
ChartThemeBlueNcs, | ||||
Tero Ahola
|
r757 | ChartThemeHighContrast, | ||
Titta Heikkala
|
r2625 | ChartThemeBlueIcy, | ||
ChartThemeQt | ||||
Tero Ahola
|
r64 | }; | ||
Michal Klocek
|
r742 | enum AnimationOption { | ||
Michal Klocek
|
r298 | NoAnimation = 0x0, | ||
GridAxisAnimations = 0x1, | ||||
Jani Honkonen
|
r2097 | SeriesAnimations = 0x2, | ||
Michal Klocek
|
r298 | AllAnimations = 0x3 | ||
Michal Klocek
|
r742 | }; | ||
Q_DECLARE_FLAGS(AnimationOptions, AnimationOption) | ||||
Michal Klocek
|
r298 | |||
Michal Klocek
|
r12 | public: | ||
Michal Klocek
|
r746 | explicit QChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); | ||
Tero Ahola
|
r48 | ~QChart(); | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r1541 | void addSeries(QAbstractSeries *series); | ||
Tero Ahola
|
r988 | void removeSeries(QAbstractSeries *series); | ||
Michal Klocek
|
r740 | void removeAllSeries(); | ||
Jani Honkonen
|
r2104 | QList<QAbstractSeries *> series() const; | ||
Michal Klocek
|
r12 | |||
Tero Ahola
|
r2360 | // *** deprecated *** | ||
Jani Honkonen
|
r2104 | void setAxisX(QAbstractAxis *axis, QAbstractSeries *series = 0); | ||
void setAxisY(QAbstractAxis *axis, QAbstractSeries *series = 0); | ||||
QAbstractAxis *axisX(QAbstractSeries *series = 0) const; | ||||
QAbstractAxis *axisY(QAbstractSeries *series = 0) const; | ||||
Tero Ahola
|
r2360 | // ****************** | ||
Michal Klocek
|
r2273 | |||
Miikka Heikkinen
|
r2483 | void addAxis(QAbstractAxis *axis, Qt::Alignment alignment); | ||
Michal Klocek
|
r2273 | void removeAxis(QAbstractAxis *axis); | ||
QList<QAbstractAxis*> axes(Qt::Orientations orientation = Qt::Horizontal|Qt::Vertical, QAbstractSeries *series = 0) const; | ||||
Michal Klocek
|
r1542 | |||
Michal Klocek
|
r1577 | void createDefaultAxes(); | ||
Michal Klocek
|
r740 | void setTheme(QChart::ChartTheme theme); | ||
QChart::ChartTheme theme() const; | ||||
Michal Klocek
|
r28 | |||
Jani Honkonen
|
r2104 | void setTitle(const QString &title); | ||
Michal Klocek
|
r645 | QString title() const; | ||
Jani Honkonen
|
r2104 | void setTitleFont(const QFont &font); | ||
Michal Klocek
|
r645 | QFont titleFont() const; | ||
void setTitleBrush(const QBrush &brush); | ||||
QBrush titleBrush() const; | ||||
Michal Klocek
|
r874 | |||
sauimone
|
r783 | void setBackgroundBrush(const QBrush &brush); | ||
Michal Klocek
|
r645 | QBrush backgroundBrush() const; | ||
sauimone
|
r783 | void setBackgroundPen(const QPen &pen); | ||
Michal Klocek
|
r645 | QPen backgroundPen() const; | ||
Tero Ahola
|
r987 | void setBackgroundVisible(bool visible = true); | ||
Michal Klocek
|
r645 | bool isBackgroundVisible() const; | ||
Michal Klocek
|
r122 | |||
Tero Ahola
|
r1462 | void setDropShadowEnabled(bool enabled = true); | ||
bool isDropShadowEnabled() const; | ||||
Miikka Heikkinen
|
r2549 | void setBackgroundRoundness(qreal diameter); | ||
qreal backgroundRoundness() const; | ||||
Titta Heikkala
|
r2804 | |||
Michal Klocek
|
r298 | void setAnimationOptions(AnimationOptions options); | ||
AnimationOptions animationOptions() const; | ||||
Titta Heikkala
|
r2804 | void setAnimationDuration(int msecs); | ||
int animationDuration() const; | ||||
void setAnimationEasingCurve(const QEasingCurve &curve); | ||||
QEasingCurve animationEasingCurve() const; | ||||
Michal Klocek
|
r298 | |||
Michal Klocek
|
r67 | void zoomIn(); | ||
void zoomOut(); | ||||
Michal Klocek
|
r2273 | |||
void zoomIn(const QRectF &rect); | ||||
Jani Honkonen
|
r1187 | void zoom(qreal factor); | ||
Miikka Heikkinen
|
r2545 | void zoomReset(); | ||
bool isZoomed(); | ||||
Michal Klocek
|
r2273 | |||
Michal Klocek
|
r1553 | void scroll(qreal dx, qreal dy); | ||
Michal Klocek
|
r67 | |||
Jani Honkonen
|
r2104 | QLegend *legend() const; | ||
Michal Klocek
|
r1534 | |||
Jani Honkonen
|
r2104 | void setMargins(const QMargins &margins); | ||
Michal Klocek
|
r1965 | QMargins margins() const; | ||
Michal Klocek
|
r1883 | |||
Michal Klocek
|
r1648 | QRectF plotArea() const; | ||
Miikka Heikkinen
|
r2498 | void setPlotAreaBackgroundBrush(const QBrush &brush); | ||
QBrush plotAreaBackgroundBrush() const; | ||||
void setPlotAreaBackgroundPen(const QPen &pen); | ||||
QPen plotAreaBackgroundPen() const; | ||||
void setPlotAreaBackgroundVisible(bool visible = true); | ||||
bool isPlotAreaBackgroundVisible() const; | ||||
Miikka Heikkinen
|
r2707 | void setLocalizeNumbers(bool localize); | ||
bool localizeNumbers() const; | ||||
Miikka Heikkinen
|
r2708 | void setLocale(const QLocale &locale); | ||
QLocale locale() const; | ||||
sauimone
|
r803 | |||
Marek Rosa
|
r2344 | QPointF mapToValue(const QPointF &position, QAbstractSeries *series = 0); | ||
QPointF mapToPosition(const QPointF &value, QAbstractSeries *series = 0); | ||||
Miikka Heikkinen
|
r2483 | ChartType chartType() const; | ||
Miikka Heikkinen
|
r2793 | Q_SIGNALS: | ||
Miikka Heikkinen
|
r2716 | void plotAreaChanged(const QRectF &plotArea); | ||
Michal Klocek
|
r740 | protected: | ||
Miikka Heikkinen
|
r2483 | explicit QChart(QChart::ChartType type, QGraphicsItem *parent, Qt::WindowFlags wFlags); | ||
Michal Klocek
|
r740 | QScopedPointer<QChartPrivate> d_ptr; | ||
Michal Klocek
|
r790 | friend class QLegend; | ||
Tero Ahola
|
r2068 | friend class DeclarativeChart; | ||
Michal Klocek
|
r2273 | friend class ChartDataSet; | ||
friend class ChartPresenter; | ||||
friend class ChartThemeManager; | ||||
friend class QAbstractSeries; | ||||
Mika Salmela
|
r2548 | friend class QBoxPlotSeriesPrivate; | ||
Miikka Heikkinen
|
r2723 | |||
private: | ||||
Tero Ahola
|
r760 | Q_DISABLE_COPY(QChart) | ||
Michal Klocek
|
r12 | }; | ||
Titta Heikkala
|
r2712 | QT_CHARTS_END_NAMESPACE | ||
Michal Klocek
|
r12 | |||
Titta Heikkala
|
r2712 | Q_DECLARE_OPERATORS_FOR_FLAGS(QT_CHARTS_NAMESPACE::QChart::AnimationOptions) | ||
Michal Klocek
|
r298 | |||
Jani Honkonen
|
r2046 | #endif // QCHART_H | ||