(FILECREATED "18-Mar-85 15:08:19" 
{PHYLUM}<TRILLIUM>BIRTHDAY84>ENHANCEMENTS>RECORDS-NHB>TRI-RECORD-EDITFRAME.;7 20489  

      changes to:  (FNS RESET.FRAME)

      previous date: " 6-Mar-85 13:53:12" 
{PHYLUM}<TRILLIUM>BIRTHDAY84>ENHANCEMENTS>RECORDS-NHB>TRI-RECORD-EDITFRAME.;6)


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT TRI-RECORD-EDITFRAMECOMS)

(RPAQQ TRI-RECORD-EDITFRAMECOMS ((FNS INTERACT&ADD.FRAME.CLASS INTERACT&RETRIEVE.FRAME 
				      INTERACT&COPY.FRAME COPY.FRAME CREATE.NEW.FRAME ADD.NEW.FRAME 
				      PRINT.FRAME.CLASSES SORT.FRAMES FORGET.FRAME.CLASS FREEZE.FRAME 
				      RESET.FRAME MANIPULATE.FRAMES MOVE.TO.FRAME DELETE.FRAME 
				      GRAPH.FRAME.SUPERFRAMES GRAPH.FRAMES 
				      GRAPH.FRAMES.MENTION.AS.SUPERFRAME RENAME.FRAME 
				      RESET.PRIMITIVE.LISTS SET.CURRENT.BITMAP.FRAMES THAW.FRAME)))
