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. ϊTEditInputOps.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Edited by Paxton on December 31, 1982 2:16 pm Michael Plass, March 18, 1985 4:23:38 pm PST Doug Wyatt, April 14, 1985 5:12:31 pm PST Inserts a character in the document at the primary selection and repaints like InsertChar, but for entire rope insert a CR and then copies blanks from front of previous line Exactly as InsertChar, but returns immediately, forking a repaint process. This is intended for use with user type-in. See TEditBufferedInputImpl Exactly as InsertChar, but returns immediately, forking a repaint process. This is intended for use with user type-in. See TEditBufferedInputImpl returns after buffered input has completed Deletes the character preceding the insertion point and repaints the document Deletes the word preceding the insertion point and repaints the document Deletes the character after the insertion point and repaints the document Deletes the word after the insertion point and repaints the document commands for moving caret Deletes the primary selection insert the last deletion at current insertion point save the selection for future Paste like SaveForPaste, but saves the given span rather than the selection break node at current insertion point copies text of current insertion point node to end of previous node then deletes node and makes point selection at place where joined them move the selection to a deeper nesting level in the tree move the selection to a shallower nesting level in the tree Move the contents of the other selection to the target selection Copy the contents of the other selection to the target selection Copy the looks of the other selection to the target selection Copy the format of the other selection to the target selection Transpose the contents of the primary and secondary selections Transpose the looks of the primary and secondary selections Transpose the formats of the primary and secondary selections insert left char at start of selection, right char after selection extend selection until includes matching left and right brackets extend selection until includes matching left and right brackets move selection to next viewer in left-right, top-bottom order insert the current date and time Perform the capitalisation operation on the target selection change the looks of a selection change the looks of a selection caret wholesale change of the selection looks wholesale change of the caret looks sets style of caret node to word before caret sets style of caret node to given name if node is nil, sets style for caret node reloads style of caret node reloads named style sets format of caret node to word before caret inserts format of caret node sets format of caret node to given name if node is nil, sets format for caret node called if ExpandAbbreviation finds an unknown key call with NIL to unregister only one proc registered at a time expand abbreviation at insertion point abbreviatiions files are loaded automatically can call this to force reloading after have changed contents Κ’˜codešœ™Kšœ Οmœ1™™>K˜—š œžœžœ˜&KšœJ™JKšœG™GK˜—š œžœžœ˜&KšœJ™JKšœG™GK˜—š œžœ˜Kšœ*™*—K˜š  œžœ žœ˜!KšœM™MK˜—š œžœ žœ˜ KšœH™HK˜—š œžœ žœ˜&KšœI™IK˜—š œžœ žœ˜&KšœD™DK˜—Kš  œžœ žœ˜$Kš œžœ žœ˜(Kš  œžœ žœ˜$Kš œžœ žœ˜(Kš  œžœ žœ˜$š œžœ žœ˜(šœ™K˜——š  œžœ&žœ˜™>K˜—š  œžœ!˜0Kšœ>™>K˜—š œžœ!˜5Kšœ;™;K˜—š œžœ!˜6Kšœ=™=K˜—š œžœžœ˜)KšœB™BK˜—š œžœžœ˜1Kšœ@™@K˜—š  œžœžœžœ žœ˜IKšœ@™@K˜—š  œžœ žœ˜!Kšœ=™=K˜—Kš   œžœ žœžœ žœ˜9K˜Kš œžœžœ˜$K˜Kš œžœžœ6žœžœžœžœžœžœžœ˜ΝK˜š  œžœ˜Kšœ ™ K˜—š  œžœ˜.Kšœ<™