-- File: WalnutDisplayerPrivate.Mesa

-- Created by: Haugeland, March 15, 1983
-- Last Edited by: Willie-Sue, April 12, 1983 11:12 am


DIRECTORY

 Menus USING [Menu],
 Rope USING [ROPE],
 WalnutDB USING [Msg, MsgSet, MsgRec, Relship],
 ViewerClasses USING [Viewer];

WalnutDisplayerPrivate: CEDAR DEFINITIONS =

BEGIN OPEN WalnutDB;

Viewer
: TYPE = ViewerClasses.Viewer;
ROPE: TYPE = Rope.ROPE;

msgMenu: Menus.Menu;
msgName: ROPE;

-- ***********************************************************
-- FieldHandle for msgSet displayers, needed by msg displayers

MsgSetFieldHandle
: TYPE = REF MsgSetFieldObject;

MsgSetFieldObject
: TYPE = RECORD[
relship: Relship,
msgViewer: Viewer← NIL,
msg: Msg,
msgTOC: ROPE,
posOK: BOOL FALSE,
hasBeenRead: BOOL TRUE,
headersPos, msgLength: INT← 0,
prev, next: Viewer← NIL];

-- ***********************************************************
-- displaying Msgs

DisplayMsgFromMsgSet:
PROC[mfh: MsgSetFieldHandle, msViewer: Viewer, shift: BOOL← FALSE] RETURNS[v: Viewer];

ListCategories: PROC[msg: Msg];

-- ***********************************************************
-- maintaining MsgSet displayers

AddParsedMsgToMSViewer
: PROC[msgR: MsgRec, msViewer: Viewer, rel: Relship];

RemoveFromMsgSetDisplayer: PROC[msgSet: MsgSet, msg: Msg];

AddMsgToMsgSetDisplayer: PROC[msg: Msg, msAddedTo: MsgSet, rel: Relship];

END
.