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. VXlImplSpecialMonitor.mesa Copyright Σ 1988, 1989, 1990, 1991, 1992 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, May 10, 1988 Christian Jacobi, April 21, 1992 2:58 pm PDT Property procedures need separate monitor: The same property procedures work both inside and outside a connections regular monitor... Κο–(cedarcode) style•NewlineDelimiter ˜codešœ™Kšœ ΟeœI™TKšœ)™)K™,K™—šΟk œ˜ K˜0K˜—šΟnœžœžœΟc4˜YKšžœ˜ Kšžœ˜—šœžœ˜K˜—šœ*™*KšœZ™ZK˜—K˜šŸ œžœžœžœžœžœžœžœ˜VJšœžœžœ˜&Jšžœžœ˜CK˜—K˜šŸ œžœžœžœžœžœžœ˜LJšœžœžœ˜&Kšžœžœ˜>Kšœ˜—K˜š Ÿœžœžœžœžœ˜IJ˜-K˜—K˜š Ÿœžœžœžœžœžœ˜MKšžœ(˜.Kšœ˜—K˜š Ÿœžœžœžœ žœžœ˜wšŸœ!˜)Kšœ žœ ˜K˜—K˜@K˜K˜—š Ÿ œžœžœžœžœžœ˜LJ˜2K˜K˜—š Ÿ œžœžœžœžœžœ˜OKšžœ-˜3K˜K™—š Ÿœžœžœžœžœžœ˜RJ˜.K˜K˜—š Ÿœžœžœžœžœžœ˜UKšžœ)˜/K˜K™—š Ÿœžœžœžœžœžœ˜PJ˜.K˜K˜—š Ÿœžœžœžœžœžœ˜SKšžœ)˜/K˜—K˜Kšžœ˜K˜—…—’ Χ