(FILECREATED "30-Jun-86 11:48:58" {QV}<NOTECARDS>1.3K>FGHPATCH081.;2 5422   

      changes to:  (FNS NC.LinkIconButtonEventInFn)
		   (VARS FGHPATCH081COMS)

      previous date: "30-Jun-86 00:13:07" {QV}<NOTECARDS>1.3K>FGHPATCH081.;1)


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

(PRETTYCOMPRINT FGHPATCH081COMS)

(RPAQQ FGHPATCH081COMS ((* * Put the hots region notion back into link icons)
			  (FNS NC.LinkIconButtonEventInFn)))
(* * Put the hots region notion back into link icons)

(DEFINEQ

(NC.LinkIconButtonEventInFn
  (LAMBDA (ImageObject Window)                               (* fgh: "30-Jun-86 11:48")
                                                             (* If the guy buttons inside a link image object)

          (* * fgh 6/3/86 Removed hot region, removed push copy link icon.)



          (* * fgh 6/29/86 Put back in a hot region.)


    (LET ((Window (COND
		    ((WINDOWP Window)
		      Window)
		    ((DISPLAYSTREAMP Window)
		      (WFROMDS Window))
		    ((TEXTSTREAMP Window)
		      (WINDOW.FROM.TEDIT.THING Window))
		    (T NIL)))
	  (ClippingRegion (DSPCLIPPINGREGION NIL Window))
	  (Link (NC.FetchLinkFromLinkIcon ImageObject))
	  HotRegion MouseButtonState TTYWindow ClippingRegionWidth)

          (* * Figure out the hot region -- basically the clipping region minus a few pts at right and left to allow for 
	  TEdit selection of icon.)


         (SETQ HotRegion (if (GREATERP (SETQ ClippingRegionWidth (fetch (REGION WIDTH)
									    of ClippingRegion))
					     24)
			       then                        (* There's at least 10 pts between the two 7pt cold 
							     regions at left and right.)
				      (CREATEREGION (PLUS (fetch (REGION LEFT) of 
										   ClippingRegion)
							      7)
						      (fetch (REGION BOTTOM) of ClippingRegion)
						      (DIFFERENCE (fetch (REGION WIDTH)
								       of ClippingRegion)
								    14)
						      (fetch (REGION HEIGHT) of ClippingRegion))
			     elseif (AND (LESSP ClippingRegionWidth 9))
			       then                        (* if link icon width less than 9 then no cold 
							     regions)
				      ClippingRegion
			     else                          (* Divide into 4ths and give 1/4 at each edge as cold 
							     regions.)
				    (CREATEREGION (PLUS (fetch (REGION LEFT) of 
										   ClippingRegion)
							    (TIMES .25 ClippingRegionWidth))
						    (fetch (REGION BOTTOM) of ClippingRegion)
						    (QUOTIENT ClippingRegionWidth 2)
						    (fetch (REGION HEIGHT) of ClippingRegion))))
         (COND
	   ((NOT (INSIDEP HotRegion (LASTMOUSEX Window)
			      (LASTMOUSEY Window)))

          (* * If in the link icon, but not in the hot region -- want to select the link icon.)


	     NIL)
	   (T 

          (* * Otherwise, invert the window and wait until the mouse is up or the cursor moves out of the link icon.)


	      (RESETLST (RESETSAVE (INVERTW Window))
			  (until (OR (MOUSESTATE UP)
					 (NOT (INSIDEP HotRegion (LASTMOUSEX Window)
							   (LASTMOUSEY Window))))
			     do (SETQ MouseButtonState LASTMOUSEBUTTONS)))

          (* * If user let up inside the link icon, then call the appropriate function.)


	      (COND
		((AND (INSIDEP HotRegion (LASTMOUSEX Window)
				   (LASTMOUSEY Window))
			MouseButtonState)

          (* * User let up inside the link icon.)


		  (COND
		    ((OR (KEYDOWNP (QUOTE LSHIFT))
			   (KEYDOWNP (QUOTE RSHIFT))
			   (KEYDOWNP (QUOTE CTRL))
			   (KEYDOWNP (QUOTE COPY))
			   (KEYDOWNP (QUOTE DELETE))
			   (KEYDOWNP (QUOTE MOVE)))      (* Copy or move or delete key is down, just do 
							     selection)
		      NIL)
		    ((ZEROP (LOGXOR MouseButtonState 4))
                                                             (* The left button was down, bring up the dest card.)
		      (NC.EditNoteCard (fetch (Link DestinationCard) of Link))
		      (QUOTE DON'T))
		    ((OR (ZEROP (LOGXOR MouseButtonState 1))
			   (ZEROP (LOGXOR MouseButtonState 6)))
                                                             (* The middle button was down, call the middle button 
							     fn.)
		      (NC.LinkIconMiddleButtonFn ImageObject Window))
		    ((ZEROP (LOGXOR MouseButtonState 2))
                                                             (* The right button was down, allow selection)
		      NIL)
		    (T                                       (* Hmmm, don't know know, allow selectin)
		       NIL)))
		((AND (INSIDEP ClippingRegion (LASTMOUSEX Window)
				   (LASTMOUSEY Window))
			(NOT (INSIDEP HotRegion (LASTMOUSEX Window)
					  (LASTMOUSEY Window))))

          (* * User let up outside the hot region but inside the link icon -- select the link icon)


		  NIL)
		(T 

          (* * User let up outside the link icon -- don't select the link icon)


		   (QUOTE DON'T))))))))
)
(PUTPROPS FGHPATCH081 COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (528 5340 (NC.LinkIconButtonEventInFn 538 . 5338)))))
STOP