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 void polish();
00103
00104
00105
00106 double step() const;
00107 void setStep(double s);
00108 double minVal() const;
00109 void setMinValue(double m);
00110 double maxVal() const;
00111 void setMaxValue(double m);
00112 void setStepButton1(int nSteps);
00113 int stepButton1() const;
00114 void setStepButton2(int nSteps);
00115 int stepButton2() const;
00116 void setStepButton3(int nSteps);
00117 int stepButton3() const;
00118 virtual double value() const;
00119
00120 signals:
00125 void buttonReleased (double value);
00126
00131 void valueChanged (double value);
00132
00133 protected:
00134 virtual bool event(QEvent *);
00135 virtual void wheelEvent(QWheelEvent *);
00136 virtual void keyPressEvent(QKeyEvent *);
00137 virtual void rangeChange();
00138
00139 private slots:
00140 void btnReleased();
00141 void btnClicked();
00142 void textChanged();
00143
00144 private:
00145 void updateButtons();
00146 void showNum(double);
00147 virtual void valueChange();
00148
00149 class PrivateData;
00150 PrivateData *d_data;
00151 };
00152
00153 #endif