3 from enigma import ePoint
5 class GUIComponent(object):
10 self.onVisibilityChange = [ ]
13 self.skinAttributes = None
30 # this works only with normal widgets - if you don't have self.instance, override this.
31 def applySkin(self, desktop):
35 if self.skinAttributes is None:
38 skin.applyAllAttributes(self.instance, desktop, self.skinAttributes)
41 def move(self, x, y = None):
42 # we assume, that x is already an ePoint
46 self.instance.move(ePoint(int(x), int(y)))
48 def resize(self, size):
49 self.instance.resize(size)
51 def setZPosition(self, z):
52 self.instance.setZPosition(z)
57 if self.instance is not None:
59 if old != self.__visible:
60 for fnc in self.onVisibilityChange:
66 if self.instance is not None:
68 if old != self.__visible:
69 for fnc in self.onVisibilityChange:
75 def setVisible(self, visible):
81 visible = property(getVisible, setVisible)
83 def setPosition(self, x, y):
84 self.instance.move(ePoint(int(x), int(y)))
86 def getPosition(self):
87 p = self.instance.position()
90 position = property(getPosition, setPosition)
92 # default implementation for only one widget per component
93 # feel free to override!
94 def GUIcreate(self, parent):
95 self.instance = self.createWidget(parent)
96 self.postWidgetCreate(self.instance)
99 self.preWidgetRemove(self.instance)
102 # default for argumentless widget constructor
103 def createWidget(self, parent):
104 return self.GUI_WIDGET(parent)
106 def postWidgetCreate(self, instance):
109 def preWidgetRemove(self, instance):