<<>> <> <> <> <> <> <> <<>> <> <<>> DIRECTORY CursorTypes, Imager, ViewerClasses, ViewersWorldRefType; MultiCursors: CEDAR DEFINITIONS = BEGIN CursorArray: TYPE ~ CursorTypes.CursorArray; CursorType: TYPE ~ ViewerClasses.CursorType; PredefinedCursor: TYPE ~ CursorType[activate..textPointer]; ClientCursor: TYPE ~ CursorType(textPointer..last); CursorInfo: TYPE ~ RECORD [ type: CursorType, -- the unique cursor type hotX: INTEGER ¬ 0, -- these define a logical "hot-spot", or "activation point" for a cursor hotY: INTEGER ¬ 0, inverted: BOOL ¬ FALSE ]; Cursor32Array: TYPE ~ CursorTypes.Cursor32Array; Cursor32ArrayRef: TYPE ~ CursorTypes.Cursor32ArrayRef; CornerSide: TYPE ~ {upperSide, lowerSide, leftSide, rightSide, upperLeft, upperRight, lowerLeft, lowerRight}; VWorld: TYPE ~ ViewersWorldRefType.Ref; <> SetACursorColor: PROC [color: Imager.Color, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> GetACursorColor: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [color: Imager.Color]; <> InvertACursor: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <<>> SetACursor: PROC [type: CursorType, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> GetACursor: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [CursorType]; <> GetACursorInfo: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [CursorInfo]; <> NewBigCursor: PROC [bits: Cursor32ArrayRef, hotX, hotY: INTEGER ¬ 0] RETURNS [CursorType]; <> AddACursorCorner: PROC [cornerSide: CornerSide, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <> <<>> SetACursorOffset: PROC [deltaX, deltaY: INTEGER, enableTracking: BOOL ¬ TRUE, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <<>> GetACursorOffset: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [deltaX, deltaY: INTEGER, trackingEnabled: BOOL]; <> SetACursorPosition: PROC [posX, posY: INTEGER, enableTracking: BOOL ¬ TRUE, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <<>> GetACursorPosition: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [deltaX, deltaY: INTEGER, trackingEnabled: BOOL]; <> SetAMousePosition: PROC [x, y: INTEGER, display: REF ¬ NIL, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <<>> GetAMousePosition: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [x, y: INTEGER, display: REF ¬ NIL]; <> <<>> <> NewCursor: PROC [bits: CursorArray, hotX, hotY: INTEGER ¬ 0] RETURNS [CursorType]; <> DefaultMouseGrain: PROC RETURNS [ticks: CARD16, dots: INTEGER]; SetAMouseGrain: PROC [ticks: CARD16, dots: INTEGER, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> SetACursorPattern: PROC [cursorPattern: CursorArray, deltaX, deltaY: INTEGER, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> SetABigCursorPattern: PROC [cursorPattern: Cursor32ArrayRef, deltaX, deltaY: INTEGER, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <<>> HasBigPattern: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [BOOL]; <> GetACursorPattern: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [cursorPattern: CursorArray, deltaX, deltaY: INTEGER]; <> GetABigCursorPattern: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [cursorPattern: Cursor32ArrayRef, deltaX, deltaY: INTEGER]; <> <<>> SetACursorPatternOnly: PROC [cursorPattern: CursorArray, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> SetABigCursorPatternOnly: PROC [cursorPattern: Cursor32ArrayRef, cursor: ATOM, vWorld: VWorld ¬ NIL]; <> <<>> GetACursorPatternOnly: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [cursorPattern: CursorArray]; <> GetABigCursorPatternOnly: PROC [cursor: ATOM, vWorld: VWorld ¬ NIL] RETURNS [cursorPattern: Cursor32ArrayRef]; <> END.