<> <> <<>> DIRECTORY TIPUser USING [TIPClient, TIPTable], ViewerClasses USING [NotifyProc, Viewer]; InputFocus: CEDAR DEFINITIONS = BEGIN OPEN ViewerClasses; Focus: TYPE = REF FocusRec; FocusRec: TYPE = RECORD [ owner: Viewer _ NIL, -- Viewer associated with this focus. info: REF _ NIL, -- focus data private to the owner. link: PRIVATE Focus _ NIL -- focus stack overhead. ] ; GetInputFocus: PROC RETURNS [Focus] ; <> SetInputFocus: PROC [self: Viewer _ NIL, info: REF _ NIL] ; <> PushInputFocus: PROC [self: Viewer _ NIL, info: REF _ NIL] ; <> PopInputFocus: PROC ; <> CaptureButtons: PROC [proc: NotifyProc, tip: TIPUser.TIPTable, viewer: Viewer _ NIL] ; <> ReleaseButtons: PROC = INLINE { CaptureButtons[NIL, NIL, NIL] } ; EnableInput: PRIVATE PROC ; <> <> inputEnabled: READONLY BOOL; <> focusTIP: PRIVATE TIPUser.TIPClient; <> WindowManagerTIPTable: PRIVATE TIPUser.TIPTable ; InputFocusImpl: PRIVATE PROGRAM; END.