X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/dd5eb76b9fe3fdc9e31e405176c0de47c310adb3..7b0d371a7bbfb9e8d624eec9ed97e9a835f75ca7:/lib/python/Components/GUIComponent.py diff --git a/lib/python/Components/GUIComponent.py b/lib/python/Components/GUIComponent.py index 401a004d..deb8b34a 100644 --- a/lib/python/Components/GUIComponent.py +++ b/lib/python/Components/GUIComponent.py @@ -7,6 +7,8 @@ class GUIComponent(object): def __init__(self): self.instance = None + self.onVisibilityChange = [ ] + self.__visible = 0 self.visible = 1 self.skinAttributes = None @@ -31,10 +33,10 @@ class GUIComponent(object): self.instance.hide() if self.skinAttributes is None: - print "warning, skin is missing some elements." - return + return False skin.applyAllAttributes(self.instance, desktop, self.skinAttributes) + return True def move(self, x, y = None): # we assume, that x is already an ePoint @@ -50,14 +52,22 @@ class GUIComponent(object): self.instance.setZPosition(z) def show(self): + old = self.__visible self.__visible = 1 if self.instance is not None: self.instance.show() + if old != self.__visible: + for fnc in self.onVisibilityChange: + fnc(True) def hide(self): + old = self.__visible self.__visible = 0 if self.instance is not None: self.instance.hide() + if old != self.__visible: + for fnc in self.onVisibilityChange: + fnc(False) def getVisible(self): return self.__visible