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 setRoot(self, root):
78 # stuff for multiple marks (edit mode / later multiepg)
82 def isMarked(self, ref):
83 return self.l.isMarked(ref)
85 def addMarked(self, ref):
88 def removeMarked(self, ref):
89 self.l.removeMarked(ref)
94 ref = eServiceReference()
96 while i.markedQueryNext(ref) == 0:
97 marked.append(ref.toString())
98 ref = eServiceReference()
101 #just for movemode.. only one marked entry..
102 def setCurrentMarked(self, state):
103 self.l.setCurrentMarked(state)
105 def setMode(self, mode):
113 if mode == self.MODE_NORMAL:
114 self.instance.setItemHeight(28)
115 self.l.setVisualMode(eListboxServiceContent.visModeSimple)
116 self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
117 self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
119 self.instance.setItemHeight(28)
120 self.l.setElementFont(self.l.celServiceNumber, gFont("Arial", 20))
121 self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 0, 40, 28))
122 self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
123 self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width()-50, 28))
124 self.l.setElementFont(self.l.celServiceInfo, gFont("Arial", 18))
125 self.l.setVisualMode(eListboxServiceContent.visModeComplex)