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