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. LGraphBrowsers.Mesa Mike Spreitzer September 26, 1986 11:16:23 pm PDT ΚG– "cedar" style˜™Icode™1—J˜KšΟk œ$˜-K˜KšΠbx œœ œ˜"K˜Kš˜K˜Kšœœœ˜Kšœœ˜$K˜Kšœœ˜K˜Kšœ œœ ˜Kšœ œ˜K˜Kšœœœ ˜Kšœ œ˜K˜Kšœœœ˜)šœœœ˜ Kšœ˜KšœœœΟc˜4Kšœ œœŸ)˜CKšœ˜—K˜Kšœ œœœœŸ œœœŸ œœ ˜pK˜šœ œœ˜K˜Kšœ œœœ˜K˜—šΟnœœœŸ œœœ0œ˜œK˜—Kš œœ;œœœsœœœ ˜ιK˜Kš œœ œ ˜2K˜Kš œ œ˜!K˜K˜ K˜Kš  œœœ˜:K˜Kš  œœŸ œœ˜XK˜Kš   œœœŸ œ˜UK˜Kšœ˜—…—€7