from GUIComponent import *
from Tools.FuzzyDate import FuzzyTime
+import time
from enigma import eListboxPythonMultiContent, eListbox, gFont
-
+from timer import TimerEntry
RT_HALIGN_LEFT = 0
RT_HALIGN_RIGHT = 1
#
# | <Service> <Name of the Timer> |
-# | <start> <end> |
+# | <start, end> <state> |
#
-def TimerEntry(timer, processed):
+def TimerEntryComponent(timer, processed):
res = [ timer ]
+ res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 560, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, timer.service_ref.getServiceName()))
+ res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 560, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, timer.name))
+
+ repeatedtext = ""
+ days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ]
+ if not timer.repeated:
+ flags = timer.repeated
+ count = 0
+ for x in range(0, 7):
+ if (flags & 1 == 1):
+ if (count != 0):
+ repeatedtext += ", "
+ repeatedtext += days[x]
+ count += 1
+ flags = flags >> 1
+ res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 300, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (" %s ... %s" % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1]))))
+ else:
+ res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 300, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:]))))
- res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName()))
- res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, "%s, %s" % FuzzyTime(timer.begin)))
-
- res.append((200, 0, 200, 20, 1, RT_HALIGN_RIGHT, timer.description))
- if processed:
- res.append((200, 30, 200, 20, 1, RT_HALIGN_RIGHT, FuzzyTime(timer.end)[1]))
+ if not processed:
+ if timer.state == TimerEntry.StateWaiting:
+ state = "waiting"
+ elif timer.state == TimerEntry.StatePrepared:
+ state = "about to start"
+ elif timer.state == TimerEntry.StateRunning:
+ state = "recording..."
+ else:
+ state = "<unknown>"
else:
- res.append((200, 30, 200, 20, 1, RT_HALIGN_RIGHT, "done"))
+ state = "done!"
+
+ res.append((eListboxPythonMultiContent.TYPE_TEXT, 320, 50, 240, 20, 1, RT_HALIGN_RIGHT|RT_VALIGN_CENTER, state))
+
return res
class TimerList(HTMLComponent, GUIComponent):
GUIComponent.__init__(self)
self.l = eListboxPythonMultiContent()
self.l.setList(list)
- self.l.setFont(0, gFont("Arial", 20))
- self.l.setFont(1, gFont("Arial", 18))
+ self.l.setFont(0, gFont("Regular", 20))
+ self.l.setFont(1, gFont("Regular", 18))
def getCurrent(self):
return self.l.getCurrentSelection()
def GUIcreate(self, parent):
self.instance = eListbox(parent)
self.instance.setContent(self.l)
- self.instance.setItemHeight(50)
-
+ self.instance.setItemHeight(70)
+
+ def moveToIndex(self, index):
+ self.instance.moveSelectionTo(index)
+
+ def getCurrentIndex(self):
+ return self.instance.getCurrentIndex()
+
+ 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()