X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/aa3e781f31a04223416f0a34b25ab95fc0bef429..29595f9e351b8d7b4f77b0a9885209d45929d2b1:/lib/python/Components/MenuList.py diff --git a/lib/python/Components/MenuList.py b/lib/python/Components/MenuList.py index 90cd3286..b1b115b7 100644 --- a/lib/python/Components/MenuList.py +++ b/lib/python/Components/MenuList.py @@ -4,20 +4,55 @@ from GUIComponent import * from enigma import eListboxPythonStringContent, eListbox class MenuList(HTMLComponent, GUIComponent): - def __init__(self, list): + def __init__(self, list, enableWrapAround=False): GUIComponent.__init__(self) + self.list = list self.l = eListboxPythonStringContent() - self.l.setList(list) + self.l.setList(self.list) + self.onSelectionChanged = [ ] + self.enableWrapAround = enableWrapAround def getCurrent(self): return self.l.getCurrentSelection() + + GUI_WIDGET = eListbox - def GUIcreate(self, parent, skindata): - self.instance = eListbox(parent) - self.instance.setContent(self.l) + def postWidgetCreate(self, instance): + instance.setContent(self.l) + instance.selectionChanged.get().append(self.selectionChanged) + if self.enableWrapAround: + self.instance.setWrapAround(True) - def GUIdelete(self): - self.instance.setContent(None) - self.instance = None + def preWidgetRemove(self, instance): + instance.setContent(None) + + def selectionChanged(self): + for f in self.onSelectionChanged: + f() + + def setList(self, list): + self.list = list + self.l.setList(self.list) + def moveToIndex(self, idx): + self.instance.moveSelectionTo(idx) + def pageUp(self): + if self.instance is not None: + self.instance.moveSelection(self.instance.pageUp) + + def pageDown(self): + if self.instance is not None: + self.instance.moveSelection(self.instance.pageDown) + + def up(self): + if self.instance is not None: + self.instance.moveSelection(self.instance.moveUp) + + def down(self): + if self.instance is not None: + self.instance.moveSelection(self.instance.moveDown) + + def selectionEnabled(self, enabled): + if self.instance is not None: + self.instance.setSelectionEnable(enabled)