00001 #include "LCDBar.h"
00002 #include <sstream>
00003 #include <stdlib.h>
00004
00005 using namespace std;
00006
00007 LCDBar::LCDBar(const string &widgetType, const string &id, LCDElement *parent) : LCDWidget(id, parent, widgetType)
00008 {
00009 _length = 0;
00010 _max = 100;
00011 }
00012
00013 LCDBar::LCDBar(const string &widgetType, int length, int x, int y, const string &id, LCDElement *parent) : LCDWidget(id, parent, widgetType)
00014 {
00015 set(length, x, y);
00016 }
00017
00018 void LCDBar::notifyChanged()
00019 {
00020 ostringstream params;
00021
00022 params << _x
00023 << " "
00024 << _y
00025 << " "
00026 << _length;
00027
00028 setWidgetParameters(params.str());
00029 }
00030
00031 void LCDBar::set(int length, int x, int y)
00032 {
00033 _length = length;
00034 _x = x;
00035 _y =y;
00036 notifyChanged();
00037 }
00038
00039 void LCDBar::setPercentage(int value)
00040 {
00041 _length = (value * _max) / 100;
00042 notifyChanged();
00043 }
00044
00045 int LCDBar::getPercentage()
00046 {
00047 return ((_length * 100) / _max);
00048
00049 }
00050
00051 void LCDBar::setPercentageMax(int max)
00052 {
00053 _max = max;
00054 }
00055
00056 void LCDBar::valueCallback(string value)
00057 {
00058 setPercentage(atoi(value.c_str()));
00059 }