From 8114979e8e413caa876cda626fe0b6385bfc56ce Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Wed, 30 Jun 2010 19:35:00 +0000 Subject: Theme Editor: Added album art display git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27199 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/models/parsetreenode.cpp | 42 +++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 7 deletions(-) (limited to 'utils/themeeditor/models/parsetreenode.cpp') diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index c56592e..3b334a6 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -582,8 +582,8 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) QString filename; QString id; - int x, y, tiles, tile; - char c; + int x, y, tiles, tile, maxWidth, maxHeight, width, height; + char c, hAlign, vAlign; RBImage* image; /* Two switch statements to narrow down the tag name */ @@ -609,7 +609,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) return true; } - break; + return false; case 'x': switch(element->tag->name[1]) @@ -672,7 +672,35 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) } - return true; + return false; + + case 'C': + switch(element->tag->name[1]) + { + case 'd': + /* %Cd */ + info.screen()->showAlbumArt(viewport); + return true; + + case 'l': + /* %Cl */ + x = element->params[0].data.numeric; + y = element->params[1].data.numeric; + maxWidth = element->params[2].data.numeric; + maxHeight = element->params[3].data.numeric; + hAlign = element->params_count > 4 + ? element->params[4].data.text[0] : 'c'; + vAlign = element->params_count > 5 + ? element->params[5].data.text[0] : 'c'; + width = info.device()->data("artwidth").toInt(); + height = info.device()->data("artheight").toInt(); + info.screen()->setAlbumArt(new RBAlbumArt(viewport, x, y, maxWidth, + maxHeight, width, height, + hAlign, vAlign)); + return true; + } + + return false; case 'F': @@ -689,7 +717,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) } - return true; + return false; case 'V': @@ -725,7 +753,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) } - return true; + return false; case 'X': @@ -738,7 +766,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) return true; } - return true; + return false; } -- cgit v1.1