add a class PixmapConditional, in which the pixmap is only displayed, when a conditio...
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Sat, 26 Nov 2005 03:21:47 +0000 (03:21 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Sat, 26 Nov 2005 03:21:47 +0000 (03:21 +0000)
lib/python/Components/Pixmap.py

index b6620d9ace5a8513dc79c053224dada66b77e715..a98fef14f0163a0b98a9275c9b2a4c9b8b12634a 100644 (file)
@@ -22,3 +22,30 @@ class Pixmap:
        
        def removeWidget(self, instance):
                pass
+
+class PixmapConditional(Pixmap):
+       def __init__(self, withTimer = True):
+               Pixmap.__init__(self)
+               
+               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):
+                       self.instance.hide()
+               else:
+                       self.instance.show()
+
+       def update(self):
+               try:
+                       self.conditionalFunction() # check, if the conditionalfunction is still valid
+               except:
+                       self.conditionalFunction = None
+                       self.activateCondition(False)
+                       
+               self.activateCondition(self.conditionalFunction())