2003-11-12 16:34:20 -05:00
|
|
|
"""PyWrap is a command line utility that runs a wxPython program with
|
|
|
|
additional runtime-tools, such as PyCrust."""
|
2003-07-02 19:13:10 -04:00
|
|
|
|
2003-11-12 16:34:20 -05:00
|
|
|
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
|
|
|
|
__cvsid__ = "$Id$"
|
|
|
|
__revision__ = "$Revision$"[11:-2]
|
|
|
|
|
2004-03-15 08:42:37 -05:00
|
|
|
import wx
|
|
|
|
from wx import py
|
|
|
|
|
2003-11-12 16:34:20 -05:00
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
|
|
|
|
def wrap(app):
|
|
|
|
wx.InitAllImageHandlers()
|
2004-03-15 08:42:37 -05:00
|
|
|
frame = py.crust.CrustFrame()
|
2003-11-12 16:34:20 -05:00
|
|
|
frame.SetSize((750, 525))
|
|
|
|
frame.Show(True)
|
|
|
|
frame.shell.interp.locals['app'] = app
|
|
|
|
app.MainLoop()
|
|
|
|
|
|
|
|
def main(modulename=None):
|
|
|
|
sys.path.insert(0, os.curdir)
|
|
|
|
if not modulename:
|
|
|
|
if len(sys.argv) < 2:
|
|
|
|
print "Please specify a module name."
|
|
|
|
raise SystemExit
|
|
|
|
modulename = sys.argv[1]
|
|
|
|
if modulename.endswith('.py'):
|
|
|
|
modulename = modulename[:-3]
|
|
|
|
module = __import__(modulename)
|
|
|
|
# Find the App class.
|
|
|
|
App = None
|
|
|
|
d = module.__dict__
|
|
|
|
for item in d.keys():
|
|
|
|
try:
|
|
|
|
if issubclass(d[item], wx.App):
|
|
|
|
App = d[item]
|
|
|
|
except (NameError, TypeError):
|
|
|
|
pass
|
|
|
|
if App is None:
|
2004-02-12 21:47:59 -05:00
|
|
|
print "No App class was found."
|
2003-11-12 16:34:20 -05:00
|
|
|
raise SystemExit
|
|
|
|
app = App()
|
|
|
|
wrap(app)
|
2003-07-02 19:13:10 -04:00
|
|
|
|
2003-10-01 20:58:06 -04:00
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|