ArduinoLibs
TextField.cpp
00001 /*
00002  * Copyright (C) 2012 Southern Storm Software, Pty Ltd.
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a
00005  * copy of this software and associated documentation files (the "Software"),
00006  * to deal in the Software without restriction, including without limitation
00007  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00008  * and/or sell copies of the Software, and to permit persons to whom the
00009  * Software is furnished to do so, subject to the following conditions:
00010  *
00011  * The above copyright notice and this permission notice shall be included
00012  * in all copies or substantial portions of the Software.
00013  *
00014  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00015  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00019  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00020  * DEALINGS IN THE SOFTWARE.
00021  */
00022 
00023 #include "TextField.h"
00024 
00066 TextField::TextField(const String &label)
00067     : Field(label)
00068 {
00069 }
00070 
00077 TextField::TextField(Form &form, const String &label, const String &value)
00078     : Field(form, label)
00079     , _value(value)
00080 {
00081 }
00082 
00083 void TextField::enterField(bool reverse)
00084 {
00085     Field::enterField(reverse);
00086     lcd()->setCursor(0, 1);
00087     lcd()->print(_value);
00088 }
00089 
00102 void TextField::setValue(const String &value)
00103 {
00104     if (isCurrent()) {
00105         unsigned int prevLen = _value.length();
00106         unsigned int newLen = value.length();
00107         _value = value;
00108         lcd()->setCursor(0, 1);
00109         lcd()->print(value);
00110         while (newLen++ < prevLen)
00111             lcd()->write(' ');
00112     } else {
00113         _value = value;
00114     }
00115 }
 All Classes Files Functions Variables Typedefs Enumerations Enumerator