ViewerTools.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Edited by McGregor on September 2, 1982 9:34 am
Last Edited by: Maxwell, January 3, 1983 12:14 pm
Doug Wyatt, March 28, 1985 9:28:15 pm PST
DIRECTORY
Rope USING [ROPE],
ViewerClasses USING [Viewer, ViewerRec];
ViewerTools: CEDAR DEFINITIONS
= BEGIN OPEN ViewerClasses;
ROPE: TYPE ~ Rope.ROPE;
Viewer: TYPE ~ ViewerClasses.Viewer;
ViewerRec: TYPE ~ ViewerClasses.ViewerRec;
Finding and Creating Viewers
FindExistingViewer: PROC [fileName: ROPE] RETURNS [viewer: Viewer];
Returns NIL if none could be found.
MakeNewTextViewer: PROC [info: ViewerRec ← [], paint: BOOLTRUE]
RETURNS
[viewer: Viewer];
If info.parent=NIL then creates a top-level viewer. Specify name and file in info. Otherwise, pass wx, wy, ww, wh in info for size. For initial contents, pass a rope as the data field in info, or pass a filename in the file field.
See Buttons.mesa for creating new buttons.
See Containers.mesa for creating new labels.
See Labels.mesa for creating new labels.
Operations on Selections
SelPos: TYPE = REF SelPosRec;
SelPosRec: TYPE = RECORD [
start, length: LONG INTEGER ← 0,
pendingDelete: BOOLFALSE,
caretPos: {before, after} ← before
];
SetSelection: PROC [viewer: Viewer, selection: SelPos ← NIL];
Set and scroll to a selection. For typescripts, NIL => caret at end. For other text viewers, NIL => entire contents in pending-delete mode. Works only for Tioga and Typescript viewers.
GetSelectedViewer: PROC RETURNS [viewer: Viewer];
Returns the selected viewer.
GetSelectionContents: PROC RETURNS [contents: ROPE];
Returns the contents of the selected viewer's selection. Works only when the input focus is in a Tioga and Typescript viewer.
GetSelection: PROC [viewer: Viewer] RETURNS [selection: SelPos];
Returns the selected viewer and the position of its selection. Works only for Tioga viewers!
Contents of Viewers
Works for text and maybe some other classes
GetContents: PROC [viewer: Viewer] RETURNS [contents: ROPE];
Returns the contents of a Tioga document (formatting information is omitted).
SetContents: PROC [viewer: Viewer, contents: ROPE, paint: BOOLTRUE];
Set the contents of a Tioga document.
TiogaContents: TYPE = REF TiogaContentsRec ;
TiogaContentsRec: TYPE = RECORD [
contents: ROPENIL,
formatting: ROPENIL
];
GetTiogaContents: PROC [viewer: Viewer] RETURNS [contents: TiogaContents];
Returns the contents and formatting of a Tioga document.
SetTiogaContents: PROC [viewer: Viewer, contents: TiogaContents, paint: BOOLTRUE];
Set the contents and formatting of a Tioga document.
InhibitUserEdits: PROC [viewer: Viewer];
Prevent the user from editing a text viewer.
EnableUserEdits: PROC [viewer: Viewer];
Allow the user to edit a text viewer.
END.