<> <> <> <> DIRECTORY CD USING [DrawRef, Object]; CDEnvironment: CEDAR DEFINITIONS = BEGIN <<-- Accessing the nesting environment of objects while drawing.>> GetProp: PROC [environment: CD.DrawRef, prop: REF, skipInnerMost: NAT_0] RETURNS [REF]; <<-- Access propertylists of nesting instances while a draw process...>> <<-- Finds nested-most occurance of property prop.>> <<-- skipInnerMost: the "skipInnerMost" most nested occurences of the property are ignored.>> <<-- Returns NIL if prop is not found.>> <<-- Does not return properties from the environment of an object which does not propagate.>> GetIntProp: PROC[environment: CD.DrawRef, prop: REF, skipInnerMost: NAT_0, ifNotFound: INT_0] RETURNS [INT]; <<-- it is good practice to use an impossible value for "ifNotFound"; defaulting is >> <<-- dangerous because it could hide bugs.>> Propagates: PROC [ob: CD.Object] RETURNS [BOOL]; <<-- propagates TRUE means GetProp (et al) will access properties of outer levels.>> <<-- propagates FALSE means GetProp (et al) will not access properties of outer levels.>> AllowPropagation: PROC [ob: CD.Object, propagates: BOOL]; <<-- default if not called at all is FALSE>> <<-- Only allowed to objects with "inDirectory" TRUE>> <<>> SomeChildPropagates: PROC [ob: CD.Object] RETURNS [BOOL]; <<>> END.