]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/samples/wxPIA_book/Chapter-04/PyWrap.py
Added the sample code from wxPython In Action to the samples dir
[wxWidgets.git] / wxPython / samples / wxPIA_book / Chapter-04 / PyWrap.py
diff --git a/wxPython/samples/wxPIA_book/Chapter-04/PyWrap.py b/wxPython/samples/wxPIA_book/Chapter-04/PyWrap.py
new file mode 100644 (file)
index 0000000..99a91f1
--- /dev/null
@@ -0,0 +1,48 @@
+"""PyWrap is a command line utility that runs a wxPython program with
+additional runtime-tools, such as PyCrust."""
+
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[11:-2]
+
+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()