Theme Editor: Implemented status bar enable/disable

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27200 a1c6a512-1295-4272-9138-f99709370657
diff --git a/utils/themeeditor/graphics/rbscreen.cpp b/utils/themeeditor/graphics/rbscreen.cpp
index 924a374..cb69afd 100644
--- a/utils/themeeditor/graphics/rbscreen.cpp
+++ b/utils/themeeditor/graphics/rbscreen.cpp
@@ -29,7 +29,8 @@
 RBScreen::RBScreen(const RBRenderInfo& info, bool remote,
                    QGraphicsItem *parent)
                        :QGraphicsItem(parent), backdrop(0), project(project),
-                       albumArt(0)
+                       albumArt(0), defaultStatusBar(true),
+                       statusBarTexture(":/render/statusbar.png")
 {
 
     if(remote)
@@ -116,6 +117,9 @@
     {
         painter->fillRect(0, 0, width, height, bgColor);
     }
+
+    if(defaultStatusBar)
+        painter->fillRect(QRectF(0, 0, width, 8), statusBarTexture);
 }
 
 void RBScreen::loadViewport(QString name, RBViewport *view)
diff --git a/utils/themeeditor/graphics/rbscreen.h b/utils/themeeditor/graphics/rbscreen.h
index 358a49e..58788d4 100644
--- a/utils/themeeditor/graphics/rbscreen.h
+++ b/utils/themeeditor/graphics/rbscreen.h
@@ -83,6 +83,8 @@
         }
     }
 
+    void disableStatusBar(){ defaultStatusBar = false; }
+    void enableStatusBar(){ defaultStatusBar = true; }
 
 private:
     int width;
@@ -102,6 +104,9 @@
 
     RBAlbumArt* albumArt;
 
+    bool defaultStatusBar;
+    QPixmap statusBarTexture;
+
 };
 
 #endif // RBSCREEN_H
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp
index 22b2ada..4b85a30 100644
--- a/utils/themeeditor/graphics/rbviewport.cpp
+++ b/utils/themeeditor/graphics/rbviewport.cpp
@@ -33,7 +33,8 @@
     : QGraphicsItem(info.screen()), font(info.screen()->getFont(0)),
     foreground(info.screen()->foreground()),
     background(info.screen()->background()), textOffset(0,0),
-    screen(info.screen()), textAlign(Left)
+    screen(info.screen()), textAlign(Left), showStatusBar(false),
+    statusBarTexture(":/render/statusbar.png")
 {
     if(!node->tag)
     {
@@ -140,6 +141,9 @@
     painter->setPen(customUI ? Qt::blue : Qt::red);
     if(debug)
         painter->drawRect(size);
+
+    if(showStatusBar)
+        painter->fillRect(QRectF(0, 0, size.width(), 8), statusBarTexture);
 }
 
 void RBViewport::newLine()
diff --git a/utils/themeeditor/graphics/rbviewport.h b/utils/themeeditor/graphics/rbviewport.h
index 1d65eb8..2aff315 100644
--- a/utils/themeeditor/graphics/rbviewport.h
+++ b/utils/themeeditor/graphics/rbviewport.h
@@ -57,6 +57,8 @@
     void write(QString text);
     void alignText(Alignment align){ textAlign = align; }
 
+    void enableStatusBar(){ showStatusBar = true; }
+
 private:
 
     void alignLeft();
@@ -79,6 +81,9 @@
     QList<QGraphicsItem*> centerText;
     QList<QGraphicsItem*> rightText;
     Alignment textAlign;
+
+    bool showStatusBar;
+    QPixmap statusBarTexture;
 };
 
 #endif // RBVIEWPORT_H
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index 3b334a6..300d519 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -611,6 +611,25 @@
 
         return false;
 
+    case 'w':
+        switch(element->tag->name[1])
+        {
+        case 'd':
+            info.screen()->disableStatusBar();
+            return true;
+
+        case 'e':
+            info.screen()->enableStatusBar();
+            return true;
+
+        case 'i':
+            info.screen()->disableStatusBar();
+            viewport->enableStatusBar();
+            return true;
+        }
+
+        return false;
+
     case 'x':
         switch(element->tag->name[1])
         {
diff --git a/utils/themeeditor/resources.qrc b/utils/themeeditor/resources.qrc
index a1c545b..ad892d7 100644
--- a/utils/themeeditor/resources.qrc
+++ b/utils/themeeditor/resources.qrc
@@ -13,5 +13,6 @@
     <qresource prefix="/render">
         <file alias="scenebg.png">resources/render/scenebg.png</file>
         <file alias="albumart.png">resources/render/albumart.png</file>
+        <file alias="statusbar.png">resources/render/statusbar.png</file>
     </qresource>
 </RCC>
diff --git a/utils/themeeditor/resources/render/statusbar.png b/utils/themeeditor/resources/render/statusbar.png
new file mode 100644
index 0000000..06307b7
--- /dev/null
+++ b/utils/themeeditor/resources/render/statusbar.png
Binary files differ
diff --git a/utils/themeeditor/themeeditor.pro b/utils/themeeditor/themeeditor.pro
index a46c40b..1e66faf 100644
--- a/utils/themeeditor/themeeditor.pro
+++ b/utils/themeeditor/themeeditor.pro
@@ -72,7 +72,9 @@
     resources/document-save.png \
     resources/document-open.png \
     resources/document-new.png \
-    resources/deviceoptions
+    resources/deviceoptions \
+    resources/render/statusbar.png \
+    resources/render/scenebg.png
 FORMS += gui/editorwindow.ui \
     gui/preferencesdialog.ui \
     gui/configdocument.ui \