2 #----------------------------------------------------------------------------
4 # Purpose: Simple framework for running individual demos
8 # Created: 6-March-2000
10 # Copyright: (c) 2000 by Total Control Software
11 # Licence: wxWindows license
12 #----------------------------------------------------------------------------
15 This program will load and run one of the individual demos in this
16 directory within its own frame window. Just specify the module name
22 from wxPython
.wx
import *
24 #----------------------------------------------------------------------------
27 def WriteText(self
, text
):
28 sys
.stdout
.write(text
)
32 class RunDemoApp(wxApp
):
33 def __init__(self
, name
, module
):
35 self
.demoModule
= module
36 wxApp
.__init
__(self
, 0)
39 wxInitAllImageHandlers()
40 frame
= wxFrame(None, -1, "RunDemo: " + self
.name
, size
=(0,0),
41 style
=wxNO_FULL_REPAINT_ON_RESIZE|wxDEFAULT_FRAME_STYLE
)
42 frame
.CreateStatusBar()
44 win
= self
.demoModule
.runTest(frame
, frame
, Log())
46 # a window will be returned if the demo does not create
47 # its own top-level window
49 # so set the frame to a good size for showing stuff
50 frame
.SetSize((640, 480))
54 # otherwise the demo made its own frame, so just put a
56 if hasattr(frame
, 'otherWin'):
57 wxButton(frame
, 1101, " Exit ")
58 frame
.SetSize((200, 100))
59 EVT_BUTTON(frame
, 1101, self
.OnButton
)
61 # It was probably a dialog or something that is already
62 # gone, so we're done.
66 self
.SetTopWindow(frame
)
71 def OnButton(self
, evt
):
72 self
.frame
.Close(true
)
74 #----------------------------------------------------------------------------
79 print "Please specify a demo module name on the command-line"
83 if name
[-3:] == '.py':
85 module
= __import__(name
)
88 app
= RunDemoApp(name
, module
)
93 if __name__
== "__main__":