more __deref__ changes
[enigma2.git] / lib / python / Components / GUISkin.py
index 982cce317dbd74325727ceb8ad80b2e8db6df78d..406cd0977218ba505988662a73a45436f5c8eb19 100644 (file)
@@ -6,21 +6,24 @@ class GUISkin:
 
        def __init__(self):
                self.onLayoutFinish = [ ]
-               pass
+               self.summaries = [ ]
 
        def createGUIScreen(self, parent, desktop):
-               for (name, val) in self.items():
+               for val in self.values() + self.renderer:
                        if isinstance(val, GUIComponent):
                                val.GUIcreate(parent)
                                val.applySkin(desktop)
 
                for w in self.additionalWidgets:
                        w.instance = w.widget(parent)
-                       w.instance.thisown = 0
+                       w.instance.thisown = 0
                        applyAllAttributes(w.instance, desktop, w.skinAttributes)
                
                for f in self.onLayoutFinish:
-                       exec(f) in globals(), locals()
+                       if type(f) is not type(self.close): # is this the best way to do this?
+                               exec(f) in globals(), locals()
+                       else:
+                               f()
 
        def deleteGUIScreen(self):
                for (name, val) in self.items():
@@ -29,3 +32,19 @@ class GUISkin:
 
        def close(self):
                self.deleteGUIScreen()
+
+       def createSummary(self):
+               return None
+
+       def addSummary(self, summary):
+               self.summaries.append(summary)
+
+       def removeSummary(self, summary):
+               self.summaries.remove(summary)
+
+       def setTitle(self, title):
+               self.instance.setTitle(title)
+               self.title = title
+               
+               for x in self.summaries:
+                       x.setTitle(title)