(FILECREATED " 7-Feb-86 10:47:00" ("compiled on " {DANTE}PROJECTS>AIREGIONS>AIREGIONS.;4) "12-Nov-85 14:59:23" recompiled changes: ADD.IREGION ALL.IREGIONS CREATEIR REMOVE.IREGION DOSELECTED.IREGION EDIT.MASK IREGIONP IREGIONPROP SHOW.ALL.IREGIONS INTERSECTING.IREGIONS? INVERT.IREGION WHICH.IREGIONS SURROUNDIR IN.CURSOR.REGION \IR.CLIP.REGION \IR.SHOW.REGION \VALID.POSITION.LIST \SAME.IREGIONS.LIST \WITH.INTERSECTION \IREGION.ON.WINDOWP in "INTERLISP-D 22-Nov-85 ..." dated "22-Nov-85 11:32:58") (FILECREATED " 7-Feb-86 10:46:26" {DANTE}PROJECTS>AIREGIONS>AIREGIONS.;4 31385 changes to: ( FNS SURROUNDIR ADD.IREGION ALL.IREGIONS CREATEIR REMOVE.IREGION DOSELECTED.IREGION EDIT.MASK IREGIONP IREGIONPROP SHOW.ALL.IREGIONS INTERSECTING.IREGIONS? INVERT.IREGION WHICH.IREGIONS IN.CURSOR.REGION \IR.CLIP.REGION \IR.SHOW.REGION \VALID.POSITION.LIST \SAME.IREGIONS.LIST \WITH.INTERSECTION \IREGION.ON.WINDOWP) previous date: "16-Jan-86 16:43:56" {DANTE}PROJECTS>AIREGIONS>AIREGIONS.;1) ADD.IREGION D1 (I 1 IREGION I 0 WINDOW) +A@ #A @ @gg @gAi Ah(45Q WINDOWADDPROP 34Q PUTWINDOWPROP 20Q WINDOWP 12Q IREGIONP 4 \IREGION.ON.WINDOWP) (40Q IREGIONSLIST 31Q IN.CURSOR.REGION 26Q BUTTONEVENTFN) () ALL.IREGIONS D1 (I 0 WINDOW) @ @g (14Q GETWINDOWUSERPROP 3 WINDOWP) (11Q IREGIONSLIST) () CREATEIR D1 (P 6 P P 4 POSITIONS P 3 MASK P 2 POS P 1 TEMP-BITMAP P 0 TEMP-REGION I 5 POSLIST I 4 REGION I 3 HELPSTRING I 2 BUTTONEVENTFN I 1 SHADE I 0 WINDOW) q`@ h@gg D (D@ D@ DDhoo @ Xd@ dXdHk Y@ @HHIjd I [E \ddgxw@H Lnoooo @ H@ ZJ JKJHJHn Kjd@HH dHN KNHNHn L@H IjdKjdhdgg Ijd@HH @`dBdhdHdKAd3`A`dMdC (556Q ADD.IREGION 466Q BITBLT 451Q BITBLT 426Q \IR.SHOW.REGION 417Q PROMPTPRINT 406Q FILL.REGION 361Q INSIDEP 345Q BITBLT 327Q FILL.REGION 302Q INSIDEP 273Q GETPOSITION 265Q TOTOPW 260Q PROMPTPRINT 231Q \IR.SHOW.REGION 207Q \VALID.POSITION.LIST 202Q BITMAPCOPY 176Q BITBLT 161Q TOTOPW 154Q BITMAPCREATE 131Q \IR.CLIP.REGION 123Q GETREGION 117Q TOTOPW 112Q PROMPTPRINT 52Q \INSUREWINDOW 37Q \INSUREWINDOW 27Q REGIONP 23Q PUTWINDOWPROP 6 WINDOWP) (540Q DEFAULT.IREGION.SHADE 530Q BITMAPTYPE# 472Q IREGIONTYPE# 445Q ERASE 442Q INPUT 215Q ERROR 20Q IN.CURSOR.REGION 15Q BUTTONEVENTFN) ( 255Q "from the squared-off region." 251Q "To stop selection(s), left-button anywhere away " 245Q "left-button the irregular shapes in that region. " 241Q "Point your mouse to the inside of the region and " 107Q "without cutting off the region's borders" 103Q "Please closely surround the irregular region ") REMOVE.IREGION D1 (I 1 IREGION I 0 WINDOW) A@ @gA A(16Q WINDOWDELPROP 4 \IREGION.ON.WINDOWP) (12Q IREGIONSLIST) () DOSELECTED.IREGION D1 (I 2 BUTTON I 1 IREGION I 0 WINDOW) $A@ Ag Ag @ABlH(26Q IREGIONPROP 15Q IREGIONPROP 4 \IREGION.ON.WINDOWP) (23Q BUTTONEVENTFN 12Q BUTTONEVENTFN) () EDIT.MASK D1 (I 0 IREGION) @ @ (16Q EDITBM 3 IREGIONP) (11Q IREGION) () IREGIONP D1 (L (0 IREGION)) @`@NIL (4 IREGIONTYPE#) () IREGIONPROP D1 (P 6 X P 3 NEWVALUE P 2 PROP P 1 IREGION P 0 X) Me0@YAZI hHlBJg RIIJKhIJK KII!L^MKJMNNh NJdgIKKgIKKJdgIKKgIKKJdgIKKgIK KoJ Jg IJ'JdgIgIJdgIgIJdgIgI oJ (512Q ERROR 347Q MEMB 344Q RECORDFIELDNAMES 334Q ERROR 161Q \NCONC2 105Q LISTPUT 45Q MEMB 42Q RECORDFIELDNAMES 16Q IREGIONP) (477Q IREGION 471Q HELPSTRING 463Q IREGION 454Q SHADE 444Q IREGION 436Q MASK 430Q IREGION 421Q REGION 411Q IREGION 403Q USERDATA 375Q IREGION 366Q BUTTONEVENTFN 354Q IREGION 341Q IREGION 317Q IREGION 311Q HELPSTRING 301Q IREGION 272Q SHADE 260Q IREGION 252Q MASK 242Q IREGION 233Q REGION 221Q IREGION 213Q USERDATA 203Q IREGION 174Q BUTTONEVENTFN 121Q IREGION 115Q IREGION 76Q IREGION 62Q IREGION 53Q IREGION 37Q IREGION) ( 506Q "Not a valid IREGION prop: " 330Q "Not a valid IREGION prop: ") SHOW.ALL.IREGIONSA0001 D1 (NAME ERRORSET F 0 X F 1 RESETVARSLST F 2 WINDOW F 3 SHADE F 4 RESETY F 5 DELAY) RgPgPg hhhQcPgSn RP gRPhhhQcU3n ci(114Q BLOCK 56Q INVERT.IREGION 50Q IREGIONPROP 15Q IREGIONPROP) (62Q INVERT.IREGION 37Q SHADE 12Q SHADE 6 SHADE 2 IREGIONPROP) () SHOW.ALL.IREGIONS D1 (P 4 RESETZ P 3 RESETY P 2 LISPXHIST P 1 X P 0 IRS I 2 DELAY I 1 SHADE I 0 WINDOW F 5 LISPXHIST F 6 RESETVARSLST) 5@ H'dU!Vog hg\ Lh(53Q ERROR! 45Q RESETRESTORE 33Q SHOW.ALL.IREGIONSA0001 3 ALL.IREGIONS) (41Q ERROR 30Q INTERNAL) ( 25Q (SHOW.ALL.IREGIONSA0001)) INTERSECTING.IREGIONS? D1 (I 1 FLG I 0 WINDOW) @gA (7 PUTWINDOWPROP) (3 IR.INTERSECTIONFLG) () INVERT.IREGION D1 (I 1 IREGION I 0 WINDOW) 7A@ 0@ Ajd@AAhdggA (64Q BITBLT 12Q TOTOPW 4 \IREGION.ON.WINDOWP) (56Q IREGION 52Q INVERT 47Q MERGE 36Q IREGION 27Q IREGION 16Q IREGION) () WHICH.IREGIONS D1 (P 7 SOME-IREGION P 2 POSITION P 0 W I 2 Y I 1 POSORX I 0 WINDOW) @ A AA3B3H H ABHg AKL_JOJOhYjII OM Nh]K[N&(151Q \FZEROP 61Q GETWINDOWUSERPROP 43Q LASTMOUSEY 37Q LASTMOUSEX 17Q POSITIONP 10Q WHICHW 3 WINDOWP) (124Q IREGION 111Q IREGION 100Q IREGION 56Q IREGIONSLIST) () SURROUNDIRA0001 D1 (NAME ERRORSET L (0 NIL) F 3 POSLIST F 4 TEMPW F 5 TEMP-REGION) _jdg0SdIHhZH&J l2g0SdIHhZH&J l2hhdi c c i(127Q \INSUREWINDOW 122Q CREATEW 104Q APPLY 41Q APPLY) (47Q MAX 4 MAX) () SURROUNDIR D1 (P 11Q POSITION P 7 TEMPPOS P 6 POINTS.LST P 5 POSITIONS P 4 MASK P 3 POS P 2 TEMP-BITMAP P 1 TEMP-REGION P 0 TEMPW I 5 INSIDE.POS I 4 POSLIST I 3 HELPSTRING I 2 BUTTONEVENTFN I 1 SHADE I 0 WINDOW F 12Q CROSSHAIRS F 13Q \LASTKEYSTATE) n @ h@gg o `l @ DLWl) jAWl< j6D@ _h bWjd@OWOWhdgg o ohdi X o `l E 9@ b 1D+d Wjd@OWOWhdgg DikhH IIk ZH HIIJjd H J \dEIEIn JjdLjdhdgg @`dBdhdIdLAd3`A`_dOdC (553Q ADD.IREGION 460Q BITBLT 436Q FILL.REGION 412Q BITMAPCOPY 406Q CLOSEW 402Q BITBLT 365Q TOTOPW 360Q BITMAPCREATE 343Q DRAWCURVE 325Q BITBLT 247Q GETPOSITION 241Q POSITIONP 235Q FLASHWINDOW 225Q PROMPTPRINT 213Q \INSUREWINDOW 207Q CREATEW 173Q SURROUNDIRA0001 161Q BITBLT 114Q \APPEND2 105Q GETPOSITION 74Q \GETBASEBIT 61Q \GETBASEBIT 46Q TOTOPW 42Q FLASHWINDOW 32Q PROMPTPRINT 23Q PUTWINDOWPROP 6 WINDOWP) (532Q DEFAULT.IREGION.SHADE 522Q BITMAPTYPE# 464Q IREGIONTYPE# 454Q ERASE 451Q INPUT 321Q INVERT 316Q INPUT 230Q PROMPTWINDOW 155Q INVERT 152Q INPUT 35Q PROMPTWINDOW 20Q IN.CURSOR.REGION 15Q BUTTONEVENTFN) ( 222Q "Please button once INSIDE the region" 201Q (0 0 12Q 12Q) 170Q (SURROUNDIRA0001) 27Q "Please button the area around the particular region. To end, hold the SHIFT key when hitting the last point with the mouse.") IN.CURSOR.REGION D1 (P 11Q IR P 7 ALLREADY.PROMPT P 6 BUTTON P 5 TEMPY P 4 TEMPX P 3 OLD-REGIONS P 2 INTERSECTIONFLG P 1 TIMEOUT P 0 TIMEOUT.WAIT I 0 WINDOW F 12Q \RCLKMILLISECOND) s nlwWn@g c@ @ J [@ \@ ]Kd @O `dlgdlgkgi^`l_jOO L@ \M@ ]@ hK@LM J DOIg KK#d O o` ` i_xOKd @O @LM J [d @O IlIlwWnh_$OKd @O Kd @ON h(552Q DOSELECTED.IREGION 527Q INVERT.IREGION 511Q PROMPTPRINT 440Q INVERT.IREGION 423Q \WITH.INTERSECTION 417Q WHICH.IREGIONS 403Q INVERT.IREGION 365Q PROMPTPRINT 343Q TERPRI 334Q PRIN1 300Q PROMPTPRINT 270Q TIMEREXPIRED? 253Q \SAME.IREGIONS.LIST 250Q \WITH.INTERSECTION 244Q WHICH.IREGIONS 230Q LASTMOUSEY 221Q LASTMOUSEY 211Q LASTMOUSEX 200Q \FZEROP 147Q GETMOUSESTATE 76Q INVERT.IREGION 60Q LASTMOUSEY 53Q LASTMOUSEX 46Q \WITH.INTERSECTION 42Q WHICH.IREGIONS 36Q TOTOPW 27Q GETWINDOWUSERPROP) (463Q FIXP 340Q PROMPTWINDOW 331Q PROMPTWINDOW 316Q IREGION 265Q TICKS 153Q LASTMOUSEBUTTONS 141Q MIDDLE 132Q RIGHT 117Q LEFT 106Q LASTMOUSEBUTTONS 24Q IR.INTERSECTIONFLG 10Q FIXP) ( 326Q "Will select this IRREGULAR region when you release the button.") \IR.CLIP.REGION D1 (P 4 BOTTOM P 3 TOP P 2 RIGHT P 1 LEFT P 0 W.REG I 1 WINDOW I 0 REG) A HHHA ,lHA ,lhX@HH/@HH @@H@d@Hoi i hHdMMY@@HHؾdNNZ@@HH_dOO[@H_dOO\IHLHJIKLh(166Q TERPRI 161Q PRIN1 44Q \INSUREWINDOW 25Q \INSUREWINDOW 3 \INSUREWINDOW) NIL ( 155Q "None of the region was inside the window.") \IR.SHOW.REGION D1 (P 2 H P 1 W P 0 REG I 1 REGION I 0 WINDOW) kA AAkAAkHdkHHkHHIHkg@ HJIJkg@ HHHJkg@ IHIJkg@ (150Q DRAWLINE 131Q DRAWLINE 110Q DRAWLINE 72Q DRAWLINE 3 COPY) (143Q INVERT 124Q INVERT 103Q INVERT 65Q INVERT) () \VALID.POSITION.LIST D1 (P 1 P I 0 POSITIONLIST) M@d* @h@oi i gHi@Y hHXoi i g(107Q TERPRI 102Q PRIN1 61Q POSITIONP 34Q TERPRI 27Q PRIN1 6 POSITIONP) (112Q ERROR 37Q ERROR) ( 76Q "Not all elements in this list are positions." 23Q "POSITIONLIST must be NIL, a position, or a list of positions.") \SAME.IREGIONS.LIST D1 (I 1 LIST2 I 0 LIST1) !@ A h@HiAHX(7 LENGTH 3 LENGTH) NIL () \WITH.INTERSECTION D1 (L (1 FLG 0 IRLIST)) A@@dhNIL NIL () \IREGION.ON.WINDOWP D1 (I 1 WINDOW I 0 IREGION) @ A @Ag @(23Q GETWINDOWUSERPROP 11Q WINDOWP 3 IREGIONP) (20Q IREGIONSLIST) () (PRETTYCOMPRINT AIREGIONSCOMS) (RPAQQ AIREGIONSCOMS ((FILES FILLREGION.DCOM) (FNS ADD.IREGION ALL.IREGIONS CREATEIR REMOVE.IREGION DOSELECTED.IREGION EDIT.MASK IREGIONP IREGIONPROP SHOW.ALL.IREGIONS INTERSECTING.IREGIONS? INVERT.IREGION WHICH.IREGIONS SURROUNDIR) (FNS IN.CURSOR.REGION \IR.CLIP.REGION \IR.SHOW.REGION \VALID.POSITION.LIST \SAME.IREGIONS.LIST \WITH.INTERSECTION \IREGION.ON.WINDOWP) (RECORDS IREGION) ( PROP ARGNAMES IREGIONPROP) (VARS (DEFAULT.IREGION.SHADE 65535)) (GLOBALVARS DEFAULT.IREGION.SHADE) ( DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA IREGIONPROP ))))) (FILESLOAD FILLREGION.DCOM) (DATATYPE IREGION (BUTTONEVENTFN (* The users function to be called.) USERDATA (* This is where the users data is kept in proplist format.) REGION (* The region relative to the window where the IREGION is located.) MASK (* The mask is the same size as region and contains black where ever the IREGION is to be active.) SHADE (* The shade which IREGION inverts to %.) HELPSTRING (* The helpstring to be printed when the button is held down in this IREGION)) (* there used to be a TYPE? here but it was useless and removed)) (/DECLAREDATATYPE (QUOTE IREGION) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE (( IREGION 0 POINTER) (IREGION 2 POINTER) (IREGION 4 POINTER) (IREGION 6 POINTER) (IREGION 8 POINTER) ( IREGION 10 POINTER))) (QUOTE 12)) (PUTPROPS IREGIONPROP ARGNAMES (NIL (IREGION PROP {NEWVALUE}) . U)) (RPAQQ DEFAULT.IREGION.SHADE 65535) (PUTPROPS AIREGIONS COPYRIGHT ("XEROX Corporation" 1985 1986)) NIL