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))
41 self.instance.moveSelectionTo(index)
42 print "Moving to character " + str(char)
44 def GUIcreate(self, parent):
45 self.instance = eListbox(parent)
46 self.instance.setContent(self.l)
47 self.setMode(self.mode)
55 def getRootServices(self):
56 serviceHandler = eServiceCenter.getInstance()
57 list = serviceHandler.list(self.root)
63 dest.append(s.toString())
68 def setNumberOffset(self, offset):
69 self.l.setNumberOffset(offset)
71 def setRoot(self, root):
76 # stuff for multiple marks (edit mode / later multiepg)
80 def isMarked(self, ref):
81 return self.l.isMarked(ref)
83 def addMarked(self, ref):
86 def removeMarked(self, ref):
87 self.l.removeMarked(ref)
92 ref = eServiceReference()
94 while i.markedQueryNext(ref) == 0:
95 marked.append(ref.toString())
96 ref = eServiceReference()
99 #just for movemode.. only one marked entry..
100 def setCurrentMarked(self, state):
101 self.l.setCurrentMarked(state)
103 def setMode(self, mode):
111 if mode == self.MODE_NORMAL:
112 self.instance.setItemHeight(28)
113 self.l.setVisualMode(eListboxServiceContent.visModeSimple)
114 self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
115 self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
117 self.instance.setItemHeight(28)
118 self.l.setElementFont(self.l.celServiceNumber, gFont("Arial", 20))
119 self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 0, 40, 28))
120 self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
121 self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width()-50, 28))
122 self.l.setElementFont(self.l.celServiceInfo, gFont("Arial", 18))
123 self.l.setVisualMode(eListboxServiceContent.visModeComplex)