diff options
| author | Robert Bieber <robby@bieberphoto.com> | 2010-08-04 09:16:52 +0000 |
|---|---|---|
| committer | Robert Bieber <robby@bieberphoto.com> | 2010-08-04 09:16:52 +0000 |
| commit | 49865b23f601e636c9a80b21826fc607f1964eb5 (patch) | |
| tree | eb7959fd8aa5c572842e8d295440348cb17fc3cf /utils/themeeditor/graphics/rbviewport.cpp | |
| parent | 2db08d41536b875f35b055f8e0bb3845b47a7ba3 (diff) | |
| download | rockbox-49865b23f601e636c9a80b21826fc607f1964eb5.zip rockbox-49865b23f601e636c9a80b21826fc607f1964eb5.tar.gz rockbox-49865b23f601e636c9a80b21826fc607f1964eb5.tar.bz2 rockbox-49865b23f601e636c9a80b21826fc607f1964eb5.tar.xz | |
Theme Editor: Began implementing code generation for movable viewports
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27691 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/graphics/rbviewport.cpp')
| -rw-r--r-- | utils/themeeditor/graphics/rbviewport.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp index fe17ebb..33749fd 100644 --- a/utils/themeeditor/graphics/rbviewport.cpp +++ b/utils/themeeditor/graphics/rbviewport.cpp @@ -34,16 +34,19 @@ #include "parsetreemodel.h" #include "tag_table.h" #include "skin_parser.h" +#include "skindocument.h" /* Pixels/second of text scrolling */ const double RBViewport::scrollRate = 30; -RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) +RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info, + ParseTreeNode* pNode) : RBMovable(info.screen()), foreground(info.screen()->foreground()), background(info.screen()->background()), textOffset(0,0), screen(info.screen()), textAlign(Left), showStatusBar(false), statusBarTexture(":/render/statusbar.png"), - leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0) + leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0), + node(pNode), doc(info.document()) { setFlags(ItemIsSelectable | ItemIsMovable | ItemSendsGeometryChanges); @@ -67,7 +70,6 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) } else { - int param = 0; QString ident; int x,y,w,h; /* Rendering one of the other types of viewport */ @@ -75,7 +77,7 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) { case '\0': customUI = false; - param = 0; + baseParam= 0; break; case 'l': @@ -85,13 +87,13 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) if(!screen->viewPortDisplayed(ident)) hide(); info.screen()->loadViewport(ident, this); - param = 1; + baseParam= 1; break; case 'i': /* Custom UI Viewport */ customUI = true; - param = 1; + baseParam= 1; if(node->params[0].type == skin_tag_parameter::DEFAULT) { setVisible(true); @@ -104,6 +106,7 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) break; } /* Now we grab the info common to all viewports */ + int param = baseParam; x = node->params[param++].data.number; if(x < 0) x = info.screen()->boundingRect().right() + x; @@ -301,7 +304,15 @@ void RBViewport::showPlaylist(const RBRenderInfo &info, int start, void RBViewport::saveGeometry() { + QRectF bounds = boundingRect(); + QPointF origin = pos(); + node->modParam(static_cast<int>(origin.x()), baseParam); + node->modParam(static_cast<int>(origin.y()), baseParam + 1); + node->modParam(static_cast<int>(bounds.width()), baseParam + 2); + node->modParam(static_cast<int>(bounds.height()), baseParam + 3); + + doc->genCode(); } void RBViewport::alignLeft() |