X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3af4e610b182d2aeb504bdeeef8b44cb1279f28e..b854b7b82e033d1dbd9d300402df50ec5e1e8b74:/utils/wxPython/src/_extras.py diff --git a/utils/wxPython/src/_extras.py b/utils/wxPython/src/_extras.py index 53cb1132af..cad11d21a1 100644 --- a/utils/wxPython/src/_extras.py +++ b/utils/wxPython/src/_extras.py @@ -153,10 +153,10 @@ def EVT_QUERY_NEW_PALETTE(win, func): win.Connect(-1, -1, wxEVT_QUERY_NEW_PALETTE, func) def EVT_WINDOW_CREATE(win, func): - win.Connect(-1, -1, wxEVT_WINDOW_CREATE, func) + win.Connect(-1, -1, wxEVT_CREATE, func) def EVT_WINDOW_DESTROY(win, func): - win.Connect(-1, -1, wxEVT_WINDOW_DESTROY, func) + win.Connect(-1, -1, wxEVT_DESTROY, func) @@ -733,15 +733,18 @@ class wxPyOnDemandOutputWindow: self.frame = None self.title = title + def SetParent(self, parent): self.parent = parent + def OnCloseWindow(self, event): if self.frame != None: self.frame.Destroy() self.frame = None self.text = None + # this provides the file-like behaviour def write(self, str): if not self.frame: @@ -753,7 +756,10 @@ class wxPyOnDemandOutputWindow: EVT_CLOSE(self.frame, self.OnCloseWindow) self.text.AppendText(str) + def close(self): + if self.frame != None: + self.frame.Destroy() self.frame = None self.text = None @@ -789,19 +795,22 @@ class wxApp(wxPyApp): def SetTopWindow(self, frame): if self.stdioWin: self.stdioWin.SetParent(frame) - sys.stdout = self.stdioWin #sys.stderr = + sys.stderr = sys.stdout = self.stdioWin wxPyApp.SetTopWindow(self, frame) + def MainLoop(self): wxPyApp.MainLoop(self) self.RestoreStdio() + def RedirectStdio(self, filename): if filename: sys.stdout = sys.stderr = open(filename, 'a') else: self.stdioWin = self.outputWindowClass() # wxPyOnDemandOutputWindow + def RestoreStdio(self): sys.stdout, sys.stderr = self.saveStdio if self.stdioWin != None: