Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Examples

LCDBigNumber.cpp

00001 #include "LCDBigNumber.h"
00002 #include <sstream>
00003 #include <string>
00004 
00005 using namespace std;
00006 
00007 const int LCDBigNumber::LCD_COLON = 10;
00008 
00009 LCDBigNumber::LCDBigNumber(LCDElement *parent, const string &id) : LCDWidget(id, parent, "num")
00010 {
00011   _position = 1;
00012   _number = 0;
00013 }
00014 
00015 LCDBigNumber::LCDBigNumber(int number, int x, LCDElement *parent, const string &id) : LCDWidget(id, parent, "num")
00016 {
00017   _position = 1;
00018   set(number, x);
00019 }
00020 
00021 void LCDBigNumber::setNumberPosition(int position)
00022 {
00023   _position = position;
00024 }
00025 
00026 void LCDBigNumber::notifyChanged()
00027 {
00028   ostringstream params;
00029 
00030   params << _x
00031          << " "
00032          << _number;
00033 
00034   setWidgetParameters(params.str());
00035 }
00036 
00037 void LCDBigNumber::set(int number, int x)
00038 {
00039   _number = number;
00040   _x = x;
00041   notifyChanged();
00042 }
00043 
00044 void LCDBigNumber::setNumber(int number)
00045 {
00046   _number = number;
00047   notifyChanged();
00048 }
00049 
00050 int LCDBigNumber::getNumber() const
00051 {
00052   return _number;
00053 }
00054 
00055 void LCDBigNumber::valueCallback(string value)
00056 {
00057   int max = value.size();
00058   int position = max - _position;
00059   if (position < 0)
00060   {
00061     _number = 0;
00062   }
00063   else
00064   {
00065     _number = atoi(value.substr(position,1).c_str());
00066   }
00067   notifyChanged();
00068 }

Generated on Wed Aug 4 19:39:09 2004 for LCDApi by doxygen 1.3.6