<<>> <> <> <> <<>> <> DIRECTORY Icons USING [IconFlavor], Menus USING [Menu, MenuProc], Rope USING [ROPE], ViewerClasses USING [Viewer], WalnutOps USING [MsgSet, ServerInfo], WalnutWindow USING [OutCome, WalnutHandle], WalnutWindowPrivate USING [MsgSetButton, WalnutIcons]; WalnutInternal: CEDAR DEFINITIONS = BEGIN Viewer: TYPE = ViewerClasses.Viewer; ROPE: TYPE = Rope.ROPE; WalnutHandle: TYPE = WalnutWindow.WalnutHandle; MsgSetButton: TYPE = WalnutWindowPrivate.MsgSetButton; WalnutIcons: TYPE = WalnutWindowPrivate.WalnutIcons; WaitCallOutcome: TYPE = WalnutWindow.OutCome; HowToPrint: TYPE = { press, ip2, ip3 }; MailState: TYPE = {noMail, retrieving, thereIsMail, waiting, noState, noServers, someMail}; previousUser: ROPE; mustQuitWalnut: ROPE; invocationDirectory: ROPE; searchRules: LIST OF REF ANY; blankMenu: Menus.Menu; workingMenu: Menus.Menu; tocDefaultLooks: ROPE; tocSelectedLooks: ROPE; tocUnreadLooks: ROPE; userWantsQMs: BOOL; plainTextStyle: ROPE; displayMsgSetInIcon: BOOL; msbDefaultLooks: ROPE; msbSelectedLooks: ROPE; msgSetBorders: BOOL; initialActiveIconic, initialActiveOpen, initialActiveRight: BOOL; msgIcon: Icons.IconFlavor; msgSetIcon: Icons.IconFlavor; labelledWalnutIcons: WalnutIcons; unLabelledWalnutIcons: WalnutIcons; alternateWalnutIcons: WalnutIcons; -- have label area for number <> <> <> <> <> <> <> <<>> <<* * * * * * * * * from WalnutWindowMenuImpl>> GetUserResponse: PROC[wH: WalnutHandle, m: Menus.Menu ¬ NIL, tryAutoConfirm: BOOL ¬ FALSE] RETURNS[BOOL]; ChangeMenu: PROC[wH: WalnutHandle, m: Menus.Menu, isBusy: BOOL]; BuildWalnutMenus: PROC[wH: WalnutHandle]; DoArchive: PROC[wH: WalnutHandle, fileName: ROPE, msList: LIST OF WalnutOps.MsgSet, append: BOOL] RETURNS[ok: BOOL]; <> <<>> DoRemoveOverThere: PROC[ wH: WalnutHandle, rootMsgSet: ROPE, msgSetList: LIST OF MsgSetButton]; <> <<>> DoAppendMsg: PROC[wH: WalnutHandle, curSel: ROPE, curV: Viewer, msgSetList: LIST OF MsgSetButton]; <> <> <<>> <<>> <<* * * * from WalnutNotifierImpl>> WalnutNotifier: PROC[wH: WalnutHandle]; RestartWalnut: PROC[wH: WalnutHandle, scavengeFirst, firstTime: BOOL] RETURNS[ok: BOOL]; QuitWalnut: PROC[ra: REF ANY ]; <> DoStartupCall: PROC[wH: WalnutHandle, proc: PROC[isRunning: BOOL]] RETURNS[outcome: WaitCallOutcome]; <> DoWaitCall: PROC[wH: WalnutHandle, proc: PROC[]] RETURNS[outcome: WaitCallOutcome]; <> <<>> FlushWQueue: PROC[wH: WalnutHandle]; FixUpWalnutViewers: PROC[wH: WalnutHandle]; <<******** from WalnutWindowInternalImpl>> CloseDownWalnut: PROC[wH: WalnutHandle]; CloseTS: PROC[wH: WalnutHandle]; OpenTS: PROC[wH: WalnutHandle, r: ROPE ¬ NIL, doRegister: BOOL ¬ TRUE]; TakeDownWalnutViewers: PROC[wH: WalnutHandle]; RetrieveNewMail: PROC[wH: WalnutHandle]; EnableNewMail: PROC[wH: WalnutHandle]; DisableNewMail: PROC[wH: WalnutHandle]; SetMailState: PROC[wH: WalnutHandle, mailState: MailState]; <<******** from WalnutMsgSetButtonsImpl>> <<>> DestroyAllMsgSetButtons: PROC[wH: WalnutHandle]; GetButton: PROC[wH: WalnutHandle, msgSet: ROPE] RETURNS[MsgSetButton]; <> ShowMsgSetButtons: PROC[wH: WalnutHandle]; <> <<"knows" where in the window the buttons belong>> GetSelectedMsgSets: PROC[wH: WalnutHandle] RETURNS[msL: LIST OF MsgSetButton]; <> DeleteMsgSetButton: PROC[wH: WalnutHandle, msgSet: ROPE]; AddMsgSetButton: PROC[wH: WalnutHandle, msgSet: ROPE, select: BOOL]; <> <<>> PrepareToEditMsgSetButtons: PROC[wH: WalnutHandle]; <> <<* * * * * * from WalnutMsgDisplayerImpl>> <<>> CreateMsgMenu: PROC[ wH: WalnutHandle]; <> <<>> DisplayMsgFromMsgSet: PROC[ wH: WalnutHandle, msg: ROPE, msViewer: Viewer, shift: BOOL ¬ FALSE]; <> QDisplayMsg: PROC[wH: WalnutHandle, msg: ROPE, oldV: Viewer ¬ NIL, shift: BOOL ¬ FALSE, openIfIconic: BOOL ¬ TRUE, paint: BOOL ¬ TRUE] RETURNS[v: Viewer]; MsgNamePrefix: PROC[wH: WalnutHandle] RETURNS[ROPE]; InternalAddToMsgMenu: PROC[wH: WalnutHandle, label: ROPE, proc: Menus.MenuProc, clientData: REF ANY, onQueue: BOOL]; InternalReplaceInMsgMenu: PROC[wH: WalnutHandle, label: ROPE, proc: Menus.MenuProc, clientData: REF ANY, onQueue: BOOL] RETURNS[oldFound: BOOL]; MsgCategories: PROC[wH: WalnutHandle, msg: ROPE]; <> MsgGvId: PROC[wH: WalnutHandle, msg: ROPE, all: BOOL]; <> <<>> <<>> <<* * * * * * from WalnutMsgSetDisplayerImpl>> <<>> CreateMsgSetMenus: PROC[ wH: WalnutHandle]; <> QDisplayMsgSet: PROC[ wH: WalnutHandle, msb: MsgSetButton, oldV: Viewer ¬ NIL, shift: BOOL ¬ FALSE, repaint: BOOL ¬ TRUE] RETURNS[v: Viewer]; MsgSetNamePrefix: PROC[wH: WalnutHandle] RETURNS[ROPE]; AddNewMsgsToActive: PROC[active: MsgSetButton] RETURNS[responses: LIST OF WalnutOps.ServerInfo, complete: BOOL, numNew: INT]; <> <<>> AddorAppendTo: PROC[wH: WalnutHandle, msg: ROPE, isAdd: BOOL, fromButton, toButton: MsgSetButton]; <> MoveTo: PROC[msg: ROPE, fromButton, toButton: MsgSetButton]; <> RemoveFrom: PROC[msg: ROPE, fromButton: MsgSetButton]; <> ComeFrom: PROC[msb: MsgSetButton]; <> <<>> PrintSelCmd: PROC[wH: WalnutHandle, msgSet: ROPE, server: ROPE ¬ NIL, howToPrint: HowToPrint ¬ press, copies: INT ¬ 1]; <> <<>> <<* * * * * from WalnutPrintImpl>> <<>> MsgSetPrintProc: PROC[wH: WalnutHandle, viewer: Viewer, howToPrint: HowToPrint]; <> MsgSetTOCPrintProc: PROC[wH: WalnutHandle, viewer: Viewer, howToPrint: HowToPrint]; <> MsgPrintProc: PROC[wH: WalnutHandle, viewer: Viewer, howToPrint: HowToPrint]; <> AbortPrintProc: Menus.MenuProc; PrintMsgSet: PROC[wH: WalnutHandle, msgSet: ROPE, howToPrint: HowToPrint ¬ press] RETURNS[allOK: BOOL]; <> <<>> PrintMsgSetTOC: PROC[wH: WalnutHandle, msgSet: ROPE, howToPrint: HowToPrint ¬ press] RETURNS[allOK: BOOL]; <> PrintMsgList: PROC[wH: WalnutHandle, mList: LIST OF ROPE, msViewer: Viewer, server: ROPE ¬ NIL, howToPrint: HowToPrint ¬ press, copies: INT ¬ 1] RETURNS[allOK: BOOL]; <> <<>> <> PrintMsgSetCmd: PROC[wH: WalnutHandle, msgSet: ROPE, server: ROPE ¬ NIL, howToPrint: HowToPrint ¬ press, copies: INT ¬ 1]; PrintMsgSetTOCCmd: PROC[wH: WalnutHandle, msgSet: ROPE, server: ROPE ¬ NIL, howToPrint: HowToPrint ¬ press, copies: INT ¬ 1]; <<>> PrintMsgCmd: PROC[wH: WalnutHandle, msg: ROPE, server: ROPE ¬ NIL, howToPrint: HowToPrint ¬ press, copies: INT ¬ 1]; <> <<>> <> WriteMsgSets: PROC[wH: WalnutHandle, msgSetList: LIST OF MsgSetButton, tocsOnly: BOOL, fileName: ROPE]; END.