aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/ServiceList.py
blob: e0a3153410a851f9360a161d49ba39173a12f917 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from HTMLComponent import *
from GUIComponent import *

from enigma import *

class ServiceList(HTMLComponent, GUIComponent):

	MODE_NORMAL = 0
	MODE_FAVOURITES = 1

	def __init__(self):
		GUIComponent.__init__(self)
		self.l = eListboxServiceContent()
		self.root = None

	def setCurrent(self, ref):
		self.l.setCurrent(ref)

	def getCurrent(self):
		r = eServiceReference()
		self.l.getCurrent(r)
		return r

	def moveUp(self):
		self.instance.moveSelection(self.instance.moveUp)

	def moveDown(self):
		self.instance.moveSelection(self.instance.moveDown)

	def GUIcreate(self, parent):
		self.instance = eListbox(parent)
		self.instance.setContent(self.l)
	
	def GUIdelete(self):
		self.instance = None

	def getRoot(self):
		return self.root

	def getRootServices(self):
		serviceHandler = eServiceCenter.getInstance()
		list = serviceHandler.list(self.root)
		dest = [ ]
		if list is not None:
			while 1:
				s = list.getNext()
				if s.valid():
					dest.append(s.toString())
				else:
					break
		return dest

	def setNumberOffset(self, offset):
		self.l.setNumberOffset(offset)

	def setRoot(self, root):
		self.root = root
		self.l.setRoot(root)
		self.l.sort()

# stuff for multiple marks (edit mode / later multiepg)
	def clearMarks(self):
		self.l.initMarked()

	def isMarked(self, ref):
		return self.l.isMarked(ref)

	def addMarked(self, ref):
		self.l.addMarked(ref)

	def removeMarked(self, ref):
		self.l.removeMarked(ref)

	def getMarked(self):
		i = self.l
		i.markedQueryStart()
		ref = eServiceReference()
		marked = [ ]
		while i.markedQueryNext(ref) == 0:
			marked.append(ref.toString())
			ref = eServiceReference()
		return marked

#just for movemode.. only one marked entry..
	def setCurrentMarked(self, state):
		self.l.setCurrentMarked(state)

	def setMode(self, mode):
		if mode == self.MODE_NORMAL:
			self.instance.setItemHeight(28)
			self.l.setVisualMode(eListboxServiceContent.visModeSimple)
			self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
			self.l.setElementPosition(self.l.celServiceName, eRect(0, 0, self.instance.size().width(), 28))
		else:
			self.instance.setItemHeight(28)
			self.l.setElementFont(self.l.celServiceName, gFont("Arial", 22))
			self.l.setElementPosition(self.l.celServiceName, eRect(50, 0, self.instance.size().width(), 28))
			self.l.setElementFont(self.l.celServiceNumber, gFont("Arial", 20))
			self.l.setElementPosition(self.l.celServiceNumber, eRect(0, 2, 50, 28))
			self.l.setVisualMode(eListboxServiceContent.visModeComplex)