(FILECREATED "28-Oct-85 10:04:29" {SAFE}</C/ONCOCIN/UTILS>REGION.LSP;4 10005        changes to:  (FNS REGIONINFN REGIONEVENTFN REGIONOUTFN REGIONMOVEDFN REGIONREPAINTFN)		   (RECORDS REGIONEVENT)      previous date: "14-Oct-85 15:41:26" {SAFE}</C/ONCOCIN/UTILS>REGION.LSP;2)(* Copyright (c) 1984, 1985 by Stanford University. All rights reserved.)(PRETTYCOMPRINT REGIONCOMS)(RPAQQ REGIONCOMS ((FNS REGION.INIT ACTIVATEREGIONS DEACTIVATEREGIONS)		   (MACROS ADDREGIONEVENT)		   (FNS REGIONEVENTFN REGIONINFN REGIONMOVEDFN REGIONOUTFN REGIONREPAINTFN)		   (INITVARS DISABLEFLG)		   (GLOBALVARS DISABLEFLG)		   (RECORDS REGIONEVENT)))(DEFINEQ(REGION.INIT  [LAMBDA (WINDOW REGIONEVENTLST SAVE?)                      (* cdl "25-Jun-85 09:34")    (PROG ((REGIONEVENT (create REGIONEVENT				REGIONREPAINTFN _(WINDOWPROP WINDOW 'REPAINTFN							     (FUNCTION REGIONREPAINTFN))				REGIONOUTFN _(WINDOWPROP WINDOW 'CURSOROUTFN							 (FUNCTION REGIONOUTFN))				REGIONINFN _(WINDOWPROP WINDOW 'CURSORINFN							(FUNCTION REGIONINFN))				REGIONMOVEDFN _(WINDOWPROP WINDOW 'CURSORMOVEDFN							   (FUNCTION REGIONMOVEDFN))				REGIONBUTTONFN _(WINDOWPROP WINDOW 'BUTTONEVENTFN							    (FUNCTION REGIONEVENTFN))				REGIONFLAGS _ SAVE?)))          (if SAVE?	      then (push REGIONEVENTLST REGIONEVENT))          (if REGIONEVENTLST	      then (WINDOWPROP WINDOW 'REGIONEVENTLST			       REGIONEVENTLST))          (RETURN WINDOW])(ACTIVATEREGIONS  [LAMBDA (FLAGS WINDOW)                                     (* cdl "25-Jun-85 09:24")    (for REGIONEVENT in (WINDOWPROP WINDOW 'REGIONEVENTLST)       when [with REGIONEVENT REGIONEVENT (AND (NOT ACTIVEREGION)					       (OR (EQ FLAGS T)						   (for FLAG inside FLAGS thereis (EQMEMB FLAG 										      REGIONFLAGS]       do (with REGIONEVENT REGIONEVENT (SETQ ACTIVEREGION T])(DEACTIVATEREGIONS  [LAMBDA (FLAGS WINDOW)                                     (* cdl "25-Jun-85 09:23")    (for REGIONEVENT in (WINDOWPROP WINDOW 'REGIONEVENTLST)       when [with REGIONEVENT REGIONEVENT (AND ACTIVEREGION (OR (EQ FLAGS T)								(for FLAG inside FLAGS								   thereis (EQMEMB FLAG REGIONFLAGS]       do (with REGIONEVENT REGIONEVENT (SETQ ACTIVEREGION NIL]))(DECLARE: EVAL@COMPILE (PUTPROPS ADDREGIONEVENT MACRO ((REGIONEVENT WINDOW)				(WINDOWADDPROP WINDOW 'REGIONEVENTLST					       REGIONEVENT))))(DEFINEQ(REGIONEVENTFN  [LAMBDA (DS)                                               (* cdl "28-Oct-85 10:02")                                                             (* Applies button function based on position of cursor 							     in the displaystream)    (if (OR (NOT DISABLEFLG)	    (EQMEMB DS DISABLEFLG))	then (PROG ((REGIONEVENTLST (WINDOWPROP DS 'REGIONEVENTLST))		    (POSITION (CURSORPOSITION NIL DS)))	           (if (NULL (bind FLG for REGIONEVENT in REGIONEVENTLST				when (with REGIONEVENT REGIONEVENT (AND ACTIVEREGION (REGIONP 										      EVENTREGION)									(INSIDEP EVENTREGION POSITION)									))				do (with REGIONEVENT REGIONEVENT					 (if REGIONBUTTONFN					     then (APPLY* REGIONBUTTONFN DS POSITION EVENTREGION 							  REGIONEVENT)))				   (SETQ FLG T)				yield FLG))		       then (bind (REGION _(WINDOWPROP DS 'REGION)) for REGIONEVENT in REGIONEVENTLST			       when [with REGIONEVENT REGIONEVENT (AND ACTIVEREGION								       (NOT (REGIONP EVENTREGION]			       do (with REGIONEVENT REGIONEVENT					(if REGIONBUTTONFN					    then (APPLY* REGIONBUTTONFN DS POSITION REGION 							 REGIONEVENT])(REGIONINFN  [LAMBDA (DS)                                               (* cdl "28-Oct-85 10:04")                                                             (* Applies cursor in function based on position of 							     cursor in the displaystream)    (if (OR (NOT DISABLEFLG)	    (EQMEMB DS DISABLEFLG))	then (PROG ((POSITION (CURSORPOSITION NIL DS))		    (REGIONEVENTLST (WINDOWPROP DS 'REGIONEVENTLST))		    LASTREGIONS)	           (if (NULL (bind FLG for REGIONEVENT in REGIONEVENTLST				when (with REGIONEVENT REGIONEVENT (AND ACTIVEREGION (REGIONP 										      EVENTREGION)									(INSIDEP EVENTREGION POSITION)									))				do (with REGIONEVENT REGIONEVENT (if REGIONINFN								     then (APPLY* REGIONINFN DS 										  EVENTREGION 										  REGIONEVENT))					 (push LASTREGIONS EVENTREGION))				   (SETQ FLG T)				yield FLG))		       then [bind (REGION _(WINDOWPROP DS 'REGION)) for REGIONEVENT in REGIONEVENTLST			       when [with REGIONEVENT REGIONEVENT (AND ACTIVEREGION								       (NOT (REGIONP EVENTREGION]			       do (with REGIONEVENT REGIONEVENT (if REGIONINFN								    then (APPLY* REGIONINFN DS REGION 										 REGIONEVENT]		     else (WINDOWPROP DS 'LASTEVENTREGIONS				      LASTREGIONS])(REGIONMOVEDFN  [LAMBDA (DS)                                               (* cdl "28-Oct-85 10:01")                                                             (* Applies cursor moved function based on position of 							     cursor in the displaystream)    (if (OR (NULL DISABLEFLG)	    (EQMEMB DS DISABLEFLG))	then (PROG ((REGIONEVENTLST (WINDOWPROP DS 'REGIONEVENTLST))		    (LASTREGIONS (WINDOWPROP DS 'LASTEVENTREGIONS					     NIL))		    (POSITION (CURSORPOSITION NIL DS))		    INFLG OUTFLG MOVEDFLG)	           [for REGIONEVENT in REGIONEVENTLST		      do (with REGIONEVENT REGIONEVENT			       (if (AND (REGIONP EVENTREGION)					(INSIDEP EVENTREGION POSITION))				   then (if (FMEMB EVENTREGION LASTREGIONS)					    then (if (AND ACTIVEREGION REGIONMOVEDFN)						     then (APPLY* REGIONMOVEDFN DS POSITION 								  EVENTREGION REGIONEVENT))						 (SETQ MOVEDFLG T)					  else (if (AND ACTIVEREGION REGIONINFN)						   then (APPLY* REGIONINFN DS EVENTREGION REGIONEVENT)						   )					       (SETQ INFLG T))					(WINDOWADDPROP DS 'LASTEVENTREGIONS						       EVENTREGION)				 elseif (FMEMB EVENTREGION LASTREGIONS)				   then (if (AND ACTIVEREGION REGIONOUTFN)					    then (APPLY* REGIONOUTFN DS EVENTREGION REGIONEVENT))					(SETQ OUTFLG T]	           (bind (REGION _(WINDOWPROP DS 'REGION)) for REGIONEVENT in REGIONEVENTLST		      when [with REGIONEVENT REGIONEVENT (AND ACTIVEREGION (NOT (REGIONP EVENTREGION]		      do (with REGIONEVENT REGIONEVENT (if (AND INFLG (NOT OUTFLG)								REGIONOUTFN)							   then (APPLY* REGIONOUTFN DS REGION 									REGIONEVENT)							 elseif (AND OUTFLG (NOT INFLG)								     REGIONINFN)							   then (APPLY* REGIONINFN DS REGION 									REGIONEVENT)							 elseif (AND (NOT INFLG)								     (NOT OUTFLG)								     (NOT MOVEDFLG)								     REGIONMOVEDFN)							   then (APPLY* REGIONMOVEDFN DS POSITION 									REGION REGIONEVENT])(REGIONOUTFN  [LAMBDA (DS)                                               (* cdl "28-Oct-85 09:59")                                                             (* Applies cursor out function based on position of 							     cursor in the displaystream)    (if (OR (NULL DISABLEFLG)	    (EQMEMB DS DISABLEFLG))	then (PROG ((REGIONEVENTLST (WINDOWPROP DS 'REGIONEVENTLST))		    (LASTREGIONS (WINDOWPROP DS 'LASTEVENTREGIONS					     NIL)))	           (if LASTREGIONS		       then [for REGIONEVENT in REGIONEVENTLST when (with REGIONEVENT REGIONEVENT									  (AND ACTIVEREGION									       (REGIONP EVENTREGION)									       (FMEMB EVENTREGION 										      LASTREGIONS)))			       do (with REGIONEVENT REGIONEVENT (if REGIONOUTFN								    then (APPLY* REGIONOUTFN DS 										 EVENTREGION 										 REGIONEVENT]		     else (bind (REGION _(WINDOWPROP DS 'REGION)) for REGIONEVENT in REGIONEVENTLST			     when [with REGIONEVENT REGIONEVENT (AND ACTIVEREGION								     (NOT (REGIONP EVENTREGION]			     do (with REGIONEVENT REGIONEVENT (if REGIONOUTFN								  then (APPLY* REGIONOUTFN DS REGION 									       REGIONEVENT])(REGIONREPAINTFN  [LAMBDA (DS)                                               (* cdl "28-Oct-85 10:01")                                                             (* Applies the various region repaint fns to the 							     regions in windows region list)    (bind (REGION _(WINDOWPROP DS 'REGION)) for REGIONEVENT in (WINDOWPROP DS 'REGIONEVENTLST)       do (with REGIONEVENT REGIONEVENT (if REGIONREPAINTFN					    then (APPLY* REGIONREPAINTFN DS (if (REGIONP EVENTREGION)										then EVENTREGION									      else REGION)							 REGIONEVENT]))(RPAQ? DISABLEFLG NIL)(DECLARE: DOEVAL@COMPILE DONTCOPY(GLOBALVARS DISABLEFLG))[DECLARE: EVAL@COMPILE (RECORD REGIONEVENT (EVENTREGION REGIONBUTTONFN REGIONMOVEDFN REGIONINFN REGIONOUTFN REGIONREPAINTFN 				 ACTIVEREGION REGIONFLAGS REGIONUSERDATA)		    ACTIVEREGION _ T)](PUTPROPS REGION.LSP COPYRIGHT ("Stanford University" 1984 1985))(DECLARE: DONTCOPY  (FILEMAP (NIL (659 2482 (REGION.INIT 669 . 1549) (ACTIVATEREGIONS 1551 . 2027) (DEACTIVATEREGIONS 2029 . 2480)) (2640 9625 (REGIONEVENTFN 2650 . 3982) (REGIONINFN 3984 . 5431) (REGIONMOVEDFN 5433 . 7668) (REGIONOUTFN 7670 . 8992) (REGIONREPAINTFN 8994 . 9623)))))STOP