From d8827b5ff10c66a065a210d8aaf1d88214ee1070 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Fri, 18 Jun 2010 21:10:01 +0000 Subject: Theme Editor: Working on rendering viewports, display will now show %V(...) viewports as red rectangles over backdrop or background color git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26940 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/models/parsetreenode.cpp | 32 +++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'utils/themeeditor/models/parsetreenode.cpp') diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index 397031aee1..97beca4c3d 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -98,6 +98,12 @@ ParseTreeNode::ParseTreeNode(skin_tag_parameter *data, ParseTreeNode *parent) } +ParseTreeNode::~ParseTreeNode() +{ + for(int i = 0; i < children.count(); i++) + delete children[i]; +} + QString ParseTreeNode::genCode() const { QString buffer = ""; @@ -467,8 +473,28 @@ ParseTreeNode* ParseTreeNode::getParent() const return parent; } -ParseTreeNode::~ParseTreeNode() +void ParseTreeNode::render(const RBRenderInfo& info) { - for(int i = 0; i < children.count(); i++) - delete children[i]; + /* Parameters don't get rendered */ + if(!element && param) + return; + + /* If we're at the root, we need to render each viewport */ + if(!element && !param) + { + for(int i = 0; i < children.count(); i++) + { + children[i]->render(info); + } + + return; + } + + switch(element->type) + { + case VIEWPORT: + rendered = new RBViewport(element, info); + break; + } } + -- cgit v1.2.3