X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/64e44eef78c26d1d6d5a1662ad1d105fb96e9061..5f8f37a21fa5a6880802e2def55b38e25444365e:/lib/python/Components/ConditionalWidget.py diff --git a/lib/python/Components/ConditionalWidget.py b/lib/python/Components/ConditionalWidget.py index 5ff77980..07d59e02 100644 --- a/lib/python/Components/ConditionalWidget.py +++ b/lib/python/Components/ConditionalWidget.py @@ -4,17 +4,13 @@ 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) + if self.state == self.HIDDEN: + self.instance.hide() def GUIdelete(self): self.removeWidget(self.instance) @@ -23,17 +19,9 @@ class Widget(GUIComponent): 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 move(self, x, y): + self.instance.move(ePoint(int(x), int(y))) - def removeWidget(self, instance): - pass - class ConditionalWidget(Widget): def __init__(self, withTimer = True): Widget.__init__(self) @@ -50,18 +38,63 @@ class ConditionalWidget(Widget): def activateCondition(self, condition): if (condition): - if (self.state == self.HIDDEN): - self.showWidget() + if self.state == self.HIDDEN: + self.show() else: - if (self.state == self.SHOWN): - self.hideWidget() + if self.state == self.SHOWN: + self.hide() def update(self): if (self.conditionalFunction != None): try: self.conditionalFunction() # check, if the conditionalfunction is still valid + self.activateCondition(self.conditionalFunction()) except: self.conditionalFunction = None self.activateCondition(False) - self.activateCondition(self.conditionalFunction()) +import time + +class BlinkingWidget(Widget): + def __init__(self): + Widget.__init__(self) + + self.blinking = True + + self.setBlinkTime(500) + + self.timer = eTimer() + self.timer.timeout.get().append(self.blink) + + def setBlinkTime(self, time): + self.blinktime = time + + def blink(self): + if self.blinking == True: + if self.state == self.SHOWN: + self.hide() + elif self.state == self.HIDDEN: + self.show() + + def startBlinking(self): + self.blinking = True + self.timer.start(self.blinktime) + + def stopBlinking(self): + self.blinking = False + if self.state == self.SHOWN: + self.hide() + self.timer.stop() + +class BlinkingWidgetConditional(BlinkingWidget, ConditionalWidget): + def __init__(self): + BlinkingWidget.__init__(self) + ConditionalWidget.__init__(self) + + def activateCondition(self, condition): + if (condition): + if not self.blinking: # we are already blinking + self.startBlinking() + else: + if self.blinking: # we are blinking + self.stopBlinking()