aboutsummaryrefslogtreecommitdiff
path: root/lib/gui/statusbar.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:35:43 +0000
committerFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:35:43 +0000
commitfc2f5b2cd655f1391f2abda1b39e37cdec98a951 (patch)
tree312efcea86a319de407a7c314fb981fb1c71019a /lib/gui/statusbar.cpp
downloadenigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.tar.gz
enigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.zip
Initial revision
Diffstat (limited to 'lib/gui/statusbar.cpp')
-rw-r--r--lib/gui/statusbar.cpp83
1 files changed, 83 insertions, 0 deletions
diff --git a/lib/gui/statusbar.cpp b/lib/gui/statusbar.cpp
new file mode 100644
index 00000000..797c0a3b
--- /dev/null
+++ b/lib/gui/statusbar.cpp
@@ -0,0 +1,83 @@
+#include <lib/gui/statusbar.h>
+
+#include <lib/base/init.h>
+#include <lib/base/init_num.h>
+#include <lib/gui/eskin.h>
+#include <lib/gdi/font.h>
+
+eStatusBar::eStatusBar( eWidget* parent, const char *deco)
+ :eLabel(parent, 0, 0, deco), current(0)
+{
+ setFont( eSkin::getActive()->queryFont("eStatusBar") );
+ setForegroundColor ( eSkin::getActive()->queryColor("eStatusBar.foreground") );
+ setBackgroundColor ( eSkin::getActive()->queryColor("eStatusBar.background") );
+ eLabel::setFlags( RS_FADE );
+ initialize();
+}
+
+
+void eStatusBar::initialize()
+{
+ if ( parent )
+ {
+ if ( flags & flagOwnerDraw )
+ {
+ if ( conn.connected() )
+ conn.disconnect();
+ }
+ else
+ conn = CONNECT( parent->focusChanged, eStatusBar::update );
+ }
+}
+
+void eStatusBar::update( const eWidget* p )
+{
+ if (p)
+ {
+ current = p;
+ setText( current->getHelpText() );
+ }
+}
+
+void eStatusBar::setFlags( int fl )
+{
+ if( fl == flagOwnerDraw )
+ {
+ flags = fl;
+ initialize();
+ }
+ else
+ eLabel::setFlags(fl);
+}
+
+int eStatusBar::setProperty(const eString &prop, const eString &value)
+{
+ if (prop=="ownerDraw")
+ flags |= flagOwnerDraw;
+ else
+ return eLabel::setProperty(prop, value);
+
+ initialize();
+
+ return 0;
+}
+
+static eWidget *create_eStatusBar(eWidget *parent)
+{
+ return new eStatusBar(parent);
+}
+
+class eStatusBarSkinInit
+{
+public:
+ eStatusBarSkinInit()
+ {
+ eSkin::addWidgetCreator("eStatusBar", create_eStatusBar);
+ }
+ ~eStatusBarSkinInit()
+ {
+ eSkin::removeWidgetCreator("eStatusBar", create_eStatusBar);
+ }
+};
+
+eAutoInitP0<eStatusBarSkinInit> init_eStatusBarSkinInit(eAutoInitNumbers::guiobject, "eStatusBar");