1 from Components.MenuList import MenuList
2 from Components.MultiContent import MultiContentEntryText
4 from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT, \
7 class RSSBaseList(MenuList):
8 """Base List Component for RSSFeeds."""
10 def __init__(self, entries, itemheight):
11 MenuList.__init__(self, entries, False, content = eListboxPythonMultiContent)
14 l.setFont(0, gFont("Regular", 22))
15 l.setFont(1, gFont("Regular", 18))
16 l.setItemHeight(itemheight)
18 def connectSelChanged(self, fnc):
19 if not fnc in self.onSelectionChanged:
20 self.onSelectionChanged.append(fnc)
22 def disconnectSelChanged(self, fnc):
23 if fnc in self.onSelectionChanged:
24 self.onSelectionChanged.remove(fnc)
26 def moveToEntry(self, identifier):
32 class RSSFeedList(RSSBaseList):
33 def __init__(self, entries):
34 RSSBaseList.__init__(self, entries, 100)
35 self.l.setBuildFunc(self.buildListboxEntry)
37 def moveToEntry(self, feed):
43 if feed.uri == x[0].uri:
44 self.instance.moveSelectionTo(idx)
48 def buildListboxEntry(self, feed):
49 width = self.l.getItemSize().width()
52 MultiContentEntryText(pos=(0, 0), size=(width, 75), font=0, flags = RT_HALIGN_LEFT|RT_WRAP, text = feed.title),
53 MultiContentEntryText(pos=(0, 75), size=(width, 20), font=1, flags = RT_HALIGN_LEFT, text = feed.description)
57 # We know that the list will never be empty...
58 return self.l.getCurrentSelection()[0]
60 class RSSEntryList(RSSBaseList):
61 def __init__(self, entries):
62 RSSBaseList.__init__(self, entries, 50)
63 self.l.setBuildFunc(self.buildListboxEntry)
65 def moveToEntry(self, entry):
72 self.instance.moveSelectionTo(idx)
76 def buildListboxEntry(self, title, link, summary, enclosures):
77 width = self.l.getItemSize().width()
80 MultiContentEntryText(pos=(0, 3), size=(width, 50), font=0, flags = RT_HALIGN_LEFT|RT_WRAP, text = title)