extern pascal void D_BLMAKELIST(); extern pascal void D_BLSETPARMS(); extern pascal unsigned D_BLMODALDIALOG(); extern pascal void D_BLFORGETLISTS(); extern pascal void D_BLSELECT(); extern pascal unsigned D_BLGETSEL(); typedef struct ListRec { GrafPortPtr Dialog; /* pointer to owning dialog's port */ Rect BoxRect; /* Rect defining view box */ Rect ScrRect; /* Rect defining scroll bar (vertical only) */ unsigned ListSize; /* # of items in the list */ unsigned Height; /* item height. Should evenly divide (BoxRect.v1-BR.v2-2) * for items to fit neatly in box. Typically (Shaston) 10 */ unsigned DblItem; /* Dlg Item to hit when DoubleClick on list item. (0 if none) */ VoidProcPtr DrawProc; /* List item draw procedure: * Inputs: ListRecPtr, Item# * You should draw the specified item. The pen will be * positioned at the upper left corner of the item's * bounding rect. Typically you'll do a Move(2,8); Drawstring */ VoidProcPtr SelProc; /* List item select procedure: * Inputs: ListRecPtr, Item# * This procedure is called to inform you that a list item * has been selected. E.g., you might change a SelText item * depending on the current selection or (de)activate a button. * Note: an item is not considered selected until the mouse * button is released. */ VoidProcPtr LChangedProc; /* List has changed appearance procedure: * Inputs: ListRecPtr, TopItem# * The appearance of the list has changed. If you're doing * something funky along with the list, do it now. */ char Reserved[24]; /* Reserved for internal use */ } ListRec, *ListRecPtr;