Source Code (Use browser search to find items of interest.)

Class Index

kmid'KLCDNumber (./kdemultimedia/kmid/klcdnumber.h:33)

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);
    
};

kmid'KLCDNumber::KLCDNumber() (./kdemultimedia/kmid/klcdnumber.cpp:31)

KLCDNumber::KLCDNumber(int _numDigits,QWidget *parent,const char *name)
    : QWidget(parent,name)
{
    initDigits();
    setUserChangeValue=false;
    numDigits=_numDigits;
    value=0;
    minValue=0;
    maxValue=1000;
    oldvalue=-1;
    //    setPalette( QPalette (QColor(0,0,0)));
    upBtn=NULL;
    downBtn=NULL;
    setUserDefaultValue=false;
    doubleclicked=false;
    setLCDBackgroundColor(0,0,0);
    setLCDColor(100,255,100);
}


kmid'KLCDNumber::KLCDNumber() (./kdemultimedia/kmid/klcdnumber.cpp:50)

KLCDNumber::KLCDNumber(bool _setUserChangeValue,int _numDigits,QWidget *parent,const char *name)
    : QWidget(parent,name)
{
    initDigits();
    setUserChangeValue=_setUserChangeValue;
    numDigits=_numDigits;
    value=0;
    minValue=0;
    maxValue=1000;
    oldvalue=-1;
//    setBackgroundColor(QColor(0,0,0));
//    setPalette( QPalette (QColor(0,0,0)));
    upBtn=NULL;
    downBtn=NULL;
    setUserDefaultValue=false;
    doubleclicked=false;
    setLCDBackgroundColor(0,0,0);
    setLCDColor(100,255,100);
    if (setUserChangeValue)
    {
        upBtn=new KTriangleButton(KTriangleButton::Right,this,"Up");
        downBtn=new KTriangleButton(KTriangleButton::Left,this,"Down");
        upBtn->setGeometry(width()-BUTTONWIDTH,0,BUTTONWIDTH,height());
        downBtn->setGeometry(0,0,BUTTONWIDTH,height());
        connect(upBtn,SIGNAL(clicked()),this,SLOT(increaseValue()));
        connect(downBtn,SIGNAL(clicked()),this,SLOT(decreaseValue()));
        connect(upBtn,SIGNAL(clickedQuickly()),this,SLOT(increaseValueFast()));
        connect(downBtn,SIGNAL(clickedQuickly()),this,SLOT(decreaseValueFast()));
    };
}


kmid'KLCDNumber::initDigits() (./kdemultimedia/kmid/klcdnumber.cpp:81)

void KLCDNumber::initDigits (void)
{
Digit[0] = digit(true,true,true,false,true,true,true);
Digit[1] = digit(false,false,true,false,false,true,false);  
Digit[2] = digit(true,false,true,true,true,false,true);
Digit[3] = digit(true,false,true,true,false,true,true);
Digit[4] = digit(false,true,true,true,false,true,false);
Digit[5] = digit(true,true,false,true,false,true,true);
Digit[6] = digit(true,true,false,true,true,true,true);
Digit[7] = digit(true,false,true,false,false,true,false);
Digit[8] = digit(true,true,true,true,true,true,true);
Digit[9] = digit(true,true,true,true,false,true,true);
Digit[10] = digit(false,false,false,false,false,false,false);
}


kmid'KLCDNumber::resizeEvent() (./kdemultimedia/kmid/klcdnumber.cpp:96)

void KLCDNumber::resizeEvent ( QResizeEvent *)
{
    if (setUserChangeValue)
    {
        upBtn->setGeometry(width()-BUTTONWIDTH,0,BUTTONWIDTH,height());
        downBtn->setGeometry(0,0,BUTTONWIDTH,height());
    }
}


kmid'KLCDNumber::drawVerticalBar() (./kdemultimedia/kmid/klcdnumber.cpp:105)

