-- Compiler Cursors/n
-- stone November 10, 1980 5:18 PM
--Maureen Stone February 2, 1983 3:17 pm

DIRECTORY
 Cursors USING [CursorType, CursorArray, NewCursor, SetCursor],
 CursorDefs;

GriffinCursors: PROGRAM IMPORTS Cursors EXPORTS CursorDefs =
BEGIN

pointingCursor, busyCursor, abortCursor, menuCursor: Cursors.CursorType;
pointingCursorBits: Cursors.CursorArray ←
 [400B,400B,400B,400B,
 400B,400B,0B,176576B,
 0B,400B,400B,400B,
 400B,400B,400B,0B];
abortCursorBits: Cursors.CursorArray ←
 [100002B,40004B,20010B,10020B,
 4040B,2100B,1200B,400B,
 1200B,2100B,4040B,10020B,
 20010B,40004B,100002B,0];
busyCursorBits: Cursors.CursorArray ←
 [160020B, 57430B, 100244B, 40146B,
 110050B, 62010B, 150411B, 36006B,
 70111B, 111610B, 110520B, 44520B,
 42460B, 145020B, 46020B, 13054B];
menuCursorBits: Cursors.CursorArray ←
 [177777B,100001B,100001B,100001B,
 100001B,100001B,100001B,100001B,
 100001B,100001B,100001B,100001B,
 100001B,100001B,100001B,177777B];

SetCursor: PUBLIC PROCEDURE[cursor: CursorDefs.Cursor] = {
SELECT cursor FROM
  pointingCursor => Cursors.SetCursor[pointingCursor];
  abortCursor => Cursors.SetCursor[abortCursor];
  busyCursor => Cursors.SetCursor[busyCursor];
  menuCursor => Cursors.SetCursor[menuCursor];
  ENDCASE => ERROR;
 };

GetPointingCursor: PUBLIC PROCEDURE RETURNS [Cursors.CursorType] = {
RETURN[pointingCursor]};

pointingCursor ← Cursors.NewCursor[pointingCursorBits,-7,-7];
abortCursor ← Cursors.NewCursor[abortCursorBits,-7,-7];
busyCursor ← Cursors.NewCursor[busyCursorBits,-7,-7];
menuCursor ← Cursors.NewCursor[menuCursorBits,-7,-7];

END.