1 from HTMLComponent import *
2 from GUIComponent import *
6 from string import upper
8 class ServiceList(HTMLComponent, GUIComponent):
14 GUIComponent.__init__(self)
15 self.l = eListboxServiceContent()
18 self.mode = self.MODE_NORMAL
20 def setCurrent(self, ref):
21 self.l.setCurrent(ref)
24 r = eServiceReference()
29 return self.instance.atBegin()
32 return self.instance.atEnd()
35 self.instance.moveSelection(self.instance.moveUp)
38 self.instance.moveSelection(self.instance.moveDown)
40 def moveToChar(self, char):
43 index = self.l.getNextBeginningWithChar(char)
44 indexup = self.l.getNextBeginningWithChar(upper(char))
46 if (index > indexup or index == 0):
49 self.instance.moveSelectionTo(index)
50 print "Moving to character " + str(char)
52 def moveToIndex(self, index):
53 self.instance.moveSelectionTo(index)
55 def getCurrentIndex(self):
56 return self.instance.getCurrentIndex()
58 def GUIcreate(self, parent):
59 self.instance = eListbox(parent)
60 self.instance.setWrapAround(True)
61 self.instance.setContent(self.l)
62 self.setMode(self.mode)
70 def getRootServices(self):
71 serviceHandler = eServiceCenter.getInstance()
72 list = serviceHandler.list(self.root)
78 dest.append(s.toString())
83 def setNumberOffset(self, offset):
84 self.l.setNumberOffset(offset)
86 def setPlayableIgnoreService(self, ref):
87 self.l.setIgnoreService(ref)
89 def setRoot(self, root, justSet=False):
91 self.l.setRoot(root, justSet)
95 def addService(self, service):
96 self.l.addService(service)
102 # stuff for multiple marks (edit mode / later multiepg)
103 def clearMarks(self):
106 def isMarked(self, ref):
107 return self.l.isMarked(ref)
109 def addMarked(self, ref):
110 self.l.addMarked(ref)
112 def removeMarked(self, ref):
113 self.l.removeMarked(ref)
118 ref = eServiceReference()
120 while i.markedQueryNext(ref) == 0:
121 marked.append(ref.toString())
122 ref = eServiceReference()
125 #just for movemode.. only one marked entry..
126 def setCurrentMarked(self, state):
127 self.l.setCurrentMarked(state)
129 def setMode(self, mode):
137 if mode == self.MODE_NORMAL:
138 self.instance.setItemHeight(28)
139 self.l.setVisualMode(eListboxServiceContent.visModeSimple)
140 self.l.setElementFont(self.l.celServiceName, gFont("Regular", 22))
141 self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
143 self.instance.setItemHeight(28)
144 self.l.setElementFont(self.l.celServiceNumber, gFont("Regular", 20))
145 self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 0, 40, 28))
146 self.l.setElementFont(self.l.celServiceName, gFont("Regular", 22))
147 self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width()-50, 28))
148 self.l.setElementFont(self.l.celServiceInfo, gFont("Regular", 18))
149 self.l.setVisualMode(eListboxServiceContent.visModeComplex)