(FILECREATED " 7-Jun-86 18:49:38" {QV}<NOTECARDS>1.3K>FGHPATCH065.;3 4511   

      changes to:  (FNS NC.GETPROMPTWINDOW)
		   (VARS FGHPATCH065COMS)

      previous date: " 7-Jun-86 15:51:15" {QV}<NOTECARDS>1.3K>FGHPATCH065.;1)


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

(PRETTYCOMPRINT FGHPATCH065COMS)

(RPAQQ FGHPATCH065COMS ((* * Fix to NC.GETPROMPTWINDOW created in FGHPATCH062)
			  (FNS NC.GETPROMPTWINDOW)))
(* * Fix to NC.GETPROMPTWINDOW created in FGHPATCH062)

(DEFINEQ

(NC.GETPROMPTWINDOW
  (LAMBDA (MAINWINDOW %#LINES FONT DONTCREATE MINWIDTH)    (* fgh: " 7-Jun-86 18:48")

          (* makes sure that MAINWINDOW has an attached promptwindow and returns it. If one already exists, it is shaped to 
	  be at least %#LINES high. If FONT is NIL, the font of the main window is used for the promptwindow.)



          (* * fgh 6/6/86 Adapted from system GETPROMPTWINDOW. Added MINWIDTH arg.)


    (PROG ((PWINDOWPROP (WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOW)))
	     (PWINDOWMINWIDTH (WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOWMINWIDTH)))
	     PWINDOW WIDTH HEIGHT OBSCUREDHEIGHT)
	    (COND
	      (DONTCREATE (RETURN (CAR PWINDOWPROP)))
	      (PWINDOWPROP (SETQ PWINDOW (CAR PWINDOWPROP))
			   (COND
			     ((NOT (OPENWP PWINDOW))
			       (ATTACHWINDOW PWINDOW MAINWINDOW (QUOTE TOP)
					       (QUOTE LEFT)
					       (QUOTE LOCALCLOSE))))
			   (COND
			     ((OR (AND %#LINES (IGREATERP %#LINES (CDR PWINDOWPROP)))
				    (AND MINWIDTH (NOT (EQP MINWIDTH PWINDOWMINWIDTH))))
                                                             (* Window exists, but not right size.)
			       (SHAPEW PWINDOW (create REGION
						    using (WINDOWPROP PWINDOW (QUOTE REGION))
							    HEIGHT ←(SETQ HEIGHT
							      (HEIGHTIFWINDOW
								(TIMES %#LINES
									 (FONTPROP (DSPFONT
										       NIL PWINDOW)
										     (QUOTE HEIGHT))
									 )))
							    WIDTH ←(MAX (OR MINWIDTH 
										PWINDOWMINWIDTH 0)
									  (fetch (REGION WIDTH)
									     of
									      (WINDOWPROP
										MAINWINDOW
										(QUOTE REGION))))))
			       (RPLACD PWINDOWPROP %#LINES)
                                                             (* Fall through to check visibility)
			       )
			     (T (SETQ HEIGHT (fetch (REGION HEIGHT) of (WINDOWPROP
									       PWINDOW
									       (QUOTE REGION)))))))
	      (T (SETQ PWINDOW (CREATEW (create REGION
						      LEFT ← 0
						      BOTTOM ← 0
						      WIDTH ←(MAX (OR MINWIDTH 0)
								    (fetch (REGION WIDTH)
								       of (WINDOWPROP
									      MAINWINDOW
									      (QUOTE REGION))))
						      HEIGHT ←(SETQ HEIGHT
							(HEIGHTIFWINDOW
							  (TIMES (OR %#LINES (SETQ %#LINES 1))
								   (FONTPROP (OR FONT
										     (SETQ FONT
										       (DSPFONT
											 NIL 
										       MAINWINDOW)))
									       (QUOTE HEIGHT))))))
					    NIL NIL T))
		 (DSPSCROLL T PWINDOW)
		 (DSPFONT FONT PWINDOW)
		 (WINDOWPROP PWINDOW (QUOTE PAGEFULLFN)
			       (QUOTE NILL))
		 (ATTACHWINDOW PWINDOW MAINWINDOW (QUOTE TOP)
				 (QUOTE LEFT)
				 (QUOTE LOCALCLOSE))
		 (WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOW)
			       (CONS PWINDOW %#LINES))
		 (WINDOWPROP PWINDOW (QUOTE OPENFN)
			       (FUNCTION \PROMPTWINDOW.OPENFN))))
	    (COND
	      ((ILESSP (SETQ OBSCUREDHEIGHT (IDIFFERENCE SCREENHEIGHT
							       (fetch (REGION TOP)
								  of (WINDOWPROP PWINDOW
										     (QUOTE REGION))
									)))
			 0)                                  (* Promptwindow off screen at top, so slip window 
							     group down to make it visible)
		(RELMOVEW MAINWINDOW (create POSITION
						 XCOORD ← 0
						 YCOORD ← OBSCUREDHEIGHT))))
	    (WINDOWPROP PWINDOW (QUOTE MINSIZE)
			  (CONS 0 HEIGHT))
	    (WINDOWPROP PWINDOW (QUOTE MAXSIZE)
			  (CONS 64000 HEIGHT))
	    (WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOWMINWIDTH)
			  (OR MINWIDTH 0))
	    (OPENW PWINDOW)
	    (RETURN PWINDOW))))
)
(PUTPROPS FGHPATCH065 COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (514 4429 (NC.GETPROMPTWINDOW 524 . 4427)))))
STOP