Qwt User's Guide  6.1.0
 All Classes Functions Variables Typedefs Enumerations Enumerator Pages
qwt_plot_intervalcurve.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PLOT_INTERVAL_CURVE_H
11 #define QWT_PLOT_INTERVAL_CURVE_H
12 
13 #include "qwt_global.h"
14 #include "qwt_plot_seriesitem.h"
15 #include "qwt_series_data.h"
16 
17 class QwtIntervalSymbol;
18 
27 class QWT_EXPORT QwtPlotIntervalCurve:
28  public QwtPlotSeriesItem, public QwtSeriesStore<QwtIntervalSample>
29 {
30 public:
38  {
43 
50 
56  UserCurve = 100
57  };
58 
64  {
70  ClipPolygons = 0x01,
71 
73  ClipSymbol = 0x02
74  };
75 
77  typedef QFlags<PaintAttribute> PaintAttributes;
78 
79  explicit QwtPlotIntervalCurve( const QString &title = QString::null );
80  explicit QwtPlotIntervalCurve( const QwtText &title );
81 
82  virtual ~QwtPlotIntervalCurve();
83 
84  virtual int rtti() const;
85 
86  void setPaintAttribute( PaintAttribute, bool on = true );
87  bool testPaintAttribute( PaintAttribute ) const;
88 
89  void setSamples( const QVector<QwtIntervalSample> & );
90  void setSamples( QwtSeriesData<QwtIntervalSample> * );
91 
92  void setPen( const QColor &, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine );
93  void setPen( const QPen & );
94  const QPen &pen() const;
95 
96  void setBrush( const QBrush & );
97  const QBrush &brush() const;
98 
99  void setStyle( CurveStyle style );
100  CurveStyle style() const;
101 
102  void setSymbol( const QwtIntervalSymbol * );
103  const QwtIntervalSymbol *symbol() const;
104 
105  virtual void drawSeries( QPainter *p,
106  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
107  const QRectF &canvasRect, int from, int to ) const;
108 
109  virtual QRectF boundingRect() const;
110 
111  virtual QwtGraphic legendIcon( int index, const QSizeF & ) const;
112 
113 protected:
114 
115  void init();
116 
117  virtual void drawTube( QPainter *,
118  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
119  const QRectF &canvasRect, int from, int to ) const;
120 
121  virtual void drawSymbols( QPainter *, const QwtIntervalSymbol &,
122  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
123  const QRectF &canvasRect, int from, int to ) const;
124 
125 private:
126  class PrivateData;
127  PrivateData *d_data;
128 };
129 
130 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotIntervalCurve::PaintAttributes )
131 
132 #endif