From 64e44eef78c26d1d6d5a1662ad1d105fb96e9061 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Tue, 6 Dec 2005 18:35:55 +0000 Subject: factorize the conditionalPixmap --- lib/python/Components/ConditionalWidget.py | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 lib/python/Components/ConditionalWidget.py (limited to 'lib/python/Components/ConditionalWidget.py') diff --git a/lib/python/Components/ConditionalWidget.py b/lib/python/Components/ConditionalWidget.py new file mode 100644 index 00000000..5ff77980 --- /dev/null +++ b/lib/python/Components/ConditionalWidget.py @@ -0,0 +1,67 @@ +import skin +from GUIComponent import * + +from enigma import * + +class Widget(GUIComponent): + + SHOWN = 0 + HIDDEN = 1 + + def __init__(self): + GUIComponent.__init__(self) + self.instance = None + self.state = self.SHOWN + + def GUIcreate(self, parent): + self.instance = self.createWidget(parent) + + def GUIdelete(self): + self.removeWidget(self.instance) + self.instance = None + + def removeWidget(self, w): + pass + + def showWidget(self): + self.state = self.SHOWN + self.instance.show() + + def hideWidget(self): + self.state = self.HIDDEN + self.instance.hide() + + def removeWidget(self, instance): + pass + +class ConditionalWidget(Widget): + def __init__(self, withTimer = True): + Widget.__init__(self) + + self.setConnect(None) + + if (withTimer): + self.conditionCheckTimer = eTimer() + self.conditionCheckTimer.timeout.get().append(self.update) + self.conditionCheckTimer.start(1000) + + def setConnect(self, conditionalFunction): + self.conditionalFunction = conditionalFunction + + def activateCondition(self, condition): + if (condition): + if (self.state == self.HIDDEN): + self.showWidget() + else: + if (self.state == self.SHOWN): + self.hideWidget() + + def update(self): + if (self.conditionalFunction != None): + try: + self.conditionalFunction() # check, if the conditionalfunction is still valid + except: + self.conditionalFunction = None + self.activateCondition(False) + + self.activateCondition(self.conditionalFunction()) -- cgit v1.2.3