add some new (currently unused) source/renderer based elements
[vuplus_dvbapp] / lib / python / Components / Converter / StringList.py
diff --git a/lib/python/Components/Converter/StringList.py b/lib/python/Components/Converter/StringList.py
new file mode 100644 (file)
index 0000000..31dbcd3
--- /dev/null
@@ -0,0 +1,40 @@
+from Converter import Converter
+from enigma import eListboxPythonStringContent
+
+
+class StringList(Converter):
+       """Turns a simple python list into a list which can be used in a listbox."""
+       def __init__(self, *args, **kwargs):
+               Converter.__init__(self)
+
+       def changed(self):
+               self.content = eListboxPythonStringContent()
+               if self.source:
+                       self.content.setList(self.source.list)
+               self.downstream_elements.changed()
+
+       def selectionChanged(self, index):
+               self.upstream_elements.selectionChanged(index)
+               # update all non-master targets
+               for x in self.downstream_elements:
+                       if x is not self.master:
+                               x.index = index
+
+       def getCurrent(self):
+               if self.source is None:
+                       return None
+               return self.source.list[self.index]
+
+       current = property(getCurrent)
+
+       # pass through: getIndex / setIndex to master
+       def getIndex(self):
+               if self.master is None:
+                       return None
+               return self.master.index
+
+       def setIndex(self, index):
+               if self.master is not None:
+                       self.master.index = index
+       
+       index = property(getIndex, setIndex)