Exemple #1
0
 def destroy(self):
     if self.noWidget(): return
     self.widget.destroy()
     self.widget.set_parent(None)
     self.widget = DummyWidget()
Exemple #2
0
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'])