#ifndef CHART_H #define CHART_H #include #include #include QTCOMMERCIALCHART_BEGIN_NAMESPACE class Axis; class XYGrid; class QChartSeries; class XYPlotDomain; class XYLineChartItem; // 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 */ class QTCOMMERCIALCHART_EXPORT QChart : public QGraphicsObject { Q_OBJECT public: QChart(QGraphicsObject* parent = 0); ~QChart(); //from QGraphicsItem QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){}; void addSeries(QChartSeries* series); //TODO: QChartSeries* createSeries(QSeriesData *data, QChartSeries::QChartSeriesType type); // TODO: who owns the series now? maybe owned by chart and returned a reference instead... QChartSeries* createSeries(QList x, QList y, QChartSeries::QChartSeriesType type); virtual void setSize(const QSizeF& rect); void setMargin(int margin); int margin() const; signals: void sizeChanged(QRectF rect, qreal xscale, qreal yscale); private: Q_DISABLE_COPY(QChart) Axis* m_axisX; Axis* m_axisY; XYGrid* m_grid; QRect m_rect; QList m_series; QList m_plotDomainList; QList m_xyLineChartItems; QList m_items; int m_plotDataIndex; int m_marginSize; }; QTCOMMERCIALCHART_END_NAMESPACE #endif