You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdetoys/kodo/kimagenumber.cpp

80 lines
1.7 KiB

/*
* Mouspedometa
* Based on the original Xodometer VMS/Motif sources.
*
* Written by Armen Nakashian
* Compaq Computer Corporation
* Houston TX
* 22 May 1998
*
* If you make improvements or enhancements to Mouspedometa, please send
* them back to the author at any of the following addresses:
*
* armen@nakashian.com
*
* Thanks to Mark Granoff for writing the original Xodometer, and
* the whole KDE team for making such a nice environment to write
* programs in.
*
*
* This software is provided as is with no warranty of any kind,
* expressed or implied. Neither Digital Equipment Corporation nor
* Armen Nakashian will be held accountable for your use of this
* software.
*/
#include "kimagenumber.h"
KImageNumber::KImageNumber(const QString& font, QWidget* parent,const char* name) :
QFrame(parent,name),
m_value(0)
{
fontPix = new QPixmap(font);
resize(sizeHint());
}
KImageNumber::~KImageNumber()
{
delete fontPix;
}
void KImageNumber::paintEvent(QPaintEvent*)
{
int w = fontPix->width();
int each = w/11;
QString data;
data.sprintf("%06.1f", m_value);
for(unsigned int i=0; i < data.length(); i++) {
int wl = data.at(i).latin1() - '0';
if(data.at(i) == '.')
wl = 10;
bitBlt(this, i*each, 0, fontPix, wl*each, 0, each, fontPix->height());
}
}
void KImageNumber::setValue(double v)
{
m_value = v;
repaint(false);
}
double KImageNumber::value() const
{
return m_value;
}
QSize KImageNumber::sizeHint() const
{
int w = fontPix->width();
int each = w/11;
QString data;
data.sprintf("%06.1f", m_value);
return QSize(data.length()*each, fontPix->height());
}
#include "kimagenumber.moc"