Theme Editor: Added rendering support for some more tags

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27094 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-06-23 19:41:30 +00:00
parent 8f28c0443c
commit deab1bb2f5
4 changed files with 55 additions and 0 deletions

View file

@ -117,6 +117,18 @@ void RBScreen::setBackdrop(QString filename)
backdrop = 0;
}
void RBScreen::makeCustomUI(QString id)
{
if(namedViewports.value(id, 0) != 0)
{
QMap<QString, RBViewport*>::iterator i;
for(i = namedViewports.begin(); i != namedViewports.end(); i++)
(*i)->clearCustomUI();
namedViewports.value(id)->makeCustomUI();
namedViewports.value(id)->show();
}
}
QColor RBScreen::stringToColor(QString str, QColor fallback)
{

View file

@ -59,6 +59,7 @@ public:
RBImage* getImage(QString name){ return images.value(name, 0); }
void setBackdrop(QString filename);
void makeCustomUI(QString id);
static QColor stringToColor(QString str, QColor fallback);

View file

@ -40,6 +40,12 @@ public:
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
void setBGColor(QColor color){ background = color; }
void setFGColor(QColor color){ foreground = color; }
void makeCustomUI(){ customUI = true; }
void clearCustomUI(){ customUI = false; }
void newline();
private:

View file

@ -592,6 +592,42 @@ void ParseTreeNode::render(const RBRenderInfo &info, RBViewport* viewport)
break;
case 'V':
switch(element->tag->name[1])
{
case 'b':
/* %Vb */
viewport->setBGColor(RBScreen::
stringToColor(QString(element->params[0].
data.text),
Qt::white));
break;
case 'd':
/* %Vd */
id = element->params[0].data.text;
info.screen()->showViewport(id);
break;
case 'f':
/* %Vf */
viewport->setFGColor(RBScreen::
stringToColor(QString(element->params[0].
data.text),
Qt::black));
break;
case 'I':
/* %VI */
info.screen()->makeCustomUI(element->params[0].data.text);
break;
}
break;
case 'X':
switch(element->tag->name[1])