]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/wxMenu.py
Applied patch [ 739401 ] gtk_init() has to be called before gdk_threads_enter()
[wxWidgets.git] / wxPython / demo / wxMenu.py
CommitLineData
3115ef3e
RD
1#-------------------------------------------------------------------
2# essaimenu.py
3#
4# menus in wxPython 2.3.3
5#
6#-------------------------------------------------------------------
7
8from wxPython.wx import *
9
10#-------------------------------------------------------------------
11
12class MyFrame(wxFrame):
13
14 def __init__(self, parent, id, log):
15 wxFrame.__init__(self, parent, id, 'Playing with menus', size=(400, 200))
16 self.log = log
17 self.CenterOnScreen()
18
19 self.CreateStatusBar()
20 self.SetStatusText("This is the statusbar")
21
eb0f373c
RD
22 tc = wxTextCtrl(self, -1, """
23A bunch of bogus menus have been created for this frame. You
24can play around with them to see how they behave and then
25check the source for this sample to see how to implement them.
26""", style=wxTE_READONLY|wxTE_MULTILINE)
27
3115ef3e
RD
28 # Prepare the menu bar
29 menuBar = wxMenuBar()
30
31 # 1st menu from left
32 menu1 = wxMenu()
1e4a197e
RD
33 menu1.Append(101, "&Mercury", "This the text in the Statusbar")
34 menu1.Append(102, "&Venus", "")
35 menu1.Append(103, "&Earth", "You may select Earth too")
3115ef3e 36 menu1.AppendSeparator()
1e4a197e 37 menu1.Append(104, "&Close", "Close this frame")
3115ef3e
RD
38 # Add menu to the menu bar
39 menuBar.Append(menu1, "&Planets")
40
41 # 2nd menu from left
42 menu2 = wxMenu()
43 menu2.Append(201, "Hydrogen")
44 menu2.Append(202, "Helium")
45 # a submenu in the 2nd menu
46 submenu = wxMenu()
47 submenu.Append(2031,"Lanthanium")
48 submenu.Append(2032,"Cerium")
49 submenu.Append(2033,"Praseodymium")
50 menu2.AppendMenu(203, "Lanthanides", submenu)
51 # Append 2nd menu
52 menuBar.Append(menu2, "&Elements")
53
54 menu3 = wxMenu()
55 menu3.Append(301, "IDLE", "a Python shell using tcl/tk as GUI", wxITEM_RADIO)
56 menu3.Append(302, "PyCrust", "a Python shell using wxPython as GUI", wxITEM_RADIO)
57 menu3.Append(303, "psi", "a simple Python shell using wxPython as GUI", wxITEM_RADIO)
58 menu3.AppendSeparator()
59 menu3.Append(304, "project1", "", wxITEM_NORMAL)
60 menu3.Append(305, "project2", "", wxITEM_NORMAL)
61 menuBar.Append(menu3, "&Shells")
62
63 menu4 = wxMenu()
64 menu4.Append(401, "letters", "abcde...", wxITEM_CHECK)
65 menu4.Append(402, "digits", "123...", wxITEM_CHECK)
66 menu4.Append(403, "letters and digits", "abcd... + 123...", wxITEM_CHECK)
67 menuBar.Append(menu4, "Chec&k")
68
69 menu5 = wxMenu()
70 menu5.Append(501, "Interesting thing\tCtrl+A", "Note the shortcut!")
71
72 menu5.AppendSeparator()
73 menu5.Append(502, "Hello\tShift+H")
74 menuBar.Append(menu5, "&Fun")
75
76 self.SetMenuBar(menuBar)
77
78 # Menu events
79 EVT_MENU(self, 101, self.Menu101)
80 EVT_MENU(self, 102, self.Menu102)
81 EVT_MENU(self, 103, self.Menu103)
ba2b238e 82 EVT_MENU(self, 104, self.CloseWindow)
3115ef3e
RD
83
84 EVT_MENU(self, 201, self.Menu201)
85 EVT_MENU(self, 202, self.Menu202)
86 EVT_MENU(self, 2031, self.Menu2031)
87 EVT_MENU(self, 2032, self.Menu2032)
88 EVT_MENU(self, 2033, self.Menu2033)
89
90 EVT_MENU(self, 301, self.Menu301To303)
91 EVT_MENU(self, 302, self.Menu301To303)
92 EVT_MENU(self, 303, self.Menu301To303)
93 EVT_MENU(self, 304, self.Menu304)
94 EVT_MENU(self, 305, self.Menu305)
95
96 EVT_MENU_RANGE(self, 401, 403, self.Menu401To403)
97
98 EVT_MENU(self, 501, self.Menu501)
99 EVT_MENU(self, 502, self.Menu502)
100
101 # Methods
102
103 def Menu101(self, event):
104 self.log.write('Welcome to Mercury\n')
105
106 def Menu102(self, event):
107 self.log.write('Welcome to Venus\n')
108
109 def Menu103(self, event):
110 self.log.write('Welcome to the Earth\n')
111
ba2b238e
RD
112 def CloseWindow(self, event):
113 self.Close()
3115ef3e
RD
114
115 def Menu201(self, event):
116 self.log.write('Chemical element number 1\n')
117
118 def Menu202(self, event):
119 self.log.write('Chemical element number 2\n')
120
121 def Menu2031(self, event):
122 self.log.write('Element number 57\n')
123
124 def Menu2032(self, event):
125 self.log.write('Element number 58\n')
126
127 def Menu2033(self, event):
128 self.log.write('Element number 59\n')
129
130 def Menu301To303(self, event):
131 id = event.GetId()
132 self.log.write('Event id: %d\n' % id)
133
134 def Menu304(self, event):
135 self.log.write('Not yet available\n')
136
137 def Menu305(self, event):
138 self.log.write('Still vapour\n')
139
140 def Menu401To403(self, event):
141 self.log.write('From a EVT_MENU_RANGE event\n')
142
143 def Menu501(self, event):
144 self.log.write('Look in the code how the shortcut has been realized\n')
145
146 def Menu502(self, event):
147 self.log.write('Hello from Jean-Michel\n')
148
149#-------------------------------------------------------------------
150
151def runTest(frame, nb, log):
152 win = MyFrame(frame, -1, log)
153 frame.otherWin = win
1e4a197e 154 win.Show(True)
3115ef3e
RD
155
156
157#-------------------------------------------------------------------
158
159
160overview = """\
161A demo of using wxMenuBar and wxMenu in various ways.
162"""
163
164
165
166
167if __name__ == '__main__':
168 import sys,os
169 import run
170 run.main(['', os.path.basename(sys.argv[0])])
171