#ifndef QSCATTERSERIES_H #define QSCATTERSERIES_H #include "qchartseries.h" #include #include QTCOMMERCIALCHART_BEGIN_NAMESPACE class QScatterSeriesPrivate; class QTCOMMERCIALCHART_EXPORT QScatterSeries : public QChartSeries { Q_OBJECT public: enum MarkerShape { // TODO: to be defined by the graphics design // TODO: marker shapes: "x", star, rectangle, tilted rect, triangle, circle, dot MarkerShapeDefault = 0, MarkerShapePoint, MarkerShapeX, MarkerShapeRectangle, MarkerShapeTiltedRectangle, MarkerShapeTriangle, MarkerShapeCircle }; public: QScatterSeries(QObject *parent = 0); ~QScatterSeries(); public: // from QChartSeries QChartSeriesType type() const { return QChartSeries::SeriesTypeScatter; } public: void addData(QPointF value); void addData(QList points); void setData(QList points); QScatterSeries& operator << (const QPointF &value); QScatterSeries& operator << (QList points); QList data(); //TODO: insertData? QPen markerPen(); QBrush markerBrush(); MarkerShape markerShape(); // TODO: marker size? public Q_SLOTS: void setMarkerPen(QPen pen); void setMarkerBrush(QBrush brush); void setMarkerShape(MarkerShape shape); Q_SIGNALS: void clicked(/* TODO: parameters? */); void hoverEnter(/* TODO: parameters? */); void hoverLeave(/* TODO: parameters? */); // TODO: move to PIMPL for simplicity or does the user ever need changed signals? // TODO: more finegrained signaling for performance reasons // (check QPieSeries implementation with change sets) void changed(); private: Q_DECLARE_PRIVATE(QScatterSeries) Q_DISABLE_COPY(QScatterSeries) QScatterSeriesPrivate *const d; }; QTCOMMERCIALCHART_END_NAMESPACE #endif // QSCATTERSERIES_H