<> <> <> <> <> DIRECTORY Rope USING [ROPE], TextEdit USING [CapChange], TextLooks USING [Look, Looks], TextNode USING [Location, Ref, RefTextNode], TEditDocument USING [Selection, SelectionGrain, SelectionId], TEditLocks USING [Access]; TEditInputOps: CEDAR DEFINITIONS = BEGIN OPEN TEditDocument; ROPE: TYPE ~ Rope.ROPE; CallWithLocks: PROC [ proc: PROC [root: TextNode.Ref, tSel: Selection], access: TEditLocks.Access _ write]; CallWithBothLocked: PROC [ proc: PROC [sourceRoot, destRoot: TextNode.Ref, tSel, srcSel, targetSel: Selection], targetSel, srcSel: Selection, sourceAccess: TEditLocks.Access]; InsertChar: PROC [char: CHAR]; <> InsertRope: PROC [rope: ROPE]; <> InsertLineBreak: PROC; <> BufferedInsertChar: PROC [char: CHAR]; <> <> BufferedInsertText: PROC [text: ROPE]; <> <> WaitForInsertToFinish: PROC; <> BackSpace: PROC [count: INT _ 1]; <> BackWord: PROC [count: INT _ 1]; <> DeleteNextChar: PROC [count: INT _ 1]; <> DeleteNextWord: PROC [count: INT _ 1]; <> GoToNextChar: PROC [count: INT _ 1]; GoToPreviousChar: PROC [count: INT _ 1]; GoToNextWord: PROC [count: INT _ 1]; GoToPreviousWord: PROC [count: INT _ 1]; GoToNextNode: PROC [count: INT _ 1]; GoToPreviousNode: PROC [count: INT _ 1]; <> FindPrevWord: PROC [node: TextNode.RefTextNode, offset: INT] RETURNS [nChars: CARDINAL]; FindNextWord: PROC [node: TextNode.RefTextNode, start: INT] RETURNS [nChars: CARDINAL]; MakeControlCharacter: PROC; UnMakeControlCharacter: PROC; MakeOctalCharacter: PROC; UnMakeOctalCharacter: PROC; DoPendingDelete: PROC; Delete: PROC [saveForPaste: BOOL _ TRUE]; <> Paste: PROC; <> SaveForPaste: PROC; <> SaveSpanForPaste: PROC [ startLoc, endLoc: TextNode.Location, grain: TEditDocument.SelectionGrain]; <> <<>> Break: PROC; <> Join: PROC; <> <> Nest: PROC; <> UnNest: PROC; <> Move: PROC [target: SelectionId _ primary]; <> CheckReadonly: PROC [targetSel: Selection] RETURNS [BOOL]; Copy: PROC [target: SelectionId _ primary]; <> CopyLooks: PROC [target: SelectionId _ primary]; <> CopyFormat: PROC [target: SelectionId _ primary]; <> Transpose: PROC [target: SelectionId _ primary]; <> TransposeLooks: PROC [target: SelectionId _ primary]; <> TransposeFormat: PROC [target: SelectionId _ primary]; <> InsertBrackets: PROC [left, right: CHAR]; <> SelectMatchingBrackets: PROC [left, right: CHAR]; <> DoSelectMatchingBrackets: PROC [left, right: CHAR] RETURNS [found: BOOL]; <> NextViewer: PROC [forward: BOOL]; <> DoNextViewer: PROC [forward: BOOL] RETURNS [found: BOOL]; FindPlaceholders: PROC [next: BOOL]; DoFindPlaceholders: PROC [next, gotoend: BOOL, startBoundaryNode, endBoundaryNode: TextNode.Ref _ NIL, startBoundaryOffset: INT _ 0, endBoundaryOffset: INT _ LAST[INT] ] RETURNS [found, wenttoend: BOOL]; InsertTime: PROC; <> Capitalise: PROC [flavor: TextEdit.CapChange]; <> ModifyOp: TYPE = {add, remove}; ModifyLook: PROC [look: TextLooks.Look, op: ModifyOp]; <> ModifyCaretLook: PROC [look: TextLooks.Look, op: ModifyOp]; <> ChangeLooks: PROC [add, remove: TextLooks.Looks]; <> ChangeCaretLooks: PROC [add, remove: TextLooks.Looks]; <> SetStyle: PROC; <> SetStyleName: PROC [name: ROPE, node: TextNode.Ref _ NIL]; <> <> ReloadStyle: PROC; <> ReloadStyleName: PROC [name: ROPE]; <> SetFormat: PROC; <> GetFormat: PROC; <> SetFormatName: PROC [name: ROPE, node: TextNode.Ref _ NIL]; <> <> SetCommentProp: PROC [flag: BOOL]; RegisterAbbrevFailedProc: PROC [proc: PROC RETURNS [BOOL]]; <> <> <> ExpandAbbreviation: PROC; <> LoadAbbreviations: PROC [dictName: ROPE]; <> <> EditFailed: PROC [msg: ROPE _ NIL]; END.