import wx
-
-import MDIDemo
-import MDISashDemo
+import os
+import sys
#----------------------------------------------------------------------
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")
+
+
+ def GetPyExecutable(self):
+ if 'wxMac' in wx.PlatformInfo:
+ # sys.executable will be wrong if running the demo from
+ # an app bundle. Just find pythonw on the path instead.
+ return 'pythonw' + sys.version[:3], os.spawnlp
+ else:
+ return sys.executable, os.spawnl
+
#----------------------------------------------------------------------
def runTest(frame, nb, log):
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:])