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: BOOLEAN ← TRUE, --FORK calls on command procs
serialize: BOOLEAN ← TRUE --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 ANY ← NIL];
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 ANY ← NIL, viewerInit: ViewerClasses.ViewerRec ← [], directionFilter: Graphs.DirectionFilter ← Graphs.allDirections, paint: BOOLEAN ← TRUE] 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.