- added ListBoxContents: based on std::list<std::string> and PyList with Strings
[enigma2.git] / components.py
index 4c26c0a029b4cfb10de887f2ca79a68b06626070..20827180851a82e2900607631c17aff44605f535 100644 (file)
@@ -97,8 +97,10 @@ class GUIComponent:
                i = self.GUIcreateInstance(self, parent, skindata)
                priv["instance"] = i
                self.notifier.append(i)
-               if self.notifierAdded:
+               try:
                        self.notifierAdded(i)
+               except:
+                       pass
        
        # GUIdelete must delete *all* references to the current component!
        def GUIdelete(self, priv):
@@ -221,3 +223,23 @@ class VolumeBar(HTMLComponent, GUIComponent, VariableValue):
                g = eSlider(parent)
                g.setRange(0, 100)
                return g
+
+class MenuList(HTMLComponent, GUIComponent):
+       def __init__(self):
+               GUIComponent.__init__(self)
+       
+       def getCurrent(self):
+               return self.l.getCurrentSelection()
+       
+       def GUIcreateInstance(self, priv, parent, skindata):
+               g = eListbox(parent)
+               # BIG BIG HACK. :( we have to ensure that the eListboxPythonStringContent doesn't get destroyed.
+               # we really have to take a look at the GC stuff
+               self.l = eListboxPythonStringContent()
+               self.l.setList(["Test Object 1", "Item #2", "Item #3", "nun kommt eine Zahl:", 15, "Bla fasel", "lulabla"])
+               g.setContent(self.l)
+               return g
+       
+       def GUIdeleteInstance(self, g):
+               g.setContent(None)
+               del self.l