X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FGUIComponent.py;h=7e1bafb977bac95fefebb197c7063faeab6d41c1;hb=ab40b0a5518886c7aa94458425bdec90d5430ee9;hp=414613066f9072c07d30ba1f74f5e8f644ae3b00;hpb=d279cc40f4a1d927ad00bfe7b0ee3a303e9aed44;p=vuplus_dvbapp diff --git a/lib/python/Components/GUIComponent.py b/lib/python/Components/GUIComponent.py index 4146130..7e1bafb 100644 --- a/lib/python/Components/GUIComponent.py +++ b/lib/python/Components/GUIComponent.py @@ -1,13 +1,17 @@ import skin -from enigma import ePoint +from enigma import ePoint, eSize class GUIComponent(object): """ GUI component """ def __init__(self): self.instance = None + self.onVisibilityChange = [ ] + self.__visible = 0 self.visible = 1 + self.skinAttributes = None + self.deprecationInfo = None def execBegin(self): pass @@ -25,23 +29,51 @@ class GUIComponent(object): self.__dict__.clear() # this works only with normal widgets - if you don't have self.instance, override this. - def applySkin(self, desktop): + def applySkin(self, desktop, parent): if not self.visible: self.instance.hide() - skin.applyAllAttributes(self.instance, desktop, self.skinAttributes) + + if self.skinAttributes is None: + return False - def move(self, x, y): - self.instance.move(ePoint(int(x), int(y))) + skin.applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale) + return True + + def move(self, x, y = None): + # we assume, that x is already an ePoint + if y is None: + self.instance.move(x) + else: + self.instance.move(ePoint(int(x), int(y))) + + def resize(self, x, y = None): + self.width = x + self.height = y + if y is None: + self.instance.resize(x) + else: + self.instance.resize(eSize(int(x), int(y))) + + def setZPosition(self, z): + 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 @@ -60,6 +92,12 @@ class GUIComponent(object): def getPosition(self): p = self.instance.position() return (p.x(), p.y()) + + def getWidth(self): + return self.width + + def getHeight(self): + return self.height position = property(getPosition, setPosition)