annotate Mac/Lib/test/tmenu.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents 364d4a524cec
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2267
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 # Create hierarchical menus for some volumes.
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 import os
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 from Menu import *
2721
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
5 import macfs
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
6 import sys
2267
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 def main():
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 global oldbar
2721
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
10 my_volumes = []
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
11 while 1:
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
12 fss, ok = macfs.GetDirectory()
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
13 if not ok:
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
14 break
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
15 my_volumes.append(fss.as_pathname())
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
16 if not my_volumes:
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
17 return
2267
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 oldbar = GetMenuBar()
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 ClearMenuBar()
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 makevolmenus(my_volumes)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 DrawMenuBar()
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
22
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 def reset():
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 oldbar.SetMenuBar()
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 DrawMenuBar()
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 id = 1
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 def nextid():
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 global id
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 nid = id
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 id = id+1
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 return nid
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
33
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 def makevolmenus(volumes):
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 for vol in volumes:
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 makevolmenu(vol)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
37
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 def makevolmenu(vol):
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 menu = NewMenu(nextid(), vol)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 adddirectory(menu, vol)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 menu.InsertMenu(0)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
42
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 def adddirectory(menu, dir, maxdepth = 1):
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 print "adddirectory:", `dir`, maxdepth
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 files = os.listdir(dir)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 item = 0
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 for file in files:
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 item = item+1
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 menu.AppendMenu('x') # add a dummy string
2721
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
50 menu.SetMenuItemText(item, file) # set the actual text
2267
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 fullname = os.path.join(dir, file)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 if os.path.isdir(fullname):
2721
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
53 menu.SetMenuItemText(item, ':' + file + ':') # append colons
2267
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 if maxdepth > 0:
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 id = nextid()
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 submenu = NewMenu(id, fullname)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 adddirectory(submenu, fullname, maxdepth-1)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
58 submenu.InsertMenu(-1)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 # If the 'Cmd' is 0x1B, then the 'Mark' is the submenu id
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 menu.SetItemMark(item, id)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 menu.SetItemCmd(item, 0x1B)
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 if not files:
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 menu.AppendMenu(':') # dummy item to make it selectable
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 return menu
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
65
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 if __name__ == '__main__':
7411b6a06920 Committed a more or less working version.
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 main()
2721
364d4a524cec Trying again to check it in. Changes to:
Jack Jansen <jack.jansen@cwi.nl>
parents: 2267
diff changeset
68 sys.exit(1) # To allow the user to interact...