<<>> <> <> <> <> <> <> <> <<>> DIRECTORY Imager, Menus, Process, Rope, ScreenCoordsTypes, TIPFriendsTypes, TIPTypes, ViewerClasses, ViewerScreenTypes; ViewerPrivate: CEDAR DEFINITIONS ~ BEGIN Viewer: TYPE ~ ViewerClasses.Viewer; Column: TYPE ~ ViewerClasses.Column; Menu: TYPE ~ Menus.Menu; MouseButton: TYPE ~ ViewerClasses.MouseButton; ROPE: TYPE ~ Rope.ROPE; <> InitializeHourglass: PROC [ticks: CARDINAL]; TickHourglass: PROC; <> ProcessEndOpsRegistry: PROC; <> <> IconNotify: ViewerClasses.NotifyProc; IconModify: ViewerClasses.ModifyProc; iconTIP: TIPTypes.TIPTable; selectedIcon: Viewer; IconNotifyMouse: PROC [self: Viewer, input: LIST OF REF ANY, device: REF ¬ NIL, user: REF ¬ NIL, display: REF ¬ NIL]; <> messageWindow: Viewer; <> <> menuHLeading: INTEGER = 5; -- white space before first entry menuHSpace: INTEGER = 12; -- white space between entries MarkMenu: PROC [menu: Menu, parent: Viewer, mousePos: ScreenCoordsTypes.TIPScreenCoords]; HitMenu: PROC [menu: Menu, parent: Viewer, mousePos: ScreenCoordsTypes.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: Viewer, clientData: REF ANY ¬ NIL, mouseButton: MouseButton ¬ red, shift, control: BOOL ¬ FALSE]; <> RootViewerTreeRep: TYPE ~ RECORD [SEQUENCE c: Column OF Viewer]; rootViewerTree: REF RootViewerTreeRep; <> VMgrPriority: Process.Priority; -- "priorityForeground" in PrincOps, "priorityUserForeground" in PCedar ProcessWindowManagerInput: PROC [self: Viewer, input: LIST OF REF ANY, device: REF ¬ NIL, user: REF ¬ NIL, display: REF ¬ NIL]; <> 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 [leftColumnWidth: NAT, screen: Screen ¬ main]; <> <<>> SetOpenBottomY: PROC [bottomY: NAT, screen: Screen ¬ main]; <> <<>> SetMenuHeight: PROC [height: NAT, screen: Screen ¬ main]; <> <<>> SetScrollBarWidth: PROC [width: NAT, screen: Screen ¬ main]; <> <<>> SetWindowBorderSize: PROC [border: NAT, screen: Screen ¬ main]; <> <<>> SetScreenSize: PROC [w, h: NAT, screen: Screen ¬ main]; <> <<>> 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]; <> WindowManagerTIPTable: TIPTypes.TIPTable; MasterButtonProc: TIPFriendsTypes.TIPButtonProc; <> MasterNotifyProc: TIPFriendsTypes.TIPNotifyProc; <> <<>> CreateDebugButton: PROC []; <> <> Screen: TYPE ~ ViewerScreenTypes.Screen; ContextCreatorProc: TYPE ~ ViewerScreenTypes.ContextCreatorProc; CreateContext: PROC [screen: Screen] RETURNS [Imager.Context]; <> <<>> SetCreator: PROC [creator: ContextCreatorProc ¬ NIL, screen: Screen ¬ main] RETURNS [old: ContextCreatorProc]; <> <<>> GetCreatorScreen: PROC [screen: Screen] RETURNS [old: ContextCreatorProc]; <> <<>> ViewerScreen: PROC [viewer: Viewer] RETURNS [Screen]; <> DisablePainting: PROC [wait: BOOL ¬ TRUE]; <> EnablePainting: PROC; <> WaitForPaintingToFinish: PROC; <> EnableColor: PROC [bitsPerPixel: NAT] RETURNS [BOOL]; <> DisableColor: PROC; <> EnableScreen: PROC [screen: Screen] RETURNS [ok: BOOL]; <> DisableScreen: PROC [screen: Screen]; <> <<>> 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]; <> <<>> ColorScreen: PROC [screen: Screen, color: Imager.Color]; <> GreyWindow: PROC [viewer: Viewer]; <> <<>> DoWithoutCarets: PROC [sx, sy, w, h: INTEGER, screen: Screen, action: PROC]; <> <> CheckForEmergencySaveAllEdits: PROC []; END.