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:
parent
8f28c0443c
commit
deab1bb2f5
4 changed files with 55 additions and 0 deletions
|
@ -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)
|
||||
{
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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])
|
||||
|
|
Loading…
Reference in a new issue