summaryrefslogtreecommitdiff
path: root/glcdskin
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2011-06-10 20:41:52 +0200
committermrwastl <mrwastl@users.sourceforge.net>2011-06-10 20:41:52 +0200
commit22b89a5b9fe73725e521d545dd7a7c8af10f657f (patch)
treeb45e9f75fb0d3dc9995149d83369d5f8b44abaf9 /glcdskin
parent7fdaefe7ae28ebcfdbacd6dee7069f9ee23d371b (diff)
downloadgraphlcd-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.c19
-rw-r--r--glcdskin/parser.c1
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")
{