GraphBrowsers.Mesa
Last Edited by: Spreitzer, June 6, 1985 4:32:47 pm PDT
DIRECTORY Graphs, Menus, Rope, ViewerClasses;
GraphBrowsers: CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
Viewer: TYPE = ViewerClasses.Viewer;
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,
button: Menus.MouseButton ← red,
ctl, shift: BOOLEAN ← FALSE];
BrowserCmdProc:
TYPE =
PROC [pane: Pane, index:
CARDINAL
--origin 0--, cmdData, browserData:
REF
ANY, button: Menus.MouseButton, ctl, shift, paint:
BOOLEAN];
Browse: PROC [vertex: Graphs.Vertex, browserClass: BrowserClass, browserData: REF ANY ← NIL, viewerInit: ViewerClasses.ViewerRec ← [], paint: BOOLEAN ← TRUE] RETURNS [Browser];
BrowserQuaViewer: PROC [Browser] RETURNS [Viewer];
Expand, Contract: BrowserCmdProc;
basicBrowserClass: BrowserClass;
GetPaneVertex: PROC [pane: Pane] RETURNS [vertex: Graphs.Vertex];
GetChildName: PROC [pane: Pane, index: CARDINAL--origin 0--] RETURNS [name: ROPE];
GetChildVertex: PROC [pane: Pane, index: CARDINAL--origin 0--] RETURNS [vertex: Graphs.Vertex];
GetPaneUpEdge: PROC [pane: Pane] RETURNS [parent: Pane, index: CARDINAL--origin 0--];
END.