<> <> <> <> <> DIRECTORY GVBasics USING [RName], GVSend USING [Handle], Menus USING [Menu], Rope USING [ROPE], ViewerClasses USING [Viewer], ViewerEvents USING [EventRegistration], ViewerTools USING [TiogaContents], WalnutSendOps USING [Form]; WalnutSendInternal: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; TiogaContents: TYPE = ViewerTools.TiogaContents; Viewer: TYPE = ViewerClasses.Viewer; 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, pdlNotFound, pdlSyntaxError, 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]; <> ShowErrorFeedback: PROC[v: Viewer, start, end: INT]; DeleteChars: PROC[v: Viewer, num: INT]; 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]; <> GetSendForm: PROC[fileName: ROPE] RETURNS[text: TiogaContents]; InternalDisplayTioga: PROC[senderInfo: SenderInfo, tc: TiogaContents, grab: BOOL]; InsertForm: PROC[ sender: SenderInfo, form: WalnutSendOps.Form, force: BOOL ]; DoPlaceHolders: PROC[senderV: Viewer, fieldsList: LIST OF ROPE]; <> EntryInsertForm: PROC[senderInfo: SenderInfo, form: WalnutSendOps.Form]; EntryPlaceHolders: PROC[senderInfo: SenderInfo, fieldsList: LIST OF ROPE]; InternalDestroySplits: PROC[keepThisOne: Viewer]; END.