(FILECREATED "19-SEP-83 13:52:52" {PHYLUM}<LISPUSERS>ANIMATE.;2 7675   

      previous date: " 6-SEP-83 21:16:15" {PHYLUM}<LISPUSERS>ANIMATE.MASINTER;1)


(PRETTYCOMPRINT ANIMATECOMS)

(RPAQQ ANIMATECOMS ((* Fns for making a large cursor.)
		    (* Written by Danny Bobrow with a help from Mark Stefik and Larry Masinter.)
		    (* To get a BIGARROW, use (BIGCW NIL BigArrowIcon BigArrowShadow))
		    (* To get a hand, use (BIGCW NIL Hand HandShadow))
		    (FNS FollowCursor AnimateMove AnimateSetUp BIGC! BIGCW)
		    (FILES ICONW)
		    (CURSORS NOCURSOR)
		    (BITMAPS Hand HandShadow BigArrowIcon BigArrowShadow)))



(* Fns for making a large cursor.)




(* Written by Danny Bobrow with a help from Mark Stefik and Larry Masinter.)




(* To get a BIGARROW, use (BIGCW NIL BigArrowIcon BigArrowShadow))




(* To get a hand, use (BIGCW NIL Hand HandShadow))

(DEFINEQ

(FollowCursor
  (LAMBDA (picture shadow saveBitMap OX OY)                  (* edited: " 6-SEP-83 18:29")
    (RESETFORM (CURSOR NOCURSOR)
	       (COND
		 ((NOT (MOUSESTATE UP))
		   (\SETCURSORPOSITION OX OY)
		   (AnimateSetUp picture shadow OX OY saveBitMap)
		   (until (MOUSESTATE UP) unless (AND (EQ OX LASTMOUSEX)
						      (EQ OY LASTMOUSEY))
		      do (AnimateMove picture shadow saveBitMap OX OY (SETQ OX LASTMOUSEX)
				      (SETQ OY LASTMOUSEY)))
		   (AnimateMove picture shadow saveBitMap OX OY)
                                                             (* This Move just restores screen)
		   )))))

(AnimateMove
  (LAMBDA (picture shadow saveBitMap oldx oldy newx newy)    (* dgb: "20-JAN-83 22:59")
    (BITBLT saveBitMap 0 0 (SCREENBITMAP)
	    oldx oldy NIL NIL (QUOTE INPUT)
	    (QUOTE REPLACE))                                 (* Restore screen)
    (COND
      ((AND newx newy)                                       (* A new position given so move)
	(AnimateSetUp picture shadow newx newy saveBitMap)))))

(AnimateSetUp
  (LAMBDA (picture shadow x y saveBitMap)                    (* edited: " 6-SEP-83 18:12")

          (* picture is a bit map, and shadow is a bit map which is a black figure which is black inside outline of picture.
	  This places that picture on screen, leaving the background around a non square image)


    (BITBLT (SCREENBITMAP)
	    x y saveBitMap 0 0 NIL NIL (QUOTE INPUT)
	    (QUOTE REPLACE))                                 (* Save the current image)
    (BITBLT shadow 0 0 (SCREENBITMAP)
	    x y NIL NIL (QUOTE INPUT)
	    (QUOTE ERASE))                                   (* Erase the shadow area)
    (BITBLT picture 0 0 (SCREENBITMAP)
	    x y NIL NIL (QUOTE INPUT)
	    (QUOTE PAINT))                                   (* paint picture at that point)
    saveBitMap))

(BIGC!
  (LAMBDA (window)                                           (* edited: " 6-SEP-83 18:28")
                                                             (* Button event fn for BIGCW.)
                                                             (* sort of like (until (MOUSESTATE UP) do 
							     (MOVEW window LASTMOUSEX LASTMOUSEY)) except smoother)
    (CLOSEW window)
    (PROG ((REG (WINDOWPROP window (QUOTE REGION))))
          (FollowCursor (WINDOWPROP window (QUOTE ICONIMAGE))
			(WINDOWPROP window (QUOTE ICONMASK))
			(OR (WINDOWPROP window (QUOTE SAVEBITMAP))
			    (PROG ((BM (BITMAPCOPY (WINDOWPROP window (QUOTE ICONIMAGE)))))
			          (WINDOWPROP window (QUOTE SAVEBITMAP)
					      BM)
			          (RETURN BM)))
			(fetch LEFT of REG)
			(fetch BOTTOM of REG)))
    (OPENW window)))

(BIGCW
  (LAMBDA (POS ICONBITMAP SHADOWBITMAP SAVEBITMAP)           (* edited: " 6-SEP-83 18:09")
                                                             (* Creates a window which contains the large cursor.
							     When the window is selected, the cursor follows.)
    (PROG ((W (ICONW (OR ICONBITMAP Hand)
		     (OR SHADOWBITMAP HandShadow)
		     POS)))
          (WINDOWPROP W (QUOTE BUTTONEVENTFN)
		      (QUOTE BIGC!))
          (RETURN W))))
)
(FILESLOAD ICONW)
(RPAQ NOCURSOR (CURSORCREATE (READBITMAP) 0 0))
(16 16
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@"
"@@@@")
(RPAQ Hand (READBITMAP))
(48 24
"@@@L@@@@@@@@"
"@@ACH@@@@@@@"
"@@A@F@@@@@@@"
"@@@HAH@@@@@@"
"@@@F@F@@@@@@"
"@@@ALAH@@@@@"
"@@@@B@L@@@@@"
"GOOOO@GH@@@@"
"H@@@@@@F@@@@"
"H@@@@@@ACO@@"
"H@@@@@@@N@@@"
"GOOO@@@@B@@@"
"@@D@@@@@B@@@"
"@@H@@@@@B@@@"
"@@H@@@@@B@@@"
"@@GOH@@@B@@@"
"@@B@@@@@B@@@"
"@@D@@@@@B@@@"
"@@D@@@@@B@@@"
"@@CON@@@B@@@"
"@@A@@@@@B@@@"
"@@B@@@@AN@@@"
"@@B@@@@NAH@@"
"@@AOOOO@@G@@")

