diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2003-10-17 15:35:43 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2003-10-17 15:35:43 +0000 |
| commit | fc2f5b2cd655f1391f2abda1b39e37cdec98a951 (patch) | |
| tree | 312efcea86a319de407a7c314fb981fb1c71019a /lib/gui/statusbar.cpp | |
| download | enigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.tar.gz enigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.zip | |
Initial revision
Diffstat (limited to 'lib/gui/statusbar.cpp')
| -rw-r--r-- | lib/gui/statusbar.cpp | 83 |
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"); |
