<> DIRECTORY Menus USING [MenuProc], MessageWindow USING [Append, Blink], ViewerAdjust USING [Adjust], ViewerClasses USING [Column, Viewer], ViewerMenus, ViewerOps, ViewerSpecs, WindowManager USING [colorDisplayOn]; ViewerMenusImpl: PROGRAM IMPORTS MessageWindow, ViewerAdjust, ViewerOps, WindowManager EXPORTS ViewerMenus SHARES ViewerClasses, ViewerOps = BEGIN OPEN Menus; Destroy: PUBLIC MenuProc = BEGIN viewer: ViewerClasses.Viewer ~ NARROW[parent]; IF ~viewer.inhibitDestroy THEN ViewerOps.DestroyViewer[viewer] ELSE MessageWindow.Append["Sorry, this viewer can not be destroyed.", TRUE]; MessageWindow.Blink[]; END; Close: PUBLIC MenuProc = {ViewerOps.CloseViewer[NARROW[parent]]}; Grow: PUBLIC MenuProc = {ViewerOps.GrowViewer[NARROW[parent]]}; Save: PUBLIC MenuProc = BEGIN viewer: ViewerClasses.Viewer ~ NARROW[parent]; IF viewer.newFile OR viewer.newVersion THEN ViewerOps.SaveViewer[viewer]; END; Restore: PUBLIC MenuProc = {ViewerOps.RestoreViewer[NARROW[parent]]}; Adjust: PUBLIC MenuProc = {ViewerAdjust.Adjust[NARROW[parent], mouseButton=red]}; Left: PUBLIC MenuProc = {ViewerOps.ChangeColumn[NARROW[parent], left]}; Right: PUBLIC MenuProc = {ViewerOps.ChangeColumn[NARROW[parent], right]}; Color: PUBLIC MenuProc = BEGIN IF WindowManager.colorDisplayOn THEN ViewerOps.ChangeColumn[NARROW[parent], color] ELSE BEGIN MessageWindow.Append["Sorry, the color display is not available.", TRUE]; MessageWindow.Blink[]; END; END; END.