diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-08-03 22:29:26 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-08-03 22:29:26 +0000 |
commit | 83c60a1012f2db6c21c5779f7e11b2f3e479df85 (patch) | |
tree | c4ceb451457fe34cd0df156d0b9a6ecc593496ac /utils/themeeditor/graphics/rbviewport.cpp | |
parent | 851be21f671feb0bf41e1dcaaced4d7e2e5cf72c (diff) | |
download | rockbox-83c60a1012f2db6c21c5779f7e11b2f3e479df85.tar.gz rockbox-83c60a1012f2db6c21c5779f7e11b2f3e479df85.zip |
Theme Editor: Created the RBMovable abstract class for screen elements that can be moved around, began implementing it and making images, viewports, and album art children of it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27685 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, 4 insertions, 17 deletions
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp index f7b1bc4ca2..fe17ebbeef 100644 --- a/utils/themeeditor/graphics/rbviewport.cpp +++ b/utils/themeeditor/graphics/rbviewport.cpp | |||
@@ -39,7 +39,7 @@ | |||
39 | const double RBViewport::scrollRate = 30; | 39 | const double RBViewport::scrollRate = 30; |
40 | 40 | ||
41 | RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) | 41 | RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info) |
42 | : QGraphicsItem(info.screen()), foreground(info.screen()->foreground()), | 42 | : RBMovable(info.screen()), foreground(info.screen()->foreground()), |
43 | background(info.screen()->background()), textOffset(0,0), | 43 | background(info.screen()->background()), textOffset(0,0), |
44 | screen(info.screen()), textAlign(Left), showStatusBar(false), | 44 | screen(info.screen()), textAlign(Left), showStatusBar(false), |
45 | statusBarTexture(":/render/statusbar.png"), | 45 | statusBarTexture(":/render/statusbar.png"), |
@@ -178,6 +178,8 @@ void RBViewport::paint(QPainter *painter, | |||
178 | 178 | ||
179 | if(showStatusBar) | 179 | if(showStatusBar) |
180 | painter->fillRect(QRectF(0, 0, size.width(), 8), statusBarTexture); | 180 | painter->fillRect(QRectF(0, 0, size.width(), 8), statusBarTexture); |
181 | |||
182 | RBMovable::paint(painter, option, widget); | ||
181 | } | 183 | } |
182 | 184 | ||
183 | void RBViewport::newLine() | 185 | void RBViewport::newLine() |
@@ -297,24 +299,9 @@ void RBViewport::showPlaylist(const RBRenderInfo &info, int start, | |||
297 | } | 299 | } |
298 | } | 300 | } |
299 | 301 | ||
300 | QVariant RBViewport::itemChange(GraphicsItemChange change, | 302 | void RBViewport::saveGeometry() |
301 | const QVariant &value) | ||
302 | { | 303 | { |
303 | if(change == ItemPositionChange) | ||
304 | { | ||
305 | QPointF pos = value.toPointF(); | ||
306 | QRectF bound = parentItem()->boundingRect(); | ||
307 | |||
308 | pos.setX(qMax(0., pos.x())); | ||
309 | pos.setX(qMin(pos.x(), bound.width() - boundingRect().width())); | ||
310 | |||
311 | pos.setY(qMax(0., pos.y())); | ||
312 | pos.setY(qMin(pos.y(), bound.height() - boundingRect().height())); | ||
313 | |||
314 | return pos; | ||
315 | } | ||
316 | 304 | ||
317 | return QGraphicsItem::itemChange(change, value); | ||
318 | } | 305 | } |
319 | 306 | ||
320 | void RBViewport::alignLeft() | 307 | void RBViewport::alignLeft() |