(FILECREATED "21-May-84 21:32:23" {PHYLUM}<LISPUSERS>PAGEHOLD.;13 2182   

      changes to:  (FNS END.OF.PAGE.HOLD)
		   (VARS PAGEHOLDCOMS)

      previous date: " 5-Dec-83 19:18:29" {PHYLUM}<JONL>LISP>PAGEHOLD.;11)


(* Copyright (c) 1982, 1983, 1984 by Xerox Corporation)

(PRETTYCOMPRINT PAGEHOLDCOMS)

(RPAQQ PAGEHOLDCOMS ((* Things for page hold mechanism)
		     (DECLARE: DONTCOPY (MACROS SHIFTDOWN?))
		     (GLOBALRESOURCES EndOfPage.BOX)
		     (FNS END.OF.PAGE.HOLD)
		     (INITVARS (PAGE.WAIT.SECS 10))
		     (GLOBALVARS PAGE.WAIT.SECS)
		     (ADVISE PAGEFULLFN)))



(* Things for page hold mechanism)

(DECLARE: DONTCOPY 
(DECLARE: EVAL@COMPILE 

(PUTPROPS SHIFTDOWN? MACRO (NIL
  (OR (KEYDOWNP (QUOTE LSHIFT))
      (KEYDOWNP (QUOTE RSHIFT)))))
)
)

(RPAQQ \EndOfPage.BOX.GLOBALRESOURCE NIL)
(DECLARE: DOEVAL@COMPILE DONTCOPY 
[PUTDEF (QUOTE EndOfPage.BOX)
	(QUOTE GLOBALRESOURCES)
	(QUOTE (NEW (SETUPTIMER 0]
)
(DEFINEQ

(END.OF.PAGE.HOLD
  [LAMBDA NIL                                                (* JonL "21-May-84 21:22")
                                                             (* Foo)
    (if (NOT (NUMBERP PAGE.WAIT.SECS))
	then NIL
      elseif (ILESSP PAGE.WAIT.SECS 1)
	then (until (NOT (SHIFTDOWN?)) do (BLOCK))
	     T
      else (during PAGE.WAIT.SECS timerUnits (QUOTE SECONDS) resourceName EndOfPage.BOX
	      do (if (SHIFTDOWN?)
		     then                                    (* Release the hold when user presses either SHIFT key 
							     and then lifts up on it)
			  (until (NOT (SHIFTDOWN?)) do (BLOCK))
			  (RETURN T)
		   elseif (KEYDOWNP (QUOTE CTRL))
		     then                                    (* CTRL key selects default PAGEFULLFN)
			  (RETURN NIL))
		 (BLOCK)
	      finally (RETURN T])
)

(RPAQ? PAGE.WAIT.SECS 10)
(DECLARE: DOEVAL@COMPILE DONTCOPY

(ADDTOVAR GLOBALVARS PAGE.WAIT.SECS)
)

(PUTPROPS PAGEFULLFN READVICE 
  [NIL (BEFORE NIL (AND (END.OF.PAGE.HOLD)
			(RETURN T])
(READVISE PAGEFULLFN)
(PUTPROPS PAGEHOLD COPYRIGHT ("Xerox Corporation" 1982 1983 1984))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (954 1870 (END.OF.PAGE.HOLD 964 . 1868)))))
STOP