diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-07-09 13:48:15 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-07-09 13:48:15 +0200 |
commit | 21d15ba6ddf7440f229eb627ff3cc28393e3faee (patch) | |
tree | 73d8ea9035bb3f8186cc80faf24181392752d0d2 /glcdskin/string.c | |
parent | 8b40680aa394e0b0cdc9b78229bf3b513ec4459e (diff) | |
download | graphlcd-base-21d15ba6ddf7440f229eb627ff3cc28393e3faee.tar.gz graphlcd-base-21d15ba6ddf7440f229eb627ff3cc28393e3faee.tar.bz2 |
position (x/y/x1/y1/x2/y2) and dimension (width/height) parameters are now evaluated at run time
Diffstat (limited to 'glcdskin/string.c')
-rw-r--r-- | glcdskin/string.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/glcdskin/string.c b/glcdskin/string.c index a174964..bc3070d 100644 --- a/glcdskin/string.c +++ b/glcdskin/string.c @@ -274,6 +274,17 @@ cType cSkinString::Evaluate(void) const pos = idxstart; } result_trans.append(result_raw.substr(pos)); + + // re-evaluate resulting string + if ((mText.size() > 0) && mText[0] != '#' && mObject != NULL ) { + cSkinFunction *result = new cSkinFunction(mObject); + if (result->Parse(result_trans)) { + std::string result_rescan = (std::string)result->Evaluate(); + if (result_rescan != "") + result_trans = result_rescan; + } + delete result; + } return result_trans; } |