Qwt User's Guide
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 00008 *****************************************************************************/ 00009 00010 #ifndef QWT_PLOT_SPECTROGRAM_H 00011 #define QWT_PLOT_SPECTROGRAM_H 00012 00013 #include "qwt_global.h" 00014 #include "qwt_raster_data.h" 00015 #include "qwt_plot_rasteritem.h" 00016 #include <qlist.h> 00017 00018 class QwtColorMap; 00019 00038 class QWT_EXPORT QwtPlotSpectrogram: public QwtPlotRasterItem 00039 { 00040 public: 00046 enum DisplayMode 00047 { 00049 ImageMode = 0x01, 00050 00052 ContourMode = 0x02 00053 }; 00054 00056 typedef QFlags<DisplayMode> DisplayModes; 00057 00058 explicit QwtPlotSpectrogram( const QString &title = QString::null ); 00059 virtual ~QwtPlotSpectrogram(); 00060 00061 void setDisplayMode( DisplayMode, bool on = true ); 00062 bool testDisplayMode( DisplayMode ) const; 00063 00064 void setData( QwtRasterData *data ); 00065 const QwtRasterData *data() const; 00066 QwtRasterData *data(); 00067 00068 void setColorMap( QwtColorMap * ); 00069 const QwtColorMap *colorMap() const; 00070 00071 virtual QwtInterval interval(Qt::Axis) const; 00072 virtual QRectF pixelHint( const QRectF & ) const; 00073 00074 void setDefaultContourPen( const QColor &, 00075 qreal width = 0.0, Qt::PenStyle = Qt::SolidLine ); 00076 void setDefaultContourPen( const QPen & ); 00077 QPen defaultContourPen() const; 00078 00079 virtual QPen contourPen( double level ) const; 00080 00081 void setConrecFlag( QwtRasterData::ConrecFlag, bool on ); 00082 bool testConrecFlag( QwtRasterData::ConrecFlag ) const; 00083 00084 void setContourLevels( const QList<double> & ); 00085 QList<double> contourLevels() const; 00086 00087 virtual int rtti() const; 00088 00089 virtual void draw( QPainter *p, 00090 const QwtScaleMap &xMap, const QwtScaleMap &yMap, 00091 const QRectF &rect ) const; 00092 00093 protected: 00094 virtual QImage renderImage( 00095 const QwtScaleMap &xMap, const QwtScaleMap &yMap, 00096 const QRectF &area, const QSize &imageSize ) const; 00097 00098 virtual QSize contourRasterSize( 00099 const QRectF &, const QRect & ) const; 00100 00101 virtual QwtRasterData::ContourLines renderContourLines( 00102 const QRectF &rect, const QSize &raster ) const; 00103 00104 virtual void drawContourLines( QPainter *p, 00105 const QwtScaleMap &xMap, const QwtScaleMap &yMap, 00106 const QwtRasterData::ContourLines& lines ) const; 00107 00108 void renderTile( const QwtScaleMap &xMap, const QwtScaleMap &yMap, 00109 const QRect &imageRect, QImage *image ) const; 00110 00111 private: 00112 class PrivateData; 00113 PrivateData *d_data; 00114 }; 00115 00116 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotSpectrogram::DisplayModes ) 00117 00118 #endif