1 from HTMLComponent import *
2 from GUIComponent import *
6 from string import upper
8 class ServiceList(HTMLComponent, GUIComponent):
13 GUIComponent.__init__(self)
14 self.l = eListboxServiceContent()
16 self.mode = self.MODE_NORMAL
18 def setCurrent(self, ref):
19 self.l.setCurrent(ref)
22 r = eServiceReference()
27 return self.instance.atBegin()
30 return self.instance.atEnd()
33 self.instance.moveSelection(self.instance.moveUp)
36 self.instance.moveSelection(self.instance.moveDown)
38 def moveToChar(self, char):
41 index = self.l.getNextBeginningWithChar(char)
42 indexup = self.l.getNextBeginningWithChar(upper(char))
44 if (index > indexup or index == 0):
47 self.instance.moveSelectionTo(index)
48 print "Moving to character " + str(char)
50 def moveToIndex(self, index):
51 self.instance.moveSelectionTo(index)
53 def getCurrentIndex(self):
54 return self.instance.getCurrentIndex()
58 def postWidgetCreate(self, instance):
59 instance.setWrapAround(True)
60 instance.setContent(self.l)
61 self.setMode(self.mode)
66 def getRootServices(self):
67 serviceHandler = eServiceCenter.getInstance()
68 list = serviceHandler.list(self.root)
74 dest.append(s.toString())
79 def setNumberOffset(self, offset):
80 self.l.setNumberOffset(offset)
82 def setPlayableIgnoreService(self, ref):
83 self.l.setIgnoreService(ref)
85 def setRoot(self, root, justSet=False):
87 self.l.setRoot(root, justSet)
91 def addService(self, service):
92 self.l.addService(service)
98 # stuff for multiple marks (edit mode / later multiepg)
102 def isMarked(self, ref):
103 return self.l.isMarked(ref)
105 def addMarked(self, ref):
106 self.l.addMarked(ref)
108 def removeMarked(self, ref):
109 self.l.removeMarked(ref)
114 ref = eServiceReference()
116 while i.markedQueryNext(ref) == 0:
117 marked.append(ref.toString())
118 ref = eServiceReference()
121 #just for movemode.. only one marked entry..
122 def setCurrentMarked(self, state):
123 self.l.setCurrentMarked(state)
125 def setMode(self, mode):
128 if mode == self.MODE_NORMAL:
129 self.instance.setItemHeight(28)
130 self.l.setVisualMode(eListboxServiceContent.visModeSimple)
131 self.l.setElementFont(self.l.celServiceName, gFont("Regular", 22))
132 self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
134 self.instance.setItemHeight(28)
135 self.l.setElementFont(self.l.celServiceNumber, gFont("Regular", 20))
136 self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 0, 40, 28))
137 self.l.setElementFont(self.l.celServiceName, gFont("Regular", 22))
138 self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width()-50, 28))
139 self.l.setElementFont(self.l.celServiceInfo, gFont("Regular", 18))
140 self.l.setVisualMode(eListboxServiceContent.visModeComplex)