-- JaMTSInfo.mesa
-- Last changed by Paxton, October 4, 1982 2:31 pm
-- Last Edited by: Stone, March 9, 1983 10:50 am
DIRECTORY
StreamDefs USING [StreamHandle],
JaMInternal USING [Frame],
JaMTypeScript USING [MouseProc],
JaMBasic USING [Object];
JaMTSInfo: DEFINITIONS = {
State: TYPE = {idle, busy};
TSInfo: TYPE = REF TSInfoRec;
Object: TYPE = JaMBasic.Object;
TSInfoRec: TYPE = MONITORED RECORD [
state: State ← idle,
readyForInput: CONDITION,
somethingToDo: CONDITION,
lineStream: StreamDefs.StreamHandle,
proc: PROC [JaMInternal.Frame],
objectToDo: Object];
Create: PROC RETURNS [tsi: TSInfo];
WaitForSomethingToDo: PROC [tsi: TSInfo];
NotifyReadyForMore: PROC [tsi: TSInfo];
Do: PROC [obj: Object, tsi: TSInfo];
DoButton: PROC[
tsi: TSInfo, frame: JaMInternal.Frame,
buttonName: ATOM, x,y: REAL,
mouseProc: JaMTypeScript.MouseProc];
DoAtom: PROC[
tsi: TSInfo, frame: JaMInternal.Frame, atom: ATOM];
}...