void KLCDNumber::drawVerticalBar(QPainter *qpaint,int x,int y,int w,int h,int d)
{
    /* If d is 0 it means that it is a bar on the left and if 1 it is on the right */
    /*
     |\                   /|
     | |                 | |
     | | = 0         1 = | |
     | |                 | |
     |/                   \|
     */

    y++;
    h-=2;
    if (d==0)
    {
        for (int i=x;i<x+w;i++)
        {
            qpaint->drawLine(i,y,i,y+h);
            y++;
            h-=2;
        }
    } else {
        for (int i=x+w;i>x;i--)
        {
            qpaint->drawLine(i,y,i,y+h);
            y++;
            h-=2;
        }
    }
}


kmid'KLCDNumber::drawHorizBar() (./kdemultimedia/kmid/klcdnumber.cpp:136)

void KLCDNumber::drawHorizBar(QPainter *qpaint,int x,int y,int w,int h,int d)
{
    // 0 is upper, 1 is bottom and 2 is the middle bar.
    x++;
    w-=3;
    if (d==0)
    {
        for (int i=y;i<y+h;i++)
        {
            qpaint->drawLine(x,i,x+w,i);
            x++;
            w-=2;
        }
    }
    else if (d==1)
    {
        for (int i=y+h;i>y;i--)
        {
            qpaint->drawLine(x,i,x+w,i);
            x++;
            w-=2;
        }
    }
    else
    {
        for (int i=0;i<=h/2;i++)
        {
            qpaint->drawLine(x,y-i,x+w,y-i);
            qpaint->drawLine(x,y+i,x+w,y+i);
            x++;
            w-=2;
        }
        
    };

};


kmid'KLCDNumber::drawDigit() (./kdemultimedia/kmid/klcdnumber.cpp:173)

void KLCDNumber::drawDigit(QPainter *qpaint,int x,int y,int w,int h,digit d)
{
if (d.nw) drawVerticalBar(qpaint,x,y,w/5,h/2,0);
if (d.ne) drawVerticalBar(qpaint,x+w*4/5,y,w/5,h/2,1);
if (d.sw) drawVerticalBar(qpaint,x,y+h/2,w/5,h/2,0);
if (d.se) drawVerticalBar(qpaint,x+w*4/5,y+h/2,w/5,h/2,1);
if (d.up) drawHorizBar (qpaint,x,y,w,w/5,0);
if (d.bt) drawHorizBar (qpaint,x,y+h-w/5,w,w/5,1);
if (d.md) drawHorizBar (qpaint,x,y+h/2,w,w/5,2);
}



kmid'KLCDNumber::setValue() (./kdemultimedia/kmid/klcdnumber.cpp:185)

void KLCDNumber::setValue(double v)
{
    oldvalue=value;
    if (v<minValue)
        value=minValue;
    else if (v>maxValue)
        value=maxValue;
    else
        value=v;

}


kmid'KLCDNumber::display() (./kdemultimedia/kmid/klcdnumber.cpp:197)

void KLCDNumber::display (double v)
{
    setValue(v);
    repaint(FALSE);
}


kmid'KLCDNumber::display() (./kdemultimedia/kmid/klcdnumber.cpp:203)

void KLCDNumber::display (int v)
{
    display((double)v);
}



kmid'KLCDNumber::paintEvent() (./kdemultimedia/kmid/klcdnumber.cpp:209)

void KLCDNumber::paintEvent ( QPaintEvent * )
{
    QPainter qpaint(this);
    qpaint.fillRect(0,0,width(),height(),backgcolor);
    qpaint.setPen(LCDcolor);
    
    QString numStr;
    numStr.setNum((int) value);
    numStr = numStr.rightJustify( numDigits, ' ', true);

    int dx,dy,dw,dh;
    if (setUserChangeValue)
    {
        dx=BUTTONWIDTH;
        dy=height()/10;
        dh=height()-dy*2;
        dw=(width()-(BUTTONWIDTH*2))/numDigits;
    } else
    {
        dx=0;
        dy=height()/10;
        dh=height()-dy*2;
        dw=width()/numDigits;
    };
    int sep=dw/10;

    for(int i=0; i < numDigits; i++)
    {
        char dig = numStr[i].latin1();
        if ((dig>='0')&&(dig<='9'))
            drawDigit(&qpaint,dx+sep,dy,dw-sep*2,dh,Digit[dig-'0']);
        else 
            drawDigit(&qpaint,dx+sep,dy,dw-sep*2,dh,KLCDNumber::Digit[10]);
        dx+=dw;
    };
}


