X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FConditionalWidget.py;h=391b887196f014bb33c5985f2dcd169487bc0f2c;hb=834bbf9162cfd90cd063e25aa45fc3c28fdee742;hp=8fb7c38935437d1d048f771ecfb894a89f7ae1ad;hpb=60fb5b95387fb30902240b92deed145720fa867a;p=vuplus_dvbapp diff --git a/lib/python/Components/ConditionalWidget.py b/lib/python/Components/ConditionalWidget.py index 8fb7c38..391b887 100644 --- a/lib/python/Components/ConditionalWidget.py +++ b/lib/python/Components/ConditionalWidget.py @@ -3,62 +3,74 @@ 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() - -class ConditionalWidget(Widget): +class ConditionalWidget(GUIComponent): def __init__(self, withTimer = True): - Widget.__init__(self) + GUIComponent.__init__(self) self.setConnect(None) if (withTimer): self.conditionCheckTimer = eTimer() self.conditionCheckTimer.timeout.get().append(self.update) - self.conditionCheckTimer.start(500) + self.conditionCheckTimer.start(1000) def setConnect(self, conditionalFunction): self.conditionalFunction = conditionalFunction def activateCondition(self, condition): - if (condition): - if (self.state == self.HIDDEN): - self.showWidget() + if condition: + self.visible = 1 else: - if (self.state == self.SHOWN): - self.hideWidget() + self.visible = 0 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(GUIComponent): + def __init__(self): + GUIComponent.__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: + self.visible = not self.visible + + def startBlinking(self): + self.blinking = True + self.timer.start(self.blinktime) + + def stopBlinking(self): + self.blinking = False + if self.visible: + 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()