diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-10 20:41:52 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-10 20:41:52 +0200 |
commit | 22b89a5b9fe73725e521d545dd7a7c8af10f657f (patch) | |
tree | b45e9f75fb0d3dc9995149d83369d5f8b44abaf9 /glcdskin | |
parent | 7fdaefe7ae28ebcfdbacd6dee7069f9ee23d371b (diff) | |
download | graphlcd-base-22b89a5b9fe73725e521d545dd7a7c8af10f657f.tar.gz graphlcd-base-22b89a5b9fe73725e521d545dd7a7c8af10f657f.tar.bz2 |
add option 'radius' for text-effects (radius in {1,2})
Diffstat (limited to 'glcdskin')
-rw-r--r-- | glcdskin/object.c | 19 | ||||
-rw-r--r-- | glcdskin/parser.c | 1 |
2 files changed, 14 insertions, 6 deletions
diff --git a/glcdskin/object.c b/glcdskin/object.c index 1b1417b..6e87b95 100644 --- a/glcdskin/object.c +++ b/glcdskin/object.c @@ -510,18 +510,25 @@ void cSkinObject::Render(GLCD::cBitmap * screen) int loops = 1; int varx[5] = {0, 0, 0, 0, 0}; int vary[5] = {0, 0, 0, 0, 0}; + + int fxOff = 1; + if (mRadius > 1) + fxOff = 2; switch (mEffect) { case tfxShadow: - loops = 2; - varx[0] = 1; vary[0] = 1; + loops = 1; + for (int fxi = 0; fxi < fxOff; fxi++) { + varx[fxi] = fxi + 1; vary[fxi] = fxi + 1; + loops++; + } break; case tfxOutline: loops = 5; - varx[0] = -1; vary[0] = 0; - varx[1] = 1; vary[1] = 0; - varx[2] = 0; vary[2] = -1; - varx[3] = 0; vary[3] = 1; + varx[0] = -fxOff; vary[0] = 0; + varx[1] = fxOff; vary[1] = 0; + varx[2] = 0; vary[2] = -fxOff; + varx[3] = 0; vary[3] = fxOff; break; case tfxNone: // no-one gets forgotten here, so make g++ happy default: diff --git a/glcdskin/parser.c b/glcdskin/parser.c index cb90fa0..b017326 100644 --- a/glcdskin/parser.c +++ b/glcdskin/parser.c @@ -298,6 +298,7 @@ bool StartElem(const std::string & name, std::map<std::string,std::string> & att ATTRIB_OPT_FUNC("altcondition", object->ParseAltCondition); ATTRIB_OPT_FUNC_PARAM("effectcolor", object->ParseColor, object->mEffectColor); ATTRIB_OPT_FUNC("effect", object->ParseEffect); + ATTRIB_OPT_NUMBER("radius", object->mRadius); } else if (name == "button") { |