forked from len0rd/rockbox
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
This commit is contained in:
parent
9bb36b0c8e
commit
1423874007
5 changed files with 131 additions and 2 deletions
58
utils/themeeditor/graphics/rbtoucharea.cpp
Normal file
58
utils/themeeditor/graphics/rbtoucharea.cpp
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* __________ __ ___.
|
||||||
|
* 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 "rbtoucharea.h"
|
||||||
|
#include "rbscreen.h"
|
||||||
|
#include "devicestate.h"
|
||||||
|
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
|
RBTouchArea::RBTouchArea(int width, int height, QString action,
|
||||||
|
const RBRenderInfo& info)
|
||||||
|
: QGraphicsItem(info.screen()),
|
||||||
|
size(QRectF(0, 0, width, height)), action(action)
|
||||||
|
{
|
||||||
|
debug = info.device()->data("showtouch").toBool();
|
||||||
|
setZValue(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
RBTouchArea::~RBTouchArea()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QRectF RBTouchArea::boundingRect() const
|
||||||
|
{
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RBTouchArea::paint(QPainter *painter,
|
||||||
|
const QStyleOptionGraphicsItem *option,
|
||||||
|
QWidget *widget)
|
||||||
|
{
|
||||||
|
if(debug)
|
||||||
|
{
|
||||||
|
QColor fill = Qt::green;
|
||||||
|
fill.setAlpha(50);
|
||||||
|
painter->setBrush(fill);
|
||||||
|
painter->setPen(Qt::NoPen);
|
||||||
|
painter->drawRect(size);
|
||||||
|
}
|
||||||
|
}
|
48
utils/themeeditor/graphics/rbtoucharea.h
Normal file
48
utils/themeeditor/graphics/rbtoucharea.h
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* __________ __ ___.
|
||||||
|
* 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 RBTOUCHAREA_H
|
||||||
|
#define RBTOUCHAREA_H
|
||||||
|
|
||||||
|
#include <QGraphicsItem>
|
||||||
|
|
||||||
|
#include "rbrenderinfo.h"
|
||||||
|
|
||||||
|
class RBTouchArea : public QGraphicsItem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
RBTouchArea(int width, int height, QString action,
|
||||||
|
const RBRenderInfo& info);
|
||||||
|
virtual ~RBTouchArea();
|
||||||
|
|
||||||
|
QRectF boundingRect() const;
|
||||||
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
|
QWidget *widget);
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
QRectF size;
|
||||||
|
QString action;
|
||||||
|
RBScreen* screen;
|
||||||
|
bool debug;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // RBTOUCHAREA_H
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
#include "rbimage.h"
|
#include "rbimage.h"
|
||||||
#include "rbprogressbar.h"
|
#include "rbprogressbar.h"
|
||||||
|
#include "rbtoucharea.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
@ -803,6 +804,25 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
case 'T':
|
||||||
|
switch(element->tag->name[1])
|
||||||
|
{
|
||||||
|
case '\0':
|
||||||
|
/* %T */
|
||||||
|
if(element->params_count < 5)
|
||||||
|
return false;
|
||||||
|
int x = element->params[0].data.numeric;
|
||||||
|
int y = element->params[1].data.numeric;
|
||||||
|
int width = element->params[2].data.numeric;
|
||||||
|
int height = element->params[3].data.numeric;
|
||||||
|
QString action(element->params[4].data.text);
|
||||||
|
RBTouchArea* temp = new RBTouchArea(width, height, action, info);
|
||||||
|
temp->setPos(x, y);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
|
|
||||||
switch(element->tag->name[1])
|
switch(element->tag->name[1])
|
||||||
|
|
|
@ -37,6 +37,7 @@ remotewidth ; Remote Width ; spin(0,800) ; 100
|
||||||
remoteheight ; Remote Height ; spin(0,800); 50
|
remoteheight ; Remote Height ; spin(0,800); 50
|
||||||
simtime ; Simulation Time ; fspin(0, 100000) ; 60.0
|
simtime ; Simulation Time ; fspin(0, 100000) ; 60.0
|
||||||
showviewports ; Show Viewports ; check ; false
|
showviewports ; Show Viewports ; check ; false
|
||||||
|
showtouch ; Show Touch Areas ; check ; true
|
||||||
rendersbs ; Render SBS If Available ; check ; true
|
rendersbs ; Render SBS If Available ; check ; true
|
||||||
rtl ; Right-To-Left Language ; check ; false
|
rtl ; Right-To-Left Language ; check ; false
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,8 @@ HEADERS += models/parsetreemodel.h \
|
||||||
graphics/rbtext.h \
|
graphics/rbtext.h \
|
||||||
graphics/rbfontcache.h \
|
graphics/rbfontcache.h \
|
||||||
graphics/rbtextcache.h \
|
graphics/rbtextcache.h \
|
||||||
gui/skintimer.h
|
gui/skintimer.h \
|
||||||
|
graphics/rbtoucharea.h
|
||||||
SOURCES += main.cpp \
|
SOURCES += main.cpp \
|
||||||
models/parsetreemodel.cpp \
|
models/parsetreemodel.cpp \
|
||||||
models/parsetreenode.cpp \
|
models/parsetreenode.cpp \
|
||||||
|
@ -77,7 +78,8 @@ SOURCES += main.cpp \
|
||||||
graphics/rbtext.cpp \
|
graphics/rbtext.cpp \
|
||||||
graphics/rbfontcache.cpp \
|
graphics/rbfontcache.cpp \
|
||||||
graphics/rbtextcache.cpp \
|
graphics/rbtextcache.cpp \
|
||||||
gui/skintimer.cpp
|
gui/skintimer.cpp \
|
||||||
|
graphics/rbtoucharea.cpp
|
||||||
OTHER_FILES += README \
|
OTHER_FILES += README \
|
||||||
resources/windowicon.png \
|
resources/windowicon.png \
|
||||||
resources/appicon.xcf \
|
resources/appicon.xcf \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue