Interminal.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Swinehart, 24-Nov-81 9:26:43, mouse grains
Maureen Stone, June 5, 1982 12:57 pm, pen and color cursor
Paul Rovner, August 15, 1983 10:00 am
Russ Atkinson, September 23, 1983 10:15 am
Doug Wyatt, April 14, 1985 8:14:49 pm PST
DIRECTORY
ClassInscript USING [Inscript],
Intime USING [MsTicks],
TerminalDefs USING [Cursor, DownUp, KeyName, KeyState];
Interminal: CEDAR DEFINITIONS
= BEGIN
StartActionRecorder: PROC [scr: ClassInscript.Inscript];
MousePosition: TYPE = MACHINE DEPENDENT RECORD [
mouseX: INTEGER, color: BOOL, mouseY: [-16383..16383]
];
color=true indicates that the mouse is on the colordisplay
PenPosition: TYPE = MousePosition;
CursorArray: TYPE = TerminalDefs.Cursor;
DownUp: TYPE = TerminalDefs.DownUp;
KeyName: TYPE = TerminalDefs.KeyName;
KeyState: TYPE = TerminalDefs.KeyState;
SetCursorOffset: PROC[deltaX, deltaY: INTEGER, enableTracking: BOOLTRUE];
Offsets origin of cursor bitmap by the specified number of screen points
enableTracking ← FALSE to disable automatic cursor tracking.
GetCursorOffset: PROC RETURNS[deltaX, deltaY: INTEGER, trackingEnabled: BOOL];
SetCursorPosition: PROC[posX, posY: INTEGER, enableTracking: BOOLTRUE];
Sets the cursor position directly to the desired value (useful for cursor gridding)
enableTracking ← FALSE to disable automatic cursor tracking.
Position may not be in synch with Inscript fetches.
GetCursorPosition: PROC RETURNS[deltaX, deltaY: INTEGER, trackingEnabled: BOOL];
Returns the current cursor position.
Position may not be in synch with Inscript fetches.
SetMousePosition: PROC[pos: MousePosition];
modifies hardware interpretation of mouse position; to be used at own peril!!
possibly useful for locking mouse into nearby position, etc.
GetMousePosition: PROC RETURNS [pos: MousePosition];
returns the current position, may be out of synch with inscript fetches!!
Recording grain hints. This are provided by higher levels at the time those levels are created. Subsequent recorded events will be entered at the specified grain. Unless the higher levels are running in more or less real time, these hints will not be too valuable.
DefaultMouseGrain: PROC RETURNS [ticks: Intime.MsTicks, dots: INTEGER];
SetMouseGrain: PROC [ticks: Intime.MsTicks, dots: INTEGER];
SetCursorPattern: PROC [cursorPattern: CursorArray];
changes the cursor bit array
GetCursorPattern: PROC RETURNS [cursorPattern: CursorArray];
fetches the cursor bit array
Side: TYPE ~ {left, right};
TurnOnColorCursor: PROC [side: Side];
Enables the color display; assumes the color display is to the given side of the b/w display.
The cursor will slide between the two displays.
TurnOffColorCursor: PROC;
GetColorDisplaySide: PROC RETURNS [Side];
SetColorDisplaySide: PROC [side: Side];
HasPenType: TYPE = {none, main, color};
HasPen: PROC [display: HasPenType];
this declares on which display the pen is located
END.