Mercurial > cpython-lru_cache-weakref
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 |
| 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... |
