+
+ def show(self):
+ if self.shown:
+ return
+ self.shown = True
+ self.instance.show()
+ for x in self.onShow:
+ x()
+ for val in self.values() + self.renderer:
+ if isinstance(val, GUIComponent) or isinstance(val, Source):
+ val.onShow()
+
+ def hide(self):
+ if not self.shown:
+ return
+ self.shown = False
+ self.instance.hide()
+ for x in self.onHide:
+ x()
+ for val in self.values() + self.renderer:
+ if isinstance(val, GUIComponent) or isinstance(val, Source):
+ val.onHide()
+
+ def __repr__(self):
+ return str(type(self))