forked from len0rd/rockbox
Theme Editor: Co Used a more efficient/less error-prone system for rendering SBS documents underneath WPS documents
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27765 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
77b682571f
commit
d1a392a0e9
10 changed files with 71 additions and 45 deletions
|
@ -31,6 +31,9 @@
|
|||
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
#include <cassert>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
int ParseTreeNode::openConditionals = 0;
|
||||
bool ParseTreeNode::breakFlag = false;
|
||||
|
@ -571,9 +574,12 @@ void ParseTreeNode::render(const RBRenderInfo &info, RBViewport* viewport,
|
|||
else if(element->type == CONDITIONAL)
|
||||
{
|
||||
int child = evalTag(info, true, element->children_count).toInt();
|
||||
if(child < children.count())
|
||||
int max = children.count() - element->params_count;
|
||||
if(child < max)
|
||||
{
|
||||
children[element->params_count + child]
|
||||
->render(info, viewport, true);
|
||||
}
|
||||
}
|
||||
else if(element->type == LINE_ALTERNATOR)
|
||||
{
|
||||
|
@ -856,8 +862,6 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
|
|||
int height = element->params[3].data.number;
|
||||
QString action(element->params[4].data.text);
|
||||
RBTouchArea* temp = new RBTouchArea(width, height, action, info);
|
||||
x += viewport->x();
|
||||
y += viewport->y();
|
||||
temp->setPos(x, y);
|
||||
return true;
|
||||
}
|
||||
|
@ -914,10 +918,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
|
|||
case '\0':
|
||||
/* %X */
|
||||
filename = QString(element->params[0].data.text);
|
||||
if(info.sbsScreen() && info.screen()->parentItem())
|
||||
info.sbsScreen()->setBackdrop(filename);
|
||||
else
|
||||
info.screen()->setBackdrop(filename);
|
||||
info.screen()->setBackdrop(filename);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue