From fc2f5b2cd655f1391f2abda1b39e37cdec98a951 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Fri, 17 Oct 2003 15:35:43 +0000 Subject: Initial revision --- lib/gui/statusbar.cpp | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 lib/gui/statusbar.cpp (limited to 'lib/gui/statusbar.cpp') 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 + +#include +#include +#include +#include + +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 init_eStatusBarSkinInit(eAutoInitNumbers::guiobject, "eStatusBar"); -- cgit v1.2.3