diff options
Diffstat (limited to 'lib/python/Components/Sources/MenuList.py')
| -rw-r--r-- | lib/python/Components/Sources/MenuList.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/python/Components/Sources/MenuList.py b/lib/python/Components/Sources/MenuList.py new file mode 100644 index 00000000..98764418 --- /dev/null +++ b/lib/python/Components/Sources/MenuList.py @@ -0,0 +1,40 @@ +from Source import Source +from Tools.Event import Event + +class MenuList(Source, object): + def __init__(self, list = [ ], enableWrapAround = False): + Source.__init__(self) + self.__list = list + self.onSelectionChanged = [ ] + + def setList(self, list): + self.__list = list + self.changed() + + list = property(lambda self: self.__list, setList) + + def entry_changed(self, index): + self.downstream_elements.entry_changed(self, index) + + def selectionChanged(self, index): + for x in self.onSelectionChanged: + x() + + def getCurrent(self): + return self.master and self.master.current + + current = property(getCurrent) + + def setIndex(self, index): + if self.master is not None: + self.master = index + + def getIndex(self, index): + if self.master is not None: + return self.master.index + else: + return -1 + + setCurrentIndex = setIndex + + index = property(getIndex, setIndex) |
