From 330af869400a9084ac801a545577b572fbd73365 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 11 Mar 2004 06:26:54 +0000 Subject: [PATCH] Allow the stdout redirection to be toggled on or off in the demo git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/demo/Main.py | 15 +++++++++++++++ wxPython/src/_app_ex.py | 14 ++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index 6a2146104b..14abd512b7 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -493,9 +493,15 @@ class wxPythonDemo(wx.Frame): # Make a File menu self.mainmenu = wx.MenuBar() menu = wx.Menu() + item = menu.Append(-1, '&Redirect Output', + 'Redirect print statements to a window', + wx.ITEM_CHECK) + self.Bind(wx.EVT_MENU, self.OnToggleRedirect, item) + item = menu.Append(-1, 'E&xit\tAlt-X', 'Get the heck outta here!') self.Bind(wx.EVT_MENU, self.OnFileExit, item) wx.App_SetMacExitMenuItemId(item.GetId()) + self.mainmenu.Append(menu, '&File') # Make a Demo menu @@ -743,6 +749,15 @@ class wxPythonDemo(wx.Frame): def OnFileExit(self, *event): self.Close() + def OnToggleRedirect(self, event): + app = wx.GetApp() + if event.Checked(): + app.RedirectStdio() + print "Print statements and other standard output will now be directed to this window." + else: + app.RestoreStdio() + print "Print statements and other standard output will now be sent to the usual location." + def OnHelpAbout(self, event): from About import MyAboutBox about = MyAboutBox(self) diff --git a/wxPython/src/_app_ex.py b/wxPython/src/_app_ex.py index 8efa406e2c..f3246fbcc6 100644 --- a/wxPython/src/_app_ex.py +++ b/wxPython/src/_app_ex.py @@ -29,6 +29,13 @@ class PyOnDemandOutputWindow: EVT_CLOSE(self.frame, self.OnCloseWindow) + def OnCloseWindow(self, event): + if self.frame is not None: + self.frame.Destroy() + self.frame = None + self.text = None + + # These methods provide the file-like output behaviour. def write(self, text): """ @@ -53,11 +60,6 @@ class PyOnDemandOutputWindow: wx.CallAfter(self.frame.Close) - def OnCloseWindow(self, event): - if self.frame is not None: - self.frame.Destroy() - self.frame = None - self.text = None #---------------------------------------------------------------------- @@ -131,7 +133,7 @@ your Mac.""" self.RestoreStdio() - def RedirectStdio(self, filename): + def RedirectStdio(self, filename=None): """Redirect sys.stdout and sys.stderr to a file or a popup window.""" if filename: _sys.stdout = _sys.stderr = open(filename, 'a')