1 from HTMLComponent import *
2 from GUIComponent import *
4 from Pixmap import Pixmap
10 class BlinkingPixmap(GUIComponent, Pixmap):
14 def __init__(self, filename):
16 GUIComponent.__init__(self)
18 self.filename = filename
20 self.state = self.SHOWN
23 self.setBlinkTime(500)
26 self.timer.timeout.get().append(self.blink)
29 def createWidget(self, parent):
30 return self.getePixmap(parent, self.filename)
32 def removeWidget(self, w):
37 self.state = self.SHOWN
42 self.state = self.HIDDEN
45 def setBlinkTime(self, time):
49 if self.blinking == True:
50 if (self.state == self.SHOWN):
52 elif (self.state == self.HIDDEN):
55 def startBlinking(self):
57 self.timer.start(self.blinktime)
59 def stopBlinking(self):
61 if (self.state == self.SHOWN):
65 class BlinkingPixmapConditional(BlinkingPixmap):
66 def __init__(self, filename):
67 BlinkingPixmap.__init__(self, filename)
71 self.conditionCheckTimer = eTimer()
72 self.conditionCheckTimer.timeout.get().append(self.conditionallyBlink)
73 self.conditionCheckTimer.start(1000)
75 def setConnect(self, conditionalFunction):
76 self.conditionalFunction = conditionalFunction
78 def conditionallyBlink(self):
80 self.conditionalFunction() # check, if the conditionalfunction is still valid
82 self.conditionalFunction = None
85 if self.conditionalFunction != None:
86 if self.conditionalFunction(): # we shall blink
87 if self.blinking: # we are already blinking
89 else: # we don't blink
91 else: # we shall not blink
92 if self.blinking: # we are blinking
94 else: # we don't blink