SendMailInternal.mesa - internal interface for the implementation modules
Copyright Ó 1984, 1985, 1988, 1989, 1990, 1992 by Xerox Corporation. All rights reserved.
Willie-Sue on August 4, 1989 1:34:05 pm PDT
Donahue, September 2, 1983 9:35 am
Russ Atkinson (RRA) March 21, 1985 0:12:03 am PST
Willie-s, October 7, 1991 2:26 pm PDT
DIRECTORY
BasicTime USING [nullGMT, GMT],
MailBasics USING [RName, RNameList],
MailSend USING [MailSendHandle],
MailSendSidedoor USING [AbortSendProc],
Menus USING [Menu],
Rope USING [ROPE],
ViewerClasses USING [Viewer],
ViewerEvents USING [EventRegistration],
ViewerTools USING [TiogaContents],
SendMailParseMsg USING [SendParseStatus],
SendMailOps USING [Form, OutBoxMsg];
SendMailInternal: CEDAR DEFINITIONS = BEGIN
ROPE: TYPE = Rope.ROPE;
TiogaContents: TYPE = ViewerTools.TiogaContents;
Viewer: TYPE = ViewerClasses.Viewer;
SendingRec: TYPE = REF SendMsgRecObject;
SendMsgRecObject:
TYPE =
RECORD[
fullText: ROPE, -- text to be sent
from: MailBasics.RName, -- The From: field
to: MailBasics.RNameList,
cc: MailBasics.RNameList,
subject: ROPE, -- The Subject: field
voiceID: ROPE, -- the ID for a voice message
replyTo: BOOL ¬ FALSE, -- is this field present
numRecipients: INT ¬ 0,
numPublicDLs: INT ¬ 0,
numPrivateDLs: INT ¬ 0,
endHeadersPos: INT ¬ 0 -- for adding Reply-To: field
];
SenderInfo: TYPE = REF SenderInfoObject;
SenderInfoObject:
TYPE =
RECORD [
senderV: Viewer,
sendingTransports: LIST OF ATOM, -- $gv, $xns, etc
thisMenu: Menus.Menu, -- different ones avilable
replyToResponse: HowToReplyTo ¬ self,
numCharsToDelete: INT ¬ 0,
currentOutBox: SendMailOps.OutBoxMsg ¬ NIL,
closeEvent, destroyEvent, editEvent: ViewerEvents.EventRegistration ¬ NIL,
openEvent, focusEvent: ViewerEvents.EventRegistration ¬ NIL,
dontClose: BOOL ¬ FALSE,
successfullySent, userResponded, confirmed: BOOL ¬ FALSE,
aborted: BOOL ¬ FALSE,
timeToWait: CONDITION,
startSendTime: BasicTime.GMT ¬ BasicTime.nullGMT,
validateFlag: BOOL ¬ TRUE,
sendHandle: MailSend.MailSendHandle ¬ NIL
maxWithNoReplyTo: INT = 20;
HowToReplyTo: TYPE = {self, all, cancel};
SendParseStatus:
TYPE = SendMailParseMsg.SendParseStatus;
sendCaption: ROPE;
needToAuthenticate: BOOL;
replyToSelf: BOOL;
alwaysNewSender: BOOL;
sendMenu, formsMenu, sendingMenu, blankMenu, confirmMenu, replyToMenu: Menus.Menu;
standardDefaultText: ViewerTools.TiogaContents;
standardAnswerText: ViewerTools.TiogaContents;
standardForwardText: ViewerTools.TiogaContents;
defaultForm: SendMailOps.Form;
localRNameList: LIST OF ROPE;
***********************************************************
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)
ShowErrorFeedback: PROC[v: Viewer, start, end: INT];
DeleteChars: PROC[v: Viewer, num: INT];
CheckForAbortSend: PROC[senderInfo: SenderInfo] RETURNS[BOOL];
SenderAbortProc: MailSendSidedoor.AbortSendProc;
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];
procs moved to SendMailOpsImpl, needed in SendMailControlImpl
GetSendForm: PROC[fileName: ROPE] RETURNS[text: TiogaContents];
InternalDisplayTioga: PROC[senderInfo: SenderInfo, tc: TiogaContents, grab: BOOL];
InsertForm: PROC[ sender: SenderInfo, form: SendMailOps.Form, force: BOOL ];
DoPlaceHolders:
PROC[senderV: Viewer, fieldsList:
LIST
OF
ROPE];
ParseText:
PROC[msg: SendingRec, transport:
ATOM]
RETURNS[status: SendParseStatus, sPos, mPos:
INT];
exported from SendMailControlImpl for use by SendMailOpsImpl
DoUserNameAndRegistry:
PROC;
EntryInsertForm: PROC[senderInfo: SenderInfo, form: SendMailOps.Form];
EntryPlaceHolders: PROC[senderInfo: SenderInfo, fieldsList: LIST OF ROPE];
InternalDestroySplits: PROC[keepThisOne: Viewer];
END.