-from enigma import eServiceReference, eServiceCenter, \
- eServiceCenterPtr, iListableServicePtr, \
- iStaticServiceInformationPtr
-
-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
+class MovieList(GUIComponent):
+ def __init__(self, root):
+ GUIComponent.__init__(self)
+ self.l = eListboxPythonMultiContent()
+ self.tags = set()
+ if root is not None:
+ self.reload(root)
+ self.l.setFont(0, gFont("Regular", 22))
+ self.l.setFont(1, gFont("Regular", 18))
+ self.l.setFont(2, gFont("Regular", 16))
+ self.l.setBuildFunc(self.buildMovieListEntry)
+ self.l.setItemHeight(75)
+
+ #
+ # | name of movie |
+ #
+ def buildMovieListEntry(self, serviceref, info, begin, len):
+ if serviceref.flags & eServiceReference.mustDescent:
+ return None
+
+ if len <= 0: #recalc len when not already done
+ cur_idx = self.l.getCurrentSelectionIndex()
+ x = self.list[cur_idx]
+ len = x[1].getLength(x[0]) #recalc the movie length...
+ self.list[cur_idx] = (x[0], x[1], x[2], len) #update entry in list... so next time we don't need to recalc
+
+ if len > 0:
+ len = "%d:%02d" % (len / 60, len % 60)
+ else:
+ len = "?:??"