home *** CD-ROM | disk | FTP | other *** search
- from Dlg import *
- from Events import *
- from Evt import *
- from List import *
- from Qd import *
- import Res
- import string
- import MacOS
-
- ID = 513
-
- def dodialog(items):
- print 'This is to create a window'
- #
- # Create the dialog
- #
- d = GetNewDialog(ID, -1)
- #
- # Create the list and fill it
- #
- tp, h, rect = d.GetDialogItem(2)
- rect = rect[0], rect[1], rect[2]-15, rect[3]-15 # Space for scrollbars
- length = (len(items)+1) / 2
- list = LNew(rect, (0, 0, 2, length), (0, 0), 0, d, 0, 1, 1, 1)
- for i in range(len(items)):
- list.LSetCell(items[i], (i%2, i/2))
- #
- # Draw it.
- #
- list.LSetDrawingMode(1)
- list.LUpdate(self.wid.GetWindowPort().visRgn)
- #
- # Do the (modeless) dialog
- #
- while 1:
- ok, ev = WaitNextEvent(0xffff, 10)
- if not ok:
- # No event.
- continue
- (what, message, when, where, modifiers) = ev
- if what == updateEvt:
- # XXXX We just always update our list (sigh...)
- SetPort(window)
- list.LUpdate(self.wid.GetWindowPort().visRgn)
- if IsDialogEvent(ev):
- # It is a dialog event. See if it's ours.
- ok, window, item = DialogSelect(ev)
- if ok:
- if window == d:
- # Yes, it is ours.
- if item == 1: # OK button
- break
- elif item == 2: # List
- (what, message, when, where, modifiers) = ev
- SetPort(window)
- if what == mouseDown:
- local = GlobalToLocal(where)
- list.LClick(local, modifiers)
- else:
- print 'Unexpected item hit'
- else:
- print 'Unexpected dialog hit'
- else:
- MacOS.HandleEvent(ev)
- sel = []
- for i in range(len(items)):
- ok, dummycell = list.LGetSelect(0, (i%2, i/2))
- if ok:
- sel.append(list.LGetCell(256, (i%2, i/2)))
- print 'Your selection:', sel
-
- def test():
- import os, sys
- Res.OpenResFile('tlist_dialog.rsrc')
- dodialog(os.listdir(':'))
- sys.exit(1)
-
- if __name__ == '__main__':
- test()
-