GraphBrowsers.Mesa
Mike Spreitzer September 26, 1986 11:16:23 pm PDT
DIRECTORY Graphs, Menus, Rope, ViewerClasses;
GraphBrowsers: CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
Viewer: TYPE = ViewerClasses.Viewer;
Vertex: TYPE = Graphs.Vertex;
Browser: TYPE = REF BrowserRep;
BrowserRep: TYPE;
Pane: TYPE = REF PaneRep;
PaneRep: TYPE;
BrowserClass: TYPE = REF BrowserClassRep;
BrowserClassRep: TYPE = RECORD [
cmds: BrowserCmds,
fork: BOOLEANTRUE,  --FORK calls on command procs
serialize: BOOLEANTRUE--only one outstanding cmd call at a time
];
BrowserCmds: TYPE = ARRAY Menus.MouseButton OF ARRAY BOOLEAN--Control-- OF ARRAY BOOLEAN--Shift-- OF BrowserCmd;
BrowserCmd: TYPE = RECORD [
proc: BrowserCmdProc,
cmdData: REF ANYNIL];
BrowserCmdProc: TYPE = PROC [pane: Pane, index: CARDINAL--origin 0--, cmdData, browserData: REF ANY, button: Menus.MouseButton, ctl, shift, paint: BOOLEAN];
Browse: PROC [vertex: Vertex, browserClass: BrowserClass, browserData: REF ANYNIL, viewerInit: ViewerClasses.ViewerRec ← [], directionFilter: Graphs.DirectionFilter ← Graphs.allDirections, paint: BOOLEANTRUE] RETURNS [Browser];
BrowserQuaViewer: PROC [Browser] RETURNS [Viewer];
Expand, Contract: BrowserCmdProc;
basicBrowserClass: BrowserClass;
GetPaneVertex: PROC [pane: Pane] RETURNS [vertex: Vertex];
GetChildVertex: PROC [pane: Pane, index: CARDINAL--origin 0--] RETURNS [vertex: Vertex];
GetPaneUpEdge: PROC [pane: Pane] RETURNS [parent: Pane, index: CARDINAL--origin 0--];
END.