File: WalnutSendInternal.mesa
Copyright (C) 1984, Xerox Corporation. All rights reserved.
internal interface for the implementation modules
Created by: Haugeland, August 5, 1983
Last Edited by: Willie-Sue on July 31, 1984 10:15:05 am PDT
Last Edited by: Donahue, September 2, 1983 9:35 am
DIRECTORY
GVBasics USING [RName],
GVSend USING [Handle],
Menus USING [Menu, MenuProc],
Rope USING [ROPE],
ViewerClasses USING [Viewer],
ViewerEvents USING [EventRegistration],
ViewerTools USING [TiogaContents];
WalnutSendInternal: CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
Viewer: TYPE = ViewerClasses.Viewer;
RName: TYPE = GVBasics.RName;
TiogaContents: TYPE = ViewerTools.TiogaContents;
SendMsgRecObject:
TYPE =
RECORD[
fullText: ROPE, -- text to be sent
from: ROPE, -- The From: field
to: LIST OF GVBasics.RName,
cc: LIST OF ROPE,
subject: ROPE, -- The Subject: field
voiceID: ROPE, -- the ID for a voice message
replyTo: BOOL← FALSE, -- is this field present
numRecipients: INT← 0,
numDLs: INT← 0,
endHeadersPos: INT← 0 -- for adding Reply-To: field
];
SendingRec: TYPE = REF SendMsgRecObject;
SenderInfo: TYPE = REF SenderInfoObject;
SenderInfoObject:
TYPE =
RECORD
[senderV: Viewer,
replyToResponse: HowToReplyTo← self,
prevMsg: TiogaContents← NIL,
numCharsToDelete: INT← 0,
closeEvent, destroyEvent, editEvent: ViewerEvents.EventRegistration← NIL,
openEvent, focusEvent: ViewerEvents.EventRegistration← NIL,
dontClose: BOOL← FALSE,
successfullySent, userResponded, confirmed: BOOL← FALSE,
aborted: BOOL← FALSE,
validateFlag: BOOL← TRUE,
sendHandle: GVSend.Handle← NIL];
maxWithNoReplyTo: INT = 20;
HowToReplyTo: TYPE = {self, all, cancel};
SendParseStatus:
PUBLIC
TYPE =
{ok, includesPublicDL, includesPrivateDL, fieldNotAllowed, syntaxError};
sendCaption: ROPE;
needToAuthenticate: BOOL;
replyToSelf: BOOL;
sendMenu, formsMenu, sendingMenu, blankMenu, confirmMenu, replyToMenu: Menus.Menu;
***********************************************************
InsertIntoViewer:
PROC
[v: Viewer, what: ROPE, where: INT, labelFont: ROPE ← NIL, changeSelection: BOOL ← FALSE];
the rope supplied is inserted into the contents of the specified viewer at the given location.
If a label font is specified, then any characters appearing before a ":" in the string are
given the specified font (this is used to put message header labels in appropriate fonts)
MessageSendProc: Menus.MenuProc;
ShowErrorFeedback: PROC[v: Viewer, start, end: INT];
DeleteChars: PROC[v: Viewer, num: INT];
SenderReport: PROC[msg: ROPE, blink: BOOL← FALSE];
CheckForAbortSend: PROC[senderInfo: SenderInfo] RETURNS[BOOL];
Confirmation: PROC[senderInfo: SenderInfo] RETURNS [BOOL];
ReplyToResponse: PROC[senderInfo: SenderInfo] RETURNS [HowToReplyTo];
GrabFocus: PROC[senderV: Viewer];
ClearFileAssoc: PROC[v: Viewer];
SenderNewVersion: PROC[viewer: Viewer];
UnsetNewVersion: PROC[viewer: Viewer];
LockViewerOpen: PROC[viewer: Viewer];
ReleaseOpenViewer: PROC[viewer: Viewer];
END.