diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-06-23 07:18:22 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-06-23 07:18:22 +0000 |
commit | d3027053f955106708c5474d35cf41cd894bf450 (patch) | |
tree | f29d7ff83cd7cb6c998809cecbad4bb6ff1ea1cb /utils/themeeditor/models | |
parent | a937b8ba0568bbd028791fb986d1ab7e41ab6f5b (diff) | |
download | rockbox-d3027053f955106708c5474d35cf41cd894bf450.tar.gz rockbox-d3027053f955106708c5474d35cf41cd894bf450.zip |
Theme Editor: Working on image rendering
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27083 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/models')
-rw-r--r-- | utils/themeeditor/models/parsetreenode.cpp | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index ed518a47db..41bee5cab8 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -25,6 +25,8 @@ #include "parsetreenode.h" #include "parsetreemodel.h" +#include "rbimage.h" + #include <iostream> int ParseTreeNode::openConditionals = 0; @@ -504,6 +506,8 @@ void ParseTreeNode::render(const RBRenderInfo& info) for(int i = element->params_count; i < children.count(); i++) children[i]->render(info, dynamic_cast<RBViewport*>(rendered)); + + std::cout << rendered->children().count() << std::endl; } /* This version is called for logical lines and such */ @@ -518,17 +522,56 @@ void ParseTreeNode::render(const RBRenderInfo &info, RBViewport* viewport) else if(element->type == TAG) { QString filename; + QString id; + int x, y, tiles; + RBImage* image; /* Two switch statements to narrow down the tag name */ switch(element->tag->name[0]) { + case 'x': + switch(element->tag->name[1]) + { + case 'l': + /* %xl */ + id = element->params[0].data.text; + filename = info.settings()->value("imagepath", "") + "/" + + element->params[1].data.text; + x = element->params[2].data.numeric; + y = element->params[3].data.numeric; + if(element->params_count > 4) + tiles = element->params[4].data.numeric; + else + tiles = 1; + + info.screen()->loadImage(id, new RBImage(filename, tiles, x, y, + viewport)); + break; + + case '\0': + /* %x */ + id = element->params[0].data.text; + filename = info.settings()->value("imagepath", "") + "/" + + element->params[1].data.text; + x = element->params[2].data.numeric; + y = element->params[3].data.numeric; + image = new RBImage(filename, 1, x, y, viewport); + info.screen()->loadImage(id, new RBImage(filename, 1, x, y, + viewport)); + info.screen()->getImage(id)->show(); + break; + + } + + break; + case 'X': switch(element->tag->name[1]) { case '\0': - /* %X tag */ + /* %X */ filename = QString(element->params[0].data.text); info.screen()->setBackdrop(filename); break; |