(DEFINEQ

(INTERACT&ADD.FRAME.CLASS
  [LAMBDA (FRAME)                                            (* N.H.Briggs " 1-Mar-85 14:20")
    (DECLARE (GLOBALVARS CURRENT.INTERFACE))
    (PROG (FRAME.NAME CLASSES CLASS SUPER.FRAME)
          (SETQ FRAME.NAME (fetch.frame.fieldq FRAME NAME))
          (SETQ CLASSES (fetch.frame.fieldq FRAME CLASSES))
          (SETQ CLASS (ACQUIRE.CLASS.NAME CURRENT.INTERFACE))
          (COND
	    ((NULL CLASS)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "ADD.FRAME.CLASS command aborted"))
	    (T (ADD.FRAME.CLASS FRAME CLASS)
	       (MARK.INTERFACE CURRENT.INTERFACE)
	       (RETURN T])

(INTERACT&RETRIEVE.FRAME
  [LAMBDA (INTERFACE)                                        (* HaKo "25-Jul-84 16:32")
    (DECLARE (GLOBALVARS TRILLIUM.SAVED.FRAME))
    (TRILLIUM.PRINTOUT ON PROMPTWINDOW "Retrieving a copy of the saved frame; name for the copy: ")
    (PROG ((NEW.NAME (PROMPT.READ))
	   NEW.FRAME)
          (COND
	    ((NULL NEW.NAME)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "Retrieve command aborted"))
	    ((NOT (ATOM NEW.NAME))
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "Name must be one word"))
	    ((FIND.FRAME INTERFACE NEW.NAME)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "The name " NEW.NAME " is already in use"))
	    (T (SETQ NEW.FRAME (COPY.FRAME TRILLIUM.SAVED.FRAME))
	       (replace.frame.fieldq NEW.FRAME NAME NEW.NAME)
	       (ADD.NEW.FRAME INTERFACE NEW.FRAME)
	       (MARK.INTERFACE INTERFACE)
	       (RETURN NEW.NAME])

(INTERACT&COPY.FRAME
  [LAMBDA (INTERFACE FRAME)                                  (* HaKo "16-Aug-84 14:47")
    (PROG (NEW.NAME NEW.FRAME)
          (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE "Copying frame " (fetch.frame.fieldq FRAME NAME))
          (TRILLIUM.PRINTOUT ON PROMPTWINDOW "Name of copy: ")
          (SETQ NEW.NAME (PROMPT.READ))
          (COND
	    ((NULL NEW.NAME)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "Copy command aborted"))
	    ((NOT (ATOM NEW.NAME))
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "Name must be one word"))
	    ((FIND.FRAME INTERFACE NEW.NAME)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "The name " NEW.NAME " is already in use"))
	    (T (SETQ NEW.FRAME (COPY.FRAME FRAME))
	       (SET.FIELDQ NEW.FRAME NAME NEW.NAME)
	       (ADD.NEW.FRAME INTERFACE NEW.FRAME)
	       (MARK.INTERFACE INTERFACE)
	       (RETURN NEW.NAME])

(COPY.FRAME
  [LAMBDA (FRAME)                                            (* N.H.Briggs " 5-Mar-85 10:30")
                                                             (* copies the classes now.)
    (PROG (NAME SUPERFRAMES ITEMS CLASSES)
          (SETQ NAME (fetch.frame.fieldq FRAME NAME))
          (SETQ SUPERFRAMES (COPY (fetch.frame.fieldq FRAME SUPERFRAMES)))
          (SETQ CLASSES (COPY (fetch.frame.fieldq FRAME CLASSES)))
          (SETQ ITEMS (for ITEM in (fetch.frame.fieldq FRAME ITEMS) collect (COPY.ITEM ITEM)))
          (RETURN (create.frame (NAME NAME)
				(SUPERFRAMES SUPERFRAMES)
				(CLASSES CLASSES)
				(ITEMS ITEMS])

(CREATE.NEW.FRAME
  [LAMBDA (INTERFACE)                                        (* N.H.Briggs " 5-Mar-85 10:31")
    (TRILLIUM.PRINTOUT ON PROMPTWINDOW "Creating new frame; Name of new frame: ")
    (PROG ((NEW.NAME (PROMPT.READ)))
          (COND
	    ((NOT (ATOM NEW.NAME))
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "Name must be one word"))
	    ((FIND.FRAME INTERFACE NEW.NAME)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "The name " NEW.NAME " is already in use"))
	    (T (ADD.NEW.FRAME INTERFACE (create.frame (NAME NEW.NAME)))
	       (MARK.INTERFACE INTERFACE)
	       (RETURN NEW.NAME])

(ADD.NEW.FRAME
  [LAMBDA (INTERFACE NEW.FRAME)                              (* N.H.Briggs "20-Feb-85 15:36")
    (DECLARE (GLOBALVARS CURRENT.FRAME.NAMES))
    (PROG (NAMES)
          (SETQ NAMES (MERGEINSERT (fetch.frame.fieldq NEW.FRAME NAME)
				   CURRENT.FRAME.NAMES))
          (SORT (NCONC1 (fetch.interface.fieldq INTERFACE FRAMES)
			NEW.FRAME)
		(QUOTE SORT.FRAMES))
          (SET.CURRENT.FRAME.NAMES NAMES])

(PRINT.FRAME.CLASSES
  [LAMBDA (FRAME)                                            (* N.H.Briggs " 1-Mar-85 14:21")
    (PROG (FRAME.NAME CLASSES)
          (SETQ FRAME.NAME (fetch.frame.fieldq FRAME NAME))
          (SETQ CLASSES (fetch.frame.fieldq FRAME CLASSES))
          (COND
	    (CLASSES (TRILLIUM.PRINTOUT ON TRILLIUM.DESCRIPTIONS "Classes of frame " FRAME.NAME ": ")
		     (for CLASS in CLASSES do (TRILLIUM.PRINTOUT ON TRILLIUM.DESCRIPTIONS 3 CLASS)))
	    (T (TRILLIUM.PRINTOUT ON TRILLIUM.DESCRIPTIONS FRAME.NAME " has no classes")))
          (RETURN])

(SORT.FRAMES
  [LAMBDA (A B)                                              (* edited: "23-JUN-82 12:29")
    (ALPHORDER (fetch.frame.fieldq A NAME)
	       (fetch.frame.fieldq B NAME])

(FORGET.FRAME.CLASS
  [LAMBDA (FRAME)                                            (* N.H.Briggs " 1-Mar-85 14:07")
    (DECLARE (GLOBALVARS CURRENT.INTERFACE FRAME.NAME.MENU))
    (PROG (FRAME.NAME CLASSES CLASS.NAME)
          (SETQ FRAME.NAME (fetch.frame.fieldq FRAME NAME))
          (SETQ CLASSES (fetch.frame.fieldq FRAME CLASSES))
          (COND
	    ((NULL CLASSES)
	      (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "This frame has no classes; can't forget one"))
	    (T (SETQ CLASS.NAME
		 (MENU (create MENU
			       ITEMS ← CLASSES
			       TITLE ← "Classes"
			       CENTERFLG ← T
			       CHANGEOFFSETFLG ← T)))
	       (COND
		 ((AND CLASS.NAME (CONFIRM (CONCAT "Forget class" CLASS.NAME "?")))
		   (replace.frame.fieldq FRAME CLASSES (REMOVE CLASS.NAME CLASSES))
		   (MARK.INTERFACE CURRENT.INTERFACE)
		   (SETQ FRAME.NAME.MENU)
		   (SETQ CURRENT.BITMAP.FRAMES)
		   (RETURN T))
		 (T (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "FORGET.FRAME.CLASS command aborted"])

(FREEZE.FRAME
  [LAMBDA (FRAME)                                            (* N.H.Briggs " 1-Mar-85 14:08")
    (DECLARE (GLOBALVARS REPORT.FRAMES))
    (COND
      ((NOT (fetch.frame.fieldq FRAME FROZEN))
	(PROG ((PRIMITIVES (CONS)))
	      (AND REPORT.FRAMES (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE "Freezing frame: "
						    (fetch.frame.fieldq FRAME NAME)
						    ". . ."))
	      (FREEZE.SUBITEMS PRIMITIVES (fetch.frame.fieldq FRAME ITEMS))
	      (RESET.FRAME FRAME T)
	      (replace.frame.fieldq FRAME FROZEN (fetch.frame.fieldq FRAME ITEMS))
	      (replace.frame.fieldq FRAME ITEMS (CAR PRIMITIVES))
	      (AND REPORT.FRAMES (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE SAME.LINE " done."))
	      (RETURN T])

(RESET.FRAME
  [LAMBDA (FRAME RESET.ITEMS)                                (* N.H.Briggs "18-Mar-85 13:52")
    (AND RESET.ITEMS (for ITEM in (fetch.frame.fieldq FRAME ITEMS)
			do (RESET.ITEM ITEM)
			   (COMPRESS.PROPLIST ITEM)))
    (RESET.6LISTS FRAME)
    (replace.frame.fieldq FRAME ANALYZED? NIL])

(MANIPULATE.FRAMES
  [LAMBDA NIL                                                (* N.H.Briggs " 5-Mar-85 10:53")
                                                             (* edited: "19-Jul-84 21:34")
    (DECLARE (GLOBALVARS CURRENT.FRAME CURRENT.INTERFACE CURRENT.INTERFACE.WINDOW 
			 TRILLIUM.SAVED.FRAME))
    (PROG (INTERFACE COMMAND.MENU COMMAND FRAME.NAME OLD.FRAME.NAME NEW.FRAME.NAME REFERENCES.TOO 
		     FRAME STACK SUBFRAMES)
          (SETQ INTERFACE CURRENT.INTERFACE)
          (SETQ COMMAND.MENU (GET.MANIPULATE.FRAMES.COMMAND.MENU))
          (do (SETQ COMMAND (MENU COMMAND.MENU))
	      (TRILLIUM.CLEAR.ALL.PROMPTING)
	      (SELECTQ COMMAND
		       (NIL)
		       (QUIT (RETURN))
		       [PUSH.TO.FRAME (SETQ FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
				      (COND
					(FRAME.NAME (SETQ FRAME (FIND.FRAME INTERFACE FRAME.NAME))
						    (FRAME.DO.PUSH FRAME)
						    (START.FRAME FRAME T]
		       [MOVE.TO.FRAME (SETQ FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
				      (COND
					(FRAME.NAME (SETQ FRAME (FIND.FRAME INTERFACE FRAME.NAME))
						    (FRAME.DO.GOTO FRAME)
						    (START.FRAME FRAME]
		       [POP.TO.FRAME [SETQ FRAME.NAME (MENU (create MENU
								    TITLE ← "Stack frames"
								    ITEMS ←(CDR (WINDOWPROP
										  
									 CURRENT.INTERFACE.WINDOW
										  (QUOTE 
										   TRILLIUM.STACK]
				     (COND
				       (FRAME.NAME (SETQ FRAME (FRAME.DO.POP (FIND.FRAME INTERFACE 
										       FRAME.NAME)))
						   (COND
						     (FRAME (START.FRAME FRAME]
		       (SHOW.FRAME.STACK (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE "Frame stack: ")
					 (for FRAME.NAME in (WINDOWPROP CURRENT.INTERFACE.WINDOW
									(QUOTE TRILLIUM.STACK))
					    do (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE SAME.BLOCK 1 
								  FRAME.NAME)))
		       (CLEAR.FRAME.STACK (WINDOWPROP CURRENT.INTERFACE.WINDOW (QUOTE TRILLIUM.STACK)
						      (LIST (fetch.frame.fieldq CURRENT.FRAME NAME)))
					  (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE 
							     "Frame stack is now empty"))
		       [COPY.FRAME (SETQ FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
				   (COND
				     (FRAME.NAME (INTERACT&COPY.FRAME INTERFACE (FIND.FRAME INTERFACE 
										       FRAME.NAME]
		       [RENAME.FRAME (SETQ OLD.FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
				     (COND
				       (OLD.FRAME.NAME (TRILLIUM.PRINTOUT "New Frame Name: ")
						       (SETQ NEW.FRAME.NAME (PROMPT.READ))
						       (COND
							 (NEW.FRAME.NAME (SETQ REFERENCES.TOO
									   (MENU (
GET.RENAME.FRAME.MENU)))
									 (RENAME.FRAME OLD.FRAME.NAME 
										   NEW.FRAME.NAME 
										       INTERFACE 
										   REFERENCES.TOO]
		       [DELETE.FRAME (SETQ FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
				     (COND
				       ((NULL FRAME.NAME))
				       [(SETQ SUBFRAMES (USED.AS.SUPERFRAME.BY FRAME.NAME INTERFACE))
					 (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "Frame " FRAME.NAME 
							    " is used as a superframe on "
							    T)
					 (for FRAME.NAME in SUBFRAMES
					    do (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS SAME.LINE " " 
								  FRAME.NAME))
					 (COND
					   ((CONFIRM (CONCAT "Frame " FRAME.NAME 
							    " used as superframe; delete anyway?"))
					     (DELETE.FRAME INTERFACE FRAME.NAME]
				       ((CONFIRM (CONCAT "Delete frame named " FRAME.NAME "?"))
					 (DELETE.FRAME INTERFACE FRAME.NAME]
		       (CREATE.NEW.FRAME (CREATE.NEW.FRAME INTERFACE))
		       [SAVE.FRAME (SETQ FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
				   (COND
				     (FRAME.NAME (THINKING (SETQ FRAME (FIND.FRAME INTERFACE 
										   FRAME.NAME))
							   (SETQ TRILLIUM.SAVED.FRAME (COPY.FRAME
							       FRAME)))
						 (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE "Frame " 
								    FRAME.NAME "saved"]
		       [RETRIEVE.FRAME (COND
					 (TRILLIUM.SAVED.FRAME (SETQ FRAME.NAME (
								   INTERACT&RETRIEVE.FRAME INTERFACE))
							       )
					 (T (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "No saved frame"]
		       (FREEZE.FRAME (INTERACT&FREEZE.FRAME INTERFACE))
		       (THAW.FRAME (INTERACT&THAW.FRAME INTERFACE))
		       [SET.FIRST.FRAME (SETQ FRAME.NAME (ACQUIRE.FRAME.NAME INTERFACE))
					(COND
					  (FRAME.NAME (replace.interface.fieldq INTERFACE FIRST.FRAME 
										FRAME.NAME)
						      (TRILLIUM.PRINTOUT ON TRILLIUM.TRACE 
									 "First frame is now "
									 FRAME.NAME]
		       (GRAPH.FRAMES (GRAPH.FRAMES))
		       (SHOULDNT])

(MOVE.TO.FRAME
  [LAMBDA (DIALOG FRAME)                                     (* HaKo "25-Jul-84 16:36")
    (COND
      (FRAME (FRAME.DO.GOTO FRAME)
	     (START.FRAME FRAME)
	     (fetch.frame.fieldq FRAME NAME))
      (T (TRILLIUM.PRINTOUT ON TRILLIUM.WARNINGS "I find no frame with that name")
	 NIL])

(DELETE.FRAME
  [LAMBDA (INTERFACE FRAME.NAME)                             (* N.H.Briggs "20-Feb-85 15:37")
                                                             (* edited: "15-APR-83 17:53")
    (DECLARE (GLOBALVARS CURRENT.FRAME.NAMES))
    (DREMOVE (FIND.FRAME INTERFACE FRAME.NAME)
	     (fetch.interface.fieldq INTERFACE FRAMES))
    (SET.CURRENT.FRAME.NAMES (DREMOVE FRAME.NAME CURRENT.FRAME.NAMES))
    (MARK.INTERFACE INTERFACE])

(GRAPH.FRAME.SUPERFRAMES
  [LAMBDA (FRAME INTERFACE)                                  (* N.H.Briggs " 1-Mar-85 14:13")
    (for FRAME.NAME in (fetch.frame.fieldq FRAME SUPERFRAMES) bind FRAME when (SETQ FRAME
										(FIND.FRAME INTERFACE 
										       FRAME.NAME))
       collect FRAME])

(GRAPH.FRAMES
  [LAMBDA NIL                                                (* N.H.Briggs "21-Feb-85 12:21")
                                                             (* DAHJr "25-JUN-83 17:07")
    (DECLARE (GLOBALVARS CHANGE.FRAME.STRUCTURE.GRAPH.SPEC CURRENT.FRAME CURRENT.INTERFACE 
			 CURRENT.INTERFACE.WINDOW FRAME.FRIENDS.GRAPH.SPEC 
			 SUPERFRAME.STRUCTURE.GRAPH.SPEC))
    (PROG (NAME COMMAND.MENU COMMAND ITYPES GRAPH.SPEC FRAMES POSSIBLE.ROOTS REAL.ROOTS TITLE DEPTH 
		GRAPH.FRAME.WINDOW)
          (SETQ COMMAND.MENU (GET.GRAPH.FRAMES.MENU))
          (SETQ COMMAND (MENU COMMAND.MENU))
          (COND
	    ((NULL COMMAND)
	      (RETURN)))
          (THINKING (SETQ FRAMES (fetch.interface.fieldq CURRENT.INTERFACE FRAMES))
		    (SELECTQ COMMAND
			     (CHANGE.FRAME.STRUCTURE (SETQ GRAPH.SPEC 
						       CHANGE.FRAME.STRUCTURE.GRAPH.SPEC)
						     [SETQ POSSIBLE.ROOTS (for FRAME in FRAMES
									     collect
									      (CONS FRAME
										    (QUOTE FRAME]
						     (SETQ REAL.ROOTS (MAKE.GRAPH.FIND.ROOTS 
										       GRAPH.SPEC 
										   POSSIBLE.ROOTS 
										CURRENT.INTERFACE))
						     (SETQ TITLE (CONCAT 
							  "Change frame structure for interface "
									 (fetch.interface.fieldq
									   CURRENT.INTERFACE NAME)))
						     (SETQ DEPTH 10))
			     (SUPERFRAME.STRUCTURE (SETQ GRAPH.SPEC SUPERFRAME.STRUCTURE.GRAPH.SPEC)
						   [SETQ POSSIBLE.ROOTS (for FRAME in FRAMES
									   collect
									    (CONS FRAME (QUOTE FRAME]
						   (SETQ REAL.ROOTS (MAKE.GRAPH.FIND.ROOTS GRAPH.SPEC 
										   POSSIBLE.ROOTS 
										CURRENT.INTERFACE))
						   (SETQ TITLE (CONCAT 
							    "Superframe structure for interface "
								       (fetch.interface.fieldq 
										CURRENT.INTERFACE 
											     NAME)))
						   (SETQ DEPTH 10))
			     (THIS.FRAME.AND.FRIENDS (SETQ GRAPH.SPEC FRAME.FRIENDS.GRAPH.SPEC)
						     [SETQ REAL.ROOTS (LIST (CONS CURRENT.FRAME
										  (QUOTE FRAME]
						     (SETQ TITLE (CONCAT "Friends of frame "
									 (GET.FIELDQ CURRENT.FRAME 
										     NAME)))
						     (SETQ DEPTH 10))
			     (ERROR COMMAND ": unrecognized command in GRAPH.FRAMES"))
		    (SETQ GRAPH.FRAME.WINDOW (MAKE.GRAPH NIL TITLE GRAPH.SPEC REAL.ROOTS 
							 CURRENT.INTERFACE NIL (QUOTE 
								FRAME.GRAPH.WINDOW.MIDDLEBUTTONFN)
							 NIL DEPTH))
		    (WINDOWPROP GRAPH.FRAME.WINDOW (QUOTE INTERFACE.WINDOW)
				CURRENT.INTERFACE.WINDOW)
		    (WINDOWPROP GRAPH.FRAME.WINDOW (QUOTE TRILLIUM.WINDOW.TYPE)
				(QUOTE GRAPH.FRAME.WINDOW))
		    (ADD.DEPENDENT.WINDOW CURRENT.INTERFACE.WINDOW GRAPH.FRAME.WINDOW))
          (RETURN GRAPH.FRAME.WINDOW])

(GRAPH.FRAMES.MENTION.AS.SUPERFRAME
  [LAMBDA (FRAME INTERFACE)                                  (* N.H.Briggs " 1-Mar-85 14:20")
    (PROG (FRAMES.NAMES)
          (SETQ FRAMES.NAMES (USED.AS.SUPERFRAME.BY (fetch.frame.fieldq FRAME NAME)
						    INTERFACE))
          (SETQ FRAMES.NAMES (INTERSECTION FRAMES.NAMES FRAMES.NAMES))
          (SETQ FRAMES.NAMES (SORT FRAMES.NAMES))
          (RETURN (for FRAME.NAME in FRAMES.NAMES bind FRAME when (SETQ FRAME (FIND.FRAME INTERFACE 
										       FRAME.NAME))
		     collect FRAME])

(RENAME.FRAME
  [LAMBDA (OLD.FRAME.NAME NEW.FRAME.NAME INTERFACE REFERENCES.TOO)
                                                             (* N.H.Briggs " 1-Mar-85 14:21")
                                                             (* added Thinking Cursor)
    (DECLARE (GLOBALVARS FRAME.NAME.MENU))
    (THINKING (PROG (FRAME SUPERFRAME.NAMES)
		    (SETQ FRAME (FIND.FRAME INTERFACE OLD.FRAME.NAME))
		    (replace.frame.fieldq FRAME NAME NEW.FRAME.NAME)
		    (SETQ FRAME.NAME.MENU NIL)
		    [COND
		      (REFERENCES.TOO (for FRAME in (fetch.interface.fieldq INTERFACE FRAMES)
					 do (WALK.FRAME FRAME NIL (FUNCTION RENAME.FRAME.IN.OBJECT)
							(CONS OLD.FRAME.NAME NEW.FRAME.NAME))
					    (SETQ SUPERFRAME.NAMES (fetch.frame.fieldq FRAME 
										      SUPERFRAMES))
					    (DSUBST NEW.FRAME.NAME OLD.FRAME.NAME SUPERFRAME.NAMES]
		    (RETURN NEW.FRAME.NAME])

(RESET.PRIMITIVE.LISTS
  [LAMBDA (FRAME)                                            (* DAHJr " 7-FEB-83 12:00")
    (replace.frame.fieldq FRAME INITIALIZATION NIL)
    (replace.frame.fieldq FRAME ARTWORK NIL)
    (replace.frame.fieldq FRAME SENSORS NIL)
    (replace.frame.fieldq FRAME INHIBITORS NIL)
    (replace.frame.fieldq FRAME DISPLAYERS NIL)
    (replace.frame.fieldq FRAME IMPLICATIONS NIL)
    (COMPRESS.PROPLIST FRAME])

(SET.CURRENT.BITMAP.FRAMES
  [LAMBDA NIL                                                (* N.H.Briggs " 1-Mar-85 14:22")
    (DECLARE (GLOBALVARS CURRENT.BITMAP.FRAMES CURRENT.INTERFACE))
    (SETQ CURRENT.BITMAP.FRAMES (for FRAME in (fetch.interface.fieldq CURRENT.INTERFACE FRAMES)
				   when (OR (MEMB (QUOTE BITMAPS)
						  (fetch.frame.fieldq FRAME CLASSES))
					    (MEMB (QUOTE BITMAP.FRAMES)
						  (fetch.frame.fieldq FRAME CLASSES)))
				   collect FRAME))
    [COND
      [(NULL CURRENT.BITMAP.FRAMES)
	(SETQ CURRENT.BITMAP.FRAMES (LIST (FIND.FRAME CURRENT.INTERFACE (QUOTE BITMAPS]
      (T (SETQ CURRENT.BITMAP.FRAMES (INTERSECTION CURRENT.BITMAP.FRAMES CURRENT.BITMAP.FRAMES]
    CURRENT.BITMAP.FRAMES])

(THAW.FRAME
  [LAMBDA (FRAME INTERFACE)                                  (* N.H.Briggs " 1-Mar-85 14:22")
    (PROG ((ORIGITEMS (fetch.frame.fieldq FRAME FROZEN)))
          (COND
	    ((AND ORIGITEMS (NEQ ORIGITEMS T))
	      (replace.frame.fieldq FRAME ITEMS ORIGITEMS)
	      (replace.frame.fieldq FRAME FROZEN NIL)
	      (RESET.FRAME FRAME T)
	      (RETURN T])
)
(PUTPROPS TRI-RECORD-EDITFRAME COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (887 20398 (INTERACT&ADD.FRAME.CLASS 897 . 1571) (INTERACT&RETRIEVE.FRAME 1573 . 2512) (
INTERACT&COPY.FRAME 2514 . 3448) (COPY.FRAME 3450 . 4153) (CREATE.NEW.FRAME 4155 . 4802) (
ADD.NEW.FRAME 4804 . 5267) (PRINT.FRAME.CLASSES 5269 . 5880) (SORT.FRAMES 5882 . 6077) (
FORGET.FRAME.CLASS 6079 . 7151) (FREEZE.FRAME 7153 . 7923) (RESET.FRAME 7925 . 8264) (
MANIPULATE.FRAMES 8266 . 13138) (MOVE.TO.FRAME 13140 . 13463) (DELETE.FRAME 13465 . 13949) (
GRAPH.FRAME.SUPERFRAMES 13951 . 14281) (GRAPH.FRAMES 14283 . 17177) (
GRAPH.FRAMES.MENTION.AS.SUPERFRAME 17179 . 17782) (RENAME.FRAME 17784 . 18741) (RESET.PRIMITIVE.LISTS 
18743 . 19185) (SET.CURRENT.BITMAP.FRAMES 19187 . 19996) (THAW.FRAME 19998 . 20396)))))
STOP