(FILECREATED "11-Dec-84 17:56:49" {SUMEX-AIM}PS:<LANE.HARMONY>EDITBG.LSP;6 8170   

      changes to:  (FNS EDITBACKGROUND \EDITBGBUTTONFN)
		   (VARS EDITBGCOMS \PIXELSIZE \SHADEREC \BORDERREC)
		   (RECORDS EDITBGRECORD)

      previous date: "18-Oct-84 11:57:47" {CSLI}PS:<LANE>EDITBG.LSP;2)


(* Copyright (c) 1984 by Christopher Lane. All rights reserved.)

(PRETTYCOMPRINT EDITBGCOMS)

(RPAQQ EDITBGCOMS ((FNS EDITBACKGROUND \EDITBGBUTTONFN)
		   (RECORDS EDITBGRECORD)
		   (CONSTANTS (\PIXELSIZE 16))
		   [INITVARS [\SHADEREC (create EDITBGRECORD REGION ← (CREATEREGION 2 2
										    (LLSH \PIXELSIZE 
											  2)
										    (LLSH \PIXELSIZE 
											  2))
						GRIDSPEC ← (CREATEREGION 2 2 \PIXELSIZE \PIXELSIZE)
						BITWIDTH ← 4 BITHEIGHT ← 4 DSPREGION ←
						(CREATEREGION \PIXELSIZE (ITIMES \PIXELSIZE 6)
							      (ITIMES \PIXELSIZE 11)
							      (LLSH \PIXELSIZE 1))
						NUMBEREGION ← (CREATEREGION WBorder
									    (IPLUS (LLSH \PIXELSIZE 2)
										   WBorder)
									    (IDIFFERENCE
									      (LLSH \PIXELSIZE 2)
									      WBorder)
									    (IDIFFERENCE \PIXELSIZE 
											 WBorder]
			     [\BORDERREC (create EDITBGRECORD REGION ←
						 (CREATEREGION (IPLUS (ITIMES \PIXELSIZE 5)
								      2)
							       2
							       (LLSH \PIXELSIZE 3)
							       (LLSH \PIXELSIZE 2))
						 GRIDSPEC ← (CREATEREGION (IPLUS (ITIMES \PIXELSIZE 5)
										 2)
									  2 \PIXELSIZE
									  (LLSH \PIXELSIZE 1))
						 BITWIDTH ← 8 BITHEIGHT ← 2 DSPREGION ←
						 (CREATEREGION 1 (ADD1 (ITIMES \PIXELSIZE 5))
							       (IPLUS (ITIMES \PIXELSIZE 13)
								      2)
							       (SUB1 (LLSH \PIXELSIZE 2)))
						 NUMBEREGION ← (CREATEREGION (IPLUS (ITIMES 
										       \PIXELSIZE 5)
										    WBorder)
									     (IPLUS (LLSH \PIXELSIZE 
											  2)
										    WBorder)
									     (IDIFFERENCE
									       (LLSH \PIXELSIZE 3)
									       WBorder)
									     (IDIFFERENCE \PIXELSIZE 
											  WBorder]
			     (\BUTTONREGION (CREATEREGION (IPLUS 2 (LLSH \PIXELSIZE 2))
							  (IPLUS 2 (LLSH \PIXELSIZE 2))
							  (SUB1 \PIXELSIZE)
							  (SUB1 \PIXELSIZE]
		   (GLOBALVARS \BUTTONREGION \BORDERREC \SHADEREC \PIXELSIZE)))
(DEFINEQ

(EDITBACKGROUND
  [LAMBDA NIL                                                (* cdl "11-Dec-84 17:55")
    (PROG ((WINDOW (CREATEW (GETBOXREGION (WIDTHIFWINDOW (CONSTANT (IPLUS (ITIMES \PIXELSIZE 13)
									  4)))
					  (HEIGHTIFWINDOW (CONSTANT (ITIMES \PIXELSIZE 9))
							  T))
			    "Background Texture Edit Window")))
          (for RECORD in (LIST \SHADEREC \BORDERREC)
	     do (with EDITBGRECORD RECORD (with REGION REGION (WBOX (CREATEREGION (IDIFFERENCE LEFT 2)
										  (IDIFFERENCE BOTTOM 
											       2)
										  (IPLUS WIDTH 4)
										  (IPLUS HEIGHT 4))
								    NIL NIL WINDOW))
		      (GRID GRIDSPEC BITWIDTH BITHEIGHT 'POINT WINDOW)
		      (CENTERPRINTINREGION 0 NUMBEREGION WINDOW)))
          (WBOX \BUTTONREGION NIL NIL WINDOW)
          (WINDOWPROP WINDOW 'INTERIOR 0)
          (WINDOWPROP WINDOW 'EXTERIOR 0)
          (WINDOWPROP WINDOW 'BUTTONEVENTFN (FUNCTION \EDITBGBUTTONFN))
          (WINDOWPROP WINDOW 'BITMAP (BITMAPCREATE 16 4))
          (RETURN WINDOW])

(\EDITBGBUTTONFN
  [LAMBDA (WINDOW)                                           (* cdl "11-Dec-84 17:56")
    (PROG ((BITMAP (WINDOWPROP WINDOW 'BITMAP))
	   (INTERIOR (WINDOWPROP WINDOW 'INTERIOR))
	   (EXTERIOR (WINDOWPROP WINDOW 'EXTERIOR))
	   (POSITION (create POSITION))
	   SHADE LEFTFLG PIXEL BIT GRIDX GRIDY RECORD NEWSHADE)
          (until (MOUSESTATE UP)
	     do (SETQ POSITION (CURSORPOSITION NIL WINDOW POSITION))
		(COND
		  ((INSIDEP \BUTTONREGION POSITION)
		    (DSPFILL \BUTTONREGION BLACKSHADE 'INVERT WINDOW)
		    (CHANGEBACKGROUND INTERIOR)
		    (CHANGEBACKGROUNDBORDER EXTERIOR)
		    (DSPFILL \BUTTONREGION BLACKSHADE 'INVERT WINDOW)
		    (RETURN)))
		(COND
		  ((INSIDEP (fetch (EDITBGRECORD REGION) of \SHADEREC)
			    POSITION)
		    (SETQ RECORD \SHADEREC)
		    (SETQ SHADE INTERIOR))
		  ((INSIDEP (fetch (EDITBGRECORD REGION) of \BORDERREC)
			    POSITION)
		    (SETQ RECORD \BORDERREC)
		    (SETQ SHADE EXTERIOR))
		  (T (SETQ RECORD NIL)))
		(COND
		  (RECORD (SETQ LEFTFLG (LASTMOUSESTATE LEFT))
			  [with EDITBGRECORD RECORD (with POSITION POSITION (SETQ GRIDX
							    (GRIDXCOORD XCOORD GRIDSPEC))
							  (SETQ GRIDY (GRIDYCOORD YCOORD GRIDSPEC)))
				(SHADEGRIDBOX GRIDX GRIDY (COND
						(LEFTFLG GRAYSHADE)
						(T WHITESHADE))
					      NIL GRIDSPEC 'POINT WINDOW)
				[SETQ PIXEL (LLSH 1 (IPLUS (ITIMES GRIDY BITWIDTH)
							   (SUB1 BITWIDTH)
							   (IMINUS GRIDX]
				[SETQ NEWSHADE (COND
				    (LEFTFLG (LOGOR SHADE PIXEL))
				    (T (LOGAND SHADE (LOGNOT PIXEL]
				(COND
				  ((NEQ SHADE NEWSHADE)
				    (SETQ SHADE NEWSHADE)
				    (DSPFILL NUMBEREGION WHITESHADE 'REPLACE WINDOW)
				    (CENTERPRINTINREGION SHADE NUMBEREGION WINDOW)
				    (COND
				      ((EQ RECORD \BORDERREC)
					(SETQ BIT (COND
					    (LEFTFLG 1)
					    (T 0)))
					(SETQ GRIDY (LLSH GRIDY 1))
					(for X from GRIDX to (IPLUS GRIDX 8) by 8
					   do (for Y from GRIDY to (ADD1 GRIDY)
						 do (BITMAPBIT BITMAP X Y BIT)))
					(DSPFILL DSPREGION BITMAP NIL WINDOW)
					(SETQ EXTERIOR SHADE))
				      (T (SETQ INTERIOR SHADE]
			  (DSPFILL (fetch (EDITBGRECORD DSPREGION) of \SHADEREC)
				   INTERIOR NIL WINDOW)))
		(BLOCK))
          (WINDOWPROP WINDOW 'INTERIOR INTERIOR)
          (WINDOWPROP WINDOW 'EXTERIOR EXTERIOR])
)
[DECLARE: EVAL@COMPILE 

(RECORD EDITBGRECORD (REGION GRIDSPEC BITWIDTH DSPREGION NUMBEREGION BITHEIGHT))
]
(DECLARE: EVAL@COMPILE 

(RPAQQ \PIXELSIZE 16)

(CONSTANTS (\PIXELSIZE 16))
)

(RPAQ? \SHADEREC (create EDITBGRECORD REGION ← (CREATEREGION 2 2 (LLSH \PIXELSIZE 2)
							     (LLSH \PIXELSIZE 2))
			 GRIDSPEC ← (CREATEREGION 2 2 \PIXELSIZE \PIXELSIZE)
			 BITWIDTH ← 4 BITHEIGHT ← 4 DSPREGION ← (CREATEREGION \PIXELSIZE
									      (ITIMES \PIXELSIZE 6)
									      (ITIMES \PIXELSIZE 11)
									      (LLSH \PIXELSIZE 1))
			 NUMBEREGION ← (CREATEREGION WBorder (IPLUS (LLSH \PIXELSIZE 2)
								    WBorder)
						     (IDIFFERENCE (LLSH \PIXELSIZE 2)
								  WBorder)
						     (IDIFFERENCE \PIXELSIZE WBorder))))

(RPAQ? \BORDERREC (create EDITBGRECORD REGION ← (CREATEREGION (IPLUS (ITIMES \PIXELSIZE 5)
								     2)
							      2
							      (LLSH \PIXELSIZE 3)
							      (LLSH \PIXELSIZE 2))
			  GRIDSPEC ← (CREATEREGION (IPLUS (ITIMES \PIXELSIZE 5)
							  2)
						   2 \PIXELSIZE (LLSH \PIXELSIZE 1))
			  BITWIDTH ← 8 BITHEIGHT ← 2 DSPREGION ← (CREATEREGION 1
									       (ADD1 (ITIMES 
										       \PIXELSIZE 5))
									       (IPLUS (ITIMES 
										       \PIXELSIZE 13)
										      2)
									       (SUB1 (LLSH \PIXELSIZE 
											   2)))
			  NUMBEREGION ← (CREATEREGION (IPLUS (ITIMES \PIXELSIZE 5)
							     WBorder)
						      (IPLUS (LLSH \PIXELSIZE 2)
							     WBorder)
						      (IDIFFERENCE (LLSH \PIXELSIZE 3)
								   WBorder)
						      (IDIFFERENCE \PIXELSIZE WBorder))))

(RPAQ? \BUTTONREGION (CREATEREGION (IPLUS 2 (LLSH \PIXELSIZE 2))
				   (IPLUS 2 (LLSH \PIXELSIZE 2))
				   (SUB1 \PIXELSIZE)
				   (SUB1 \PIXELSIZE)))
(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS \BUTTONREGION \BORDERREC \SHADEREC \PIXELSIZE)
)
(PUTPROPS EDITBG.LSP COPYRIGHT ("Christopher Lane" 1984))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (2321 6197 (EDITBACKGROUND 2333 . 3504) (\EDITBGBUTTONFN 3508 . 6194)))))
STOP