diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-06-23 20:18:31 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-06-23 20:18:31 +0000 |
commit | 6d6156603cf2ac5facf08734f12e0b4d0c1fcce0 (patch) | |
tree | 25340c9fdac15f4bf88d7f6e5bd935d1f1934211 /utils/themeeditor | |
parent | 168eba1aecddc21231d922608380fe811a8a0473 (diff) |
Theme Editor: Added dummy font class and implemented font load tag
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27096 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor')
-rw-r--r-- | utils/themeeditor/graphics/rbfont.cpp | 30 | ||||
-rw-r--r-- | utils/themeeditor/graphics/rbfont.h | 38 | ||||
-rw-r--r-- | utils/themeeditor/graphics/rbscreen.cpp | 22 | ||||
-rw-r--r-- | utils/themeeditor/graphics/rbscreen.h | 5 | ||||
-rw-r--r-- | utils/themeeditor/models/parsetreenode.cpp | 17 | ||||
-rw-r--r-- | utils/themeeditor/themeeditor.pro | 6 |
6 files changed, 116 insertions, 2 deletions
diff --git a/utils/themeeditor/graphics/rbfont.cpp b/utils/themeeditor/graphics/rbfont.cpp new file mode 100644 index 0000000000..48e0f304be --- /dev/null +++ b/utils/themeeditor/graphics/rbfont.cpp @@ -0,0 +1,30 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Robert Bieber + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "rbfont.h" + +RBFont::RBFont(QString file): filename(file) +{ +} + +RBFont::~RBFont() +{ +} diff --git a/utils/themeeditor/graphics/rbfont.h b/utils/themeeditor/graphics/rbfont.h new file mode 100644 index 0000000000..a1d66f22d4 --- /dev/null +++ b/utils/themeeditor/graphics/rbfont.h @@ -0,0 +1,38 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Robert Bieber + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef RBFONT_H +#define RBFONT_H + +#include <QString> +#include <QFile> + +class RBFont +{ +public: + RBFont(QString file); + virtual ~RBFont(); + +private: + QString filename; +}; + +#endif // RBFONT_H diff --git a/utils/themeeditor/graphics/rbscreen.cpp b/utils/themeeditor/graphics/rbscreen.cpp index 004d2e0990..a090c2f9f2 100644 --- a/utils/themeeditor/graphics/rbscreen.cpp +++ b/utils/themeeditor/graphics/rbscreen.cpp @@ -67,6 +67,11 @@ RBScreen::~RBScreen() { if(backdrop) delete backdrop; + + QMap<int, RBFont*>::iterator i; + for(i = fonts.begin(); i != fonts.end(); i++) + if(*i) + delete (*i); } QPainterPath RBScreen::shape() const @@ -103,6 +108,23 @@ void RBScreen::showViewport(QString name) update(); } +void RBScreen::loadFont(int id, RBFont* font) +{ + if(id < 2 || id > 9) + return; + + fonts.insert(id, font); +} + +RBFont* RBScreen::getFont(int id) +{ + if(fonts.value(id, 0) != 0) + return fonts.value(id); + else + return fonts.value(0, 0); +} + + void RBScreen::setBackdrop(QString filename) { diff --git a/utils/themeeditor/graphics/rbscreen.h b/utils/themeeditor/graphics/rbscreen.h index 51fa32cee3..95a110a4d5 100644 --- a/utils/themeeditor/graphics/rbscreen.h +++ b/utils/themeeditor/graphics/rbscreen.h @@ -27,6 +27,7 @@ #include "projectmodel.h" #include "rbrenderinfo.h" #include "rbimage.h" +#include "rbfont.h" class RBViewport; @@ -58,6 +59,9 @@ public: } RBImage* getImage(QString name){ return images.value(name, 0); } + void loadFont(int id, RBFont* font); + RBFont* getFont(int id); + void setBackdrop(QString filename); void makeCustomUI(QString id); @@ -77,6 +81,7 @@ private: QMap<QString, RBViewport*> namedViewports; QMap<QString, RBImage*> images; QMap<QString, QString>* settings; + QMap<int, RBFont*> fonts; }; diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index edae4f0e3f..3696a661a8 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -592,6 +592,23 @@ void ParseTreeNode::render(const RBRenderInfo &info, RBViewport* viewport) break; + case 'F': + + switch(element->tag->name[1]) + { + + case 'l': + /* %Fl */ + x = element->params[0].data.numeric; + filename = info.settings()->value("themebase", "") + "/fonts/" + + element->params[1].data.text; + info.screen()->loadFont(x, new RBFont(filename)); + break; + + } + + break; + case 'V': switch(element->tag->name[1]) diff --git a/utils/themeeditor/themeeditor.pro b/utils/themeeditor/themeeditor.pro index d98e61febd..05d117aa32 100644 --- a/utils/themeeditor/themeeditor.pro +++ b/utils/themeeditor/themeeditor.pro @@ -38,7 +38,8 @@ HEADERS += models/parsetreemodel.h \ graphics/rbscreen.h \ graphics/rbviewport.h \ graphics/rbrenderinfo.h \ - graphics/rbimage.h + graphics/rbimage.h \ + graphics/rbfont.h SOURCES += main.cpp \ models/parsetreemodel.cpp \ models/parsetreenode.cpp \ @@ -53,7 +54,8 @@ SOURCES += main.cpp \ graphics/rbscreen.cpp \ graphics/rbviewport.cpp \ graphics/rbrenderinfo.cpp \ - graphics/rbimage.cpp + graphics/rbimage.cpp \ + graphics/rbfont.cpp OTHER_FILES += README \ resources/windowicon.png \ resources/appicon.xcf \ |