regs/pascal/lists.p
2018-08-19 17:24:54 -07:00

107 lines
8.5 KiB
OpenEdge ABL
Executable File

{********************************************
; File: Lists.p
;
;
; Copyright Apple Computer, Inc. 1986-89
; All Rights Reserved
;
********************************************}
UNIT LISTS;
INTERFACE
USES TYPES,QUICKDRAW,EVENTS,CONTROLS;
CONST
cString = $0001; {ListType bit mask - null terminated string type }
LIST_STRG = $0001; {ListType bit mask - null terminated string type }
selectOnlyOne = $0002; {ListType bit mask - only one selection allowed }
LIST_SELECT = $0002; {ListType bit mask - single selection only }
memDisabled = $40; {memFlag - Sets member flag to disabled }
memSelected = $80; {memFlag - Sets member flag to selected }
TYPE
LColorTableHndl = ^LColorTablePtr;
LColorTablePtr = ^LColorTable;
LColorTable = RECORD
listFrameClr : Integer; { Frame color }
listNorTextClr : Integer; { Unhighlighted text color }
listSelTextClr : Integer; { Highlighted text color }
listNorBackClr : Integer; { Unhighlighted background color }
listSelBackClr : Integer; { Highlighted backgraound color }
END;
MemRecHndl = ^MemRecPtr;
MemRecPtr = ^MemRec;
MemRec = PACKED RECORD
memPtr : Ptr; { Pointer to string, or custom }
memFlag : Byte; { Bit Flag }
END;
ListCtlRecHndl = ^ListCtlRecPtr;
ListCtlRecPtr = ^ListCtlRec;
ListCtlRec = PACKED RECORD
ctlNext : CtlRecHndl; { Handle of Next Control }
ctlOwner : GrafPortPtr; { Window owner }
ctlRect : Rect; { Enclosing Rect }
ctlFlag : Byte; { Bit 7 visible, Bit 0 string type, Bit 1 multiple }
ctlHilite : Byte; { (not used) }
ctlValue : Integer; { First member in display }
ctlProc : LongProcPtr; { Address of list definition procedure }
ctlAction : LongProcPtr; { Address of list action procedure }
ctlData : Longint; { Low = view size, High = total members }
ctlRefCon : Longint; { Not used }
ctlColor : LColorTablePtr; { Null for default colors }
ctlMemDraw : VoidProcPtr; { Address of routine to draw members }
ctlMemHeight : Integer; { Member's Height in Pixels }
ctlMemSize : Integer; { Bytes in member record }
ctlList : MemRecPtr; { Adress of first member record in array }
ctlListBar : CtlRecHndl; { Handle of list contrlo's scroll bar control }
END;
ListRecHndl = ^ListRecPtr;
ListRecPtr = ^ListRec;
ListRec = RECORD
listRect : Rect; { Enclosing Rectangle }
listSize : Integer; { Number of List Members }
listView : Integer; { Max Viewable members }
listType : Integer; { Bit Flag }
listStart : Integer; { First member in view }
listCtl : CtlRecHndl; { List control's handle }
listDraw : VoidProcPtr; { Address of Custom drawing routine }
listMemHeight : Integer; { Height of list members }
listMemSize : Integer; { Size of Member Records }
listPointer : MemRecPtr; { Pointer to first element in MemRec array }
listRefCon : Longint; { becomes Control's refCon }
listScrollClr : BarColorsPtr; { Color table for list's scroll bar }
END;
PROCEDURE ListBootInit ; Tool $1C,$01;
PROCEDURE ListStartup ; Tool $1C,$02;
PROCEDURE ListShutDown ; Tool $1C,$03;
FUNCTION ListVersion : Integer ; Tool $1C,$04;
PROCEDURE ListReset ; Tool $1C,$05;
FUNCTION ListStatus : Boolean ; Tool $1C,$06;
FUNCTION CreateList ( theWindowPtr:WindowPtr; U__listRecPtr:ListRecPtr) :
ListCtlRecHndl ; Tool $1C,$09;
PROCEDURE DrawMember ( memberPtr:MemRecPtr; U__listRecPtr:ListRecPtr) ; Tool
$1C,$0C;
FUNCTION GetListDefProc : LongProcPtr ; Tool $1C,$0E;
PROCEDURE NewList ( memberPtr:MemRecPtr; U__listRecPtr:ListRecPtr) ; Tool
$1C,$10;
FUNCTION NextMember ( memberPtr:MemRecPtr; U__listRecPtr:ListRecPtr) :
MemRecPtr ; Tool $1C,$0B;
FUNCTION ResetMember ( U__listRecPtr:ListRecPtr) : MemRecPtr ; Tool $1C,$0F;
PROCEDURE SelectMember ( memberPtr:MemRecPtr; U__listRecPtr:ListRecPtr) ; Tool
$1C,$0D;
PROCEDURE SortList ( comparePtr:VoidProcPtr; U__listRecPtr:ListRecPtr) ; Tool
$1C,$0A;
PROCEDURE DrawMember2 ( itemNumber:Integer; ctlHandle:CtlRecHndl) ; Tool
$1C,$11;
FUNCTION NextMember2 ( itemNumber:Integer; ctlHandle:CtlRecHndl) : Integer ;
Tool $1C,$12;
FUNCTION ResetMember2 ( ctlHandle:CtlRecHndl) : Integer ; Tool $1C,$13;
PROCEDURE SelectMember2 ( itemNumber:Integer; ctlHandle:CtlRecHndl) ; Tool
$1C,$14;
PROCEDURE SortList2 ( comparePtr:Ptr; ctlHandle:CtlRecHndl) ; Tool $1C,$15;
PROCEDURE NewList2 ( drawProcPtr:ProcPtr; listStart:Integer; listRef:Ref;
listRefDesc:RefDescriptor; listSize:Integer; ctlHandle:CtlRecHndl) ; Tool
$1C,$16;
IMPLEMENTATION
END.