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