TEditInput.mesa
Copyright © 1985, 1986 by Xerox Corporation. All rights reserved.
Edited by Paxton on October 29, 1982 9:58 am
Doug Wyatt, September 2, 1986 3:38:05 pm PDT
DIRECTORY
TextNode USING [Node],
TEditDocument USING [Selection, TEditDocumentData],
UndoEvent USING [Event],
ViewerClasses USING [Viewer];
TEditInput: CEDAR DEFINITIONS
= BEGIN
interpreterNesting: INTEGER;
interrupt:
REF
BOOL;
Set by EditAbort, reset and tested by long running operations such as searches.
currentEvent: UndoEvent.Event;
used by anyone who needs to save info for Undo/Cancel
EditState:
TYPE = {
reset, -- no edit specified
abort, -- edit aborted
tolimbo, -- delete primary
toprimary, -- copy/move secondary selection to/onto primary
tosecondary, -- copy/move primary to/onto secondary
toboth -- transpose primary and secondary
};
editState: EditState;
repeatList: LIST OF REF ANY;
chars: REF TEXT; -- buffer for typein
charsClosed, charsUsed, closeEvent: BOOL;
CloseEvent: PROC = INLINE { closeEvent ← TRUE };
CurrentEvent: PROC RETURNS [UndoEvent.Event] = INLINE { RETURN [currentEvent] };
CloseEventNow: PROC;
CommandProc:
TYPE =
PROC [viewer: ViewerClasses.Viewer ←
NIL]
RETURNS [recordAtom: BOOL ← TRUE, quit: BOOL ← FALSE];
Register:
PROC [name:
ATOM, proc: CommandProc, before:
BOOL ←
TRUE];
If before is true, proc goes at front of list. Else goes at end of list.
UnRegister:
PROC [name:
ATOM, proc: CommandProc];
Remove the proc from the list for the atom.
IsRegistered: PROC [name: ATOM, proc: CommandProc] RETURNS [BOOL];
RecordInt: PROC [i: LONG INTEGER];
RecordChar: PROC [c: CHAR];
RecordRef: PROC [ref: REF ANY];
GetRepeatSequence: PROC RETURNS [params: LIST OF REF ANY];
ComIndex: TYPE = [0..9];
SetCommand: PROC [num: ComIndex, params: LIST OF REF ANY];
GetCommand: PROC [num: ComIndex] RETURNS [params: LIST OF REF ANY];
InterpInput:
PROC [viewer: ViewerClasses.Viewer, params:
LIST
OF
REF
ANY,
increaseNestingCount:
BOOL ←
TRUE];
Interpret: PROC [viewer: ViewerClasses.Viewer, params: LIST OF REF ANY];
DontDoIt: SIGNAL; -- raised if user category is too low
BadMouse: SIGNAL; -- raised if mouse "color" is wrong
InterpretAtom:
PROC [viewer: ViewerClasses.Viewer, atom:
ATOM];
as if input from TIP
ResetInputStuff: PROC;
SaveCoords: PROC [x,y: INTEGER];
ReadTipTables: PROC;
CheckSelection: PROC [sel: TEditDocument.Selection] RETURNS [BOOL];
FreeTree: PROC [root: TextNode.Node];
AllLevels: CommandProc;
FirstLevelOnly: CommandProc;
MoreLevels: CommandProc;
FewerLevels: CommandProc;
MaxLevelShown: PROC [tdd: TEditDocument.TEditDocumentData] RETURNS [level: INTEGER];
MakePointSelection: CommandProc;
Normalize: CommandProc;
Cancel: CommandProc;
Repeat: CommandProc;
RestoreSelectionA: CommandProc;
SaveSelectionA: CommandProc;
RestoreSelectionB: CommandProc;
SaveSelectionB: CommandProc;
END.