Mercurial > cpython-lru_cache-weakref
annotate Mac/Lib/test/tlist.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 | f32676ab3f3a |
| children | 42b2f1936254 |
| rev | line source |
|---|---|
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 # Test List module. |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 # Draw a window with all the files in the current folder. |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 # double-clicking will change folder. |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 # |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 # This test expects Win, Evt and FrameWork (and anything used by those) |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 # to work. |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
7 # |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
8 # Actually, it is more a test of FrameWork by now.... |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 from FrameWork import * |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 import Win |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 import Qd |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 import List |
|
3817
f32676ab3f3a
Allow only one selection (this tests settability of selFlags)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3511
diff
changeset
|
14 import Lists |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 import os |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
17 class ListWindow(Window): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
18 def open(self, name, where): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
19 self.where = where |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 r = (40, 40, 400, 300) |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
21 w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555) |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 r2 = (0, 0, 345, 245) |
|
3511
c5d30a5643be
Fixed ttedit to actually work
Jack Jansen <jack.jansen@cwi.nl>
parents:
3500
diff
changeset
|
23 Qd.SetPort(w) |
|
c5d30a5643be
Fixed ttedit to actually work
Jack Jansen <jack.jansen@cwi.nl>
parents:
3500
diff
changeset
|
24 self.wid = w |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 self.list = List.LNew(r2, (0, 0, 1, 1), (0,0), 0, w, 0, 1, 1, 1) |
|
3817
f32676ab3f3a
Allow only one selection (this tests settability of selFlags)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3511
diff
changeset
|
26 self.list.selFlags = Lists.lOnlyOne |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 self.filllist() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 w.DrawGrowIcon() |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
29 self.do_postopen() |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
31 def do_activate(self, onoff, evt): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
32 self.list.LActivate(onoff) |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 def do_update(self, *args): |
|
3500
eae70d7f2ec7
Added region argument to various ...Update calls.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3000
diff
changeset
|
35 self.list.LUpdate(self.wid.GetWindowPort().visRgn) |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
36 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
37 def do_contentclick(self, local, modifiers, evt): |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 dclick = self.list.LClick(local, modifiers) |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 if dclick: |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 h, v = self.list.LLastClick() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 file = self.list.LGetCell(1000, (h, v)) |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
42 self.where = os.path.join(self.where, file) |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 self.filllist() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 def filllist(self): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 """Fill the list with the contents of the current directory""" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 l = self.list |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 l.LSetDrawingMode(0) |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 l.LDelRow(0, 0) |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
50 contents = os.listdir(self.where) |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 l.LAddRow(len(contents), 0) |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 for i in range(len(contents)): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 l.LSetCell(contents[i], (0, i)) |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 l.LSetDrawingMode(1) |
|
3500
eae70d7f2ec7
Added region argument to various ...Update calls.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3000
diff
changeset
|
55 l.LUpdate(self.wid.GetWindowPort().visRgn) |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 |
|
3000
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
58 class TestList(Application): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
59 def __init__(self): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
60 Application.__init__(self) |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
61 self.num = 0 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
62 self.listoflists = [] |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
63 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
64 def makeusermenus(self): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
65 self.filemenu = m = Menu(self.menubar, "File") |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
66 self.newitem = MenuItem(m, "New window...", "O", self.open) |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
67 self.quititem = MenuItem(m, "Quit", "Q", self.quit) |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
68 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
69 def open(self, *args): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
70 import macfs |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
71 fss, ok = macfs.GetDirectory() |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
72 if not ok: |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
73 return |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
74 w = ListWindow(self) |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
75 w.open('Window %d'%self.num, fss.as_pathname()) |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
76 self.num = self.num + 1 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
77 self.listoflists.append(w) |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
78 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
79 def quit(self, *args): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
80 raise self |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
81 |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
82 def do_about(self, id, item, window, event): |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
83 EasyDialogs.Message("""Test the List Manager interface. |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
84 Simple inward-only folder browser""") |
|
55895b5a3007
Uses new FrameWork, has multiple windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
85 |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 def main(): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 App = TestList() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 App.mainloop() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 if __name__ == '__main__': |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 main() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 |
