<> <> <> <> DIRECTORY DB USING[Entity, Domain, Attribute, Segment], Nut USING [CreateProc, UpdateProc], Rope USING [ROPE], ViewerClasses USING [PaintProc, Viewer, ViewerFlavor]; Whiteboard: CEDAR DEFINITIONS = BEGIN OPEN Rope; PaintRelships: ViewerClasses.PaintProc; -- paint the relships between icons PaintIcon: ViewerClasses.PaintProc; -- paint an icon PaintIconic: ViewerClasses.PaintProc; <> AddTextBox: PROCEDURE[wb: ViewerClasses.Viewer, e: DB.Entity, x, y, w, h: INTEGER] RETURNS[child: ViewerClasses.Viewer]; AddIcon: PROCEDURE[wb, viewer: ViewerClasses.Viewer, name: ROPE, x, y: INTEGER] RETURNS[child: ViewerClasses.Viewer]; RemoveChild: PROCEDURE[wb, child: ViewerClasses.Viewer]; <> GetGrid: PROC[ wb: ViewerClasses.Viewer ] RETURNS[ grid: NAT ]; SetGrid: PROC[ wb: ViewerClasses.Viewer, grid: NAT ]; ShowLines: PROCEDURE[wb: ViewerClasses.Viewer, show: BOOLEAN]; UpdateRelships: Nut.UpdateProc; -- watch relships being created/destroyed GetBinaryProperties: PROCEDURE[e: DB.Entity] RETURNS[LIST OF BinaryProperty]; BinaryProperty: TYPE = RECORD[of, is: DB.Entity, name: ROPE]; OpenIcon: PROCEDURE[icon: ViewerClasses.Viewer]; MoveChild: PROCEDURE[child: ViewerClasses.Viewer]; GrowBox: PROCEDURE[wb, box: ViewerClasses.Viewer, x, y: INTEGER]; NearestChild: PROCEDURE[wb: ViewerClasses.Viewer, x, y: INTEGER, type: ViewerClasses.ViewerFlavor _ NIL] RETURNS[nearest: ViewerClasses.Viewer]; <<***************** Data Schema for Viewers *******************>> <<>> ToolInfo: TYPE = RECORD[ tool: ATOM, icon: ATOM _ NIL, commandLine: ROPE ]; <> ToolViewer: DB.Domain; -- DeclareDomain[NutViewer.ToolViewer, $Squirrel] instructions: DB.Attribute; -- what is needed to recreate the viewer TextViewer: DB.Domain; -- DeclareDomain[NutViewer.TextViewer, $Squirrel] readOnly: BOOL; -- set if this is a readonly DB segment WBSegment: ROPE; -- the name of the current WB segment CreateTextViewer: Nut.CreateProc; CreateToolViewer: Nut.CreateProc; ShortName: PROC[name: ROPE] RETURNS[shortName: ROPE]; -- gives the LName for a FS GName ExtractName: PROC[name: ROPE] RETURNS[ROPE]; FetchEntity: PROC[v: ViewerClasses.Viewer] RETURNS[e: DB.Entity]; <> StoreEntity: PROC[v: ViewerClasses.Viewer, e: DB.Entity, seg: DB.Segment _ NIL, name: ROPE _ NIL]; <> <> Pair: TYPE = RECORD[e: DB.Entity, v: ViewerClasses.Viewer]; GetEntities: PROC[wb: ViewerClasses.Viewer, text: BOOL _ TRUE] RETURNS[entities: LIST OF Pair]; WBEntityForViewer: PROC[v: ViewerClasses.Viewer] RETURNS[e: DB.Entity] END... Change Log. Willie-Sue on December 20, 1982: added FindViewer and RegisterTool from ViewerNut.mesa