(FILECREATED " 9-Apr-86 17:10:44" {XDE:MCS:STANFORD}<LISPUSERS>KOTO>INSPECTCODE-TEDIT.;1        

      changes to:  (FNS \INSPECTCODE.WITH.TEDIT.ICONFN \INSPECTCODE.WITH.TEDIT.INSP.ERROR 
			\INSPECTCODE.WITH.TEDIT.TITLEMENUFN)

      previous date: " 4-Apr-86 10:38:41" {SUMEX-AIM}<LANE>INSPECTCODE-TEDIT.;1)


(* Copyright (c) 1985, 1986 by Beckman Instruments, Inc.. All rights reserved.)

(PRETTYCOMPRINT INSPECTCODE-TEDITCOMS)

(RPAQQ INSPECTCODE-TEDITCOMS ((FNS \INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU 
				     \INSPECTCODE.WITH.TEDIT.ICONFN 
				     \INSPECTCODE.WITH.TEDIT.INSP.ERROR 
				     \INSPECTCODE.WITH.TEDIT.KILL.TEDIT.PROCESS 
				     \INSPECTCODE.WITH.TEDIT.NOSELFN 
				     \INSPECTCODE.WITH.TEDIT.TITLEMENUFN)
				(UGLYVARS \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE)
				(LISPXMACROS IC)
				(PROP FILETYPE INSPECTCODE-TEDIT)
				(ADVISE OPENTEXTSTREAM-IN-\TEDIT.INSPECTCODE)))
