(FILECREATED "22-May-86 11:03:31" {QV}<NOTECARDS>1.3K>FGHPATCH043.;1 3211   

      changes to:  (VARS FGHPATCH043COMS)
		   (FNS NC.AskUser))


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

(PRETTYCOMPRINT FGHPATCH043COMS)

(RPAQQ FGHPATCH043COMS ((* * Fix to make it possible to shift select into AskUser prompt windows 
			     when main window is a TEdit window. FROM NCUTILITIES)
			  (FNS NC.AskUser)))
(* * Fix to make it possible to shift select into AskUser prompt windows when main window is a
 TEdit window. FROM NCUTILITIES)

(DEFINEQ

(NC.AskUser
  (LAMBDA (Msg Prompt FirstTry ClearFirstFlg MainWindow DontCloseAtEndFlg DontClearAtEndFlg 
	       PROMPTFORWORDFlg)                             (* fgh: "22-May-86 11:00")
                                                             (* Get a response from the user -
							     using the promptwindow attached to MainWindow)

          (* * rht 9/16/84: Added DontClearAtEndFlg which if non-nil prevents the call to NC.ClearMsg.)



          (* * rht 5/22/85: Now uses TTYIN instead of PROMPTFORWORD so that people can edit their answer.)



          (* * rht 5/30/85: Added PROMPTFORWORDFlg so callers doing yes/no questions can get old style PROMPTFORWORD 
	  functionality.)



          (* * rht 8/6/85: Wrapped TTYIN with NLSETQ so wouldn't break if CR inadvertantly inserted in string.)



          (* * fgh 5/22/86 Added handling of COPYBYBKSYSBUF so that user can shift select into prompt windows being called 
	  from TEdit main windows.)


    (LET (AskWindow TextObj)
         (SETQ AskWindow (NC.PrintMsg MainWindow ClearFirstFlg Msg))
         (TTY.PROCESS (THIS.PROCESS))
         (RESETLST 

          (* * If MainWindow is a TEdit window, make sur we can shift select into the prompt window.)


		     (if (SETQ TextObj (WINDOWPROP MainWindow (QUOTE TEXTOBJ)))
			 then (RESETSAVE (TEXTPROP TextObj (QUOTE COPYBYBKSYSBUF)
							 T)
					     (BQUOTE (TEXTPROP , TextObj COPYBYBKSYSBUF ,
								   (TEXTPROP TextObj (QUOTE
										 COPYBYBKSYSBUF))))))

          (* * Go ahead and ask)


		     (PROG1 (if PROMPTFORWORDFlg
				  then (PROMPTFORWORD Prompt FirstTry 
						      "To type a ?, type CTRL-V followed by a ?."
							  AskWindow NIL NIL (CHARCODE (EOL)))
				else (RESETFORM (TTYDISPLAYSTREAM AskWindow)
						    (CAR (NLSETQ (TTYIN (MKLIST (OR Prompt 
											      ""))
									      NIL NIL
									      (QUOTE (STRING 
											  NORAISE))
									      NIL NIL
									      (AND FirstTry
										     (LIST FirstTry)
										     ))))))

          (* * Setting the PromptWindow PROCESS to NIL is to break a circularity caused by TEXTOBJ -> PROMPTWINDOW -> PROCESS
	  -> TEXTSTREAM -> TEXTOBJ)


			      (WINDOWPROP AskWindow (QUOTE PROCESS)
					    NIL)
			      (OR DontClearAtEndFlg (NC.ClearMsg MainWindow (NULL 
										DontCloseAtEndFlg)))))
      )))
)
(PUTPROPS FGHPATCH043 COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (574 3129 (NC.AskUser 584 . 3127)))))
STOP