Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

qwt_thermo.h

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_THERMO_H
00011 #define QWT_THERMO_H
00012 
00013 #include <qwidget.h>
00014 #include <qcolor.h>
00015 #include <qfont.h>
00016 #include <qrect.h>
00017 #include "qwt_global.h"
00018 #include "qwt_dimap.h"
00019 #include "qwt_scldraw.h"
00020 #include "qwt_sclif.h"
00021 
00022 
00067 class QWT_EXPORT QwtThermo: public QWidget, public QwtScaleIf
00068 {
00069     Q_OBJECT
00070 
00071     Q_ENUMS( ScalePos )
00072 
00073     Q_PROPERTY( QBrush alarmBrush READ alarmBrush WRITE setAlarmBrush )
00074     Q_PROPERTY( QColor alarmColor READ alarmColor WRITE setAlarmColor )
00075     Q_PROPERTY( bool alarmEnabled READ alarmEnabled WRITE setAlarmEnabled )
00076     Q_PROPERTY( double alarmLevel READ alarmLevel WRITE setAlarmLevel )
00077     Q_PROPERTY( ScalePos scalePosition READ scalePosition
00078         WRITE setScalePosition )
00079     Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
00080     Q_PROPERTY( QBrush fillBrush READ fillBrush WRITE setFillBrush )
00081     Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
00082     Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue )
00083     Q_PROPERTY( double minValue READ minValue WRITE setMinValue )
00084     Q_PROPERTY( int pipeWidth READ pipeWidth WRITE setPipeWidth )
00085     Q_PROPERTY( double value READ value WRITE setValue )
00086 
00087 public:
00088     /*
00089       Scale position. QwtSlider tries to enforce valid combinations of its
00090       orientation and scale position:
00091       - Qt::Horizonal combines with None, Top and Bottom
00092       - Qt::Vertical combines with None, Left and Right
00093       
00094       \sa QwtThermo::setOrientation, QwtThermo::setScalePosition
00095     */
00096     enum ScalePos {None, Left, Right, Top, Bottom};
00097 
00098     QwtThermo(QWidget *parent = 0, const char *name = 0);
00099     virtual ~QwtThermo();
00100 
00101     void setOrientation(Qt::Orientation o, ScalePos s);
00102 
00103     void setScalePosition(ScalePos s);
00104     ScalePos scalePosition() const;
00105 
00106     void setBorderWidth(int w);
00107     int borderWidth() const;
00108 
00109     void setFillBrush(const QBrush &b);
00110     const QBrush &fillBrush() const;
00111 
00112     void setFillColor(const QColor &c);
00113     const QColor &fillColor() const;
00114  
00115     void setAlarmBrush(const QBrush &b);
00116     const QBrush &alarmBrush() const;
00117 
00118     void setAlarmColor(const QColor &c);
00119     const QColor &alarmColor() const;
00120 
00121     void setAlarmLevel(double v);
00122     double alarmLevel() const;
00123 
00124     void setAlarmEnabled(bool tf);
00125     bool alarmEnabled() const;
00126 
00127     void setPipeWidth(int w);
00128     int pipeWidth() const;
00129 
00131     void setMaxValue(double v) { setRange(d_minValue, v); }
00133     double maxValue() const { return d_maxValue; }
00134 
00136     void setMinValue(double v) { setRange(v, d_maxValue); }
00138     double minValue() const { return d_minValue; }
00139 
00141     double value() const { return d_value; }
00142 
00143     void setRange(double vmin, double vmax, bool lg = FALSE);
00144     void setMargin(int m);
00145 
00146     virtual QSize sizeHint() const;
00147     virtual QSize minimumSizeHint() const;
00148     virtual QSizePolicy sizePolicy() const;
00149 
00150 public slots:
00151     void setValue(double val);
00152     
00153 protected:
00154     void draw(QPainter *p, const QRect& update_rect);
00155     void drawThermo(QPainter *p);
00156     void layoutThermo( bool update = TRUE );
00157     virtual void scaleChange();
00158     virtual void fontChange(const QFont &oldFont);
00159 
00160     virtual void paintEvent(QPaintEvent *e);
00161     virtual void resizeEvent(QResizeEvent *e);
00162 
00163 private:
00164     void init();
00165     
00166     QwtDiMap d_map;
00167     QRect d_thermoRect;
00168     QBrush d_fillBrush;
00169     QBrush d_alarmBrush;
00170     
00171     Qt::Orientation d_orient;
00172     ScalePos d_scalePos;
00173     int d_borderWidth;
00174     int d_scaleDist;
00175     int d_thermoWidth;
00176 
00177     double d_minValue;
00178     double d_maxValue;
00179     double d_value;
00180     double d_alarmLevel;
00181     bool d_alarmEnabled;
00182 };
00183 
00184 #endif
00185 
00186 // Local Variables:
00187 // mode: C++
00188 // c-file-style: "stroustrup"
00189 // indent-tabs-mode: nil
00190 // End:

Generated on Sun Nov 21 11:12:44 2004 for Qwt User's Guide by doxygen 1.3.5