(DEFINEQ

(\INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU
  [LAMBDA NIL                                                (* mth: "30-Aug-85 15:49")
    (DECLARE (GLOBALVARS \INSPECTCODE.WITH.TEDIT.TITLEMENU))
    (SETQ \INSPECTCODE.WITH.TEDIT.TITLEMENU (create MENU
							ITEMS ←
							'((GraphCalls 'GC
								      
						     "Invoke GRAPHCALLS on the current selection")
							  (InspectCode 'IC
								       
							      "INSPECTCODE the current selection")
							  (Inspect 'INSP
								   "INSPECT the current selection"
								   (SUBITEMS (Freely 'INSP
										     
					      "INSPECT the free-reference value of the selection")
									     (Globally 'INSP.GLOB
										       
					  "INSPECT the Global (Top Level) value of the selection")
									     ("In Process Context"
									       'INSP.PROC
									       
				       "INSPECT the value of the selection in a process' context")))
							  ("Pretty Print Value"
							    'PPV
							    
						"Pretty Print the value of the current selection"
							    (SUBITEMS (Freely 'PPV
									      
					 "Pretty Print the free-reference value of the selection")
								      (Globally 'PPV.GLOB
										
				     "Pretty Print the Global (Top Level) value of the selection")
								      ("In Process Context"
									'PPV.PROC
									
				  "Pretty Print the value of the selection in a process' context")))
							  (Quit 'QUIT
								"Terminates this INSPECTCODE"))])

(\INSPECTCODE.WITH.TEDIT.ICONFN
  [LAMBDA (W)                                                (* cdl " 9-Apr-86 17:06")
    (DECLARE (GLOBALVARS \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE))
    (LET ((ICON (TITLEDICONW \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE (WINDOWPROP W 'FNNAME)
			       (FONTCREATE '(HELVETICA 8)
					     NIL NIL NIL NIL T)
			       NIL T)))
         (WINDOWPROP W 'ICON
		       ICON)
         (WINDOWPROP W 'ICONWINDOW
		       ICON)
         (WINDOWPROP W 'ICONFN
		       NIL)
     ICON])

(\INSPECTCODE.WITH.TEDIT.INSP.ERROR
  [LAMBDA (MESS1 MESS2 MESS3)                                (* cdl " 9-Apr-86 16:58")
    (CLRPROMPT)
    (if MESS2=NIL
	then (PROMPTPRINT MESS1)
      elseif MESS3=NIL
	then (PROMPTPRINT MESS1 MESS2)
      else (PROMPTPRINT MESS1 MESS2 MESS3))
    (RINGBELLS])

(\INSPECTCODE.WITH.TEDIT.KILL.TEDIT.PROCESS
  [LAMBDA (W)                                                (* mth: " 4-Apr-86 10:12")
    (DEL.PROCESS (WINDOWPROP W 'PROCESS])

(\INSPECTCODE.WITH.TEDIT.NOSELFN
  [LAMBDA NIL                                                (* mth: "29-Aug-85 09:36")
    (CLRPROMPT)
    (PROMPTPRINT "No current selection")
    (RINGBELLS])

(\INSPECTCODE.WITH.TEDIT.TITLEMENUFN
  [LAMBDA (W)                                                (* cdl " 9-Apr-86 17:05")
    (DECLARE (GLOBALVARS \INSPECTCODE.WITH.TEDIT.TITLEMENU))
    (if ~(BOUNDP '\INSPECTCODE.WITH.TEDIT.TITLEMENU) or ~(type? MENU 
								\INSPECTCODE.WITH.TEDIT.TITLEMENU)
	then (\INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU))
    [LET* ((STREAM (TEXTSTREAM W))
	   (SELLEN (TEDIT.GETSEL STREAM):SELECTION.DCH)
	   (MENUCHOICE (MENU \INSPECTCODE.WITH.TEDIT.TITLEMENU))
	   (SpecifyRegionString "Specify a region for the value pretty print window")
	   INSPVAL SELSTR DISPLAYWINDOW)
          (if ~MENUCHOICE
	      then                                         (* Nothing to do, clicked out of menu)
	    elseif MENUCHOICE= 'QUIT
	      then (TEDIT.QUIT STREAM)
		     (if (OPENWP W)
			 then (CLOSEW W))
	    else (if (ZEROP SELLEN)
		       then (\INSPECTCODE.WITH.TEDIT.NOSELFN)
		     elseif SELLEN gt 255
		       then (\INSPECTCODE.WITH.TEDIT.INSP.ERROR 
						       "Selection is too long (> 255 characters)")
			      (TEDIT.SHOWSEL STREAM NIL NIL)
			      (TEDIT.SETSEL STREAM 0 0 'LEFT)
		     else SELSTR←(PACK* (TEDIT.SEL.AS.STRING STREAM NIL)))
		   (SELECTQ MENUCHOICE
			      (IC (INSPECTCODE SELSTR))
			      (GC (if (FGETD 'GRAPHCALLSW)
				      then (if ~(GRAPHCALLS SELSTR)
						 then (\INSPECTCODE.WITH.TEDIT.INSP.ERROR 
									     "Nothing to graph!!"))
				    else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR 
					   "The GRAPHCALLS package is not loaded.  Cannot graph "
										 SELSTR)))
			      [(INSP PPV)
				(if (BOUNDP SELSTR)
				    then (if MENUCHOICE= 'PPV
					       then (PROMPTPRINT SpecifyRegionString)
						      (DISPLAYWINDOW←(CREATEW (GETREGION
										  (WIDTHIFWINDOW
										    72)
										  (HEIGHTIFWINDOW
										    72 T))
										SELSTR))
						      (CLRPROMPT)
						      (printout DISPLAYWINDOW .PPV (EVAL SELSTR))
					     else (INSPECT (EVAL SELSTR)))
				  else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR SELSTR 
									      " has no value to "
									       (if MENUCHOICE=
										     'PPV
										   then "print"
										 else "inspect"]
			      [(INSP.GLOB PPV.GLOB)
				(if INSPVAL←(GETTOPVAL SELSTR)
				      ~=
				      'NOBIND
				    then (if MENUCHOICE= 'PPV.GLOB
					       then (PROMPTPRINT SpecifyRegionString)
						      (DISPLAYWINDOW←(CREATEW (GETREGION
										  (WIDTHIFWINDOW
										    72)
										  (HEIGHTIFWINDOW
										    72 T))
										SELSTR))
						      (CLRPROMPT)
						      (printout DISPLAYWINDOW .PPV INSPVAL)
					     else (INSPECT INSPVAL))
				  else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR SELSTR 
								       " has no Global value to "
									       (if MENUCHOICE=
										     'PPV.GLOB
										   then "print"
										 else "inspect"]
			      [(INSP.PROC PPV.PROC)
				(LET (PROCESSLIST PROC)
				     (DECLARE (SPECVARS PROCESSLIST))
				     [MAP.PROCESSES (FUNCTION (LAMBDA (PHANDLE PNAME PFORM)
							  (push PROCESSLIST (<PNAME PHANDLE>]
				     (if PROC←(MENU (create MENU
								  ITEMS ← PROCESSLIST
								  CENTERFLG ← T))
					 then [if INSPVAL←(PROCESS.EVALV PROC SELSTR)
						      ~=
						      'NOBIND
						    then (if MENUCHOICE= 'PPV.PROC
							       then
								(PROMPTPRINT SpecifyRegionString)
								(DISPLAYWINDOW←(CREATEW
								    (GETREGION (WIDTHIFWINDOW
										   72)
										 (HEIGHTIFWINDOW
										   72 T))
								    SELSTR))
								(CLRPROMPT)
								(printout DISPLAYWINDOW .PPV INSPVAL)
							     else (INSPECT INSPVAL))
						  else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR
							   SELSTR
							   (if MENUCHOICE= 'PPV.PROC
							       then 
							     " has no value to print in process "
							     else 
							   " has no value to inspect in process ")
							   (PROCESSPROP PROC 'NAME]
				       else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR
						"No process selected.  Will not "
						(if MENUCHOICE= 'PPV.PROC
						    then "print "
						  else "inspect ")
						SELSTR]
			      (PROGN                       (* Shouldn't happen, but ignore it.)]
    NIL])
)
(READVARS \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE)
(({(READBITMAP)(87 91
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@COO@@@@@F@@"
"L@@@@@@@@@@@AOOON@@@@F@@"
"L@@@@@@@@@@@GN@AOH@@@F@@"
"L@@@@@@@@@@AO@@@CN@@@F@@"
"L@@@@@@@@@@CL@@@@O@@@F@@"
"L@@@@@@@@@@O@@@@@CL@@F@@"
"L@@@@@@@@@AN@@@@@AN@@F@@"
"L@@@@@@@@@CH@@@@@@G@@F@@"
"L@@@@@@@@@C@@@@@@@C@@F@@"
"L@@@@@@@@@G@@@@@@@CH@F@@"
"L@@@@@@@@@N@@@@@@@AL@F@@"
"L@@@@@@@@@L@@@@@@@@L@F@@"
"L@@@@@@@@AL@@@@@@@@N@F@@"
"L@@@@@@@@AH@@@@@@@@F@F@@"
"L@@@@@@@@CH@@@@@@@@G@F@@"
"L@@@@@@@@C@@@@@@@@@C@F@@"
"L@@@@@@@@C@@@@@@@@@C@F@@"
"L@@@@@@@@GGL@OHGO@OOHF@@"
"L@@@@@@@@GLFCHNFALLAHF@@"
"L@@@@@@@@GHCC@FF@LLAHF@@"
"L@@@@@@@@G@@F@CF@FLAHF@@"
"LBIGKMLNOO@@F@CF@FOOHF@@"
"LBMDBEA@BG@@F@CF@FLAHF@@"
"LBOGKMM@BG@@F@CF@FLAHF@@"
"LBK@JAA@BGHCC@FF@LLAHF@@"
"LBIGJALNBGLFCHNFALLAHF@@"
"L@@@@@@@@GGL@OHGO@OOHF@@"
"L@@@@@@@@C@@@@@@@@@C@F@@"
"L@@@@@@@@C@@@@@@@@@C@F@@"
"L@@@@@@@@CH@@@@@@@@G@F@@"
"L@@@@@@@@AH@@@@@@@@F@F@@"
"L@@@@@@@@AL@@@@@@@@N@F@@"
"L@@@@@@@@@L@@@@@@@@L@F@@"
"L@@@@@@@@@N@@@@@@@AL@F@@"
"L@@@@@@@@@G@@@@@@@CH@F@@"
"L@@@@@@@@@G@@@@@@@C@@F@@"
"L@@@@@@@@@OL@@@@@@G@@F@@"
"L@@@@@@@@@ON@@@@@AN@@F@@"
"L@@@@@@@@AGO@@@@@CL@@F@@"
"L@@@@@@@@CKCL@@@@O@@@F@@"
"L@@@@@@@@GLAO@@@CN@@@F@@"
"L@@@@@@@@OH@GN@AOH@@@F@@"
"L@@@@@@@AO@@AOOON@@@@F@@"
"L@@@@@@@FN@@@COO@@@@@F@@"
"L@@@@@@@OD@@@@@@@@@@@F@@"
"L@@@@@@AOH@@@@@@@@@@@F@@"
"L@@@@@@COH@@@@@@@@@@@F@@"
"L@@@@@@GO@@@@@@@@@@@@F@@"
"L@@@@@@ON@@@@@@@@@@@@F@@"
"L@@@@@AOL@@@@@@@@@@@@F@@"
"L@@@@@COH@@@@@@@@@@@@F@@"
"L@@@@@GO@@@@@@@@@@@@@F@@"
"L@@@@@ON@@@@@@@@@@@@@F@@"
"L@@@@AOL@@@@@@@@@@@@@F@@"
"L@@@@COH@@@@@@@@@@@@@F@@"
"L@@@@GO@@@@@@@@@@@@@@F@@"
"L@@@@ON@@@@@@@@@@@@@@F@@"
"L@@@AOL@@@@@@@@@@@@@@F@@"
"L@@@COH@@@@@@@@@@@@@@F@@"
"L@@@GO@@@@@@@@@@@@@@@F@@"
"L@@@GN@@@@@@@@@@@@@@@F@@"
"L@@@CL@@@@@@@@@@@@@@@F@@"
"L@@@AH@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"L@@@@@@@@@@@@@@@@@@@@F@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@")}  {(READBITMAP)(87 91
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@"
"OOOOOOOOOOOOOOOOOOOOON@@")}  (4 5 79 18)))

(ADDTOVAR LISPXMACROS (IC (APPLY 'INSPECTCODE
				   LISPXLINE)))

(PUTPROPS INSPECTCODE-TEDIT FILETYPE CLISP)

(PUTPROPS OPENTEXTSTREAM-IN-\TEDIT.INSPECTCODE READVICE [(\TEDIT.INSPECTCODE . OPENTEXTSTREAM)
	   (AROUND NIL (PROG2 [SETQ PROPS (APPEND PROPS '(QUITFN T TITLEMENUFN 
							      \INSPECTCODE.WITH.TEDIT.TITLEMENUFN 
								 NOTITLE T)]
			      *
			      (WINDOWADDPROP WINDOW 'CLOSEFN
					     (FUNCTION \INSPECTCODE.WITH.TEDIT.KILL.TEDIT.PROCESS))
			      (WINDOWPROP WINDOW 'ICONFN
					  (FUNCTION \INSPECTCODE.WITH.TEDIT.ICONFN))
			      (WINDOWPROP WINDOW 'FNNAME
					  FN])
(READVISE OPENTEXTSTREAM-IN-\TEDIT.INSPECTCODE)
(PUTPROPS INSPECTCODE-TEDIT COPYRIGHT ("Beckman Instruments, Inc." 1985 1986))
STOP