def __init__(self, title = "wxPython: stdout/stderr"):
self.frame = None
self.title = title
+ self.pos = wx.DefaultPosition
+ self.size = (450, 300)
self.parent = None
def SetParent(self, parent):
def CreateOutputWindow(self, st):
- self.frame = wx.Frame(self.parent, -1, self.title,
- style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
+ self.frame = wx.Frame(self.parent, -1, self.title, self.pos, self.size,
+ style=wx.DEFAULT_FRAME_STYLE)
self.text = wx.TextCtrl(self.frame, -1, "",
- style = wx.TE_MULTILINE | wx.TE_READONLY)
+ style=wx.TE_MULTILINE|wx.TE_READONLY)
self.text.AppendText(st)
- self.frame.SetSize((450, 300))
self.frame.Show(True)
EVT_CLOSE(self.frame, self.OnCloseWindow)
wx.CallAfter(self.frame.Close)
+ def flush(self):
+ pass
+
+
#----------------------------------------------------------------------
``self.SetTopWindow(frame)``.
:see: `wx.PySimpleApp` for a simpler app class that can be used
- directly.
+ directly.
"""
outputWindowClass = PyOnDemandOutputWindow
not 'python', and only when you are logged in on the main display of
your Mac."""
_sys.exit(1)
+ except SystemExit:
+ raise
except:
pass
_sys.stdout, _sys.stderr = self.saveStdio
+ def SetOutputWindowAttributes(self, title=None, pos=None, size=None):
+ """
+ Set the title, position and/or size of the output window if
+ the stdio has been redirected. This should be called before
+ any output would cause the output window to be created.
+ """
+ if self.stdioWin:
+ if title is not None:
+ self.stdioWin.title = title
+ if pos is not None:
+ self.stdioWin.pos = pos
+ if size is not None:
+ self.stdioWin.size = size
+
+
+
# change from wx.PyApp_XX to wx.App_XX
App_GetMacSupportPCMenuShortcuts = _core_.PyApp_GetMacSupportPCMenuShortcuts
wx.App.__init__(self, redirect, filename, useBestVisual, clearSigInt)
def OnInit(self):
- wx.InitAllImageHandlers()
return True