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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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