(RPAQ HandShadow (READBITMAP))
(48 24
"@@@L@@@@@@@@"
"@@AOH@@@@@@@"
"@@AON@@@@@@@"
"@@@OOH@@@@@@"
"@@@GON@@@@@@"
"@@@AOOH@@@@@"
"@@@@COL@@@@@"
"GOOOOOOH@@@@"
"OOOOOOON@@@@"
"OOOOOOOOCO@@"
"OOOOOOOOOO@@"
"GOOOOOOOON@@"
"@@GOOOOOON@@"
"@@OOOOOOOL@@"
"@@OOOOOOOL@@"
"@@GOOOOOOL@@"
"@@COOOOOOL@@"
"@@GOOOOOOL@@"
"@@GOOOOOOL@@"
"@@COOOOOOL@@"
"@@AOOOOOON@@"
"@@COOOOOON@@"
"@@COOOONAO@@"
"@@AOOOO@@G@@")

(RPAQ BigArrowIcon (READBITMAP))
(64 64
"@@@@@@@C@@@@@@@@"
"@@@@@@@G@@@@@@@@"
"@@@@@@@O@@@@@@@@"
"@@@@@@AO@@@@@@@@"
"@@@@@@CO@@@@@@@@"
"@@@@@@GC@@@@@@@@"
"@@@@@@NC@@@@@@@@"
"@@@@@ALC@@@@@@@@"
"@@@@@CIC@@@@@@@@"
"@@@@@GCC@@@@@@@@"
"@@@@@NGC@@@@@@@@"
"@@@@ALOC@@@@@@@@"
"@@@@CIOC@@@@@@@@"
"@@@@GCOC@@@@@@@@"
"@@@@NGOC@@@@@@@@"
"@@@ALOOC@@@@@@@@"
"@@@CIOOC@@@@@@@@"
"@@@GCOOC@@@@@@@@"
"@@@NGOOC@@@@@@@@"
"@@ALOOOC@@@@@@@@"
"@@CIOOOC@@@@@@@@"
"@@GCOOOC@@@@@@@@"
"@@NGOOOC@@@@@@@@"
"@ALOOOOC@@@@@@@@"
"@CIOOOOCOOOOOOOO"
"@GCOOOOCOOOOOOOO"
"@NGOOOO@@@@@@@@C"
"ALOOOOO@@@@@@@@C"
"CIOOOOOOOOOOOOOC"
"GCOOOOOOOOOOOOOC"
"NGOOOOOOOOOOOOOC"
"LOOOOOOOOOOOOOOC"
"LOOOOOOOOOOOOOOC"
"NGOOOOOOOOOOOOOC"
"GCOOOOOOOOOOOOOC"
"CIOOOOOOOOOOOOOC"
"ALOOOOO@@@@@@@@C"
"@NGOOOO@@@@@@@@C"
"@GCOOOOCOOOOOOOO"
"@CIOOOOCOOOOOOOO"
"@ALOOOOC@@@@@@@@"
"@@NGOOOC@@@@@@@@"
"@@GCOOOC@@@@@@@@"
"@@CIOOOC@@@@@@@@"
"@@ALOOOC@@@@@@@@"
"@@@NGOOC@@@@@@@@"
"@@@GCOOC@@@@@@@@"
"@@@CIOOC@@@@@@@@"
"@@@ALOOC@@@@@@@@"
"@@@@NGOC@@@@@@@@"
"@@@@GCOC@@@@@@@@"
"@@@@CIOC@@@@@@@@"
"@@@@ALOC@@@@@@@@"
"@@@@@NGC@@@@@@@@"
"@@@@@GCC@@@@@@@@"
"@@@@@CIC@@@@@@@@"
"@@@@@ALC@@@@@@@@"
"@@@@@@NC@@@@@@@@"
"@@@@@@GC@@@@@@@@"
"@@@@@@CK@@@@@@@@"
"@@@@@@AO@@@@@@@@"
"@@@@@@@O@@@@@@@@"
"@@@@@@@G@@@@@@@@"
"@@@@@@@C@@@@@@@@")

