diff options
| author | Robert Bieber <robby@bieberphoto.com> | 2010-08-12 23:05:53 +0000 |
|---|---|---|
| committer | Robert Bieber <robby@bieberphoto.com> | 2010-08-12 23:05:53 +0000 |
| commit | 1ee2cddf1a64f62a57af6e10a95f0f9642027d7f (patch) | |
| tree | 52178122b118b0d874acec49c9da1d9675790a81 /utils/themeeditor/graphics/rbviewport.cpp | |
| parent | 4bca51b5b772171ef39c21b7a5913bf9852d60b1 (diff) | |
| download | rockbox-1ee2cddf1a64f62a57af6e10a95f0f9642027d7f.zip rockbox-1ee2cddf1a64f62a57af6e10a95f0f9642027d7f.tar.gz rockbox-1ee2cddf1a64f62a57af6e10a95f0f9642027d7f.tar.bz2 rockbox-1ee2cddf1a64f62a57af6e10a95f0f9642027d7f.tar.xz | |
Theme Editor: Implemented some basic viewport/text mirroring with the %ax tag
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27795 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/graphics/rbviewport.cpp')
| -rw-r--r-- | utils/themeeditor/graphics/rbviewport.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp index a986127..5cac806 100644 --- a/utils/themeeditor/graphics/rbviewport.cpp +++ b/utils/themeeditor/graphics/rbviewport.cpp @@ -48,6 +48,9 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info, leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0), node(pNode), doc(info.document()) { + mirrored = info.screen()->isRtlMirrored() + && info.device()->data("rtl").toBool(); + if(!node->tag) { /* Default viewport takes up the entire screen */ @@ -147,6 +150,12 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info, y -= screen->parentItem()->pos().y(); } + /* Mirroring if necessary */ + if(mirrored) + { + x = parentItem()->boundingRect().width() - w - x; + } + if(node->params[++param].type == skin_tag_parameter::DEFAULT) font = screen->getFont(1); else @@ -226,15 +235,21 @@ void RBViewport::write(QString text) if(textOffset.x() < 0) return; - if(textAlign == Left) + Alignment align = textAlign; + if(mirrored && align == Left) + align = Right; + else if(mirrored && align == Right) + align = Left; + + if(align == Left) { leftText.append(text); } - else if(textAlign == Center) + else if(align == Center) { centerText.append(text); } - else if(textAlign == Right) + else if(align == Right) { rightText.append(text); } |