GGSessionLog.mesa
Pier, May 5, 1987 6:20:06 pm PDT
Bier, March 14, 1991 10:26 am PST
Contents: Routines for saving TIP Table atoms in a file to aid in interface evaluation and for playback. Implemented in GGUIUtilityImpl.mesa.
DIRECTORY
FeedbackTypes, GGInterfaceTypes, IO, Rope;
GGSessionLog: CEDAR DEFINITIONS = BEGIN
MsgRouter: TYPE = FeedbackTypes.MsgRouter;
GGData: TYPE = GGInterfaceTypes.GGData;
OpenScript: PROC [fileName: Rope.ROPE, ggData: GGData, oldStream: IO.STREAMNIL, oldScriptName: Rope.ROPE ← NIL] RETURNS [stream: IO.STREAM, fullName: Rope.ROPE];
Opens a script file (default extension ".script") to be written to. Resets the alignment lines of the Gargoyle viewer. Writes the rest of the Gargoyle state (i.e. other than alignment lines) into the script as a set of events that will achieve that state. If oldStream#NIL then it closes that stream before opening the new one.
AppendScript: PROC [fileName: Rope.ROPE, ggData: GGData, oldStream: IO.STREAMNIL, oldScriptName: Rope.ROPE] RETURNS [stream: IO.STREAM, fullName: Rope.ROPE];
CloseScript: PROC [stream: IO.STREAM, scriptName: Rope.ROPE, router: MsgRouter] RETURNS [newStream: IO.STREAM, newName: Rope.ROPE];
FlushScript: PROC [oldStream: IO.STREAM, oldScriptName: Rope.ROPE, router: MsgRouter] RETURNS [newStream: IO.STREAM, newName: Rope.ROPE];
Close the script, causing all actions to be written to disk. Then, open it again with a new version number.
EnterAction: PROC [clientData: REF, inputAction: REF];
PlaybackFromFile: PROC [fileName: Rope.ROPE, ggData: GGData];
EndOfScriptMessage: PROC [ggData: GGData, event: LIST OF REF ANY];
END.