X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e330dbae62e83dd2aa2ff63a984519a84b23c3ad..2821b9ed4e733b3e5d6438d501d0997e0711eb59:/lib/python/Components/Pixmap.py?ds=sidebyside diff --git a/lib/python/Components/Pixmap.py b/lib/python/Components/Pixmap.py index c97c0ab1..8f59880b 100644 --- a/lib/python/Components/Pixmap.py +++ b/lib/python/Components/Pixmap.py @@ -1,25 +1,76 @@ import skin +from GUIComponent import * from enigma import * -class Pixmap: - """Pixmap can be used for components which use a 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) - #self.instance.setText(self.message) def GUIdelete(self): self.removeWidget(self.instance) self.instance = None - def getePixmap(self, parent, filename): - pixmap = ePixmap(parent) - pixmap.setPixmapFromFile(filename) - return pixmap + def getePixmap(self, parent): + #pixmap = ePixmap(parent) + #pixmap.setPixmapFromFile(self.filename) + return ePixmap(parent) + + def createWidget(self, parent): + return self.getePixmap(parent) + + def removeWidget(self, w): + pass + + def showPixmap(self): + self.state = self.SHOWN + self.instance.show() + + def hidePixmap(self): + 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())