<<>> <> <> <> <> <> <> <> <> <> DIRECTORY DB, Icons USING [IconFlavor], IO, Menus USING[MenuProc, MenuEntry], MBQueue USING [Queue], NutButtons USING [ButtonFontInfo, Queue], Buttons, Rope, ViewerClasses; NutViewer: CEDAR DEFINITIONS = BEGIN OPEN DB; Viewer: TYPE = ViewerClasses.Viewer; ROPE: TYPE = Rope.ROPE; Queue: TYPE = NutButtons.Queue; EnumProc: TYPE = PROC[enum: REF ANY] RETURNS [label: Rope.ROPE]; <> <<>> CountProc: TYPE = PROC[v: Viewer, enum: REF ANY] RETURNS [INT]; <> ThumbProc: TYPE = PROC[v: Viewer, enum: REF ANY, where: NAT] RETURNS[REF ANY]; <> <> <<>> <<*******************************************************************>> <<--- NutViewerImpl -->> <> <> <<*******************************************************************>> Initialize: PROC[parent: Viewer] RETURNS [nV: Viewer]; <> MakeLabel: PROC[name: ROPE, sib: Viewer, newLine: BOOL_ FALSE] RETURNS [nV: Viewer]; <> <<>> IsDefaultViewer: PROC[v: Viewer] RETURNS[BOOL]; <> SpawnViewer: PROC[eName, domain: ROPE, seg: Segment, parent: Viewer _ NIL] RETURNS[newV: Viewer]; <> ReplaceViewer: PROC[eName, domain: ROPE, seg: Segment, parent: Viewer _ NIL] RETURNS[newV: Viewer]; <> OneViewer: PROC[eName, domain: ROPE, seg: Segment, parent: Viewer _ NIL] RETURNS[newV: Viewer]; <> CreateDefaultViewer: PROC[eName, domain: ROPE, segment: DB.Segment, replace: Viewer _ NIL] RETURNS [newV: Viewer]; <> <<************************************* -- NutViewerImpl -->> <> <<*************************************>> Message: PROC[v: ViewerClasses.Viewer, msg1, msg2, msg3, msg4: Rope.ROPE_ NIL]; <> <> <> <> Error: PROC[v: ViewerClasses.Viewer, msg1, msg2, msg3, msg4: Rope.ROPE_ NIL]; <> MessageRope: PROC[v: ViewerClasses.Viewer, msg: Rope.ROPE_ NIL]; <> <<*******************************************************************>> <<-- NutViewerMiscImpl.mesa -->> <> <> <> <> <> <> <> <> <> <> <<[]_ MakeTypeScript[nV]; (Make a typescript at the end of the window).>> <<********************************************************************>> MakeButton: PROC[q: Queue, name: ROPE, proc: Buttons.ButtonProc, sib: Viewer, data: REF ANY_ NIL, border: BOOL_ FALSE, width: INTEGER_ 0, guarded: BOOL_ FALSE, font: NutButtons.ButtonFontInfo _ NIL, newLine: BOOL_ FALSE, visible: BOOL_ TRUE] RETURNS [nV: Viewer]; <> MakeMenuEntry: PROC[q: Queue, name: ROPE, proc: Menus.MenuProc, clientData: REF ANY_ NIL, documentation: REF ANY_ NIL, fork: BOOL_ TRUE, guarded: BOOL_ FALSE] RETURNS[Menus.MenuEntry]; <> <> <
> DBQueue: PROC RETURNS[Queue]; <> <> NextRightTextViewer: PROC[sib: Viewer, w: INTEGER] RETURNS [nV: Viewer]; <> DefaultFreezeProc: Menus.MenuProc; <<>> MakeTextViewer: PROC[sib: Viewer, w: INTEGER_ 0, fullLine: BOOL_ FALSE] RETURNS [nV: Viewer]; <> <> <<>> MakeTypescript: PROC[sib: Viewer] RETURNS [ts: Viewer]; <> <<>> GetTypescript: PROC[v: Viewer] RETURNS [out: IO.STREAM]; <> MakeRuler: PROC[sib: Viewer, h: INTEGER_ 1] RETURNS [r: Viewer]; <> MakeBigTextBox: PROC[sib: Viewer, contents: ROPE] RETURNS [nV: Viewer]; <> <> <> <<>> NextTextViewer: PROC[sib: Viewer] RETURNS [nV: Viewer] = INLINE { <> RETURN[MakeTextViewer[sib, , TRUE]]}; <<>> CreateMBWindow: PROC[ next, prev: EnumProc, -- to go forward and backward in the enumeration thumb: ThumbProc, -- to create an enumeration set to a particular position count: CountProc, -- to give total size of enumeration buttonProc: Buttons.ButtonProc, -- called with the thing associated with button info: ViewerClasses.ViewerRec_ [], -- allows client to fill in ViewerRec fields initialScroll: INT_ 0, -- what percentage of scroll to have for initial display q: MBQueue.Queue_ NIL] -- MBQueue under which to synchronize (doesn't yet work) RETURNS [viewer: Viewer]; <> <> <> <<>> END.