~brian-sidebotham/wxwidgets-cmake/wxpython-2.9.4

« back to all changes in this revision

Viewing changes to wxPython/demo/MDIWindows.py

  • Committer: Brian Sidebotham
  • Date: 2013-08-03 14:30:08 UTC
  • Revision ID: brian.sidebotham@gmail.com-20130803143008-c7806tkych1tp6fc
Initial import into Bazaar

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
import  wx
 
3
import os
 
4
import sys
 
5
 
 
6
#----------------------------------------------------------------------
 
7
 
 
8
class TestPanel(wx.Panel):
 
9
    def __init__(self, parent, log):
 
10
        self.log = log
 
11
        wx.Panel.__init__(self, parent, -1)
 
12
 
 
13
        b1 = wx.Button(self, -1, "MDI demo")
 
14
        self.Bind(wx.EVT_BUTTON, self.ShowMDIDemo, b1)
 
15
 
 
16
        b2 = wx.Button(self, -1, "MDI with SashWindows demo")
 
17
        self.Bind(wx.EVT_BUTTON, self.ShowMDISashDemo, b2)
 
18
 
 
19
        box = wx.BoxSizer(wx.VERTICAL)
 
20
        box.Add((20, 30))
 
21
        box.Add(b1, 0, wx.ALIGN_CENTER|wx.ALL, 15)
 
22
        box.Add(b2, 0, wx.ALIGN_CENTER|wx.ALL, 15)
 
23
        self.SetAutoLayout(True)
 
24
        self.SetSizer(box)
 
25
 
 
26
 
 
27
    # These are spawned as new processes because on Mac there can be
 
28
    # some problems related to having regular frames and MDI frames in
 
29
    # the same app.
 
30
    def ShowMDIDemo(self, evt):
 
31
        exe, spawn = self.GetPyExecutable()
 
32
        spawn(os.P_NOWAIT, exe, exe, "MDIDemo.py")
 
33
 
 
34
    def ShowMDISashDemo(self, evt):
 
35
        exe, spawn = self.GetPyExecutable()
 
36
        spawn(os.P_NOWAIT, exe, exe, "MDISashDemo.py")
 
37
 
 
38
    # TODO: This hack can be removed once we fix the way the Python
 
39
    # app bundles are generated so that they are not bundling and 
 
40
    # pointing to an otherwise unused and non-GUI-friendly version of
 
41
    # Python on OS X.
 
42
    def GetPyExecutable(self):
 
43
        if 'wxMac' in wx.PlatformInfo:
 
44
            # sys.executable will be wrong if running the demo from
 
45
            # an app bundle.  But the bundle is always using a system
 
46
            # framework so just hardcode the path to it.
 
47
            if sys.version[:3] == "2.4":
 
48
                return '/usr/local/bin/pythonw', os.spawnl
 
49
            else:
 
50
                return '/usr/bin/pythonw', os.spawnl    
 
51
        else:
 
52
            return sys.executable, os.spawnl
 
53
        
 
54
#----------------------------------------------------------------------
 
55
 
 
56
def runTest(frame, nb, log):
 
57
    win = TestPanel(nb, log)
 
58
    return win
 
59
 
 
60
#----------------------------------------------------------------------
 
61
 
 
62
 
 
63
 
 
64
overview = """<html><body>
 
65
<h2><center>Multiple Document Interface</center></h2>
 
66
 
 
67
Although Microsoft has deprecated the MDI model, wxWindows still supports
 
68
it.  Here are a couple samples of how to use it - one straightforward, the other
 
69
showing how the MDI interface can be integrated into a SashWindow interface.
 
70
 
 
71
</body></html>
 
72
"""
 
73
 
 
74
 
 
75
if __name__ == '__main__':
 
76
    import sys,os
 
77
    import run
 
78
    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])