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

qwt_counter.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 // vim: expandtab
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     // a set of dummies to help the designer
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

Generated on Mon Jan 30 22:16:25 2006 for Qwt User's Guide by  doxygen 1.4.4