summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-06-23 20:18:31 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-06-23 20:18:31 +0000
commit6d6156603cf2ac5facf08734f12e0b4d0c1fcce0 (patch)
tree25340c9fdac15f4bf88d7f6e5bd935d1f1934211
parent168eba1aecddc21231d922608380fe811a8a0473 (diff)
downloadrockbox-6d6156603cf2ac5facf08734f12e0b4d0c1fcce0.tar.gz
rockbox-6d6156603cf2ac5facf08734f12e0b4d0c1fcce0.zip
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
-rw-r--r--utils/themeeditor/graphics/rbfont.cpp30
-rw-r--r--utils/themeeditor/graphics/rbfont.h38
-rw-r--r--utils/themeeditor/graphics/rbscreen.cpp22
-rw-r--r--utils/themeeditor/graphics/rbscreen.h5
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp17
-rw-r--r--utils/themeeditor/themeeditor.pro6
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 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2010 Robert Bieber
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22#include "rbfont.h"
23
24RBFont::RBFont(QString file): filename(file)
25{
26}
27
28RBFont::~RBFont()
29{
30}
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 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2010 Robert Bieber
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22#ifndef RBFONT_H
23#define RBFONT_H
24
25#include <QString>
26#include <QFile>
27
28class RBFont
29{
30public:
31 RBFont(QString file);
32 virtual ~RBFont();
33
34private:
35 QString filename;
36};
37
38#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()
67{ 67{
68 if(backdrop) 68 if(backdrop)
69 delete backdrop; 69 delete backdrop;
70
71 QMap<int, RBFont*>::iterator i;
72 for(i = fonts.begin(); i != fonts.end(); i++)
73 if(*i)
74 delete (*i);
70} 75}
71 76
72QPainterPath RBScreen::shape() const 77QPainterPath RBScreen::shape() const
@@ -103,6 +108,23 @@ void RBScreen::showViewport(QString name)
103 update(); 108 update();
104} 109}
105 110
111void RBScreen::loadFont(int id, RBFont* font)
112{
113 if(id < 2 || id > 9)
114 return;
115
116 fonts.insert(id, font);
117}
118
119RBFont* RBScreen::getFont(int id)
120{
121 if(fonts.value(id, 0) != 0)
122 return fonts.value(id);
123 else
124 return fonts.value(0, 0);
125}
126
127
106void RBScreen::setBackdrop(QString filename) 128void RBScreen::setBackdrop(QString filename)
107{ 129{
108 130
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 @@
27#include "projectmodel.h" 27#include "projectmodel.h"
28#include "rbrenderinfo.h" 28#include "rbrenderinfo.h"
29#include "rbimage.h" 29#include "rbimage.h"
30#include "rbfont.h"
30 31
31class RBViewport; 32class RBViewport;
32 33
@@ -58,6 +59,9 @@ public:
58 } 59 }
59 RBImage* getImage(QString name){ return images.value(name, 0); } 60 RBImage* getImage(QString name){ return images.value(name, 0); }
60 61
62 void loadFont(int id, RBFont* font);
63 RBFont* getFont(int id);
64
61 void setBackdrop(QString filename); 65 void setBackdrop(QString filename);
62 void makeCustomUI(QString id); 66 void makeCustomUI(QString id);
63 67
@@ -77,6 +81,7 @@ private:
77 QMap<QString, RBViewport*> namedViewports; 81 QMap<QString, RBViewport*> namedViewports;
78 QMap<QString, RBImage*> images; 82 QMap<QString, RBImage*> images;
79 QMap<QString, QString>* settings; 83 QMap<QString, QString>* settings;
84 QMap<int, RBFont*> fonts;
80 85
81}; 86};
82 87
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)
592 592
593 break; 593 break;
594 594
595 case 'F':
596
597 switch(element->tag->name[1])
598 {
599
600 case 'l':
601 /* %Fl */
602 x = element->params[0].data.numeric;
603 filename = info.settings()->value("themebase", "") + "/fonts/" +
604 element->params[1].data.text;
605 info.screen()->loadFont(x, new RBFont(filename));
606 break;
607
608 }
609
610 break;
611
595 case 'V': 612 case 'V':
596 613
597 switch(element->tag->name[1]) 614 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 \
38 graphics/rbscreen.h \ 38 graphics/rbscreen.h \
39 graphics/rbviewport.h \ 39 graphics/rbviewport.h \
40 graphics/rbrenderinfo.h \ 40 graphics/rbrenderinfo.h \
41 graphics/rbimage.h 41 graphics/rbimage.h \
42 graphics/rbfont.h
42SOURCES += main.cpp \ 43SOURCES += main.cpp \
43 models/parsetreemodel.cpp \ 44 models/parsetreemodel.cpp \
44 models/parsetreenode.cpp \ 45 models/parsetreenode.cpp \
@@ -53,7 +54,8 @@ SOURCES += main.cpp \
53 graphics/rbscreen.cpp \ 54 graphics/rbscreen.cpp \
54 graphics/rbviewport.cpp \ 55 graphics/rbviewport.cpp \
55 graphics/rbrenderinfo.cpp \ 56 graphics/rbrenderinfo.cpp \
56 graphics/rbimage.cpp 57 graphics/rbimage.cpp \
58 graphics/rbfont.cpp
57OTHER_FILES += README \ 59OTHER_FILES += README \
58 resources/windowicon.png \ 60 resources/windowicon.png \
59 resources/appicon.xcf \ 61 resources/appicon.xcf \