X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/95bfd958bda8955ac81277c78e5627c926154f39..015131a1fd95d4fcfb2bbd660197ad5185cc8992:/wxPython/demo/MDIWindows.py?ds=sidebyside diff --git a/wxPython/demo/MDIWindows.py b/wxPython/demo/MDIWindows.py index fb68174246..4fa3ad01df 100644 --- a/wxPython/demo/MDIWindows.py +++ b/wxPython/demo/MDIWindows.py @@ -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:])