X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7f8f0b88b755509ee0feaf8d16f74c9c7a35fe14..00bcc185e4ff5cc2477cde3d61a5a471afe154d6:/wxPython/demo/run.py diff --git a/wxPython/demo/run.py b/wxPython/demo/run.py index 0e238b55fc..8120b699e3 100755 --- a/wxPython/demo/run.py +++ b/wxPython/demo/run.py @@ -23,7 +23,7 @@ import sys, os # stuff for debugging print "wx.VERSION_STRING = ", wx.VERSION_STRING print "pid:", os.getpid() -##raw_input("Press a key...") +##raw_input("Press Enter...") assertMode = wx.PYAPP_ASSERT_DIALOG ##assertMode = wx.PYAPP_ASSERT_EXCEPTION @@ -40,20 +40,20 @@ class Log: class RunDemoApp(wx.App): - def __init__(self, name, module): + def __init__(self, name, module, useShell): self.name = name self.demoModule = module + self.useShell = useShell wx.App.__init__(self, 0) def OnInit(self): - wx.InitAllImageHandlers() wx.Log_SetActiveTarget(wx.LogStderr()) self.SetAssertMode(assertMode) frame = wx.Frame(None, -1, "RunDemo: " + self.name, pos=(50,50), size=(200,100), - style=wx.NO_FULL_REPAINT_ON_RESIZE|wx.DEFAULT_FRAME_STYLE) + style=wx.DEFAULT_FRAME_STYLE) frame.CreateStatusBar() menuBar = wx.MenuBar() @@ -62,6 +62,12 @@ class RunDemoApp(wx.App): self.Bind(wx.EVT_MENU, self.OnButton, item) menuBar.Append(menu, "&File") + ns = {} + ns['wx'] = wx + ns['app'] = self + ns['module'] = self.demoModule + ns['frame'] = frame + frame.SetMenuBar(menuBar) frame.Show(True) frame.Bind(wx.EVT_CLOSE, self.OnCloseFrame) @@ -75,16 +81,18 @@ class RunDemoApp(wx.App): frame.SetSize((640, 480)) win.SetFocus() self.window = win + ns['win'] = win + frect = frame.GetRect() else: # otherwise the demo made its own frame, so just put a # button in this one if hasattr(frame, 'otherWin'): + ns['win'] = frame.otherWin + frect = frame.otherWin.GetRect() p = wx.Panel(frame, -1) b = wx.Button(p, -1, " Exit ", (10,10)) - p.Fit() - frame.SetClientSize(p.GetSize()) - #frame.SetSize((200, 100)) + wx.CallAfter(frame.SetClientSize, (200, 100)) frame.Bind(wx.EVT_BUTTON, self.OnButton, b) else: # It was probably a dialog or something that is already @@ -96,6 +104,24 @@ class RunDemoApp(wx.App): self.frame = frame #wx.Log_SetActiveTarget(wx.LogStderr()) #wx.Log_SetTraceMask(wx.TraceMessages) + + if self.useShell: + # Make a PyShell window, and position it below our test window + from wx import py + shell = py.shell.ShellFrame(None, locals=ns) + frect.OffsetXY(0, frect.height) + frect.height = 400 + shell.SetRect(frect) + shell.Show() + + # Hook the close event of the test window so that we close + # the shell at the same time + def CloseShell(evt): + if shell: + shell.Close() + evt.Skip() + frame.Bind(wx.EVT_CLOSE, CloseShell) + return True @@ -113,6 +139,13 @@ class RunDemoApp(wx.App): def main(argv): + useShell = False + for x in range(len(sys.argv)): + if sys.argv[x] in ['--shell', '-shell', '-s']: + useShell = True + del sys.argv[x] + break + if len(argv) < 2: print "Please specify a demo module name on the command-line" raise SystemExit @@ -121,7 +154,7 @@ def main(argv): module = __import__(name) - app = RunDemoApp(name, module) + app = RunDemoApp(name, module, useShell) app.MainLoop()