00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_THERMO_H
00011 #define QWT_THERMO_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_abstract_scale.h"
00015 #include "qwt_interval.h"
00016 #include <qwidget.h>
00017
00018 class QwtScaleDraw;
00019 class QwtColorMap;
00020
00083 class QWT_EXPORT QwtThermo: public QWidget, public QwtAbstractScale
00084 {
00085 Q_OBJECT
00086
00087 Q_ENUMS( ScalePos )
00088
00089 Q_PROPERTY( bool alarmEnabled READ alarmEnabled WRITE setAlarmEnabled )
00090 Q_PROPERTY( double alarmLevel READ alarmLevel WRITE setAlarmLevel )
00091 Q_PROPERTY( ScalePos scalePosition READ scalePosition
00092 WRITE setScalePosition )
00093 Q_PROPERTY( int spacing READ spacing WRITE setSpacing )
00094 Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
00095 Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue )
00096 Q_PROPERTY( double minValue READ minValue WRITE setMinValue )
00097 Q_PROPERTY( int pipeWidth READ pipeWidth WRITE setPipeWidth )
00098 Q_PROPERTY( double value READ value WRITE setValue )
00099
00100 public:
00110 enum ScalePos
00111 {
00113 NoScale,
00114
00116 LeftScale,
00117
00119 RightScale,
00120
00122 TopScale,
00123
00125 BottomScale
00126 };
00127
00128 explicit QwtThermo( QWidget *parent = NULL );
00129 virtual ~QwtThermo();
00130
00131 void setOrientation( Qt::Orientation, ScalePos );
00132
00133 void setScalePosition( ScalePos s );
00134 ScalePos scalePosition() const;
00135
00136 void setSpacing( int );
00137 int spacing() const;
00138
00139 void setBorderWidth( int w );
00140 int borderWidth() const;
00141
00142 void setFillBrush( const QBrush &b );
00143 const QBrush &fillBrush() const;
00144
00145 void setAlarmBrush( const QBrush &b );
00146 const QBrush &alarmBrush() const;
00147
00148 void setAlarmLevel( double v );
00149 double alarmLevel() const;
00150
00151 void setAlarmEnabled( bool tf );
00152 bool alarmEnabled() const;
00153
00154 void setColorMap( QwtColorMap * );
00155 QwtColorMap *colorMap();
00156 const QwtColorMap *colorMap() const;
00157
00158 void setPipeWidth( int w );
00159 int pipeWidth() const;
00160
00161 void setRangeFlags( QwtInterval::BorderFlags );
00162 QwtInterval::BorderFlags rangeFlags() const;
00163
00164 void setMaxValue( double v );
00165 double maxValue() const;
00166
00167 void setMinValue( double v );
00168 double minValue() const;
00169
00170 double value() const;
00171
00172 void setRange( double vmin, double vmax, bool lg = false );
00173
00174 virtual QSize sizeHint() const;
00175 virtual QSize minimumSizeHint() const;
00176
00177 void setScaleDraw( QwtScaleDraw * );
00178 const QwtScaleDraw *scaleDraw() const;
00179
00180 public Q_SLOTS:
00181 virtual void setValue( double val );
00182
00183 protected:
00184 virtual void drawLiquid( QPainter *, const QRect & ) const;
00185 virtual void scaleChange();
00186
00187 virtual void paintEvent( QPaintEvent * );
00188 virtual void resizeEvent( QResizeEvent * );
00189 virtual void changeEvent( QEvent * );
00190
00191 QwtScaleDraw *scaleDraw();
00192
00193 QRect pipeRect() const;
00194
00195 private:
00196 void layoutThermo( bool );
00197
00198 class PrivateData;
00199 PrivateData *d_data;
00200 };
00201
00202 #endif