follow itemHeight changes
[enigma2.git] / lib / python / Components / TimerList.py
index 6349466b44cfb80401efd92433a776d317170ddf..c732e947a5a6bf7a9a1ca217daefd4b4a70b630a 100644 (file)
@@ -4,22 +4,11 @@ from GUIComponent import *
 from Tools.FuzzyDate import FuzzyTime
 import time
 
-from enigma import eListboxPythonMultiContent, eListbox, gFont, loadPNG
+from enigma import eListboxPythonMultiContent, eListbox, gFont, loadPNG, \
+       RT_HALIGN_CENTER, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_VALIGN_CENTER
 from timer import TimerEntry
 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
 
-RT_HALIGN_LEFT = 0
-RT_HALIGN_RIGHT = 1
-RT_HALIGN_CENTER = 2
-RT_HALIGN_BLOCK = 4
-
-RT_VALIGN_TOP = 0
-RT_VALIGN_CENTER = 8
-RT_VALIGN_BOTTOM = 16
-
-RT_WRAP = 32
-
-
 #
 #  | <Service>     <Name of the Timer>  |
 #  | <start, end>              <state>  |
@@ -42,45 +31,55 @@ def TimerEntryComponent(timer, processed):
                                        repeatedtext += days[x]
                                        count += 1
                                flags = flags >> 1
-               res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (" %s ... %s" % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1]))))
+               if timer.justplay:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ((" %s "+ _("(ZAP)")) % (FuzzyTime(timer.begin)[1]))))
+               else:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ((" %s ... %s (%d " + _("mins") + ")") % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1], (timer.end - timer.begin) / 60))))
        else:
-               res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:]))))
+               if timer.justplay:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (("%s, %s " + _("(ZAP)")) % (FuzzyTime(timer.begin)))))
+               else:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (("%s, %s ... %s (%d " + _("mins") + ")") % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:] + ((timer.end - timer.begin) / 60,)))))
 
        if not processed:
                if timer.state == TimerEntry.StateWaiting:
-                       state = "waiting"
+                       state = _("waiting")
                elif timer.state == TimerEntry.StatePrepared:
-                       state = "about to start"
+                       state = _("about to start")
                elif timer.state == TimerEntry.StateRunning:
-                       state = "recording..."
+                       if timer.justplay:
+                               state = _("zapped")
+                       else:
+                               state = _("recording...")
                else:
-                       state = "<unknown>"
+                       state = _("<unknown>")
        else:
-               state = "done!"
+               state = _("done!")
        
        res.append((eListboxPythonMultiContent.TYPE_TEXT, 320, 50, 240, 20, 1, RT_HALIGN_RIGHT|RT_VALIGN_CENTER, state))
 
        if timer.disabled:
-               png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "/redx.png"))
-               res.append((eListboxPythonMultiContent.TYPE_PIXMAP, 490, 5, 40, 40, png))
+               png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "redx.png"))
+               res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 490, 5, 40, 40, png))
        
        return res
 
-class TimerList(HTMLComponent, GUIComponent):
+class TimerList(HTMLComponent, GUIComponent, object):
        def __init__(self, list):
                GUIComponent.__init__(self)
                self.l = eListboxPythonMultiContent()
                self.l.setList(list)
                self.l.setFont(0, gFont("Regular", 20))
                self.l.setFont(1, gFont("Regular", 18))
+               self.l.setItemHeight(70)
        
        def getCurrent(self):
                return self.l.getCurrentSelection()
        
-       def GUIcreate(self, parent):
-               self.instance = eListbox(parent)
-               self.instance.setContent(self.l)
-               self.instance.setItemHeight(70)
+       GUI_WIDGET = eListbox
+       
+       def postWidgetCreate(self, instance):
+               instance.setContent(self.l)
 
        def moveToIndex(self, index):
                self.instance.moveSelectionTo(index)
@@ -88,13 +87,11 @@ class TimerList(HTMLComponent, GUIComponent):
        def getCurrentIndex(self):
                return self.instance.getCurrentIndex()
 
+       currentIndex = property(moveToIndex, getCurrentIndex)
+       currentSelection = property(getCurrent)
+
        def moveDown(self):
                self.instance.moveSelection(self.instance.moveDown)
 
-       def GUIdelete(self):
-               self.instance.setContent(None)
-               self.instance = None
-
        def invalidate(self):
                self.l.invalidate()
-