3 from enigma import ePoint, eSize
5 class GUIComponent(object):
10 self.onVisibilityChange = [ ]
13 self.skinAttributes = None
14 self.deprecationInfo = None
31 # this works only with normal widgets - if you don't have self.instance, override this.
32 def applySkin(self, desktop, parent):
36 if self.skinAttributes is None:
39 skin.applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
42 def move(self, x, y = None):
43 # we assume, that x is already an ePoint
47 self.instance.move(ePoint(int(x), int(y)))
49 def resize(self, x, y = None):
51 self.instance.resize(x)
53 self.instance.resize(eSize(int(x), int(y)))
55 def setZPosition(self, z):
56 self.instance.setZPosition(z)
61 if self.instance is not None:
63 if old != self.__visible:
64 for fnc in self.onVisibilityChange:
70 if self.instance is not None:
72 if old != self.__visible:
73 for fnc in self.onVisibilityChange:
79 def setVisible(self, visible):
85 visible = property(getVisible, setVisible)
87 def setPosition(self, x, y):
88 self.instance.move(ePoint(int(x), int(y)))
90 def getPosition(self):
91 p = self.instance.position()
94 position = property(getPosition, setPosition)
96 # default implementation for only one widget per component
97 # feel free to override!
98 def GUIcreate(self, parent):
99 self.instance = self.createWidget(parent)
100 self.postWidgetCreate(self.instance)
103 self.preWidgetRemove(self.instance)
106 # default for argumentless widget constructor
107 def createWidget(self, parent):
108 return self.GUI_WIDGET(parent)
110 def postWidgetCreate(self, instance):
113 def preWidgetRemove(self, instance):