diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-12-06 18:35:55 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-12-06 18:35:55 +0000 |
| commit | 64e44eef78c26d1d6d5a1662ad1d105fb96e9061 (patch) | |
| tree | 43ba547520b2345b3ecbed2317948858dd832351 /lib/python/Components/ConditionalWidget.py | |
| parent | 86e9af6a8a52226e0dc08430fb4b03291f9de0c7 (diff) | |
| download | enigma2-64e44eef78c26d1d6d5a1662ad1d105fb96e9061.tar.gz enigma2-64e44eef78c26d1d6d5a1662ad1d105fb96e9061.zip | |
factorize the conditionalPixmap
Diffstat (limited to 'lib/python/Components/ConditionalWidget.py')
| -rw-r--r-- | lib/python/Components/ConditionalWidget.py | 67 |
1 files changed, 67 insertions, 0 deletions
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()) |
