$ od -c -N 50000 [eris]<Lisp>KOTO>LISPUSERS>REGION.TEDIT!1 0000000 X E R O X \t R E G I O N \r 2 \r \r 0000020 4 \r \r 1 \r \r R E G I O N \r 1 \r \r 0000040 4 \r \r B y : C h r i s t o p 0000060 h e r L a n e ( L A N E @ S 0000100 U M E X - A I M . A R P A ) \r R 0000120 E G I O N f a c i l i t a t e 0000140 s h a v i n g m u l t i p l 0000160 e c o m p l e x c u r s o r 0000200 b e h a v i o r s i n a 0000220 s i n g l e w i n d o w w i 0000240 t h o u t h a v i n g t h e 0000260 C U R S O R M O V E D F N s , 0000300 C U R S O R I N F N s , C U 0000320 R S O R O U T F N s , a n d 0000340 B U T T O N E V E N T F N s o 0000360 f t h e b e h a v i o r s 0000400 k n o w a b o u t e a c h 0000420 o t h e r . I n i t s s 0000440 i m p l e s t f o r m i t 0000460 c a n b e u s e d t o i 0000500 m p l e m e n t a c t i v e 0000520 r e g i o n s o f v a r y i 0000540 n g s i z e s . \r T o u s e 0000560 R E G I O N , s e t t h e 0000600 v a r i o u s w i n d o w 0000620 f u n c t i o n s o f t h e 0000640 w i n d o w t o t h e R 0000660 E G I O N w i n d o w f u n 0000700 c t i o n s a n d p u t a 0000720 l i s t o f R E G I O N E 0000740 V E N T r e c o r d s o n 0000760 t h e R E G I O N E V E N T L 0001000 S T p r o p e r t y o f t 0001020 h e w i n d o w . W h e n 0001040 t h e c u r s o r m o v e 0001060 s o v e r t h e w i n d o 0001100 w , R E G I O N c h e c k s 0001120 w h i c h r e g i o n i t 0001140 i s i n , c a l l s t h 0001160 e C U R S O R O U T F N o f 0001200 t h e p r e v i o u s r e 0001220 g i o n a n d t h e C U R 0001240 S O R I N F N o f t h e n 0001260 e w r e g i o n . T h i s 0001300 i s s i m i l a r t o h 0001320 a v i n g s e v e r a l w i 0001340 n d o w s w i t h i n a w 0001360 i n d o w . I f r e g i o 0001400 n s o v e r l a p , t h e n 0001420 t h e a p p r o p r i a t e 0001440 f u n c t i o n s w i l l 0001460 b e c a l l e d o n a l l 0001500 r e g i o n s a f f e c t e 0001520 d b y t h e m o u s e e 0001540 v e n t . \r T h e R E G I O N 0001560 E V E N T L S T p r o p e r t 0001600 y o f t h e w i n d o w 0001620 s h o u l d c o n t a i n a 0001640 l i s t o f R E G I O N E 0001660 V E N T r e c o r d s w h i 0001700 c h h a v e t h e f i e l 0001720 d s : \r E V E N T R E G I O N 0001740 \t \t A R E G I O N r e c o r 0001760 d w h i c h i s t h e r 0002000 e g i o n o f t h e w i n 0002020 d o w o v e r w h i c h t 0002040 h e r e g i o n s p e c i f 0002060 i c f u n c t i o n s w i l 0002100 l b e i n v o k e d . \r R E 0002120 G I O N B U T T O N F N \t T h 0002140 e B U T T O N E V E N T F N ( 0002160 W I N D O W P O S I T I O N 0002200 R E G I O N R E G I O N E V E 0002220 N T ) f o r t h e r e g i 0002240 o n . \r R E G I O N M O V E D F 0002260 N \t T h e C U R S O R M O V 0002300 E D F N ( W I N D O W P O S I 0002320 T I O N R E G I O N R E G I 0002340 O N E V E N T ) f o r t h e 0002360 r e g i o n . \r R E G I O N I 0002400 N F N \t \t T h e C U R S O R 0002420 I N F N ( W I N D O W R E G I 0002440 O N R E G I O N E V E N T ) 0002460 f o r t h e r e g i o n . \r 0002500 R E G I O N O U T F N \t \t T h e 0002520 C U R S O R O U T F N ( W I N 0002540 D O W R E G I O N R E G I O 0002560 N E V E N T ) f o r t h e 0002600 r e g i o n . \r R E G I O N R E 0002620 P A I N T F N \t T h e R E P 0002640 A I N T F N ( W I N D O W R E 0002660 G I O N R E G I O N E V E N T 0002700 ) f o r t h e r e g i o n 0002720 . \r A C T I V E R E G I O N \t B 0002740 o o l e a n i n d i c a t i n 0002760 g i f t h e r e g i o n 0003000 i s a c t i v e o r n o t 0003020 . \r R E G I O N F L A G S \t \t U 0003040 s e r d e f i n e d i d e n 0003060 t i f i c a t i o n f l a g s 0003100 . \r R E G I O N U S E R D A T A 0003120 \t U s e r d e f i n e d f i 0003140 e l d . \r A l l o f t h e 0003160 f i e l d s i n t h e R 0003200 E G I O N E V E N T r e c o r 0003220 d a r e o p t i o n a l . 0003240 I f a R E G I O N E V E N 0003260 T r e c o r d h a s a N 0003300 I L E V E N T R E G I O N , 0003320 t h e n t h a t i s c o n 0003340 s i d e r e d t h e d e f a 0003360 u l t R E G I O N E V E N T 0003400 a n d w i l l b e i n v 0003420 o k e d w h e n e v e r a 0003440 m o u s e e v e n t o c c u 0003460 r s o u t s i d e o f a n 0003500 y o t h e r r e g i o n . \r 0003520 T h e R E G I O N w i n d o 0003540 w f u n c t i o n s a r e : 0003560 \r ( W I N D O W P R O P W I N 0003600 D O W ' C U R S O R I N F N 0003620 ( F U N C T I O N R E G I O N 0003640 I N F N ) ) \r ( W I N D O W P R 0003660 O P W I N D O W ' C U R S O 0003700 R O U T F N ( F U N C T I O N 0003720 R E G I O N O U T F N ) ) \r ( 0003740 W I N D O W P R O P W I N D O 0003760 W ' R E P A I N T F N ( F U 0004000 N C T I O N R E G I O N R E P 0004020 A I N T F N ) ) \r ( W I N D O W 0004040 P R O P W I N D O W ' C U R 0004060 S O R M O V E D F N ( F U N C 0004100 T I O N R E G I O N M O V E D 0004120 F N ) ) \r ( W I N D O W P R O P 0004140 W I N D O W ' B U T T O N E 0004160 V E N T F N ( F U N C T I O N 0004200 R E G I O N E V E N T F N ) ) 0004220 \r T h e a b o v e w i n d o 0004240 w p r o p e r t i e s c a n 0004260 b e s e t u s i n g t h 0004300 e f u n c t i o n : \r ( R E G 0004320 I O N . I N I T W I N D O W 0004340 R E G I O N E V E N T L S T S 0004360 A V E ? ) \t \t \t \t \t [ F u n c t 0004400 i o n ] \r T h e R E G I O N E 0004420 V E N T L S T i s a l i s 0004440 t o f R E G I O N E V E N T 0004460 r e c o r d s t o p u t 0004500 o n t h e w i n d o w . 0004520 I f S A V E ? i s T , t 0004540 h e C U R S O R I N F N , C 0004560 U R S O R O U T F N , e t c . 0004600 o f t h e w i n d o w a 0004620 r e p u t i n t o a d e 0004640 f a u l t r e g i o n e v e 0004660 n t r e c o r d ( o n e w 0004700 i t h a n E V E N T R E G I 0004720 O N = N I L ) a n d a d 0004740 d e d t o t h e R E G I O 0004760 N E V E N T L S T . \r T h e R 0005000 E G I O N F L A G S f i e l d 0005020 o f t h e R E G I O N E V 0005040 E N T r e c o r d c o n s i 0005060 s t s o f w h a t e v e r 0005100 a t o m s t h e u s e r w 0005120 i s h e s t o i d e n t i f 0005140 y r e g i o n s w i t h . 0005160 T h e s e a l l o w t h e 0005200 u s e r t o i s s u e c 0005220 o m m a n d s s u c h a s 0005240 " t u r n o f f a l l r e 0005260 g i o n s m a r k e d G R A 0005300 P H " , " a c t i v a t e a 0005320 l l t h e M E N U r e g i 0005340 o n s " , e t c . \r ( A C T I 0005360 V A T E R E G I O N S F L A G 0005400 S W I N D O W ) \t \t \t \t \t \t \t 0005420 [ F u n c t i o n ] \r ( D E A C 0005440 T I V A T E R E G I O N S F L 0005460 A G S W I N D O W ) \t \t \t \t \t 0005500 \t [ F u n c t i o n ] \r A c t i 0005520 v a t e a n d d e a c t i v 0005540 a t e a l l t h e R E G I 0005560 O N E V E N T r e c o r d s 0005600 o n W I N D O W w h o s e 0005620 R E G I O N F L A G S h a v e 0005640 a f l a g i n c o m m o 0005660 n w i t h F L A G S . I 0005700 f F L A G S i s T , a c 0005720 t i v a t e o r d e a c t i 0005740 v a t e s a l l R E G I O N 0005760 E V E N T r e c o r d s . \r T 0006000 h e v a r i a b l e D I S A 0006020 B L E F L G , i f T , d i 0006040 s a b l e s a l l o f t h 0006060 e r e g i o n f u n c t i o 0006100 n s f o r a l l w i n d 0006120 o w s u s i n g t h e R E 0006140 G I O N p a c k a g e . A 0006160 l t e r n a t i v e l y , s e 0006200 t t i n g D I S A B L E F L G 0006220 t o a w i n d o w , o r 0006240 l i s t o f w i n d o w s 0006260 , d i s a b l e s a l l t 0006300 h e w i n d o w s u s i n g 0006320 t h e R E G I O N p a c k 0006340 a g e e x c e p t f o r t 0006360 h o s e w i n d o w s o n 0006400 D I S A B L E F L G . T h i 0006420 s a l l o w s t u r n i n g 0006440 o f f p a r t s o f t h 0006460 e s c r e e n t h a t s h 0006500 o u l d o n l y b e a c t 0006520 i v e a t c e r t a i n t 0006540 i m e s . \0 \0 \0 \0 \0 003 ( L I S T 0006560 ( ( P A G E N I L ( F O L 0006600 I O I N F O ( A R A B I C ) 0006620 S T A R T I N G P A G E # 1 ) 0006640 ( 0 0 6 1 2 7 9 2 ) ( 0006660 ( F O L I O N I L ( P A R A 0006700 L O O K S ( Q U A D C E N T 0006720 E R E D ) C H A R L O O K S 0006740 ( S U P E R S C R I P T 0 S 0006760 I Z E 1 0 F A M I L Y M O 0007000 D E R N O V E R L I N E O F 0007020 F S T R I K E O U T O F F 0007040 U N D E R L I N E O F F S L 0007060 O P E R E G U L A R W E I G 0007100 H T M E D I U M ) F O R M A 0007120 T I N F O ( A R A B I C ) ) 0007140 ( 1 7 4 3 6 2 8 8 3 6 ) 0007160 N I L ) ( H E A D I N G N I 0007200 L ( H E A D I N G T Y P E R 0007220 U N N I N G H E A D ) ( 8 4 0007240 7 4 4 4 4 4 3 6 ) N I L ) 0007260 ( T E X T N I L N I L ( 0007300 8 4 9 6 4 5 6 6 0 0 ) N 0007320 I L ) ) ) ( P A G E N I L 0007340 N I L ( 0 0 6 1 2 7 9 2 0007360 ) ( ( F O L I O N I L ( P 0007400 A R A L O O K S ( Q U A D C 0007420 E N T E R E D ) C H A R L O O 0007440 K S ( S U P E R S C R I P T 0007460 0 S I Z E 1 0 F A M I L Y 0007500 M O D E R N O V E R L I N E 0007520 O F F S T R I K E O U T O 0007540 F F U N D E R L I N E O F F 0007560 S L O P E R E G U L A R W 0007600 E I G H T M E D I U M ) ) ( 0007620 2 8 2 4 2 7 2 3 6 ) N I 0007640 L ) ( H E A D I N G N I L 0007660 ( H E A D I N G T Y P E R U N 0007700 N I N G H E A D ) ( 8 4 7 4 0007720 4 4 4 4 3 6 ) N I L ) ( 0007740 T E X T N I L N I L ( 8 4 0007760 9 6 4 5 6 6 0 0 ) N I L 0010000 ) ) ) ( P A G E N I L N I 0010020 L ( 0 0 6 1 2 7 9 2 ) 0010040 ( ( F O L I O N I L ( P A R 0010060 A L O O K S ( Q U A D C E N 0010100 T E R E D ) C H A R L O O K S 0010120 ( S U P E R S C R I P T 0 0010140 S I Z E 1 0 F A M I L Y M 0010160 O D E R N O V E R L I N E O 0010200 F F S T R I K E O U T O F F 0010220 U N D E R L I N E O F F S 0010240 L O P E R E G U L A R W E I 0010260 G H T M E D I U M ) ) ( 2 8 0010300 2 4 2 7 2 3 6 ) N I L ) 0010320 ( H E A D I N G N I L ( H 0010340 E A D I N G T Y P E R U N N I 0010360 N G H E A D ) ( 8 4 7 4 4 0010400 4 4 4 3 6 ) N I L ) ( T E 0010420 X T N I L N I L ( 8 4 9 0010440 6 4 5 6 6 0 0 ) N I L ) ) 0010460 ) ) ) \0 \0 \0 \0 \0 005 \0 006 \0 ( \0 \0 \0 0010500 l 001 310 \0 004 \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 0010520 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010540 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 \0 \v \0 \0 \0 0010560 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 0010620 \0 001 310 \0 021 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 0010640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010660 \0 \0 \0 \0 ( \0 212 \0 212 001 8 \0 006 \0 \0 \0 0010700 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010720 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 0010740 212 001 8 \0 \0 \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 0010760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011000 \0 \0 \0 \0 D \0 \0 \0 \0 001 310 \0 \0 \0 \0 \0 0011020 \0 003 004 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 \0 0011040 \v P A G E H E A D I N G \0 \v R U 0011060 N N I N G H E A D \0 \0 \0 \0 \0 \0 \0 0011100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 \b \0 0011120 026 \0 \b T E R M I N A L \0 \n \0 \0 \0 0011140 \0 \0 \0 \0 \0 \0 027 \0 \t H E L V E T I 0011160 C A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 0011200 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 002 \0 0011220 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 0011240 \0 \0 \0 \0 \0 024 \0 006 M O D E R N \0 \f 0011260 \0 \0 \0 \0 \0 \0 002 \0 \0 024 \0 006 M O D E 0011300 R N \0 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 0011320 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 001 \0 0011340 \0 022 \0 004 L O G O \0 030 \0 \0 \0 \0 \0 \0 0011360 \0 \0 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 005 \0 \0 0011400 \0 \0 \b \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \a 0011420 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 0011440 002 \0 001 \0 \v H R U L E . G E T F N 0011460 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0011500 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 0011520 \0 \0 \0 002 \0 005 \0 \0 \0 002 \0 001 \0 \v H R 0011540 U L E . G E T F N 001 \0 024 \0 006 M O 0011560 D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011600 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 005 \0 0011620 \0 \0 002 \0 001 \0 \v H R U L E . G E T 0011640 F N 001 \0 024 \0 006 M O D E R N \0 \n \0 0011660 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 004 0011700 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 \a \0 \0 \0 \0 0011720 005 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 0011740 \v H R U L E . G E T F N 001 \0 024 \0 0011760 006 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 0012000 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 0012020 \0 005 \0 \0 \0 002 \0 001 \0 \v H R U L E . 0012040 G E T F N 001 \0 024 \0 006 M O D E R N 0012060 \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 0012100 \0 \0 005 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 , \0 0012120 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 006 0012140 \0 \0 \0 \0 003 \0 \0 001 025 \0 \0 \0 \0 004 \0 \0 0012160 \0 \0 \0 002 \0 002 \0 \0 001 374 \0 \0 \0 \0 004 \0 0012200 \0 \0 \0 \0 002 \0 002 \0 \0 \0 n \0 \0 \0 \0 004 0012220 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 z \0 \0 \0 \0 0012240 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 " \0 \0 \0 0012260 \0 004 \0 \0 \0 " \0 \0 \0 \0 \a \0 \0 \0 022 \0 0012300 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 ! 0012320 \0 \0 \0 \0 004 \0 \0 \0 " \0 \0 \0 \0 \a \0 \0 0012340 \0 022 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 001 \0 0012360 \0 \0 034 \0 \0 \0 \0 004 \0 \0 \0 031 \0 \0 \0 \0 0012400 \a \0 \0 \0 022 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0012420 \0 001 \0 \0 \0 035 \0 \0 \0 \0 004 \0 \0 \0 031 \0 0012440 \0 \0 \0 \a \0 \0 \0 022 \0 \0 \0 \0 004 \0 \0 \0 0012460 \0 \0 002 \0 001 \0 \0 \0 037 \0 \0 \0 \0 004 \0 \0 0012500 \0 031 \0 \0 \0 \0 \a \0 \0 \0 022 \0 \0 \0 \0 004 0012520 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 @ \0 \0 \0 \0 0012540 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 0 \0 \0 \0 0012560 \0 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 $ \0 \0 0012600 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 352 \0 0012620 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 ! 0012640 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 0012660 6 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 002 \0 \0 0012700 \0 8 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 002 \0 0012720 \0 \0 : \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 002 0012740 \0 \0 \0 < \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 0012760 002 \0 \0 \0 < \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 0013000 \0 002 \0 \0 \0 ; \0 \0 \0 \0 004 \0 \0 \0 \0 \0 0013020 002 \0 002 \0 \0 \0 \r \0 \0 \0 \0 004 \0 \0 \0 033 0013040 \0 \0 \0 \0 \a \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 0013060 \0 005 \0 \0 \0 \0 002 \0 \0 \0 \v \0 \0 \0 \0 004 0013100 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 366 \0 \0 \0 \0 0013120 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 360 \0 \0 \0 0013140 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 021 \0 \0 0013160 \0 \0 004 \0 \0 \0 \f \0 \0 \0 \0 \a \0 \0 \0 001 0013200 \0 \0 \0 \0 004 \0 \0 \0 \a \0 \0 \0 \0 002 \0 \0 0013220 \0 \v \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 0013240 \0 \0 023 \0 \0 \0 \0 004 \0 \0 \0 \f \0 \0 \0 \0 0013260 \a \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 006 \0 \0 0013300 \0 \0 002 \0 \0 \0 \v \0 \0 \0 \0 004 \0 \0 \0 \0 0013320 \0 002 \0 002 \0 \0 \0 263 \0 \0 \0 \0 004 \0 \0 \0 0013340 \0 \0 002 \0 002 \0 \0 001 f \0 \0 \0 \0 004 \0 \0 0013360 \r e \0 e z 272 0013366