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 self.instance.moveSelection(self.instance.moveUp)
32 self.instance.moveSelection(self.instance.moveDown)
34 def moveToChar(self, char):
37 index = self.l.getNextBeginningWithChar(char)
38 indexup = self.l.getNextBeginningWithChar(upper(char))
40 if (index > indexup or index == 0):
43 self.instance.moveSelectionTo(index)
44 print "Moving to character " + str(char)
46 def GUIcreate(self, parent):
47 self.instance = eListbox(parent)
48 self.instance.setContent(self.l)
49 self.setMode(self.mode)
57 def getRootServices(self):
58 serviceHandler = eServiceCenter.getInstance()
59 list = serviceHandler.list(self.root)
65 dest.append(s.toString())
70 def setNumberOffset(self, offset):
71 self.l.setNumberOffset(offset)
73 def setPlayableIgnoreService(self, ref):
74 self.l.setIgnoreService(ref)
76 def setRoot(self, root):
81 # stuff for multiple marks (edit mode / later multiepg)
85 def isMarked(self, ref):
86 return self.l.isMarked(ref)
88 def addMarked(self, ref):
91 def removeMarked(self, ref):
92 self.l.removeMarked(ref)
97 ref = eServiceReference()
99 while i.markedQueryNext(ref) == 0:
100 marked.append(ref.toString())
101 ref = eServiceReference()
104 #just for movemode.. only one marked entry..
105 def setCurrentMarked(self, state):
106 self.l.setCurrentMarked(state)
108 def setMode(self, mode):
116 if mode == self.MODE_NORMAL:
117 self.instance.setItemHeight(28)
118 self.l.setVisualMode(eListboxServiceContent.visModeSimple)
119 self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
120 self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
122 self.instance.setItemHeight(28)
123 self.l.setElementFont(self.l.celServiceNumber, gFont("Arial", 20))
124 self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 0, 40, 28))
125 self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
126 self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width()-50, 28))
127 self.l.setElementFont(self.l.celServiceInfo, gFont("Arial", 18))
128 self.l.setVisualMode(eListboxServiceContent.visModeComplex)