summaryrefslogtreecommitdiff
path: root/glcdskin/parser.c
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2011-06-20 23:13:54 +0200
committermrwastl <mrwastl@users.sourceforge.net>2011-06-20 23:13:54 +0200
commit8b198b4be836b4718cd3ce96e8ba8590697da45a (patch)
tree7645b90529daaf97a4eaa4ecdedeb93fff4056af /glcdskin/parser.c
parentec46b70bd4d1a1450a2bdc197d9e5935c885c40c (diff)
downloadgraphlcd-base-8b198b4be836b4718cd3ce96e8ba8590697da45a.tar.gz
graphlcd-base-8b198b4be836b4718cd3ce96e8ba8590697da45a.tar.bz2
opacity support for non-monochrome images
Diffstat (limited to 'glcdskin/parser.c')
-rw-r--r--glcdskin/parser.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/glcdskin/parser.c b/glcdskin/parser.c
index b017326..71df8e1 100644
--- a/glcdskin/parser.c
+++ b/glcdskin/parser.c
@@ -281,6 +281,7 @@ bool StartElem(const std::string & name, std::map<std::string,std::string> & att
ATTRIB_OPT_FUNC_PARAM("bgcolor", object->ParseColor, object->mBackgroundColor);
ATTRIB_MAN_FUNC("path", object->mPath.Parse);
ATTRIB_OPT_FUNC("loop", object->ParseScrollLoopMode);
+ ATTRIB_OPT_FUNC_PARAM("opacity", object->ParseIntParam, object->mOpacity);
}
else if (name == "text"
|| name == "scrolltext")
@@ -341,6 +342,12 @@ bool StartElem(const std::string & name, std::map<std::string,std::string> & att
--object->mPos2.y;
}
#endif
+ // range checks
+ if (object->mOpacity < 0)
+ object->mOpacity = 0;
+ else if (object->mOpacity > 255)
+ object->mOpacity = 255;
+
}
else
TAG_ERR_REMAIN(context[context.size() - 1].c_str());