]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/py/PyWrap.py
"wxWindows" --> "wxWidgets"
[wxWidgets.git] / wxPython / wx / py / PyWrap.py
index 33d57f7b174c1a149b1fbb66a4b275ef0e7f71da..99a91f1833b0f6594931528c1989f75ef976a325 100644 (file)
@@ -1,11 +1,48 @@
+"""PyWrap is a command line utility that runs a wxPython program with
+additional runtime-tools, such as PyCrust."""
 
-"""Renamer stub: provides a way to drop the wx prefix from wxPython objects."""
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[11:-2]
 
-from wx import _rename
-from wxPython.py import PyWrap
-_rename(globals(), PyWrap.__dict__, modulename='py.PyWrap')
-del PyWrap
-del _rename
+import wx
+from wx import py
+
+import os
+import sys
+
+def wrap(app):
+    wx.InitAllImageHandlers()
+    frame = py.crust.CrustFrame()
+    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:
+        print "No App class was found."
+        raise SystemExit
+    app = App()
+    wrap(app)
 
 if __name__ == '__main__':
     main()