add some new (currently unused) source/renderer based elements
[enigma2.git] / lib / python / Components / Sources / MenuList.py
1 from Source import Source
2 from Tools.Event import Event
3
4 class MenuList(Source, object):
5         def __init__(self, list = [ ], enableWrapAround = False):
6                 Source.__init__(self)
7                 self.__list = list
8                 self.onSelectionChanged = [ ]
9         
10         def setList(self, list):
11                 self.__list = list
12                 self.changed()
13         
14         list = property(lambda self: self.__list, setList)
15
16         def entry_changed(self, index):
17                 self.downstream_elements.entry_changed(self, index)
18
19         def selectionChanged(self, index):
20                 for x in self.onSelectionChanged:
21                         x()
22
23         def getCurrent(self):
24                 return self.master and self.master.current
25
26         current = property(getCurrent)
27
28         def setIndex(self, index):
29                 if self.master is not None:
30                         self.master = index
31         
32         def getIndex(self, index):
33                 if self.master is not None:
34                         return self.master.index
35                 else:
36                         return -1
37
38         setCurrentIndex = setIndex
39         
40         index = property(getIndex, setIndex)