1 from HTMLComponent import *
2 from GUIComponent import *
6 from string import upper
8 from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS
10 class ServiceList(HTMLComponent, GUIComponent):
15 GUIComponent.__init__(self)
16 self.l = eListboxServiceContent()
18 pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "folder.png"))
20 self.l.setPixmap(self.l.picFolder, pic)
22 pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_s-fs8.png"))
24 self.l.setPixmap(self.l.picDVB_S, pic)
26 pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_c-fs8.png"))
28 self.l.setPixmap(self.l.picDVB_C, pic)
30 pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_t-fs8.png"))
32 self.l.setPixmap(self.l.picDVB_T, pic)
35 self.mode = self.MODE_NORMAL
37 def setCurrent(self, ref):
38 self.l.setCurrent(ref)
41 r = eServiceReference()
46 return self.instance.atBegin()
49 return self.instance.atEnd()
52 self.instance.moveSelection(self.instance.moveUp)
55 self.instance.moveSelection(self.instance.moveDown)
57 def moveToChar(self, char):
60 index = self.l.getNextBeginningWithChar(char)
61 indexup = self.l.getNextBeginningWithChar(upper(char))
63 if (index > indexup or index == 0):
66 self.instance.moveSelectionTo(index)
67 print "Moving to character " + str(char)
69 def moveToIndex(self, index):
70 self.instance.moveSelectionTo(index)
72 def getCurrentIndex(self):
73 return self.instance.getCurrentIndex()
77 def postWidgetCreate(self, instance):
78 instance.setWrapAround(True)
79 instance.setContent(self.l)
80 self.setMode(self.mode)
85 def getRootServices(self):
86 serviceHandler = eServiceCenter.getInstance()
87 list = serviceHandler.list(self.root)
93 dest.append(s.toString())
98 def setNumberOffset(self, offset):
99 self.l.setNumberOffset(offset)
101 def setPlayableIgnoreService(self, ref):
102 self.l.setIgnoreService(ref)
104 def setRoot(self, root, justSet=False):
106 self.l.setRoot(root, justSet)
110 def addService(self, service):
111 self.l.addService(service)
113 def finishFill(self):
114 self.l.FillFinished()
117 # stuff for multiple marks (edit mode / later multiepg)
118 def clearMarks(self):
121 def isMarked(self, ref):
122 return self.l.isMarked(ref)
124 def addMarked(self, ref):
125 self.l.addMarked(ref)
127 def removeMarked(self, ref):
128 self.l.removeMarked(ref)
133 ref = eServiceReference()
135 while i.markedQueryNext(ref) == 0:
136 marked.append(ref.toString())
137 ref = eServiceReference()
140 #just for movemode.. only one marked entry..
141 def setCurrentMarked(self, state):
142 self.l.setCurrentMarked(state)
144 def setMode(self, mode):
147 if mode == self.MODE_NORMAL:
148 self.instance.setItemHeight(28)
149 self.l.setVisualMode(eListboxServiceContent.visModeSimple)
150 self.l.setElementFont(self.l.celServiceName, gFont("Regular", 22))
151 self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
153 self.instance.setItemHeight(28)
154 self.l.setElementFont(self.l.celServiceNumber, gFont("Regular", 20))
155 self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 0, 40, 28))
156 self.l.setElementFont(self.l.celServiceName, gFont("Regular", 22))
157 self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width()-50, 28))
158 self.l.setElementFont(self.l.celServiceInfo, gFont("Regular", 18))
159 self.l.setVisualMode(eListboxServiceContent.visModeComplex)