<> <> <> <> <<>> DIRECTORY Imager USING [Context], Menus USING [Menu, MouseButton], Process USING [Priority, priorityForeground], Rope USING [ROPE], TIPPrivate USING [TIPClient], TIPUser USING [TIPScreenCoords, TIPTable], ViewerClasses USING [Column, ModifyProc, NotifyProc, Viewer]; ViewerPrivate: CEDAR DEFINITIONS ~ BEGIN Viewer: TYPE ~ ViewerClasses.Viewer; Column: TYPE ~ ViewerClasses.Column; Menu: TYPE ~ Menus.Menu; MouseButton: TYPE ~ Menus.MouseButton; ROPE: TYPE ~ Rope.ROPE; <> InitializeHourglass: PROC [ticks: CARDINAL]; TickHourglass: PROC; <> ProcessEndOpsRegistry: PROC; <> <> IconNotify: ViewerClasses.NotifyProc; IconModify: ViewerClasses.ModifyProc; iconTIP: TIPUser.TIPTable; selectedIcon: Viewer; <> messageWindow: Viewer; <> <> menuHLeading: INTEGER = 5; -- white space before first entry menuHSpace: INTEGER = 12; -- white space between entries MarkMenu: PROC [menu: Menu, parent: Viewer, mousePos: TIPUser.TIPScreenCoords]; HitMenu: PROC [menu: Menu, parent: Viewer, mousePos: TIPUser.TIPScreenCoords, button: MouseButton, shift, control: BOOL _ FALSE]; ClearMenu: PROC [menu: Menu, parent: Viewer, paint: BOOL _ TRUE]; DrawMenu: PROC [menu: Menu, context: Imager.Context, x, y: INTEGER, whatChanged: REF ANY _ NIL]; Document: PROC [info: REF ANY, parent: REF ANY, clientData: REF ANY _ NIL, mouseButton: MouseButton _ red, shift, control: BOOL _ FALSE]; <> rootViewerTree: ARRAY Column OF Viewer; <> VMgrPriority: Process.Priority = Process.priorityForeground; ProcessWindowResults: ViewerClasses.NotifyProc; DrawCaptionMenu: PROC [v: Viewer, guard: BOOL]; windowMenu: Menu; <> <> AcquireWriteLock: PROC [viewer: Viewer]; <> ReleaseWriteLock: PROC [viewer: Viewer]; <> AcquireWriteLocks: PROC [v0, v1, v2: Viewer _ NIL]; <> ReleaseWriteLocks: PROC [v0, v1, v2: Viewer _ NIL]; <> AcquireReadLock: PROC [viewer: Viewer]; <> ReleaseReadLock: PROC [viewer: Viewer]; <> AcquireReadLocks: PROC [v0, v1, v2: Viewer _ NIL]; <> ReleaseReadLocks: PROC [v0, v1, v2: Viewer _ NIL]; <> AcquireColumnWriteLock: PROC [column: Column]; <> ReleaseColumnWriteLock: PROC [column: Column]; <> ColumnWedged: PROC[column: Column] RETURNS[wedged, write: BOOLEAN]; MarkColumnWedged: PROC [column: Column]; <> MarkColumnUnWedged: PRIVATE PROC [column: Column]; <> LockViewerTree: PROC; <> ReleaseViewerTree: PROC; <> <> SetOpenLeftWidth: PROC [NAT]; <> <<>> SetOpenBottomY: PROC [NAT]; <> <<>> SetMenuHeight: PROC [NAT]; <> <<>> SetScrollBarWidth: PROC [NAT]; <> <<>> SetWindowBorderSize: PROC [NAT]; <> <<>> SetBWScreenSize: PROC [w, h: NAT]; <> <<>> SetColorScreenSize: PROC [w, h: NAT]; <> <<>> <> Severity: TYPE ~ {fatal, severe, warning, ignorable}; Error: SIGNAL [severity: Severity _ fatal, msg: ROPE _ NIL]; UserErrorQuery: PROC RETURNS [continue: BOOL]; <> EnableInput: PROC; <> <> inputEnabled: READONLY BOOL; <> focusTIP: TIPPrivate.TIPClient; <> WindowManagerTIPTable: TIPUser.TIPTable; <> Screen: TYPE ~ {bw, color}; <> <<>> ContextCreatorProc: TYPE ~ PROC [screen: Screen] RETURNS [Imager.Context]; CreateContext: ContextCreatorProc; <> <<>> SetCreator: PROC [creator: ContextCreatorProc _ NIL] RETURNS [old: ContextCreatorProc]; <> <<>> ViewerScreen: PROC [viewer: Viewer] RETURNS [Screen] ~ INLINE { RETURN[IF viewer.column=color AND NOT viewer.iconic THEN color ELSE bw] }; <> <<>> DisablePainting: PROC [wait: BOOL _ TRUE]; <> EnablePainting: PROC; <> WaitForPaintingToFinish: PROC; <> EnableColor: PROC [bitsPerPixel: NAT] RETURNS [BOOL]; <> DisableColor: PROC; <> InvertForMenus: PROC [viewer: Viewer, x,y: INTEGER, w,h: INTEGER]; <> PaintScreen: PROC [screen: Screen, action: PROC[Imager.Context], suspendCarets: BOOL _ TRUE]; <> PaintWindow: PROC [viewer: Viewer, action: PROC[Imager.Context]]; <> PaintClient: PROC [viewer: Viewer, action: PROC[Imager.Context]]; <> GreyScreen: PROC [screen: Screen, x, y, w, h: INTEGER]; <> GreyWindow: PROC [viewer: Viewer]; <> END.