00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_SPECTROGRAM_H
00011 #define QWT_PLOT_SPECTROGRAM_H
00012
00013 #include <qglobal.h>
00014
00015 #include "qwt_valuelist.h"
00016 #include "qwt_raster_data.h"
00017 #include "qwt_plot_rasteritem.h"
00018
00019 class QwtColorMap;
00020
00035 class QWT_EXPORT QwtPlotSpectrogram: public QwtPlotRasterItem
00036 {
00037 public:
00051 enum DisplayMode
00052 {
00053 ImageMode = 1,
00054 ContourMode = 2
00055 };
00056
00057 explicit QwtPlotSpectrogram(const QString &title = QString::null);
00058 virtual ~QwtPlotSpectrogram();
00059
00060 void setDisplayMode(DisplayMode, bool on = true);
00061 bool testDisplayMode(DisplayMode) const;
00062
00063 void setData(const QwtRasterData &data);
00064 const QwtRasterData &data() const;
00065
00066 void setColorMap(const QwtColorMap &);
00067 const QwtColorMap &colorMap() const;
00068
00069 virtual QwtDoubleRect boundingRect() const;
00070 virtual QSize rasterHint(const QwtDoubleRect &) const;
00071
00072 void setDefaultContourPen(const QPen &);
00073 QPen defaultContourPen() const;
00074
00075 virtual QPen contourPen(double level) const;
00076
00077 void setConrecAttribute(QwtRasterData::ConrecAttribute, bool on);
00078 bool testConrecAttribute(QwtRasterData::ConrecAttribute) const;
00079
00080 void setContourLevels(const QwtValueList &);
00081 QwtValueList contourLevels() const;
00082
00083 virtual int rtti() const;
00084
00085 virtual void draw(QPainter *p,
00086 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00087 const QRect &rect) const;
00088
00089 protected:
00090 virtual QImage renderImage(
00091 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00092 const QwtDoubleRect &rect) const;
00093
00094 virtual QSize contourRasterSize(
00095 const QwtDoubleRect &, const QRect &) const;
00096
00097 virtual QwtRasterData::ContourLines renderContourLines(
00098 const QwtDoubleRect &rect, const QSize &raster) const;
00099
00100 virtual void drawContourLines(QPainter *p,
00101 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00102 const QwtRasterData::ContourLines& lines) const;
00103
00104 private:
00105 class PrivateData;
00106 PrivateData *d_data;
00107 };
00108
00109 #endif