(FILECREATED "14-Mar-85 14:11:57" {PHYLUM}<TRILLIUM>BIRTHDAY84>ENHANCEMENTS>RECORDS-NHB>TRI-RECORD-DEFINITIONS.;7 6535 changes to: (RECORDS INTERFACE) previous date: "12-Mar-85 17:21:47" {PHYLUM}<TRILLIUM>BIRTHDAY84>ENHANCEMENTS>RECORDS-NHB>TRI-RECORD-DEFINITIONS.;6) (* Copyright (c) 1985 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT TRI-RECORD-DEFINITIONSCOMS) (RPAQQ TRI-RECORD-DEFINITIONSCOMS ((RECORDS FRAME INTERFACE) (FNS WHENCREATED.INTERFACE fetch.frame.field fetch.interface.field replace.frame.field replace.interface.field) (MACROS fetch.frame.fieldq fetch.interface.fieldq replace.frame.fieldq replace.interface.fieldq))) [DECLARE: EVAL@COMPILE (DATATYPE FRAME (NAME ITEMS SUPERFRAMES SUPERFRAMES.CACHE CLASSES INITIALIZATIONS ARTWORKS SENSORS INHIBITORS DISPLAYERS IMPLICATIONS SERVICES ANALYZED? PRIMITIVES.CACHED? SUPERFRAMES.CACHED? OTHER)) (DATATYPE INTERFACE (NAME FRAMES FIRST.FRAME REGION BACKGROUND.COLOR COLOR.MAP OTHER)) ] (/DECLAREDATATYPE (QUOTE FRAME) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER))) (/DECLAREDATATYPE (QUOTE INTERFACE) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER))) (DEFINEQ (WHENCREATED.INTERFACE [LAMBDA (INTERFACE) (* N.H.Briggs "31-Jan-85 18:45") (* * when an interface is instantiated this function will be applied to the new instance, allowing us to remember the definition as a property on the atom that is the name of the interface (unless the name is unspecified, in which case we do nothing)) (PROG ((INTERFACE.NAME (fetch (INTERFACE NAME) of INTERFACE))) (COND (INTERFACE.NAME (PUTPROP INTERFACE.NAME (QUOTE InternalInterfaceRepresentation) INTERFACE))) (RETURN INTERFACE]) (fetch.frame.field [LAMBDA ($frame$ $field$) (* N.H.Briggs "12-Mar-85 16:31") (COND ((FMEMB $field$ (RECORDFIELDNAMES (QUOTE FRAME))) (RECORDACCESS $field$ $frame$ (RECLOOK (QUOTE FRAME)) (QUOTE FFETCH))) (T (LISTGET (ffetch (FRAME OTHER) of $frame$) $field$]) (fetch.interface.field [LAMBDA ($interface$ $field$) (* N.H.Briggs "12-Mar-85 16:27") (COND ((FMEMB $field$ (RECORDFIELDNAMES (QUOTE INTERFACE))) (RECORDACCESS $field$ $interface$ (RECLOOK (QUOTE INTERFACE)) (QUOTE FFETCH))) (T (LISTGET (ffetch (INTERFACE OTHER) of $interface$) $field$]) (replace.frame.field [LAMBDA ($frame$ $field$ $value$) (* N.H.Briggs "12-Mar-85 16:19") (if (FMEMB $field$ (RECORDFIELDNAMES (QUOTE FRAME))) then (RECORDACCESS $field$ $frame$ (RECLOOK (QUOTE FRAME)) (QUOTE FREPLACE) $value$) else (PROG ((OTHERS (ffetch (FRAME OTHER) of $frame$))) (if OTHERS then (LISTPUT OTHERS $field$ $value$) else (freplace (FRAME OTHER) of $frame$ with (LIST $field$ $value$]) (replace.interface.field [LAMBDA ($interface$ $field$ $value$) (* N.H.Briggs "12-Mar-85 16:15") (if (FMEMB $field$ (RECORDFIELDNAMES (QUOTE INTERFACE))) then (RECORDACCESS $field$ $interface$ (RECLOOK (QUOTE INTERFACE)) (QUOTE FREPLACE) $value$) else (PROG ((OTHERS (ffetch (INTERFACE OTHER) of $interface$))) (if OTHERS then (LISTPUT OTHERS $field$ $value$) else (freplace (INTERFACE OTHER) of $interface$ with (LIST $field$ $value$]) ) (DECLARE: EVAL@COMPILE (PUTPROPS fetch.frame.fieldq MACRO [frame&field (PROG (($frame$ (CAR frame&field)) ($field$ (CADR frame&field))) (RETURN (COND ((FMEMB $field$ (RECORDFIELDNAMES (QUOTE FRAME))) (BQUOTE (ffetch (FRAME , $field$) of , $frame$))) (T (BQUOTE (LISTGET (ffetch (FRAME OTHER) of , $frame$) (QUOTE , $field$]) (PUTPROPS fetch.interface.fieldq MACRO [interface&field (PROG (($interface$ (CAR interface&field)) ($field$ (CADR interface&field))) (RETURN (COND ((FMEMB $field$ (RECORDFIELDNAMES (QUOTE INTERFACE))) (BQUOTE (ffetch (INTERFACE , $field$) of , $interface$))) (T (BQUOTE (LISTGET (ffetch (INTERFACE OTHER) of , $interface$) (QUOTE , $field$]) (PUTPROPS replace.frame.fieldq MACRO [frame&field&value (PROG (($frame$ (CAR frame&field&value)) ($field$ (CADR frame&field&value)) ($value$ (CADDR frame&field&value))) (RETURN (COND ((FMEMB $field$ (RECORDFIELDNAMES (QUOTE FRAME))) (BQUOTE (freplace (FRAME , $field$) of , $frame$ with , $value$))) (T (BQUOTE (PROG ((OTHERS (ffetch (FRAME OTHER) of , $frame$))) (if OTHERS then (LISTPUT OTHERS (QUOTE , $field$) , $value$) else (freplace (FRAME OTHER) of , $frame$ with (LIST (QUOTE , $field$) , $value$]) (PUTPROPS replace.interface.fieldq MACRO [interface&field&value (PROG (($interface$ (CAR interface&field&value)) ($field$ (CADR interface&field&value)) ($value$ (CADDR interface&field&value))) (RETURN (COND ((FMEMB $field$ (RECORDFIELDNAMES (QUOTE INTERFACE))) (BQUOTE (freplace (INTERFACE , $field$) of , $interface$ with , $value$))) (T (BQUOTE (PROG ((OTHERS (ffetch (INTERFACE OTHER) of , $interface$))) (if OTHERS then (LISTPUT OTHERS (QUOTE , $field$) , $value$) else (freplace (INTERFACE OTHER) of , $interface$ with (LIST (QUOTE , $field$) , $value$]) ) (PUTPROPS TRI-RECORD-DEFINITIONS COPYRIGHT ("Xerox Corporation" 1985)) (DECLARE: DONTCOPY (FILEMAP (NIL (1343 3953 (WHENCREATED.INTERFACE 1353 . 2009) (fetch.frame.field 2011 . 2387) ( fetch.interface.field 2389 . 2789) (replace.frame.field 2791 . 3354) (replace.interface.field 3356 . 3951))))) STOP