<> <> <> <> <<>> DIRECTORY PropList, UnsafePropList, Xl, XlEventProperties; XlImplSpecialMonitor: CEDAR MONITOR --used to be a different monitor; now isn't any more IMPORTS PropList, UnsafePropList EXPORTS Xl, XlEventProperties ~ BEGIN <> <> PutEventProp: PUBLIC PROC [ev: Xl.Event, key: REF, val: REF] RETURNS [REF] = TRUSTED { event: REF Xl.EventRep ~ LOOPHOLE[ev]; RETURN [ UnsafePropList.PutProp[LOOPHOLE[@event.props], key, val] ] }; GetEventProp: PUBLIC PROC [ev: Xl.Event, key: REF] RETURNS [REF] = TRUSTED { event: REF Xl.EventRep ~ LOOPHOLE[ev]; RETURN [ UnsafePropList.GetProp[LOOPHOLE[@event.props], key] ] }; PutConnectionProp: PUBLIC PROC [c: Xl.Connection, key: REF, val: REF] = { [] ¬ PropList.PutProp[c.properties, key, val] }; GetConnectionProp: PUBLIC PROC [c: Xl.Connection, key: REF] RETURNS [REF] = { RETURN [ PropList.GetProp[c.properties, key] ] }; GetConnectionPropAndInit: PUBLIC PROC [c: Xl.Connection, key: REF, init: Xl.InitializeProcType ] RETURNS [val: REF] = { WrapInit: PropList.InitializeProcType = { val ¬ init[NARROW[data], key] }; val ¬ PropList.GetPropOrInit[c.properties, key, WrapInit, c].val }; PutScreenProp: PUBLIC PROC [screen: Xl.Screen, key: REF, val: REF ¬ NIL] = { [] ¬ PropList.PutProp[screen.properties, key, val] }; GetScreenProp: PUBLIC PROC [screen: Xl.Screen, key: REF] RETURNS [val: REF] = { RETURN [ PropList.GetProp[screen.properties, key] ] }; <<>> PutScreenDepthProp: PUBLIC PROC [sd: Xl.ScreenDepth, key: REF, val: REF ¬ NIL] = { [] ¬ PropList.PutProp[sd.properties, key, val] }; GetScreenDepthProp: PUBLIC PROC [sd: Xl.ScreenDepth, key: REF] RETURNS [val: REF] = { RETURN [ PropList.GetProp[sd.properties, key] ] }; <<>> PutVisualTypeProp: PUBLIC PROC [vt: Xl.VisualType, key: REF, val: REF ¬ NIL] = { [] ¬ PropList.PutProp[vt.properties, key, val] }; GetVisualTypeProp: PUBLIC PROC [vt: Xl.VisualType, key: REF] RETURNS [val: REF] = { RETURN [ PropList.GetProp[vt.properties, key] ] }; END.