]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/MDIWindows.py
add support for wxCONTROL_ISDEFAULT to wxRendererMSW::DrawPushButton() (modified...
[wxWidgets.git] / wxPython / demo / MDIWindows.py
index fb68174246e152ca6f18a87ab7d07c8cbc2c8ac4..4fa3ad01df24b6874913f35791ed3336c2733891 100644 (file)
@@ -1,8 +1,7 @@
 
 import  wx
-
-import  MDIDemo
-import  MDISashDemo
+import os
+import sys
 
 #----------------------------------------------------------------------
 
@@ -25,16 +24,33 @@ class TestPanel(wx.Panel):
         self.SetSizer(box)
 
 
+    # These are spawned as new processes because on Mac there can be
+    # some problems related to having regular frames and MDI frames in
+    # the same app.
     def ShowMDIDemo(self, evt):
-        frame = MDIDemo.MyParentFrame()
-        frame.Show()
+        exe, spawn = self.GetPyExecutable()
+        spawn(os.P_NOWAIT, exe, exe, "MDIDemo.py")
 
     def ShowMDISashDemo(self, evt):
-        frame = MDISashDemo.MyParentFrame()
-        frame.Show()
-
-
-
+        exe, spawn = self.GetPyExecutable()
+        spawn(os.P_NOWAIT, exe, exe, "MDISashDemo.py")
+
+    # TODO: This hack can be removed once we fix the way the Python
+    # app bundles are generated so that they are not bundling and 
+    # pointing to an otherwise unused and non-GUI-friendly version of
+    # Python on OS X.
+    def GetPyExecutable(self):
+        if 'wxMac' in wx.PlatformInfo:
+            # sys.executable will be wrong if running the demo from
+            # an app bundle.  But the bundle is always using a system
+            # framework so just hardcode the path to it.
+            if sys.version[:3] == "2.4":
+                return '/usr/local/bin/pythonw', os.spawnl
+            else:
+                return '/usr/bin/pythonw', os.spawnl    
+        else:
+            return sys.executable, os.spawnl
+        
 #----------------------------------------------------------------------
 
 def runTest(frame, nb, log):
@@ -59,4 +75,4 @@ showing how the MDI interface can be integrated into a SashWindow interface.
 if __name__ == '__main__':
     import sys,os
     import run
-    run.main(['', os.path.basename(sys.argv[0])])
+    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])