summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-07-10 06:43:50 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-07-10 06:43:50 +0000
commit14238740074945d8f61e445c5d6211e1c7a50566 (patch)
tree51414e1d00751020d4975c14b607a603a1dc3379 /utils
parent9bb36b0c8efb27dc7c4932d1d7643d50a4b8a2f9 (diff)
downloadrockbox-14238740074945d8f61e445c5d6211e1c7a50566.tar.gz
rockbox-14238740074945d8f61e445c5d6211e1c7a50566.zip
Theme Editor: Added RBTouchArea class. Touch areas on a theme can now be displayed, but they're not clickable yet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27369 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils')
-rw-r--r--utils/themeeditor/graphics/rbtoucharea.cpp58
-rw-r--r--utils/themeeditor/graphics/rbtoucharea.h48
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp20
-rw-r--r--utils/themeeditor/resources/deviceoptions1
-rw-r--r--utils/themeeditor/themeeditor.pro6
5 files changed, 131 insertions, 2 deletions
diff --git a/utils/themeeditor/graphics/rbtoucharea.cpp b/utils/themeeditor/graphics/rbtoucharea.cpp
new file mode 100644
index 0000000000..20d30d813f
--- /dev/null
+++ b/utils/themeeditor/graphics/rbtoucharea.cpp
@@ -0,0 +1,58 @@
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 "rbtoucharea.h"
23#include "rbscreen.h"
24#include "devicestate.h"
25
26#include <QPainter>
27
28RBTouchArea::RBTouchArea(int width, int height, QString action,
29 const RBRenderInfo& info)
30 : QGraphicsItem(info.screen()),
31 size(QRectF(0, 0, width, height)), action(action)
32{
33 debug = info.device()->data("showtouch").toBool();
34 setZValue(5);
35}
36
37RBTouchArea::~RBTouchArea()
38{
39}
40
41QRectF RBTouchArea::boundingRect() const
42{
43 return size;
44}
45
46void RBTouchArea::paint(QPainter *painter,
47 const QStyleOptionGraphicsItem *option,
48 QWidget *widget)
49{
50 if(debug)
51 {
52 QColor fill = Qt::green;
53 fill.setAlpha(50);
54 painter->setBrush(fill);
55 painter->setPen(Qt::NoPen);
56 painter->drawRect(size);
57 }
58}
diff --git a/utils/themeeditor/graphics/rbtoucharea.h b/utils/themeeditor/graphics/rbtoucharea.h
new file mode 100644
index 0000000000..eb25d83261
--- /dev/null
+++ b/utils/themeeditor/graphics/rbtoucharea.h
@@ -0,0 +1,48 @@
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 RBTOUCHAREA_H
23#define RBTOUCHAREA_H
24
25#include <QGraphicsItem>
26
27#include "rbrenderinfo.h"
28
29class RBTouchArea : public QGraphicsItem
30{
31public:
32 RBTouchArea(int width, int height, QString action,
33 const RBRenderInfo& info);
34 virtual ~RBTouchArea();
35
36 QRectF boundingRect() const;
37 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
38 QWidget *widget);
39
40
41private:
42 QRectF size;
43 QString action;
44 RBScreen* screen;
45 bool debug;
46};
47
48#endif // RBTOUCHAREA_H
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index 3ccf6c0063..973ceb598b 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -27,6 +27,7 @@
27 27
28#include "rbimage.h" 28#include "rbimage.h"
29#include "rbprogressbar.h" 29#include "rbprogressbar.h"
30#include "rbtoucharea.h"
30 31
31#include <iostream> 32#include <iostream>
32#include <cmath> 33#include <cmath>
@@ -803,6 +804,25 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
803 804
804 return false; 805 return false;
805 806
807 case 'T':
808 switch(element->tag->name[1])
809 {
810 case '\0':
811 /* %T */
812 if(element->params_count < 5)
813 return false;
814 int x = element->params[0].data.numeric;
815 int y = element->params[1].data.numeric;
816 int width = element->params[2].data.numeric;
817 int height = element->params[3].data.numeric;
818 QString action(element->params[4].data.text);
819 RBTouchArea* temp = new RBTouchArea(width, height, action, info);
820 temp->setPos(x, y);
821 return true;
822 }
823
824 return false;
825
806 case 'V': 826 case 'V':
807 827
808 switch(element->tag->name[1]) 828 switch(element->tag->name[1])
diff --git a/utils/themeeditor/resources/deviceoptions b/utils/themeeditor/resources/deviceoptions
index 3d1a92cfa8..771229a453 100644
--- a/utils/themeeditor/resources/deviceoptions
+++ b/utils/themeeditor/resources/deviceoptions
@@ -37,6 +37,7 @@ remotewidth ; Remote Width ; spin(0,800) ; 100
37remoteheight ; Remote Height ; spin(0,800); 50 37remoteheight ; Remote Height ; spin(0,800); 50
38simtime ; Simulation Time ; fspin(0, 100000) ; 60.0 38simtime ; Simulation Time ; fspin(0, 100000) ; 60.0
39showviewports ; Show Viewports ; check ; false 39showviewports ; Show Viewports ; check ; false
40showtouch ; Show Touch Areas ; check ; true
40rendersbs ; Render SBS If Available ; check ; true 41rendersbs ; Render SBS If Available ; check ; true
41rtl ; Right-To-Left Language ; check ; false 42rtl ; Right-To-Left Language ; check ; false
42 43
diff --git a/utils/themeeditor/themeeditor.pro b/utils/themeeditor/themeeditor.pro
index 49e1be953a..0805890db1 100644
--- a/utils/themeeditor/themeeditor.pro
+++ b/utils/themeeditor/themeeditor.pro
@@ -53,7 +53,8 @@ HEADERS += models/parsetreemodel.h \
53 graphics/rbtext.h \ 53 graphics/rbtext.h \
54 graphics/rbfontcache.h \ 54 graphics/rbfontcache.h \
55 graphics/rbtextcache.h \ 55 graphics/rbtextcache.h \
56 gui/skintimer.h 56 gui/skintimer.h \
57 graphics/rbtoucharea.h
57SOURCES += main.cpp \ 58SOURCES += main.cpp \
58 models/parsetreemodel.cpp \ 59 models/parsetreemodel.cpp \
59 models/parsetreenode.cpp \ 60 models/parsetreenode.cpp \
@@ -77,7 +78,8 @@ SOURCES += main.cpp \
77 graphics/rbtext.cpp \ 78 graphics/rbtext.cpp \
78 graphics/rbfontcache.cpp \ 79 graphics/rbfontcache.cpp \
79 graphics/rbtextcache.cpp \ 80 graphics/rbtextcache.cpp \
80 gui/skintimer.cpp 81 gui/skintimer.cpp \
82 graphics/rbtoucharea.cpp
81OTHER_FILES += README \ 83OTHER_FILES += README \
82 resources/windowicon.png \ 84 resources/windowicon.png \
83 resources/appicon.xcf \ 85 resources/appicon.xcf \