<> <> <> <> DIRECTORY JaM USING [State], Imager USING [Context]; JaMImagerContexts: CEDAR DEFINITIONS = { State: TYPE = JaM.State; Context: TYPE = Imager.Context; <> <<>> AddContext: PROC [state: State, context: Context, callMe: CallMe, name: ATOM, enabled: BOOLEAN _ TRUE]; Command: TYPE = {initdc, erase, pushdc, popdc}; CallMe: TYPE = PROC[context: Context, command: Command] RETURNS[new: Context]; <> <> <> <> <> <> <> RemoveContext: PROC [state: State, name: ATOM] RETURNS [context: Context]; <> EnableContext: PROC [state: State, name: ATOM]; DisableContext: PROC [state: State, name: ATOM]; <> EnableViewer: PROC [state: State]; DisableViewer: PROC [state: State]; NotFound: SIGNAL; --raised by RemoveContext, EnableContext and DisableContext DCList: TYPE = REF DCRec; DCRec: TYPE = RECORD [ next: DCList, callMe: CallMe, dc: Imager.Context, enabled: BOOLEAN, name: ATOM]; GProc: TYPE = PROC [dc: Context]; ForAllDCs: PROC [list: DCList, proc: GProc]; }.