qchart.h
117 lines
| 2.8 KiB
| text/x-c
|
CLexer
/ src / qchart.h
Tero Ahola
|
r264 | #ifndef QCHART_H | ||
#define QCHART_H | ||||
Michal Klocek
|
r12 | |||
Tero Ahola
|
r30 | #include <qchartglobal.h> | ||
Michal Klocek
|
r360 | #include <qseries.h> | ||
Michal Klocek
|
r115 | #include <QGraphicsWidget> | ||
Michal Klocek
|
r69 | #include <QLinearGradient> | ||
Michal Klocek
|
r87 | #include <QFont> | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r115 | class QGraphicsSceneResizeEvent; | ||
Tero Ahola
|
r30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r67 | class AxisItem; | ||
Michal Klocek
|
r360 | class QSeries; | ||
Michal Klocek
|
r67 | class PlotDomain; | ||
sauimone
|
r216 | class BarPresenter; | ||
Michal Klocek
|
r72 | class QChartAxis; | ||
Tero Ahola
|
r103 | class ChartTheme; | ||
Tero Ahola
|
r108 | class ChartItem; | ||
Michal Klocek
|
r131 | class ChartDataSet; | ||
class ChartPresenter; | ||||
sauimone
|
r524 | class QLegend; | ||
Michal Klocek
|
r639 | class ChartBackground; | ||
Michal Klocek
|
r21 | |||
Michal Klocek
|
r115 | class QTCOMMERCIALCHART_EXPORT QChart : public QGraphicsWidget | ||
Tero Ahola
|
r38 | { | ||
Tero Ahola
|
r48 | Q_OBJECT | ||
Tero Ahola
|
r64 | public: | ||
Michal Klocek
|
r298 | enum ChartTheme { | ||
Tero Ahola
|
r103 | ChartThemeDefault, | ||
Tero Ahola
|
r81 | ChartThemeVanilla, | ||
Tero Ahola
|
r64 | ChartThemeIcy, | ||
Tero Ahola
|
r77 | ChartThemeGrayscale, | ||
Tero Ahola
|
r581 | ChartThemeScientific, | ||
ChartThemeBlueCerulean, | ||||
Tero Ahola
|
r584 | ChartThemeLight, | ||
Tero Ahola
|
r581 | ChartThemeCount | ||
Tero Ahola
|
r64 | }; | ||
Michal Klocek
|
r298 | enum AnimationOption { | ||
NoAnimation = 0x0, | ||||
GridAxisAnimations = 0x1, | ||||
SeriesAnimations =0x2, | ||||
AllAnimations = 0x3 | ||||
}; | ||||
Q_DECLARE_FLAGS(AnimationOptions, AnimationOption) | ||||
Michal Klocek
|
r12 | public: | ||
Michal Klocek
|
r115 | QChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); | ||
Tero Ahola
|
r48 | ~QChart(); | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r360 | void addSeries(QSeries* series, QChartAxis* axisY = 0); | ||
void removeSeries(QSeries* series); //returns ownership , deletes axis if no series attached | ||||
Michal Klocek
|
r258 | void removeAllSeries(); // deletes series and axis | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r153 | void setChartTheme(QChart::ChartTheme theme); | ||
QChart::ChartTheme chartTheme() const; | ||||
Michal Klocek
|
r28 | |||
Michal Klocek
|
r192 | void setChartTitle(const QString& title); | ||
Michal Klocek
|
r476 | QString chartTitle() const; | ||
Michal Klocek
|
r192 | void setChartTitleFont(const QFont& font); | ||
Tero Ahola
|
r495 | void setChartTitleBrush(const QBrush &brush); | ||
QBrush chartTitleBrush(); | ||||
Michal Klocek
|
r122 | void setChartBackgroundBrush(const QBrush& brush); | ||
void setChartBackgroundPen(const QPen& pen); | ||||
Michal Klocek
|
r298 | void setAnimationOptions(AnimationOptions options); | ||
AnimationOptions animationOptions() const; | ||||
Michal Klocek
|
r67 | void zoomIn(); | ||
Michal Klocek
|
r223 | void zoomIn(const QRectF& rect); | ||
Michal Klocek
|
r67 | void zoomOut(); | ||
Tero Ahola
|
r93 | void zoomReset(); | ||
Michal Klocek
|
r600 | void scrollLeft(); | ||
void scrollRight(); | ||||
void scrollUp(); | ||||
void scrollDown(); | ||||
Michal Klocek
|
r67 | |||
Michal Klocek
|
r223 | QChartAxis* axisX() const; | ||
QChartAxis* axisY() const; | ||||
Michal Klocek
|
r72 | |||
sauimone
|
r616 | // TODO: take (and give) legend instead of this. | ||
sauimone
|
r540 | QLegend* legend(); | ||
sauimone
|
r524 | |||
Michal Klocek
|
r639 | |||
int padding() const; | ||||
Michal Klocek
|
r115 | protected: | ||
void resizeEvent(QGraphicsSceneResizeEvent *event); | ||||
Michal Klocek
|
r223 | private: | ||
inline void createChartBackgroundItem(); | ||||
inline void createChartTitleItem(); | ||||
Michal Klocek
|
r639 | void setPadding(int padding); | ||
void setBackgroundPadding(int padding); | ||||
void setBackgroundDiameter(int diameter); | ||||
Michal Klocek
|
r571 | void updateLayout(); | ||
Michal Klocek
|
r223 | |||
Michal Klocek
|
r12 | private: | ||
Michal Klocek
|
r28 | Q_DISABLE_COPY(QChart) | ||
Michal Klocek
|
r639 | ChartBackground* m_backgroundItem; | ||
Michal Klocek
|
r476 | QGraphicsSimpleTextItem* m_titleItem; | ||
Michal Klocek
|
r115 | QRectF m_rect; | ||
Tero Ahola
|
r550 | QLegend* m_legend; | ||
Michal Klocek
|
r131 | ChartDataSet *m_dataset; | ||
ChartPresenter *m_presenter; | ||||
Michal Klocek
|
r639 | int m_padding; | ||
int m_backgroundPadding; | ||||
Michal Klocek
|
r12 | }; | ||
Tero Ahola
|
r30 | QTCOMMERCIALCHART_END_NAMESPACE | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r298 | Q_DECLARE_OPERATORS_FOR_FLAGS(QTCOMMERCIALCHART_NAMESPACE::QChart::AnimationOptions) | ||
Michal Klocek
|
r12 | #endif | ||