def _makeWindow(self): buttons = VBox() for button in self._appButtons(): buttons.addChild(Border(button)) buttons.addChild(Border(self._logoffButton())) from twisted.internet import reactor window = TopWindow(self._draw, lambda f: reactor.callLater(0, f)) window.addChild(Border(buttons)) return window
def mkWidgets(self): def _schedule(f): self.reactor.callLater(0, f) root = TopWindow(self._painter, _schedule) root.reactor = self.reactor vbox = VBox() vbox.addChild(OutputWidget()) vbox.addChild(InputWidget(self.width - 2, self.parseInputLine)) root.addChild(vbox) return root
def connectionMade(self): TerminalProtocol.connectionMade(self) self.terminal.eraseDisplay() self.terminal.resetPrivateModes([privateModes.CURSOR_MODE]) self.window = TopWindow(self._draw, self._schedule) vbox = VBox() self.logWidget = OutputWidget() vbox.addChild(self.logWidget) logHandler = logging.StreamHandler(OutputLogStream(self.logWidget)) #make it use the default formatter logHandler.setFormatter(logging.Formatter(logging.BASIC_FORMAT)) logging.getLogger().addHandler(logHandler) vbox.addChild(SeperatorWidget()) #TODO: factory stuff self.manhole = Manhole() self.manholeView = TerminalProtocolWidget(self.manhole) #set the namespace directly so it's mutable if self.manholeNamespace is not None: self.manhole.interpreter.locals = self.manholeNamespace vbox.addChild(self.manholeView) self.window.addChild(vbox)
def createChatRootWidget(reactor, width, height, painter, statusModel, controller): def _schedule(f): reactor.callLater(0, f) root = TopWindow(painter, _schedule) root.reactor = reactor vbox = VBox() vbox.addChild(OutputWidget()) vbox.addChild(StatusWidget(statusModel)) vbox.addChild(LineInputWidget(width, controller)) root.addChild(vbox) return root