]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Uses new FrameWork, has multiple windows
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 17 Aug 1995 14:26:23 +0000 (14:26 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 17 Aug 1995 14:26:23 +0000 (14:26 +0000)
Mac/Lib/test/tlist.py

index bf483e1a5a5f625b74feddb713f8fa5c1050704f..48c8c22fa672142297d67a0a8429fb744833a89d 100644 (file)
@@ -4,6 +4,8 @@
 #
 # This test expects Win, Evt and FrameWork (and anything used by those)
 # to work.
+#
+# Actually, it is more a test of FrameWork by now....
 
 from FrameWork import *
 import Win
@@ -11,49 +13,35 @@ import Qd
 import List
 import os
 
-class TestList(Application):
-       def __init__(self):
-               os.chdir('Moes:')
-               self.makemenubar()
-               self.makewindow()
-       
-       def makewindow(self):
+class ListWindow(Window):
+       def open(self, name, where):
+               self.where = where
                r = (40, 40, 400, 300)
-               w = Win.NewWindow(r, "List test", 1, 0, -1, 1, 0x55555555)
+               w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555)
                r2 = (0, 0, 345, 245)
                self.list = List.LNew(r2, (0, 0, 1, 1), (0,0), 0, w, 0, 1, 1, 1)
                self.filllist()
                w.DrawGrowIcon()
-               self.win = w
+               self.wid = w
+               self.do_postopen()
                
-       def makeusermenus(self):
-               self.filemenu = m = Menu(self.menubar, "File")
-               self.quititem = MenuItem(m, "Quit", "Q", self.quit)
-       
-       def quit(self, *args):
-               raise self
+       def do_activate(self, onoff, evt):
+               self.list.LActivate(onoff)
 
-       def do_about(self, id, item, window, event):
-               EasyDialogs.Message("""Test the List Manager interface.
-               Double-click on a folder to change directory""")
-               
-       def do_activateEvt(self, *args):
-               self.list.LActivate(1)  # XXXX Wrong...
+       def do_rawupdate(self, window, event):
+               window.BeginUpdate()
+               self.do_update(window, event)
+               window.EndUpdate()
                
        def do_update(self, *args):
-               print 'LUPDATE'
                self.list.LUpdate()
-
-       def do_inContent(self, partcode, window, event):
-               (what, message, when, where, modifiers) = event
-               Qd.SetPort(window)
-               local = Qd.GlobalToLocal(where)
-               print 'CLICK', where, '->', local
+               
+       def do_contentclick(self, local, modifiers, evt):
                dclick = self.list.LClick(local, modifiers)
                if dclick:
                        h, v = self.list.LLastClick()
                        file = self.list.LGetCell(1000, (h, v))
-                       os.chdir(file)
+                       self.where = os.path.join(self.where, file)
                        self.filllist()
 
        def filllist(self):
@@ -61,8 +49,7 @@ class TestList(Application):
                l = self.list
                l.LSetDrawingMode(0)
                l.LDelRow(0, 0)
-               contents = os.listdir(':')
-               print contents
+               contents = os.listdir(self.where)
                l.LAddRow(len(contents), 0)
                for i in range(len(contents)):
                        l.LSetCell(contents[i], (0, i))
@@ -70,6 +57,34 @@ class TestList(Application):
                l.LUpdate()
 
 
+class TestList(Application):
+       def __init__(self):
+               Application.__init__(self)
+               self.num = 0
+               self.listoflists = []
+               
+       def makeusermenus(self):
+               self.filemenu = m = Menu(self.menubar, "File")
+               self.newitem = MenuItem(m, "New window...", "O", self.open)
+               self.quititem = MenuItem(m, "Quit", "Q", self.quit)
+       
+       def open(self, *args):
+               import macfs
+               fss, ok = macfs.GetDirectory()
+               if not ok:
+                       return
+               w = ListWindow(self)
+               w.open('Window %d'%self.num, fss.as_pathname())
+               self.num = self.num + 1
+               self.listoflists.append(w)
+               
+       def quit(self, *args):
+               raise self
+
+       def do_about(self, id, item, window, event):
+               EasyDialogs.Message("""Test the List Manager interface.
+               Simple inward-only folder browser""")
+
 def main():
        App = TestList()
        App.mainloop()