X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7eab308715ea1130166915574e3b691e08eb4482..3b5048babf7e8df97b8d0267543c7fa47ec7f21d:/lib/python/Components/GUISkin.py diff --git a/lib/python/Components/GUISkin.py b/lib/python/Components/GUISkin.py index cf8e1894..b7cfb430 100644 --- a/lib/python/Components/GUISkin.py +++ b/lib/python/Components/GUISkin.py @@ -1,36 +1,63 @@ -from GUIComponent import * +from GUIComponent import GUIComponent from skin import applyAllAttributes +from Tools.CList import CList +from Sources.Source import Source class GUISkin: __module__ = __name__ def __init__(self): self.onLayoutFinish = [ ] - pass + self.summaries = CList() def createGUIScreen(self, parent, desktop): - for (name, val) in self.items(): + for val in self.renderer: + if isinstance(val, GUIComponent): + val.GUIcreate(parent) + if not val.applySkin(desktop): + print "warning, skin is missing renderer", val, "in", self + + for key in self: + val = self[key] if isinstance(val, GUIComponent): val.GUIcreate(parent) - val.applySkin(desktop) + if not val.applySkin(desktop): + print "warning, skin is missing element", key, "in", self for w in self.additionalWidgets: w.instance = w.widget(parent) # w.instance.thisown = 0 applyAllAttributes(w.instance, desktop, w.skinAttributes) - + for f in self.onLayoutFinish: 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): + seenFakeSource = False for (name, val) in self.items(): + if name == "fake" and isinstance(val, Source): + seenFakeSource = True if isinstance(val, GUIComponent): val.GUIdelete() + if seenFakeSource: + del self["fake"] 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 + self.summaries.setTitle(title)