00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_COUNTER_H
00011 #define QWT_COUNTER_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_double_range.h"
00015 #include <qwidget.h>
00016
00058 class QWT_EXPORT QwtCounter : public QWidget, public QwtDoubleRange
00059 {
00060 Q_OBJECT
00061
00062 Q_PROPERTY( int numButtons READ numButtons WRITE setNumButtons )
00063 Q_PROPERTY( double basicstep READ step WRITE setStep )
00064 Q_PROPERTY( double minValue READ minVal WRITE setMinValue )
00065 Q_PROPERTY( double maxValue READ maxVal WRITE setMaxValue )
00066 Q_PROPERTY( int stepButton1 READ stepButton1 WRITE setStepButton1 )
00067 Q_PROPERTY( int stepButton2 READ stepButton2 WRITE setStepButton2 )
00068 Q_PROPERTY( int stepButton3 READ stepButton3 WRITE setStepButton3 )
00069 Q_PROPERTY( double value READ value WRITE setValue )
00070 Q_PROPERTY( bool editable READ editable WRITE setEditable )
00071
00072 public:
00077 enum Button
00078 {
00079 Button1,
00080 Button2,
00081 Button3,
00082 ButtonCnt
00083 };
00084
00085 explicit QwtCounter( QWidget *parent = NULL );
00086 virtual ~QwtCounter();
00087
00088 bool editable() const;
00089 void setEditable( bool );
00090
00091 void setNumButtons( int n );
00092 int numButtons() const;
00093
00094 void setIncSteps( QwtCounter::Button btn, int nSteps );
00095 int incSteps( QwtCounter::Button btn ) const;
00096
00097 virtual void setValue( double );
00098 virtual QSize sizeHint() const;
00099
00100 virtual void polish();
00101
00102
00103
00104 double step() const;
00105 void setStep( double s );
00106
00107 double minVal() const;
00108 void setMinValue( double m );
00109
00110 double maxVal() const;
00111 void setMaxValue( double m );
00112
00113 void setStepButton1( int nSteps );
00114 int stepButton1() const;
00115
00116 void setStepButton2( int nSteps );
00117 int stepButton2() const;
00118
00119 void setStepButton3( int nSteps );
00120 int stepButton3() const;
00121
00122 virtual double value() const;
00123
00124 Q_SIGNALS:
00129 void buttonReleased ( double value );
00130
00135 void valueChanged ( double value );
00136
00137 protected:
00138 virtual bool event( QEvent * );
00139 virtual void wheelEvent( QWheelEvent * );
00140 virtual void keyPressEvent( QKeyEvent * );
00141 virtual void rangeChange();
00142
00143 private Q_SLOTS:
00144 void btnReleased();
00145 void btnClicked();
00146 void textChanged();
00147
00148 private:
00149 void initCounter();
00150 void updateButtons();
00151 void showNum( double );
00152 virtual void valueChange();
00153
00154 class PrivateData;
00155 PrivateData *d_data;
00156 };
00157
00158 #endif