DIRECTORY MenuDefs: FROM "MenuDefs", ObjectDefs: FROM "ObjectDefs", GriffinViewer USING [PaintProc, DoPaint], RefreshDefs: FROM "RefreshDefs", GriffinDisplay USING [ClearScreen], GriffinDefs, GriffinGrid USING [GridOn, GridOff], GriffinMenusInterface, Rope USING [ROPE]; FigureOps: CEDAR PROGRAM IMPORTS MenuDefs, GriffinDisplay, ObjectDefs, RefreshDefs, GriffinViewer, GriffinGrid EXPORTS GriffinMenusInterface, GriffinDefs = BEGIN ROPE: TYPE = Rope.ROPE; Refresh: PUBLIC MenuDefs.MenuProc = BEGIN paintProc: GriffinViewer.PaintProc = { GriffinDisplay.ClearScreen[dc]; ObjectDefs.ReplotAllObjects[dc]; }; GriffinViewer.DoPaint[paintProc]; END; GridMenuProc: PUBLIC MenuDefs.MenuProc = BEGIN currentlyOn: BOOLEAN _ MenuDefs.IsSelected[item]; IF currentlyOn THEN { GriffinGrid.GridOff[]; MenuDefs.Deselect[item]; } ELSE { GriffinGrid.GridOn[]; MenuDefs.Select[item]; }; END; Merge: PUBLIC MenuDefs.MenuProc = BEGIN OPEN ObjectDefs; view: View _ viewMenu.view; Mark: ObjectProc = BEGIN IF obj.view=view THEN RETURN; obj.view _ view; RefreshDefs.MarkObject[obj]; END; ForAllObjects[Mark]; RefreshDefs.RestoreScreen[]; END; Switch: PUBLIC MenuDefs.MenuProc = BEGIN OPEN ObjectDefs; newView: View _ IF viewMenu.view=main THEN alternate ELSE main; Mark: ObjectProc = TRUSTED BEGIN WITH foo: obj SELECT FROM menu => obj.view _ newView; token => IF foo.tokenType#open THEN obj.view _ newView; ENDCASE; END; paintProc: GriffinViewer.PaintProc = { GriffinDisplay.ClearScreen[dc]; ObjectDefs.ReplotAllObjects[dc]; }; ForAllObjects[Mark]; SetCurrentView[newView]; GriffinViewer.DoPaint[paintProc]; END; viewMenu: MenuDefs.MenuHandle_NIL; ToggleFigureMenus: PUBLIC PROC = { --view menus IF viewMenu.visible THEN MenuDefs.HideMenu[viewMenu] ELSE MenuDefs.ShowMenu[viewMenu]; RefreshDefs.RestoreScreen[]; }; StartFigureMenus: PUBLIC PROC = { viewMenu _ MenuDefs.CreateMenu[horizontal, [100,50], NIL]; []_MenuDefs.AddMenuItem[viewMenu,"Refresh",Refresh]; []_MenuDefs.AddMenuItem[viewMenu,"Grid",GridMenuProc]; []_MenuDefs.AddMenuItem[viewMenu,"Merge",Merge]; []_MenuDefs.AddMenuItem[viewMenu,"Switch",Switch]; }; END. žFigureOps.mesa Last Edited by: Stone, September 19, 1985 4:52:13 pm PDT Last Edited by: Pier, February 14, 1984 10:11:13 am PST Last Edited by: Beach, December 3, 1984 5:08:16 pm PST ĘĶ˜Jšœ™Jšœ8™8Jšœ7™7J™6J˜šĪk ˜ Jšœ œ ˜Jšœ œ˜Jšœœ˜)Jšœ œ˜ Jšœœ˜#J˜ Jšœ œ˜$J˜Jšœœœ˜J˜—šœ  ˜šœ&˜-Jšœ'˜'—Jšœ&˜-—Jš˜Jšœœœ˜J˜J˜Jšœ œ˜#š˜˜&J˜J˜ J˜—J˜!Jšœ˜—J˜J˜Jšœœ˜(š˜Jšœ œ˜1šœ œ˜Jšœ˜J˜J˜—šœ˜Jšœ˜J˜J˜—Jšœ˜—J˜J˜Jšœœ˜!šœœ ˜J˜šœ˜Jšœœœ˜J˜J˜Jšœ˜—J˜J˜Jšœ˜—J˜Jšœœ˜"šœœ ˜Jšœœœ œ˜?šœ ˜ Jšœ œ˜J˜Jšœ œœ˜7Jšœ˜Jšœ˜—˜&J˜J˜ J˜—J˜J˜J˜!Jšœ˜—J˜J˜Jšœœ˜"J˜J˜šĪnœ œĪc ˜/Jšœœ˜4Jšœ˜!J˜J˜—šžœœœ˜!J˜Jšœ5œ˜:J˜4J˜6J˜0J˜2J˜J˜J˜—Jšœ˜J˜J˜—…—L Ũ