1 from HTMLComponent import *
2 from GUIComponent import *
3 from Tools.FuzzyDate import FuzzyTime
5 from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation
7 from enigma import eServiceReference, eServiceCenter, \
8 eServiceCenterPtr, iListableServicePtr, \
9 iStaticServiceInformationPtr
26 def MovieListEntry(serviceref, serviceHandler):
29 info = serviceHandler.info(serviceref)
32 # ignore service which refuse to info
35 len = info.getLength(serviceref)
37 len = "%d:%02d" % (len / 60, len % 60)
41 res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, info.getName(serviceref)))
43 description = info.getInfoString(serviceref, iServiceInformation.sDescription)
44 begin = info.getInfo(serviceref, iServiceInformation.sTimeCreate)
49 begin_string = t[0] + ", " + t[1]
51 res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, description))
52 res.append((0, 50, 200, 20, 1, RT_HALIGN_LEFT, begin_string))
53 res.append((200, 50, 200, 20, 1, RT_HALIGN_RIGHT, len))
57 class MovieList(HTMLComponent, GUIComponent):
58 def __init__(self, root):
59 GUIComponent.__init__(self)
60 self.l = eListboxPythonMultiContent()
62 self.l.setList(self.list)
63 self.l.setFont(0, gFont("Arial", 30))
64 self.l.setFont(1, gFont("Arial", 18))
66 def moveToIndex(self, index):
67 self.instance.moveSelectionTo(index)
69 def getCurrentIndex(self):
70 return self.instance.getCurrentIndex()
73 return self.l.getCurrentSelection()
75 def GUIcreate(self, parent):
76 self.instance = eListbox(parent)
77 self.instance.setContent(self.l)
78 self.instance.setItemHeight(75)
81 self.instance.setContent(None)
85 # this lists our root service, then building a
91 serviceHandler = eServiceCenter.getInstance()
92 list = serviceHandler.list(root)
95 raise "listing of movies failed"
105 # now process them...
106 for ref in movieList:
107 self.list.append(MovieListEntry(ref, serviceHandler))
111 self.l.setList(self.list)
114 self.instance.moveSelection(self.instance.moveDown)