qchart.h
90 lines
| 2.2 KiB
| text/x-c
|
CLexer
/ src / qchart.h
Michal Klocek
|
r12 | #ifndef CHART_H | ||
#define CHART_H | ||||
Tero Ahola
|
r30 | #include <qchartglobal.h> | ||
Tero Ahola
|
r42 | #include <qchartseries.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
|
r21 | class QChartSeries; | ||
Michal Klocek
|
r67 | class PlotDomain; | ||
sauimone
|
r56 | class BarGroup; | ||
Michal Klocek
|
r72 | class QChartAxis; | ||
Tero Ahola
|
r103 | class ChartTheme; | ||
Tero Ahola
|
r108 | class ChartItem; | ||
Michal Klocek
|
r131 | class ChartDataSet; | ||
class ChartPresenter; | ||||
Michal Klocek
|
r21 | |||
Tero Ahola
|
r42 | // TODO: We don't need to have QChart tied to QGraphicsItem: | ||
//class QTCOMMERCIALCHART_EXPORT QChart | ||||
//class QTCOMMERCIALCHART_EXPORT QChartGraphicsItem : public QGraphicsItem { | ||||
// public: QChartGraphicsItem(QChart &chart); | ||||
/*! | ||||
* TODO: define the responsibilities | ||||
*/ | ||||
Michal Klocek
|
r115 | class QTCOMMERCIALCHART_EXPORT QChart : public QGraphicsWidget | ||
Tero Ahola
|
r38 | { | ||
Tero Ahola
|
r48 | Q_OBJECT | ||
Tero Ahola
|
r64 | public: | ||
Michal Klocek
|
r153 | enum ChartTheme { | ||
Tero Ahola
|
r81 | /*! The default theme follows the GUI style of the Operating System */ | ||
Tero Ahola
|
r103 | ChartThemeDefault, | ||
Tero Ahola
|
r81 | ChartThemeVanilla, | ||
Tero Ahola
|
r64 | ChartThemeIcy, | ||
Tero Ahola
|
r77 | ChartThemeGrayscale, | ||
Tero Ahola
|
r125 | ChartThemeScientific, | ||
Michal Klocek
|
r143 | //ChartThemeUnnamed1 | ||
Tero Ahola
|
r64 | }; | ||
Michal Klocek
|
r12 | public: | ||
Michal Klocek
|
r115 | QChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); | ||
Tero Ahola
|
r48 | ~QChart(); | ||
Michal Klocek
|
r12 | |||
Michal Klocek
|
r21 | void addSeries(QChartSeries* series); | ||
Michal Klocek
|
r131 | |||
Tero Ahola
|
r42 | //TODO: QChartSeries* createSeries(QSeriesData *data, QChartSeries::QChartSeriesType type); | ||
// TODO: who owns the series now? maybe owned by chart and returned a reference instead... | ||||
Tero Ahola
|
r61 | QChartSeries* createSeries(QChartSeries::QChartSeriesType type); | ||
Michal Klocek
|
r12 | |||
void setMargin(int margin); | ||||
Michal Klocek
|
r28 | int margin() const; | ||
Michal Klocek
|
r153 | void setChartTheme(QChart::ChartTheme theme); | ||
QChart::ChartTheme chartTheme() const; | ||||
Michal Klocek
|
r28 | |||
Michal Klocek
|
r87 | void setTitle(const QString& title,const QFont& font = QFont()); | ||
Michal Klocek
|
r122 | void setChartBackgroundBrush(const QBrush& brush); | ||
void setChartBackgroundPen(const QPen& pen); | ||||
Michal Klocek
|
r115 | void zoomInToRect(const QRectF& rectangle); | ||
Michal Klocek
|
r67 | void zoomIn(); | ||
void zoomOut(); | ||||
Tero Ahola
|
r93 | void zoomReset(); | ||
Michal Klocek
|
r67 | |||
Michal Klocek
|
r153 | void setAxisX(QChartAxis* axis); | ||
void addAxisY(QChartAxis* axis); | ||||
Michal Klocek
|
r72 | |||
Michal Klocek
|
r115 | protected: | ||
void resizeEvent(QGraphicsSceneResizeEvent *event); | ||||
Michal Klocek
|
r85 | private: | ||
void setAxis(AxisItem *item, const QChartAxis& axis); | ||||
Michal Klocek
|
r72 | |||
Michal Klocek
|
r12 | private: | ||
Michal Klocek
|
r28 | Q_DISABLE_COPY(QChart) | ||
Michal Klocek
|
r87 | QGraphicsRectItem* m_backgroundItem; | ||
QGraphicsTextItem* m_titleItem; | ||||
Michal Klocek
|
r115 | QRectF m_rect; | ||
Michal Klocek
|
r131 | ChartDataSet *m_dataset; | ||
ChartPresenter *m_presenter; | ||||
Michal Klocek
|
r12 | }; | ||
Tero Ahola
|
r30 | QTCOMMERCIALCHART_END_NAMESPACE | ||
Michal Klocek
|
r12 | |||
#endif | ||||