def destroy(self): if self.noWidget(): return self.widget.destroy() self.widget.set_parent(None) self.widget = DummyWidget()
class ComponentWrapper(AbstractWrapper): def __init__(self, *args, **kwds): AbstractWrapper.__init__(self, *args, **kwds) # 'container' before everything... self.setConstraints('container','x','y','width','height','text','selection') # Note: x,y,width, and height probably have no effect here, due to # the way getSetters() works. I'm not sure if that's something # that needs fixing or not... - jak self.addConstraint('geometry', 'visible') # FIXME: Is this the right place to put it? Make sure # 'geometry' implies 'x', 'y', etc. too (see Wrappers.py) # Also, this scheme will cause flashing... (place before # place_forget) def widgetFactory(self,*args,**kws): return self._twclass(*args,**kws) def setGeometry(self,x,y,width,height): ##_scr.dbg("Ensuring geometry",self.geometry,self) #_refresh_all() if self.noWidget(): return self.widget.set_geometry((x,y,width,height)) def setVisible(self,visible): if self.noWidget(): return self.widget.set_visible(visible) def getVisible(self): if self.noWidget(): return return self.widget.is_visible() def setEnabled(self,enabled): #_scr.dbg("ENSURING ENABLED",self) # UNTESTED! if self.noWidget(): return self.widget.set_enabled(enabled) def destroy(self): if self.noWidget(): return self.widget.destroy() self.widget.set_parent(None) self.widget = DummyWidget() def setText(self,text): if self.noWidget(): return self.widget.set_text(text) def enterMainLoop(self): # ... #if not isDummy(self.widget): # self.widget.destroy() # sys.stdout.flush() self.proxy.push() # FIXME: Why is this needed when push is called in internalProd (by prod)? def setContainer(self,container): #log("Set container",self,container) if not self.noWidget(): self.destroy() if container is None: self.widget.parent = None return self.create() container.wrapper.widget.add(self.widget) self.widget.create() self.proxy.push(blocked=['container'])