DIRECTORY Imager, ViewerClasses; ViewerContexts: CEDAR DEFINITIONS = { VECI: TYPE ~ RECORD [x, y: INTEGER]; Viewer: TYPE ~ ViewerClasses.Viewer; Context: TYPE ~ Imager.Context; ContextViewer: TYPE ~ REF ContextViewerPrivate; ContextViewerPrivate: TYPE; Create: PROC [viewerInit: ViewerClasses.ViewerRec, size: VECI, NoteClear: PROC [clientData: REF ANY] ¬ NIL, NoteChange: PROC [clientData: REF ANY, idealToViewer, viewerToScreen, viewerSize, idealSize: VECI] ¬ NIL, NoteDestruction: PROC [clientData: REF ANY] ¬ NIL, clientData: REF ANY ¬ NIL] RETURNS [ContextViewer]; QuaViewer: PROC [cv: ContextViewer, which: WhichViewer] RETURNS [Viewer]; WhichViewer: TYPE ~ {inner, outer}; QuaContextViewer: PROC [Viewer] RETURNS [MaybeContextViewer]; MaybeContextViewer: TYPE ~ RECORD [is: BOOL, it: ContextViewer]; DoWithInfo: PROC [cv: ContextViewer, With: PROC [idealToViewer, viewerToScreen, viewerSize, idealSize: VECI, destroyed: BOOL]]; SetIdealSize: PROC [ContextViewer, VECI]; GetMenuPane: PROC [ContextViewer] RETURNS [Viewer]; AddMenuElt: PROC [cv: ContextViewer, elt: Viewer, paint: BOOL]; AddPane: PROC [cv: ContextViewer, pane: Viewer, above, paint: BOOL]; DeletePane: PROC [cv: ContextViewer, pane: Viewer, paint: BOOL]; CreateContext: PROC [ContextViewer] RETURNS [Context]; QuaViewerContext: PROC [Context] RETURNS [MaybeContextViewer]; SetCursor: PROC [ContextViewer, ViewerClasses.CursorType]; Destroy: PROC [ContextViewer]; }. Φ ViewerContexts.Mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Last tweaked by Mike Spreitzer on October 15, 1990 2:47:33 pm PDT NoteClear, NoteChange and NoteDestruction may or may not be called under any combination of: the write lock for the viewer, and some locks internal to the implementation of ViewerContexts. A ContextViewer may be implemented by a nest of Viewers; which tells whether the outermost or the innermost is desired. ΚŽ•NewlineDelimiter –(cedarcode) style™code™Kšœ Οeœ7™BK™A—K˜KšΟk œ˜ K˜šΟnœžœž œ˜%K˜Kšžœžœžœžœ˜$K˜Kšœžœ˜$Kšœ žœ˜K˜Kšœžœžœ˜/Kšœžœ˜K˜šŸœž˜ šœ%˜%Kšœžœ˜ Kš Ÿ œžœžœžœžœ˜,Kš Ÿ œžœžœžœ8žœžœ˜iKš Ÿœžœžœžœžœ˜2Kšœ žœžœžœ˜—Kšžœ˜Kšœœ“™Ό—K˜šŸ œžœ)žœ ˜IKšœ9œ9™w—K˜Kšœ žœ˜#K˜šŸœžœ žœ˜=Kšœžœžœžœ˜@—K˜Kš Ÿ œžœŸœžœ8žœ žœ˜K˜KšŸ œžœžœ˜)K˜KšŸ œžœžœ ˜3K˜KšŸ œžœ)žœ˜?K˜KšŸœžœ1žœ˜DK˜KšŸ œžœ*žœ˜@K˜KšŸ œžœžœ ˜6K˜KšŸœžœ žœ˜>K˜KšŸ œžœ+˜:K˜KšŸœžœ˜K˜K˜——…—²