-- File: WalnutDisplayerOps.Mesa -- Created by: Haugeland, May 11, 1983 -- Last Edited by: Willie-Sue, June 7, 1983 3:05 pm DIRECTORY Menus USING [Menu], Rope USING [ROPE], WalnutDB USING [Msg, MsgSet, Relship], WalnutLog USING [MsgRec], ViewerClasses USING [Viewer]; WalnutDisplayerOps: CEDAR DEFINITIONS = BEGIN OPEN WalnutDB, WalnutLog; Viewer: TYPE = ViewerClasses.Viewer; ROPE: TYPE = Rope.ROPE; msgMenu: Menus.Menu; msgName: ROPE; msgMenuAvailable: BOOL; -- *********************************************************** -- FieldHandle for msgSet displayers, needed by msg displayers MsgSetFieldHandle: TYPE = REF MsgSetFieldObject; MsgSetFieldObject: TYPE = RECORD[ relship: Relship, msgViewer: Viewer_ NIL, msg: Msg, msgName: ROPE, -- needed for rebuilding after an abort msgTOC: ROPE, posOK: BOOL_ FALSE, hasBeenRead: BOOL_ TRUE, headersPos, msgLength: INT_ 0, prev, next: Viewer_ NIL]; -- *********************************************************** -- displaying Msgs, from WalnutMsgDisplayerImpl DisplayMsgFromMsgSet: PROC[mfh: MsgSetFieldHandle, msViewer: Viewer, shift: BOOL_ FALSE] RETURNS[v: Viewer]; MsgCategories: PROC[msg: Msg]; -- lists the MsgSets for msg, in the walnut control window BuildMsgDisplayer: PROC[msg: Msg, shift: BOOL_ FALSE] RETURNS[Viewer]; DisplayMsgInViewer: PROC[msg: Msg, mViewer: Viewer, shift: BOOL_ FALSE]; GetMsgName: PROC[v: Viewer] RETURNS[mName: ROPE]; -- of v is a Viewer for a Walnut Entity, then return its name else NIL StuffMsgContents: PROC[v: Viewer, mName: ROPE] RETURNS[found: BOOLEAN]; -- if mName is the name of a msg, then display that msg in v else return found_ FALSE FixUpMsgViewer: PROC[mName: ROPE, v: Viewer]; -- called after transaction abort -- *********************************************************** -- maintaining MsgSet displayers, from WalnutMsgSetDisplayerImpl BuildMsgSetDisplayer: PROC[msgSet: MsgSet, name: ROPE, shift: BOOL_ FALSE, initialActive: BOOL_ FALSE] RETURNS[msV: Viewer]; DisplayMsgSetInViewer: PROC[msgSet: MsgSet, msViewer: Viewer, shift: BOOL_ FALSE]; UpdateDisplayerEntities: PROC; -- called after DB.Aborted, so re-initialize cached entities AddParsedMsgToMSViewer: PROC[msg: Msg, msgR: MsgRec, msViewer: Viewer, rel: Relship]; -- used by new mail & old mail file readers -- the following routines figure out if the referenced MsgSet is being displayed RemoveFromMsgSetDisplayer: PROC[msgSet: MsgSet, msg: Msg]; AddMsgToMsgSetDisplayer: PROC[msg: Msg, msgSet: MsgSet, rel: Relship]; FixUpMsgSetViewer: PROC[msName: ROPE, v: Viewer]; -- called after transaction abort END. Ę†˜JšąĪc|œĪk œžœžœžœ žœCžœ Īnœžœž œŸœžœŸœžœžœ!žœžœŸœžœžœŸœžœžœ+žœžœ'œ žœ žœžœžœžœžœžœqœŸœžœ2ž œžœŸ œžœ <œŸœžœž œžœ Ÿœžœ#ž œŸ œžœ žœžœHžŸœžœžœžœžœžWœŸœžœžœ#œŸœžœ$ž œžœžœžœŸœžœ*ž œŸžœ>Ÿœžœ:-ŸQœŸœžœŸœžœ*žŸœžœ žœ#žœ˜É—…— L Ø