DIRECTORY Interminal USING [KeyName, MousePosition, updown], Intime USING [EventTime, MsTicks]; TIPTables: CEDAR DEFINITIONS SHARES Intime = BEGIN TIPScreenCoords: TYPE = REF TIPScreenCoordsRec; TIPScreenCoordsRec: TYPE = Interminal.MousePosition; TIPTime: TYPE = REF Intime.EventTime; TIPTable: TYPE = REF TIPTableRec; TIPTableRec: TYPE = RECORD [ mouseTicks: Intime.MsTicks _ 50, opaque : BOOLEAN _ TRUE, link : TIPTable _ NIL, ignore : IgnoreBits _ IgnoreEverything, variants: SELECT flavor: * FROM small => [all: TIPChoiceSeries], fast => [mouse : TIPChoice, keyDown, keyUp : ARRAY Interminal.KeyName OF TIPChoice, time : TIPChoice], ENDCASE ]; IgnoreBits: TYPE = MACHINE DEPENDENT RECORD [ up, down, move: BOOLEAN, unused: [0..8192) ]; IgnoreEverything: IgnoreBits = [TRUE, TRUE, TRUE, 0]; TIPChoiceSeries: TYPE = LIST OF TIPChoice; TIPChoice: TYPE = LIST OF TIPTerm _ NIL; TIPTerm: TYPE = RECORD [ variants: SELECT flavor: * FROM keyTrigger => [keyState: TIPKeyState], mouseTrigger => NULL, timeTrigger => [flavor: TimeoutFlavor, mSecs: Intime.MsTicks], keyEnable => [keyState: TIPKeyState], key2Enable => [keyState1, keyState2: TIPKeyState], -- true if either keyEnableList => [lst: LIST OF TIPKeyState], -- true if any predEnable => [predicate: ATOM], char => [ch: REF CHARACTER], coords => [xy: TIPScreenCoords], time => [time: TIPTime], nested => [statement : TIPChoiceSeries], result => [list: TIPResults], ENDCASE ]; TIPResults: TYPE = LIST OF REF ANY _ NIL; TimeoutFlavor: TYPE = {gt, lt}; TIPKeyState: TYPE = RECORD [ key : Interminal.KeyName, state: Interminal.updown _ down ]; END. vTIPTables.mesa; Last Edited by McGregor, August 23, 1982 2:13 pm Last Edited by: Maxwell, December 17, 1982 9:52 am TIPScreenCoords are used to pass the hardware cursor information. [0,0] is lower left. actually LIST OF ATOM, REF INT, REF TEXT, or stdChar, or stdCoords, or stdTime; TIPActionFlavor: TYPE = {key, mouse, time}; TIPEnablesFlavor: TYPE = {key, pred}; Κ†– "Mesa" style˜J˜JšΟc@™@Jšœ2™2J™šΟk ˜ Jšœ žœ"˜2Jšœžœ˜"J˜—Jšœ ž˜Jšžœ ž˜J˜J˜JšW™WJšœžœžœ˜/Jšœžœ˜4J˜Jšœ žœžœ˜%J˜Jšœ žœžœ ˜!šœ žœžœ˜J˜ Jšœ žœžœ˜Jšœžœ˜J˜(šœ žœ ž˜J˜ ˜J˜Jšœ žœžœ ˜/J˜—Jšž˜—J˜J˜J˜—š œ žœžœž œžœ˜-Jšœžœ˜J˜J˜—Jšœ žœžœžœ˜5J˜Jšœžœžœžœ ˜*Jš œ žœžœžœ žœ˜(J˜šœ žœžœ˜šœ žœ ž˜J˜'Jšœžœ˜J˜?J˜&Jšœ4˜EJšœžœžœ˜;Jšœžœ˜!Jšœžœž œ˜J˜'J˜J˜.J˜#Jšž˜—J˜J˜—Jš œ žœžœžœžœžœžœ˜)JšO™OJ˜Jšœžœ ˜Jš+™+Jš%™%J˜šœ žœžœ˜J˜J˜J˜J˜—Jšžœ˜J˜J˜J˜—…—~ z