(RPAQ BigArrowShadow (READBITMAP))
(64 64
"@@@@@@@C@@@@@@@@"
"@@@@@@@G@@@@@@@@"
"@@@@@@@O@@@@@@@@"
"@@@@@@AO@@@@@@@@"
"@@@@@@CO@@@@@@@@"
"@@@@@@GO@@@@@@@@"
"@@@@@@OO@@@@@@@@"
"@@@@@AOO@@@@@@@@"
"@@@@@COO@@@@@@@@"
"@@@@@GOO@@@@@@@@"
"@@@@@OOO@@@@@@@@"
"@@@@AOOO@@@@@@@@"
"@@@@COOO@@@@@@@@"
"@@@@GOOO@@@@@@@@"
"@@@@OOOO@@@@@@@@"
"@@@AOOOO@@@@@@@@"
"@@@COOOO@@@@@@@@"
"@@@GOOOO@@@@@@@@"
"@@@OOOOO@@@@@@@@"
"@@AOOOOO@@@@@@@@"
"@@COOOOO@@@@@@@@"
"@@GOOOOO@@@@@@@@"
"@@OOOOOO@@@@@@@@"
"@AOOOOOO@@@@@@@@"
"@COOOOOOOOOOOOOO"
"@GOOOOOOOOOOOOOO"
"@OOOOOOOOOOOOOOO"
"AOOOOOOOOOOOOOOO"
"COOOOOOOOOOOOOOO"
"GOOOOOOOOOOOOOOO"
"OOOOOOOOOOOOOOOO"
"OOOOOOOOOOOOOOOO"
"OOOOOOOOOOOOOOOO"
"OOOOOOOOOOOOOOOO"
"GOOOOOOOOOOOOOOO"
"COOOOOOOOOOOOOOO"
"AOOOOOOOOOOOOOOO"
"@OOOOOOOOOOOOOOO"
"@GOOOOOOOOOOOOOO"
"@COOOOOOOOOOOOOO"
"@AOOOOOO@@@@@@@@"
"@@OOOOOO@@@@@@@@"
"@@GOOOOO@@@@@@@@"
"@@COOOOO@@@@@@@@"
"@@AOOOOO@@@@@@@@"
"@@@OOOOO@@@@@@@@"
"@@@GOOOO@@@@@@@@"
"@@@COOOO@@@@@@@@"
"@@@AOOOO@@@@@@@@"
"@@@@OOOO@@@@@@@@"
"@@@@GOOO@@@@@@@@"
"@@@@COOO@@@@@@@@"
"@@@@AOOO@@@@@@@@"
"@@@@@OOO@@@@@@@@"
"@@@@@GOO@@@@@@@@"
"@@@@@COO@@@@@@@@"
"@@@@@AOO@@@@@@@@"
"@@@@@@OO@@@@@@@@"
"@@@@@@GO@@@@@@@@"
"@@@@@@CO@@@@@@@@"
"@@@@@@AO@@@@@@@@"
"@@@@@@@O@@@@@@@@"
"@@@@@@@G@@@@@@@@"
"@@@@@@@C@@@@@@@@")
(DECLARE: DONTCOPY
  (FILEMAP (NIL (893 4156 (FollowCursor 903 . 1559) (AnimateMove 1561 . 1993) (AnimateSetUp 1995 . 2820)
 (BIGC! 2822 . 3678) (BIGCW 3680 . 4154)))))
STOP