kmid'KLCDNumber::setUserSetDefaultValue() (./kdemultimedia/kmid/klcdnumber.cpp:246)

void KLCDNumber::setUserSetDefaultValue(bool _userSetDefaultValue)
{
    if (setUserDefaultValue!=_userSetDefaultValue)
    {
        setUserDefaultValue=_userSetDefaultValue;
        /*        if (setUserDefaultValue)
         connect();
         else
         disconnect();
         */
    }
    
}


kmid'KLCDNumber::setDefaultValue() (./kdemultimedia/kmid/klcdnumber.cpp:260)

void KLCDNumber::setDefaultValue(double v)
{
    defaultValue=v;
}



kmid'KLCDNumber::decreaseValue() (./kdemultimedia/kmid/klcdnumber.cpp:266)

void KLCDNumber::decreaseValue()
{
    display( value-1 );
    emit valueChanged( value );
}


kmid'KLCDNumber::increaseValue() (./kdemultimedia/kmid/klcdnumber.cpp:272)

void KLCDNumber::increaseValue()
{
    display( value+1 );
    emit valueChanged( value );
}


kmid'KLCDNumber::decreaseValueFast() (./kdemultimedia/kmid/klcdnumber.cpp:278)

void KLCDNumber::decreaseValueFast()
{
    display( value-1 );
}


kmid'KLCDNumber::increaseValueFast() (./kdemultimedia/kmid/klcdnumber.cpp:283)

void KLCDNumber::increaseValueFast()
{
    display( value+1 );
}


kmid'KLCDNumber::mouseDoubleClickEvent() (./kdemultimedia/kmid/klcdnumber.cpp:288)

void KLCDNumber::mouseDoubleClickEvent (QMouseEvent *)
{
    doubleclicked=true;
    defaultValueClicked();
}


kmid'KLCDNumber::mousePressEvent() (./kdemultimedia/kmid/klcdnumber.cpp:294)

void KLCDNumber::mousePressEvent (QMouseEvent *e)
{
    startTimer(200);
    QWidget::mousePressEvent(e);
}


kmid'KLCDNumber::timerEvent() (./kdemultimedia/kmid/klcdnumber.cpp:300)

void KLCDNumber::timerEvent(QTimerEvent *)
{
    killTimers();
    doubleclicked=false;

}



kmid'KLCDNumber::defaultValueClicked() (./kdemultimedia/kmid/klcdnumber.cpp:308)

void KLCDNumber::defaultValueClicked()
{
    if (setUserDefaultValue)
    {
        display( defaultValue );
        emit valueChanged( value );
    }
}


kmid'KLCDNumber::setLCDBackgroundColor() (./kdemultimedia/kmid/klcdnumber.cpp:317)

void KLCDNumber::setLCDBackgroundColor(int r,int g,int b)
{
    backgcolor=QColor(r,g,b);
    repaint(FALSE);
}


kmid'KLCDNumber::setLCDColor() (./kdemultimedia/kmid/klcdnumber.cpp:323)

void KLCDNumber::setLCDColor(int r,int g,int b)
{
    LCDcolor=QColor(r,g,b);
    repaint(FALSE);
}


kmid'KLCDNumber::setRange() (./kdemultimedia/kmid/klcdnumber.cpp:329)

void KLCDNumber::setRange(double min, double max)
{
    minValue=min;
    maxValue=max;
}


kmid'KLCDNumber::sizeHint() (./kdemultimedia/kmid/klcdnumber.cpp:335)

QSize KLCDNumber::sizeHint()
{
    return QSize(83,28);
}