Updated for 2.1b2 distribution.
[python/dscho.git] / Demo / tkinter / matt / menu-simple.py
blob28f2c9eff52d8d7cbe9037b1378a5387c4550815
1 from Tkinter import *
3 # some vocabulary to keep from getting confused. This terminology
4 # is something I cooked up for this file, but follows the man pages
5 # pretty closely
6 #
7 #
8 #
9 # This is a MENUBUTTON
10 # V
11 # +-------------+
12 # | |
14 # +------------++------------++------------+
15 # | || || |
16 # | File || Edit || Options | <-------- the MENUBAR
17 # | || || |
18 # +------------++------------++------------+
19 # | New... |
20 # | Open... |
21 # | Print |
22 # | | <------ This is a MENU. The lines of text in the menu are
23 # | | MENU ENTRIES
24 # | +---------------+
25 # | Open Files > | file1 |
26 # | | file2 |
27 # | | another file | <------ this cascading part is also a MENU
28 # +----------------| |
29 # | |
30 # | |
31 # | |
32 # +---------------+
36 def new_file():
37 print "opening new file"
40 def open_file():
41 print "opening OLD file"
44 def makeFileMenu():
45 # make menu button : "File"
46 File_button = Menubutton(mBar, text='File', underline=0)
47 File_button.pack(side=LEFT, padx="1m")
48 File_button.menu = Menu(File_button)
50 # add an item. The first param is a menu entry type,
51 # must be one of: "cascade", "checkbutton", "command", "radiobutton", "seperator"
52 # see menu-demo-2.py for examples of use
53 File_button.menu.add_command(label='New...', underline=0,
54 command=new_file)
57 File_button.menu.add_command(label='Open...', underline=0,
58 command=open_file)
60 File_button.menu.add_command(label='Quit', underline=0,
61 command='exit')
63 # set up a pointer from the file menubutton back to the file menu
64 File_button['menu'] = File_button.menu
66 return File_button
70 def makeEditMenu():
71 Edit_button = Menubutton(mBar, text='Edit', underline=0)
72 Edit_button.pack(side=LEFT, padx="1m")
73 Edit_button.menu = Menu(Edit_button)
75 # just to be cute, let's disable the undo option:
76 Edit_button.menu.add('command', label="Undo")
77 # Since the tear-off bar is the 0th entry,
78 # undo is the 1st entry...
79 Edit_button.menu.entryconfig(1, state=DISABLED)
81 # and these are just for show. No "command" callbacks attached.
82 Edit_button.menu.add_command(label="Cut")
83 Edit_button.menu.add_command(label="Copy")
84 Edit_button.menu.add_command(label="Paste")
86 # set up a pointer from the file menubutton back to the file menu
87 Edit_button['menu'] = Edit_button.menu
89 return Edit_button
92 #################################################
94 #### Main starts here ...
95 root = Tk()
98 # make a menu bar
99 mBar = Frame(root, relief=RAISED, borderwidth=2)
100 mBar.pack(fill=X)
102 File_button = makeFileMenu()
103 Edit_button = makeEditMenu()
105 # finally, install the buttons in the menu bar.
106 # This allows for scanning from one menubutton to the next.
107 mBar.tk_menuBar(File_button, Edit_button)
109 root.title('menu demo')
110 root.iconname('packer')
112 root.mainloop()