/* * 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"