#ifndef AREACHARTITEM_H #define AREACHARTITEM_H #include "qchartglobal.h" #include "linechartitem_p.h" #include QTCOMMERCIALCHART_BEGIN_NAMESPACE class QAreaSeries; class AreaChartItem; class AreaChartItem : public ChartItem { Q_OBJECT public: AreaChartItem(QAreaSeries* areaSeries, ChartPresenter *presenter); ~ AreaChartItem(); //from QGraphicsItem QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QPainterPath shape() const; LineChartItem* upperLineItem() const { return m_upper ;} LineChartItem* lowerLineItem() const { return m_lower ;} void updatePath(); protected: void mousePressEvent( QGraphicsSceneMouseEvent * event ); signals: void clicked(const QPointF& point); public slots: void handleUpdated(); void handleDomainChanged(qreal minX, qreal maxX, qreal minY, qreal maxY); void handleGeometryChanged(const QRectF& size); private: QAreaSeries* m_series; LineChartItem* m_upper; LineChartItem* m_lower; QPainterPath m_path; QRectF m_rect; QRectF m_clipRect; QPen m_linePen; QPen m_pointPen; QBrush m_brush; bool m_pointsVisible; }; class AreaBoundItem : public LineChartItem { public: AreaBoundItem(AreaChartItem* item,QLineSeries* lineSeries):LineChartItem(lineSeries,0), m_item(item){ }; ~AreaBoundItem(){}; void setLayout(QVector& points){ LineChartItem::setLayout(points); m_item->updatePath(); } private: AreaChartItem* m_item; }; QTCOMMERCIALCHART_END_NAMESPACE #endif