diff options
Diffstat (limited to 'kmid/klcdnumber.h')
-rw-r--r-- | kmid/klcdnumber.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/kmid/klcdnumber.h b/kmid/klcdnumber.h new file mode 100644 index 00000000..0359e472 --- /dev/null +++ b/kmid/klcdnumber.h @@ -0,0 +1,153 @@ +/************************************************************************** + + klcdnumber.h - The KLCDNumber widget (displays a lcd number) + Copyright (C) 1998 Antonio Larrosa Jimenez + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Send comments and bug fixes to larrosa@kde.org + or to Antonio Larrosa, Rio Arnoya, 10 5B, 29006 Malaga, Spain + +***************************************************************************/ +#ifndef _klcdnumber_h_ +#define _klcdnumber_h_ + +#include <qwidget.h> + +class QPainter; +class KTriangleButton; +class QColor; + +class KLCDNumber : public QWidget +{ + Q_OBJECT +protected: + class digit { +public: + digit() + : up(false), nw(false), ne(false), md(false), + sw(false), se(false), bt(false) { } + digit( bool _up, bool _nw, bool _ne, + bool _md, bool _sw, bool _se, bool _bt) + : up(_up), nw(_nw), ne(_ne), md(_md), + sw(_sw), se(_se), bt(_bt) { } + bool up; + bool nw; + bool ne; + bool md; + bool sw; + bool se; + bool bt; + }; + /* + up + --- + nw| |ne + |___|<------ md + | | + sw|___|se + bt + */ + + + KLCDNumber::digit Digit[11]; +/* +={ + / 0 / {true,true,true,false,true,true,true}, + / 1 / {false,false,true,false,false,true,false}, + / 2 / {true,false,true,true,true,false,true}, + / 3 / {true,false,true,true,false,true,true}, + / 4 / {false,true,true,true,false,true,false}, + / 5 / {true,true,false,true,false,true,true}, + / 6 / {true,true,false,true,true,true,true}, + / 7 / {true,false,true,false,false,true,false}, + / 8 / {true,true,true,true,true,true,true}, + / 9 / {true,true,true,true,false,true,true}, + / / {false,false,false,false,false,false,false} + };*/ + + int numDigits; + bool setUserChangeValue; + bool setUserDefaultValue; + bool doubleclicked; + + QColor backgcolor; + QColor LCDcolor; + + double value; + double oldvalue; + double defaultValue; + + double minValue; + double maxValue; + + void drawVerticalBar(QPainter *qpaint,int x,int y,int w,int h,int d); + void drawHorizBar(QPainter *qpaint,int x,int y,int w,int h,int d); + void drawDigit(QPainter *qpaint,int x,int y,int w,int h,digit d); + + void initDigits(void); + +public: + KLCDNumber(int _numDigits,QWidget *parent,const char *name); + KLCDNumber(bool _setUserChangeValue,int _numDigits,QWidget *parent,const char *name); + + void setUserSetDefaultValue(bool _userSetDefaultValue); + void setDefaultValue(double v); + + void setValue(double v); + double getValue(void) { return value; }; + double getOldValue(void) { return oldvalue; }; + + double getMinValue(void) { return minValue;}; + double getMaxValue(void) { return maxValue;}; + void setRange(double min, double max); + + void setLCDBackgroundColor (int r,int g,int b); + void setLCDColor (int r,int g,int b); + + void display (int v); + void display (double v); + + QSize sizeHint (); +// QSizePolicy sizePolicy(); + +protected: + + virtual void paintEvent ( QPaintEvent *e ); + virtual void resizeEvent ( QResizeEvent *e); + virtual void mouseDoubleClickEvent (QMouseEvent *e); + virtual void mousePressEvent (QMouseEvent *e); + virtual void timerEvent(QTimerEvent *e); + void defaultValueClicked(); + + KTriangleButton *downBtn; + KTriangleButton *upBtn; + + + +public slots: + + void decreaseValue(); + void increaseValue(); + void decreaseValueFast(); + void increaseValueFast(); + +signals: + + void valueChanged(double v); + +}; + +#endif |