Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_INTERVAL_CURVE_H
00011 #define QWT_PLOT_INTERVAL_CURVE_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_plot_seriesitem.h"
00015 #include "qwt_series_data.h"
00016
00017 class QwtIntervalSymbol;
00018
00027 class QWT_EXPORT QwtPlotIntervalCurve:
00028 public QwtPlotSeriesItem, public QwtSeriesStore<QwtIntervalSample>
00029 {
00030 public:
00037 enum CurveStyle
00038 {
00042 NoCurve,
00043
00049 Tube,
00050
00056 UserCurve = 100
00057 };
00058
00063 enum PaintAttribute
00064 {
00070 ClipPolygons = 0x01,
00071
00073 ClipSymbol = 0x02
00074 };
00075
00077 typedef QFlags<PaintAttribute> PaintAttributes;
00078
00079 explicit QwtPlotIntervalCurve( const QString &title = QString::null );
00080 explicit QwtPlotIntervalCurve( const QwtText &title );
00081
00082 virtual ~QwtPlotIntervalCurve();
00083
00084 virtual int rtti() const;
00085
00086 void setPaintAttribute( PaintAttribute, bool on = true );
00087 bool testPaintAttribute( PaintAttribute ) const;
00088
00089 void setSamples( const QVector<QwtIntervalSample> & );
00090 void setSamples( QwtSeriesData<QwtIntervalSample> * );
00091
00092 void setPen( const QColor &, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine );
00093 void setPen( const QPen & );
00094 const QPen &pen() const;
00095
00096 void setBrush( const QBrush & );
00097 const QBrush &brush() const;
00098
00099 void setStyle( CurveStyle style );
00100 CurveStyle style() const;
00101
00102 void setSymbol( const QwtIntervalSymbol * );
00103 const QwtIntervalSymbol *symbol() const;
00104
00105 virtual void drawSeries( QPainter *p,
00106 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00107 const QRectF &canvasRect, int from, int to ) const;
00108
00109 virtual QRectF boundingRect() const;
00110
00111 virtual QwtGraphic legendIcon( int index, const QSizeF & ) const;
00112
00113 protected:
00114
00115 void init();
00116
00117 virtual void drawTube( QPainter *,
00118 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00119 const QRectF &canvasRect, int from, int to ) const;
00120
00121 virtual void drawSymbols( QPainter *, const QwtIntervalSymbol &,
00122 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00123 const QRectF &canvasRect, int from, int to ) const;
00124
00125 private:
00126 class PrivateData;
00127 PrivateData *d_data;
00128 };
00129
00130 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotIntervalCurve::PaintAttributes )
00131
00132 #endif