factorize the conditionalPixmap
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Tue, 6 Dec 2005 18:35:55 +0000 (18:35 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Tue, 6 Dec 2005 18:35:55 +0000 (18:35 +0000)
lib/python/Components/BlinkingPixmap.py
lib/python/Components/ConditionalWidget.py [new file with mode: 0644]
lib/python/Components/Makefile.am
lib/python/Components/Pixmap.py
lib/python/Screens/InfoBarGenerics.py

index b19bdc5..c1b4262 100644 (file)
@@ -21,9 +21,9 @@ class BlinkingPixmap(Pixmap):
        def blink(self):
                if self.blinking == True:
                        if (self.state == self.SHOWN):
-                               self.hidePixmap()
+                               self.hideWidget()
                        elif (self.state == self.HIDDEN):
-                               self.showPixmap()
+                               self.showWidget()
                        
        def startBlinking(self):
                self.blinking = True
@@ -32,7 +32,7 @@ class BlinkingPixmap(Pixmap):
        def stopBlinking(self):
                self.blinking = False
                if (self.state == self.SHOWN):
-                       self.hidePixmap()
+                       self.hideWidget()
                self.timer.stop()
                
 class BlinkingPixmapConditional(BlinkingPixmap, PixmapConditional):
diff --git a/lib/python/Components/ConditionalWidget.py b/lib/python/Components/ConditionalWidget.py
new file mode 100644 (file)
index 0000000..5ff7798
--- /dev/null
@@ -0,0 +1,67 @@
+import skin
+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()
+       
+       def removeWidget(self, instance):
+               pass
+
+class ConditionalWidget(Widget):
+       def __init__(self, withTimer = True):
+               Widget.__init__(self)
+               
+               self.setConnect(None)
+               
+               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):
+                       if (self.state == self.HIDDEN):
+                               self.showWidget()
+               else:
+                       if (self.state == self.SHOWN):
+                               self.hideWidget()
+
+       def update(self):
+               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())
index ebad6d0..6e0e94b 100644 (file)
@@ -10,4 +10,4 @@ install_PYTHON = \
        InputDevice.py ServicePosition.py SetupDevices.py Harddisk.py                                           \
        AVSwitch.py Network.py RFmod.py DiskInfo.py NimManager.py Lcd.py                                \
        EpgList.py ScrollLabel.py Timezones.py Language.py HelpMenuList.py \
-       BlinkingPixmap.py Pixmap.py
+       BlinkingPixmap.py Pixmap.py ConditionalWidget.py
index 8f59880..7902611 100644 (file)
@@ -1,26 +1,11 @@
-import skin
-from GUIComponent import *
+from ConditionalWidget import *
 
 from enigma import *
 
-class Pixmap(GUIComponent):
-       """Pixmap can be used for components which diplay a pixmap"""
-       
-       SHOWN = 0
-       HIDDEN = 1
-       
+class Pixmap(Widget):
        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
-       
+               Widget.__init__(self)
+
        def getePixmap(self, parent):
                #pixmap = ePixmap(parent)
                #pixmap.setPixmapFromFile(self.filename)
@@ -31,46 +16,8 @@ class Pixmap(GUIComponent):
 
        def removeWidget(self, w):
                pass
-       
-       def showPixmap(self):
-               self.state = self.SHOWN
-               self.instance.show()
-
-       def hidePixmap(self):
-               self.state = self.HIDDEN
-               self.instance.hide()
-       
-       def removeWidget(self, instance):
-               pass
 
-class PixmapConditional(Pixmap):
+class PixmapConditional(ConditionalWidget, Pixmap):
        def __init__(self, withTimer = True):
-               Pixmap.__init__(self)
-               
-               self.setConnect(None)
-               
-               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):
-                       if (self.state == self.HIDDEN):
-                               self.showPixmap()
-               else:
-                       if (self.state == self.SHOWN):
-                               self.hidePixmap()
+               ConditionalWidget.__init__(self)
 
-       def update(self):
-               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())
index f27cf40..43f4222 100644 (file)
@@ -443,7 +443,7 @@ class InfoBarInstantRecord:
                self.recording = None
                
                self["BlinkingPoint"] = BlinkingPixmapConditional()
-               self.onShown.append(self["BlinkingPoint"].hidePixmap)
+               self.onShown.append(self["BlinkingPoint"].hideWidget)
                self["BlinkingPoint"].setConnect(self.session.nav.RecordTimer.isRecording)
                
        def stopCurrentRecording(self):