-- file: LaurelMenuDefs.mesa -- Edited by Brotz, March 5, 1981 10:11 AM DIRECTORY inD: FROM "InteractorDefs", lsD: FROM "LaurelStateDefs"; lmD: DEFINITIONS = BEGIN OPEN inD; -- Types -- HouseNumber: TYPE = CARDINAL; EditorMenuState: TYPE = {singleLine, getPut, run, find, substitute, copy}; -- Constants -- printerCommandNumber: HouseNumber = 0; printerBracketsNumber: HouseNumber = 1; overrideFormCommandNumber: HouseNumber = 2; overrideFormBracketsNumber: HouseNumber = 3; hardcopyConfirmCommandNumber: HouseNumber = 4; copiesCommandNumber: HouseNumber = 5; copiesBracketsNumber: HouseNumber = 6; duplexCommandNumber: HouseNumber = 7; duplexBracketsNumber: HouseNumber = 8; passwordPrintingCommandNumber: HouseNumber = 9; passwordPrintingBracketsNumber: HouseNumber = 10; hardcopyCancelCommandNumber: HouseNumber = 11; newFormCommandNumber: HouseNumber = 0; answerCommandNumber: HouseNumber = 1; forwardCommandNumber: HouseNumber = 2; getCommandNumber: HouseNumber = 3; putCommandNumber: HouseNumber = 4; runCommandNumber: HouseNumber = 5; deliverCommandNumber: HouseNumber = 6; findCommandNumber: HouseNumber = 7; findBracketsNumber: HouseNumber = 8; substituteCommandNumber: HouseNumber = 7; substituteNewBracketsNumber: HouseNumber = 8; substituteForTextNumber: HouseNumber = 9; substituteOldBracketsNumber: HouseNumber = 10; copySourceTextNumber: HouseNumber = 7; copySourceBracketsNumber: HouseNumber = 8; copyTargetTextNumber: HouseNumber = 9; copyTargetBracketsNumber: HouseNumber = 10; filenameTextNumber: HouseNumber = 7; getPutBracketsNumber: HouseNumber = 8; programTextNumber: HouseNumber = 7; runBracketsNumber: HouseNumber = 8; -- Menu Segments are Laurel Segments that contain relocatable House data structures along -- with their text strings. The Houses are laid out in the segment with the first House -- occupying the first words of the segment, immediately followed by its text. This is -- immediately followed by the next House and its text, etc. The nextHouse field of each -- House other than the last House contains a 1. The nextHouse field of the last House -- contains a 0. -- Procedures -- SwapInMenu: PROCEDURE [menuSegment: lsD.StateSegment] RETURNS [hp: HousePtr]; -- Swaps in the menu contained in menuSegment and locks it in memory. Sets all nextHouse -- pointers in the house list swapped in to be true pointers to the next House in the list. -- Returns a pointer to the head of the list. ReleaseMenu: PROCEDURE [menuSegment: lsD.StateSegment]; -- Resets all pointers in the menuSegment to their canonical swapped out form: all nextHouse -- fields are set to 1 except for the last which is set to 0. Releases the menuSegment. MapHouseNumberToHousePtr: PROCEDURE [knownHp: HousePtr, knownHpNumber, number: HouseNumber] RETURNS [hp: HousePtr]; -- Returns a pointer to the number'th house (first cnp.houses is number 0) in the house list -- pointed to by knownHp. KnownHp's HouseNumber is knownHpNumber. This procedure -- should be used to set HousePtr's for houses that are relocated in segments. ChangeEditorMenu: PROCEDURE [newState: EditorMenuState]; -- Change the Editor menu to reflect the newState. Raises the resumable SIGNAL -- MenuChange if the menu is actually changing. MenuChange: SIGNAL; -- Raised by ChangeCommandMenu to notify any HousePtr holders that they may be -- invalid. END. -- of LaurelMenuDefs --z20461l3008(529)\f1