X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4ae10f76135d53a4285fd458a87f485695c9fbd7..8138d67d47307c7e438166b9c9cac5992e4929a5:/lib/python/Components/Pixmap.py diff --git a/lib/python/Components/Pixmap.py b/lib/python/Components/Pixmap.py index b6620d9a..48eec237 100644 --- a/lib/python/Components/Pixmap.py +++ b/lib/python/Components/Pixmap.py @@ -1,12 +1,18 @@ import skin +from GUIComponent import * from enigma import * -class Pixmap: +class Pixmap(GUIComponent): """Pixmap can be used for components which diplay a pixmap""" + 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) @@ -20,5 +26,53 @@ class Pixmap: #pixmap.setPixmapFromFile(self.filename) return ePixmap(parent) + def createWidget(self, parent): + return self.getePixmap(parent) + + def removeWidget(self, w): + pass + + def showPixmap(self): + print "Show pixmap" + self.state = self.SHOWN + self.instance.show() + + def hidePixmap(self): + print "Hide pixmap" + self.state = self.HIDDEN + self.instance.hide() + def removeWidget(self, instance): pass + +class PixmapConditional(Pixmap): + def __init__(self, withTimer = True): + Pixmap.__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.showPixmap() + else: + if (self.state == self.SHOWN): + self.hidePixmap() + + 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())