git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
# Name:         run.py
 | 
						|
# Purpose:      Simple framework for running individual demos
 | 
						|
#
 | 
						|
# Author:       Robin Dunn
 | 
						|
#
 | 
						|
# Created:      6-March-2000
 | 
						|
# RCS-ID:       $Id$
 | 
						|
# Copyright:    (c) 2000 by Total Control Software
 | 
						|
# Licence:      wxWindows license
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
 | 
						|
"""
 | 
						|
This program will load and run one of the individual demos in this
 | 
						|
directory within its own frame window.  Just specify the module name
 | 
						|
on the command line.
 | 
						|
"""
 | 
						|
 | 
						|
 | 
						|
import sys, os
 | 
						|
from wxPython.wx import *
 | 
						|
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
 | 
						|
class Log:
 | 
						|
    def WriteText(self, text):
 | 
						|
        sys.stdout.write(text)
 | 
						|
    write = WriteText
 | 
						|
 | 
						|
 | 
						|
class RunDemoApp(wxApp):
 | 
						|
    def __init__(self, name, module):
 | 
						|
        self.name = name
 | 
						|
        self.demoModule = module
 | 
						|
        wxApp.__init__(self, 0) ##wxPlatform == "__WXMAC__")
 | 
						|
 | 
						|
 | 
						|
    def OnInit(self):
 | 
						|
        wxInitAllImageHandlers()
 | 
						|
        frame = wxFrame(None, -1, "RunDemo: " + self.name, size=(0,0),
 | 
						|
                        style=wxNO_FULL_REPAINT_ON_RESIZE|wxDEFAULT_FRAME_STYLE)
 | 
						|
        frame.CreateStatusBar()
 | 
						|
        menuBar = wxMenuBar()
 | 
						|
        menu = wxMenu()
 | 
						|
        menu.Append(101, "E&xit\tAlt-X", "Exit demo")
 | 
						|
        EVT_MENU(self, 101, self.OnButton)
 | 
						|
        menuBar.Append(menu, "&File")
 | 
						|
        frame.SetMenuBar(menuBar)
 | 
						|
        frame.Show(true)
 | 
						|
        win = self.demoModule.runTest(frame, frame, Log())
 | 
						|
 | 
						|
        # a window will be returned if the demo does not create
 | 
						|
        # its own top-level window
 | 
						|
        if win:
 | 
						|
            # so set the frame to a good size for showing stuff
 | 
						|
            frame.SetSize((640, 480))
 | 
						|
            win.SetFocus()
 | 
						|
 | 
						|
        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)
 | 
						|
            else:
 | 
						|
                # It was probably a dialog or something that is already
 | 
						|
                # gone, so we're done.
 | 
						|
                frame.Destroy()
 | 
						|
                return true
 | 
						|
 | 
						|
        self.SetTopWindow(frame)
 | 
						|
        self.frame = frame
 | 
						|
        #wxLog_SetActiveTarget(wxLogStderr())
 | 
						|
        #wxLog_SetTraceMask(wxTraceMessages)
 | 
						|
        return true
 | 
						|
 | 
						|
 | 
						|
    def OnButton(self, evt):
 | 
						|
        self.frame.Close(true)
 | 
						|
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
 | 
						|
 | 
						|
def main(argv):
 | 
						|
    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]
 | 
						|
    module = __import__(name)
 | 
						|
 | 
						|
 | 
						|
    app = RunDemoApp(name, module)
 | 
						|
    app.MainLoop()
 | 
						|
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    main(sys.argv)
 | 
						|
 | 
						|
 |