-- Whiteboard.mesa -- Last edited by: John Maxwell on: June 24, 1982 10:23 am -- Last Edited by: Willie-Sue, February 22, 1983 3:46 pm -- Last Edited by: Donahue, June 1, 1983 4:32 pm (added InitializeSchema) DIRECTORY DB USING[Entity, Domain, Attribute], 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 PaintIconic: ViewerClasses.PaintProc; -- paint an iconic whiteboard PaintIcon: ViewerClasses.PaintProc; -- paint an icon OpenSegment: PROC[ fileName: ROPE, readOnly: BOOL _ TRUE ]; -- open a new $Squirrel segment AddTextBox: PROCEDURE[wb: ViewerClasses.Viewer, e: DB.Entity, x, y, w, h: INTEGER] RETURNS[child: ViewerClasses.Viewer]; AddIcon: PROCEDURE[wb, viewer: ViewerClasses.Viewer, e: DB.Entity, x, y: INTEGER] RETURNS[child: ViewerClasses.Viewer]; RemoveChild: PROCEDURE[wb, child: ViewerClasses.Viewer]; 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 ******************* -- NOTE: There is no notion of versions in this implementation! -- If a viewer already exists with the entity's name, ViewerNut will flash it. -- If the entity is a TextViewer, ViewerNut open a Viewer on the file. -- If the entity is a ToolViewer, ViewerNut will load its implementor. -- ********************************************************** ToolViewer: DB.Domain; -- DeclareDomain[NutViewer.ToolViewer, $Squirrel] -- properties of ToolViewers comment: DB.Attribute; -- human readable instructions loadError: DB.Attribute; -- loadError is set if the Tool couldn't be loaded implementor: DB.Attribute; -- an implementor of a ToolViewer is a BCD BCD: DB.Domain; -- the domain of implementations DeclareDomain["BCD", $Squirrel] TextViewer: DB.Domain; -- DeclareDomain[NutViewer.TextViewer, $Squirrel] readOnly: BOOL; -- set if this is a readonly DB segment RegisterTool: PROCEDURE[name, impl, instructions: ROPE _ NIL]; -- name = name of viewer (as given at the top of the viewer). -- implementor = name of bcd. -- instructions = human readable instructions of how to -- get the tool (where the DF file is, what to load, etc). CreateTextViewer: Nut.CreateProc; CreateToolViewer: Nut.CreateProc; Loaded: PROC[module: ROPE] RETURNS[loaded: BOOLEAN]; ExtractName: PROC[name: ROPE] RETURNS[ROPE]; FetchEntity: PROC[v: ViewerClasses.Viewer] RETURNS[e: DB.Entity]; -- produce the entity stored in the viewer StoreEntity: PROC[ v: ViewerClasses.Viewer, e: DB.Entity ]; END... Change Log. Willie-Sue on December 20, 1982: added FindViewer and RegisterTool from ViewerNut.mesa ĘĐ˜JšÖĪcŅœĪk œžœžœ#žœ"žœžœžœ3žœž œžœžœ0$œ&œ$œĪn œžœ žœ žœžœ œŸ œž œžœžœžœŸœž œ&žœžœžœŸ œž œ&Ÿ œž œ!žœ#*œŸœž œžœ žœžœžœ"žœžœ žœžœŸœž œ!Ÿ œž œŸœž œ&žœŸ œž œ!žœ+žœžœ#Aœ@œOœGœGœ>œžœ Oœ žœ œ žœ 4œžœ *œžœžœ Aœ žœ 2œ žœ(œŸ œž œžœžœ>œœ9œ;œGŸœžœ žœžœ žœŸ œžœžœžœžœŸ œžœžœžœ +œŸ œžœžœ žœk˜ū—…— Ö