X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5a5d6473c0f5339854a4105a57c6a733632f073..52f52ebc4e0be6a9899d328b08db9eb14629d219:/wxPython/demo/run.py?ds=inline diff --git a/wxPython/demo/run.py b/wxPython/demo/run.py index 09cc9488dd..0e238b55fc 100755 --- a/wxPython/demo/run.py +++ b/wxPython/demo/run.py @@ -17,36 +17,55 @@ directory within its own frame window. Just specify the module name on the command line. """ - +import wx # This module uses the new wx namespace import sys, os -from wxPython.wx import * + +# stuff for debugging +print "wx.VERSION_STRING = ", wx.VERSION_STRING +print "pid:", os.getpid() +##raw_input("Press a key...") + +assertMode = wx.PYAPP_ASSERT_DIALOG +##assertMode = wx.PYAPP_ASSERT_EXCEPTION + #---------------------------------------------------------------------------- class Log: def WriteText(self, text): - sys.stdout.write(text) + if text[-1:] == '\n': + text = text[:-1] + wx.LogMessage(text) write = WriteText -class RunDemoApp(wxApp): +class RunDemoApp(wx.App): def __init__(self, name, module): self.name = name self.demoModule = module - wxApp.__init__(self, 0) + wx.App.__init__(self, 0) + def OnInit(self): - wxInitAllImageHandlers() - frame = wxFrame(None, -1, "RunDemo: " + self.name, size=(0,0), - style=wxNO_FULL_REPAINT_ON_RESIZE|wxDEFAULT_FRAME_STYLE) + 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) frame.CreateStatusBar() - menuBar = wxMenuBar() - menu = wxMenu() - menu.Append(101, "E&xit\tAlt-X", "Exit demo") - EVT_MENU(self, 101, self.OnButton) + + menuBar = wx.MenuBar() + menu = wx.Menu() + item = menu.Append(-1, "E&xit\tAlt-X", "Exit demo") + self.Bind(wx.EVT_MENU, self.OnButton, item) menuBar.Append(menu, "&File") + frame.SetMenuBar(menuBar) - frame.Show(true) + frame.Show(True) + frame.Bind(wx.EVT_CLOSE, self.OnCloseFrame) + win = self.demoModule.runTest(frame, frame, Log()) # a window will be returned if the demo does not create @@ -55,39 +74,50 @@ class RunDemoApp(wxApp): # so set the frame to a good size for showing stuff frame.SetSize((640, 480)) win.SetFocus() + self.window = win else: # otherwise the demo made its own frame, so just put a # button in this one if hasattr(frame, 'otherWin'): - b = wxButton(frame, -1, " Exit ") - frame.SetSize((200, 100)) - EVT_BUTTON(frame, b.GetId(), self.OnButton) + p = wx.Panel(frame, -1) + b = wx.Button(p, -1, " Exit ", (10,10)) + p.Fit() + frame.SetClientSize(p.GetSize()) + #frame.SetSize((200, 100)) + frame.Bind(wx.EVT_BUTTON, self.OnButton, b) else: # It was probably a dialog or something that is already # gone, so we're done. frame.Destroy() - return true + return True self.SetTopWindow(frame) self.frame = frame - return true + #wx.Log_SetActiveTarget(wx.LogStderr()) + #wx.Log_SetTraceMask(wx.TraceMessages) + return True def OnButton(self, evt): - self.frame.Close(true) + self.frame.Close(True) + + + def OnCloseFrame(self, evt): + if hasattr(self, "window") and hasattr(self.window, "ShutdownDemo"): + self.window.ShutdownDemo() + evt.Skip() + #---------------------------------------------------------------------------- def main(argv): - if len(argv) != 2: + if len(argv) < 2: print "Please specify a demo module name on the command-line" raise SystemExit - name = argv[1] - if name[-3:] == '.py': - name = name[:-3] + name, ext = os.path.splitext(argv[1]) module = __import__(name)