TiogaOpersImpl.mesa
Mike Spreitzer December 16, 1986 2:39:30 pm PST
DIRECTORY EditSpan, Rope, TEditLocks, TextEdit, TextLooks, TextNode, TiogaLies, TiogaOpers, TiogaOps;
TiogaOpersImpl: CEDAR PROGRAM
IMPORTS EditSpan, TEditLocks, TextEdit, TiogaLies
EXPORTS TiogaOpers
=
BEGIN OPEN TiogaOpers;
Delete: PUBLIC PROC [root: RefTextNode, del: Span] = {
EditSpan.Delete[root: root, del: del, event: NIL, saveForPaste: FALSE];
};
InsertRope: PUBLIC PROC [root, dest: RefTextNode, rope: ROPE, destLoc: INT, inherit: BOOLTRUE, looks: Looks ← noLooks, charSet: CharSet ← 0] = {
[] ← TextEdit.InsertRope[root: root, dest: dest, rope: rope, destLoc: destLoc, inherit: inherit, looks: looks, charSet: charSet, event: NIL];
};
Move: PUBLIC PROC [destRoot, srcRoot: RefTextNode, dest: Location, source: Span, where: Place ← after] = {
[] ← EditSpan.Move[destRoot, srcRoot, dest, source, where, 0, NIL];
};
CallWithLock: PUBLIC PROC [Proc: PROC [RefTextNode], root: TiogaOps.Ref] = {
tnr: RefTextNode = TiogaLies.OpsRefToTextNodeRef[root];
lr: TEditLocks.LockRef = TEditLocks.Lock[tnr, "TiogaOpersClient"];
Proc[tnr ! UNWIND => TEditLocks.Unlock[tnr]];
TEditLocks.Unlock[tnr];
};
END.