show dolby, crypt and format status in the infobar - we don't have functionality...
[enigma2.git] / lib / python / Components / Pixmap.py
index a98fef14f0163a0b98a9275c9b2a4c9b8b12634a..48eec23705a77714c29f7f47c1e69682e7d895d3 100644 (file)
@@ -1,12 +1,18 @@
 import skin
+from GUIComponent import *
 
 from enigma import *
 
-class 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)
@@ -20,6 +26,22 @@ class Pixmap:
                #pixmap.setPixmapFromFile(self.filename)
                return ePixmap(parent)
        
+       def createWidget(self, parent):
+               return self.getePixmap(parent)
+
+       def removeWidget(self, w):
+               pass
+       
+       def showPixmap(self):
+               print "Show pixmap"
+               self.state = self.SHOWN
+               self.instance.show()
+
+       def hidePixmap(self):
+               print "Hide pixmap"
+               self.state = self.HIDDEN
+               self.instance.hide()
+       
        def removeWidget(self, instance):
                pass
 
@@ -27,6 +49,8 @@ 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)
@@ -37,15 +61,18 @@ class PixmapConditional(Pixmap):
                
        def activateCondition(self, condition):
                if (condition):
-                       self.instance.hide()
+                       if (self.state == self.HIDDEN):
+                               self.showPixmap()
                else:
-                       self.instance.show()
+                       if (self.state == self.SHOWN):
+                               self.hidePixmap()
 
        def update(self):
-               try:
-                       self.conditionalFunction() # check, if the conditionalfunction is still valid
-               except:
-                       self.conditionalFunction = None
-                       self.activateCondition(False)
+               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())
+                       self.activateCondition(self.conditionalFunction())