<<>> <> <> <> <> <> <> 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]; <> 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]; <> 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]; <> DoUserNameAndRegistry: PROC; EntryInsertForm: PROC[senderInfo: SenderInfo, form: SendMailOps.Form]; EntryPlaceHolders: PROC[senderInfo: SenderInfo, fieldsList: LIST OF ROPE]; InternalDestroySplits: PROC[keepThisOne: Viewer]; END.