GGUserInput.mesa
Author: Eric Bier on June 6, 1985 0:56:45 am PDT
Last edited by Bier on April 30, 1987 6:42:48 pm PDT
Contents: Procedures which handle user actions (menu buttons and mouse actions).
Pier, May 5, 1987 6:15:21 pm PDT
DIRECTORY
GGBasicTypes, GGInterfaceTypes, Menus, SlackProcess, ViewerClasses;
GGUserInput: CEDAR DEFINITIONS =
BEGIN
GGData: TYPE = GGInterfaceTypes.GGData;
Point: TYPE = GGBasicTypes.Point;
Viewer: TYPE = ViewerClasses.Viewer;
HandleMenuAction: Menus.ClickProc;
InputNotify: PROC [self: ViewerClasses.Viewer, input: LIST OF REF ANY];
An action has been received from the Gargoyle TIP table.
EventNotify: PROC [clientData: REF ANY, event: LIST OF REF ANY];
PlayAction: PROC [clientData: REF ANY, event: LIST OF REF ANY];
An action has been received from some other source. The clientData argument is passed to the EventProc that was registered for by RegisterAction for the ATOM event.first. event.first must be an ATOM.
An action has been received from a Gargoyle playback script.
ArgumentType: TYPE = {none, rope, refInt, refReal};
RegisterAction: PROC [atom: ATOM, eventProc: SlackProcess.EventProc, argType: ArgumentType, causeMouseEventsToComplete: BOOLTRUE];
For clients who wish to extend Gargoyle's input language. Once atom is registered, then clients may add such an action to the queue by calling MenuNotify above. argType is the type of value that Gargoyle should expect in event.rest.first when MenuNotify is called. If such a value is not present, Gargoyle will parse the current Tioga selection to make one. If causeMouseEventsToComplete is TRUE, Gargoyle will finish any mouse actions in progress before trying this action. causeMouseEventsToComplete should almost always be TRUE.
END.