$ od -c -N 50000 [eris]<LispManual>WPwindows.im!14 0000000 \r { B e g i n S u b S e c W 0000020 i n d o w s } \r { T i t l e W 0000040 i n d o w s } \r { T e x t \r \r \r 0000060 { n o t e d o w i n d o w s 0000100 h a v e p e r - w i n d o w 0000120 d r i b b l e f i l e s , 0000140 t e r m t a b l e s , c a r 0000160 e t s ? ( n o t y e t ! 0000200 - - B V M ) } \r \r W i n d o w 0000220 s p r o v i d e a m e a n 0000240 s b y w h i c h d i f f e 0000260 r e n t p r o g r a m s c a 0000300 n s h a r e t h e d i s p 0000320 l a y h a r m o n i o u s l y 0000340 . I n t e r l i s p - D p 0000360 r o v i d e s b o t h i n t 0000400 e r a c t i v e a n d p r o 0000420 g r a m m a t i c c o n s t r 0000440 u c t s f o r c r e a t i n 0000460 g , m o v i n g , r e s h a 0000500 p i n g , o v e r l a p p i n 0000520 g , a n d d e s t r o y i n 0000540 g w i n d o w s i n s u c 0000560 h a w a y t h a t a p 0000600 r o g r a m c a n b e e m 0000620 b e d d e d i n a w i n d 0000640 o w i n a r e l a t i v e 0000660 l y t r a n s p a r e n t f 0000700 a s h i o n . T h i s i s 0000720 i m p l e m e n t e d b y 0000740 h a v i n g e a c h w i n d 0000760 o w s a v e t h e b i t s 0001000 t h a t i t o b s c u r e 0001020 s . T h i s a l l o w s 0001040 e x i s t i n g I n t e r l i 0001060 s p p r o g r a m s t o b 0001100 e u s e d w i t h o u t c 0001120 h a n g e , w h i l e p r o 0001140 v i d i n g a b a s e f o 0001160 r e x p e r i m e n t a t i o 0001200 n w i t h m o r e c o m p 0001220 l e x w i n d o w s e m a n 0001240 t i c s i n n e w a p p l 0001260 i c a t i o n s . \r \r B e c a u 0001300 s e t h e w i n d o w s y 0001320 s t e m a s s u m e s t h a 0001340 t a l l p r o g r a m s f 0001360 o l l o w c e r t a i n c o 0001400 n v e n t i o n s c o n c e r 0001420 n i n g c o n t r o l o f 0001440 t h e s c r e e n , o r d i 0001460 n a r y u s e r p r o g r a 0001500 m s s h o u l d n o t p e 0001520 r f o r m d i s p l a y o p 0001540 e r a t i o n s d i r e c t l 0001560 y o n t h e s c r e e n . 0001600 I n p a r t i c u l a r , 0001620 f u n c t i o n s t h a t 0001640 c a n o p e r a t e d i r e 0001660 c t l y o n b i t m a p s 0001700 ( s u c h a s { f n B I T 0001720 B L T } o r { f n B I T M 0001740 A P B I T } ) s h o u l d n 0001760 o t b e g i v e n { l i s 0002000 p ( S C R E E N B I T M A P ) 0002020 } { i n d e x S C R E E N B I 0002040 T M A P F N } a s t h e 0002060 d e s t i n a t i o n a r g u 0002100 m e n t . A l l i n t e r 0002120 a c t i o n s w i t h t h e 0002140 s c r e e n s h o u l d t 0002160 a k e p l a c e t h r o u g 0002200 h w i n d o w s . \r \r \r F o r 0002220 s p e c i a l i z e d a p p 0002240 l i c a t i o n s t h a t r 0002260 e q u i r e t a k i n g c o 0002300 m p l e t e c o n t r o l o 0002320 f t h e d i s p l a y , t 0002340 h e w i n d o w s y s t e m 0002360 c a n b e t u r n e d o 0002400 f f ( a n d b a c k o n 0002420 a g a i n ) w i t h t h e 0002440 f o l l o w i n g f u n c t i 0002460 o n : \r \r { F n D e f { N a m 0002500 e W I N D O W W O R L D } { 0002520 A r g s F L A G } { T y p e 0002540 n o s p r e a d } \r { T e x t 0002560 \r T h e w i n d o w w o r l 0002600 d i s t u r n e d o n i 0002620 f { a r g F L A G } i s 0002640 { l i s p T } a n d \r o f f 0002660 i f { a r g F L A G } i 0002700 s { l i s p N I L } . { 0002720 f n W I N D O W W O R L D } 0002740 r e t u r n s t h e \r p r e v 0002760 i o u s s t a t e o f t h 0003000 e w i n d o w w o r l d ( 0003020 { l i s p T } o r { l i s 0003040 p N I L } ) . I f \r { f n 0003060 W I N D O W W O R L D } i s 0003100 g i v e n n o a r g u m e 0003120 n t s , i t s i m p l y r 0003140 e t u r n s t h e \r c u r r e 0003160 n t s t a t e w i t h o u t 0003200 a f f e c t i n g t h e w 0003220 i n d o w w o r l d . \r } } \r 0003240 \r \r { B e g i n S u b S e c 0003260 W h a t a r e W i n d o w s 0003300 ? } \r { T i t l e W h a t a 0003320 r e W i n d o w s ? } \r { T e 0003340 x t \r \r A w i n d o w s p e 0003360 c i f i e s a r e g i o n 0003400 o f t h e s c r e e n , a 0003420 d i s p l a y s t r e a m , 0003440 a l o c a t i o n i n a 0003460 n o c c l u s i o n s t a c 0003500 k , f u n c t i o n s t h a 0003520 t g e t c a l l e d w h e 0003540 n t h e w i n d o w u n d 0003560 e r g o e s c e r t a i n a 0003600 c t i o n s , a n d v a r i 0003620 o u s o t h e r i t e m s 0003640 o f i n f o r m a t i o n . 0003660 T h e b a s i c m o d e l 0003700 i s t h a t a w i n d o 0003720 w i s a p a s s i v e c 0003740 o l l e c t i o n o f b i t 0003760 s ( o n t h e s c r e e n 0004000 ) . O n t o p o f t h 0004020 i s b a s i c l e v e l , 0004040 t h e s y s t e m s u p p o 0004060 r t s m a n y d i f f e r e 0004100 n t t y p e s o f w i n d 0004120 o w s t h a t a r e l i n 0004140 k e d t o t h e d a t a 0004160 s t r u c t u r e s d i s p l 0004200 a y e d i n t h e m a n d 0004220 p r o v i d e s e l e c t i 0004240 o n a n d r e d i s p l a y 0004260 i n g r o u t i n e s . I 0004300 n a d d i t i o n , i t i 0004320 s p o s s i b l e f o r t 0004340 h e u s e r t o c r e a t 0004360 e n e w t y p e s o f w 0004400 i n d o w s b y p r o v i d 0004420 i n g s e l e c t i o n a n 0004440 d d i s p l a y i n g f u n 0004460 c t i o n s f o r t h e m . 0004500 \r \r W i n d o w s a r e o r 0004520 d e r e d i n d e p t h f 0004540 r o m u s e r t o b a c k 0004560 g r o u n d . W i n d o w s 0004600 i n f r o n t o f o t h 0004620 e r s o b s c u r e t h e 0004640 l a t t e r . O p e r a t i 0004660 n g o n a w i n d o w g 0004700 e n e r a l l y b r i n g s 0004720 i t t o t h e t o p . \r \r 0004740 W i n d o w s a r e l o c a 0004760 t e d a t a c e r t a i n 0005000 p o s i t i o n o n t h e 0005020 s c r e e n . E a c h w 0005040 i n d o w h a s a c l i p 0005060 p i n g r e g i o n t h a t 0005100 c o n f i n e s a l l b i 0005120 t s s p l a s h e d a t i 0005140 t t o a r e g i o n t h 0005160 a t a l l o w s a b o r d 0005200 e r a r o u n d t h e w i 0005220 n d o w , a n d a t i t l 0005240 e a b o v e i t . \r \r E a c 0005260 h w i n d o w h a s a d 0005300 i s p l a y s t r e a m a s 0005320 s o c i a t e d w i t h i t 0005340 , a n d e i t h e r a w 0005360 i n d o w o r i t s d i s 0005400 p l a y s t r e a m c a n 0005420 b e p a s s e d i n t e r c 0005440 h a n g e a b l y t o a l l 0005460 s y s t e m f u n c t i o n 0005500 s . T h e r e a r e d e 0005520 p e n d e n c i e s b e t w e 0005540 e n t h e w i n d o w a n 0005560 d i t s d i s p l a y s t 0005600 r e a m t h a t t h e u s 0005620 e r s h o u l d n o t d i 0005640 s t u r b . F o r i n s t 0005660 a n c e , t h e d e s t i n 0005700 a t i o n b i t m a p o f 0005720 t h e d i s p l a y s t r e 0005740 a m o f a w i n d o w m 0005760 u s t a l w a y s b e { l 0006000 i s p ( { f n S C R E E N B 0006020 I T M A P } ) } . { i n d e x 0006040 S C R E E N B I T M A P F N } 0006060 T h e X O f f s e t , Y 0006100 O f f s e t , a n d C l i p 0006120 p i n g R e g i o n a t t r i 0006140 b u t e s o f t h e d i s 0006160 p l a y s t r e a m s h o u 0006200 l d n o t b e c h a n g e 0006220 d . A t s o m e f u t u 0006240 r e d a t e , t h e n o t 0006260 i o n s o f w i n d o w a 0006300 n d d i s p l a y s t r e a 0006320 m w i l l b e m e r g e d 0006340 . \r \r W i n d o w s c a n b 0006360 e c r e a t e d b y t h e 0006400 u s e r i n t e r a c t i v 0006420 e l y , u n d e r p r o g r 0006440 a m c o n t r o l , o r m 0006460 a y b e c r e a t e d a u 0006500 t o m a t i c a l l y b y t 0006520 h e s y s t e m . \r \r W i n d 0006540 o w s a r e i n o n e o 0006560 f t w o s t a t e s : " o 0006600 p e n " o r " c l o s e d 0006620 " . I n a n " o p e n " 0006640 s t a t e , a w i n d o w 0006660 i s o n t h e o c c l u 0006700 s i o n s t a c k a n d t 0006720 h e r e f o r e v i s i b l e 0006740 o n t h e s c r e e n ( 0006760 u n l e s s i t i s c o v 0007000 e r e d b y o t h e r o p 0007020 e n w i n d o w s ) a n d 0007040 a c c e s s i b l e t o m o 0007060 u s e o p e r a t i o n s . 0007100 I n a " c l o s e d " s 0007120 t a t e , a w i n d o w i 0007140 s n o t o n t h e o c c 0007160 l u s i o n s t a c k a n d 0007200 t h e r e f o r e n o t v 0007220 i s i b l e a n d n o t a 0007240 c c e s s i b l e t o m o u 0007260 s e o p e r a t i o n s . 0007300 A n y a t t e m p t t o p 0007320 r i n t o r d r a w o n 0007340 a c l o s e d w i n d o w 0007360 w i l l o p e n i t . \r 0007400 \r W h e n I n t e r l i s p - 0007420 D s t a r t s u p , t h e 0007440 r e a r e t h r e e w i n 0007460 d o w s o n t h e s c r e 0007500 e n : a t o p l e v e l 0007520 t y p e s c r i p t w i n d o 0007540 w , a w i n d o w c o n t 0007560 a i n i n g t h e I n t e r 0007600 l i s p - D l o g o , a n d 0007620 a p r o m p t w i n d o w 0007640 . T h e t o p l e v e l 0007660 t y p e s c r i p t w i n d 0007700 o w c o r r e s p o n d s t 0007720 o t h e f i l e { l i s p 0007740 T } i n t h e { l i s p 0007760 E X E C } p r o c e s s w 0010000 h e r e t h e r e a d - e v 0010020 a l - p r i n t l o o p i s 0010040 o p e r a t i n g . T h e 0010060 { t e r m l o g o w i n d 0010100 o w } i s b o u n d t o 0010120 t h e v a r i a b l e { v a 0010140 r L O G O W } { i n d e x L 0010160 O G O W V a r } u n t i l 0010200 i t i s c l o s e d . T 0010220 h e { t e r m p r o m p t 0010240 w i n d o w } i s u s e d 0010260 f o r t h e p r i n t i n g 0010300 o f h e l p o r p r o m 0010320 p t i n g m e s s a g e s . 0010340 I t i s a v a i l a b l e 0010360 t o u s e r p r o g r a m 0010400 s t h r o u g h t h e f o 0010420 l l o w i n g f u n c t i o n 0010440 s : \r \r { V a r D e f { N a 0010460 m e P R O M P T W I N D O W } 0010500 \r { T e x t \r G l o b a l v a 0010520 r i a b l e c o n t a i n i n 0010540 g t h e p r o m p t w i n 0010560 d o w . \r } } \r \r { F n D e f 0010600 { N a m e P R O M P T P R I N 0010620 T } { A r g s E X P } \r { T 0010640 y p e N O S P R E A D } \r { T 0010660 e x t \r P r i n t s { a r g 0010700 E X P } i n t h e p r o m 0010720 p t w i n d o w . \r } } \r \r { 0010740 F n D e f { N a m e C L R P 0010760 R O M P T } { A r g s } \r { T 0011000 e x t \r C l e a r s t h e p 0011020 r o m p t w i n d o w . \r } } 0011040 \r \r \r } { E n d S u b S e c 0011060 W h a t a r e W i n d o w s 0011100 ? } \r \r \r \r { B e g i n S u b 0011120 S e c I n t e r a c t i v e 0011140 W i n d o w O p e r a t i o n 0011160 s } \r { T i t l e I n t e r a 0011200 c t i v e W i n d o w O p e 0011220 r a t i o n s } \r { T e x t \r \r 0011240 \r { T a g I n t e r a c t i v 0011260 e W i n d o w O p s } \r \r \r { n 0011300 o t e t h e r e s h o u l d 0011320 b e a s i m p l e v e r 0011340 s i o n o f t h i s i n 0011360 t h e i n t r o d u c t i o n 0011400 c h a p t e r , w i t h p 0011420 o i n t e r s t o t h i s 0011440 f o r p e o p l e w h o w 0011460 a n t m o r e i n f o } \r \r 0011500 T h e I n t e r l i s p - D 0011520 w i n d o w s y s t e m a l 0011540 l o w s t h e u s e r t o 0011560 i n t e r a c t i v e l y m 0011600 a n i p u l a t e t h e w i 0011620 n d o w s o n t h e s c r 0011640 e e n , m o v i n g t h e m 0011660 a r o u n d , c h a n g i n 0011700 g t h e i r s h a p e , e 0011720 t c . b y s e l e c t i n g 0011740 v a r i o u s o p e r a t i 0011760 o n s f r o m a m e n u . 0012000 P r o g r a m m a t i c v 0012020 e r s i o n s o f t h e s e 0012040 o p e r a t i o n s a r e 0012060 d e s c r i b e d o n { P a 0012100 g e R e f T a g P r o g r a 0012120 m m a t i c W i n d o w O p s } 0012140 . \r \r F o r m o s t w i n 0012160 d o w s , d e p r e s s i n g 0012200 t h e { l i s p R I G H T 0012220 } m o u s e k e y w h e n 0012240 t h e c u r s o r i s i 0012260 n s i d e a w i n d o w d 0012300 u r i n g I / O w a i t w 0012320 i l l c a u s e t h e w i 0012340 n d o w t o c o m e t o 0012360 t h e t o p a n d a m e 0012400 n u o f w i n d o w o p e 0012420 r a t i o n s t o a p p e a 0012440 r . I f a c o m m a n d 0012460 i s s e l e c t e d f r o 0012500 m t h i s m e n u ( b y 0012520 r e l e a s i n g t h e r i 0012540 g h t m o u s e k e y w h 0012560 i l e t h e c u r s o r i 0012600 s o v e r a c o m m a n d 0012620 ) , t h e s e l e c t e d 0012640 o p e r a t i o n w i l l b 0012660 e a p p l i e d t o t h e 0012700 w i n d o w i n w h i c h 0012720 t h e m e n u w a s b r 0012740 o u g h t u p . ( I t i 0012760 s p o s s i b l e f o r a 0013000 n a p p l i c a t i o n s p 0013020 r o g r a m t o r e d e f i 0013040 n e t h e a c t i o n o f 0013060 t h e { l i s p R I G H T 0013100 } m o u s e k e y . I n 0013120 t h e s e c a s e s , t h 0013140 e r e i s a c o n v e n t 0013160 i o n t h a t t h e d e f 0013200 a u l t c o m m a n d m e n 0013220 u m a y b e b r o u g h t 0013240 u p b y d e p r e s s i n 0013260 g t h e { l i s p R I G H 0013300 T } k e y w h e n t h e 0013320 c u r s o r i s i n t h e 0013340 h e a d e r o r b o r d e 0013360 r o f a w i n d o w . 0013400 S e e { P a g e R e f ( W i 0013420 n d o w P r o p e r t y ) R 0013440 I G H T B U T T O N F N } ) 0013460 T h e o p e r a t i o n s a 0013500 r e : \r \r \r { D e f { T y p e 0013520 ( W i n d o w M e n u C o 0013540 m m a n d ) } \r { N a m e C L 0013560 E A R } \r { T e x t \r C l e a r 0013600 s t h e w i n d o w a n d 0013620 r e p o s i t i o n s i t 0013640 t o t h e l e f t m a r g 0013660 i n o f t h e f i r s t 0013700 l i n e o f t e x t ( b e 0013720 l o w t h e u p p e r l e 0013740 f t c o r n e r o f t h e 0013760 w i n d o w b y t h e a 0014000 m o u n t o f t h e f o n 0014020 t a s c e n t ) . \r } } \r \r \r 0014040 \r { D e f { T y p e ( W i n 0014060 d o w M e n u C o m m a n d 0014100 ) } \r { N a m e C L O S E } \r 0014120 { T e x t \r C l o s e s t h e 0014140 w i n d o w , i . e , r e 0014160 m o v e s i t f r o m t h 0014200 e s c r e e n . ( S e e 0014220 { f n C L O S E W } , { P a 0014240 g e R e f F n C L O S E W } 0014260 . ) \r } } \r \r \r \r { D e f { T 0014300 y p e ( W i n d o w M e n u 0014320 C o m m a n d ) } \r { N a m e 0014340 B U R Y } \r { T e x t \r P u t 0014360 s t h e w i n d o w o n 0014400 t h e b o t t o m o f t h 0014420 e o c c l u s i o n s t a c 0014440 k , t h e r e b y e x p o s 0014460 i n g a n y w i n d o w s 0014500 t h a t i t w a s h i d i 0014520 n g . \r } } \r \r \r \r { D e f { 0014540 T y p e ( W i n d o w M e n 0014560 u C o m m a n d ) } \r { N a m 0014600 e M O V E } \r { T e x t \r M o 0014620 v e s t h e w i n d o w t 0014640 o a l o c a t i o n s p e 0014660 c i f i e d b y d e p r e s 0014700 s i n g a n d t h e n r e 0014720 l e a s i n g t h e { l i s 0014740 p L E F T } k e y . D u 0014760 r i n g t h i s t i m e a 0015000 g h o s t f r a m e w i l 0015020 l i n d i c a t e w h e r e 0015040 t h e w i n d o w w i l l 0015060 r e a p p e a r w h e n t 0015100 h e k e y i s r e l e a s 0015120 e d . ( S e e { f n G E 0015140 T B O X P O S I T I O N } , { 0015160 P a g e R e f F n G E T B O 0015200 X P O S I T I O N } . ) \r } } \r 0015220 \r \r \r { D e f { T y p e ( W 0015240 i n d o w M e n u C o m m a 0015260 n d ) } \r { N a m e S H A P E 0015300 } \r { T e x t \r A l l o w s t 0015320 h e u s e r t o s p e c i 0015340 f y a n e w r e g i o n 0015360 f o r t h e e x i s t i n g 0015400 w i n d o w c o n t e n t s 0015420 . I f t h e { l i s p 0015440 L E F T } k e y i s u s e 0015460 d t o s p e c i f y t h e 0015500 n e w r e g i o n , t h e 0015520 r e s h a p e d w i n d o w 0015540 c a n b e p l a c e d a 0015560 n y w h e r e . I f t h e 0015600 { l i s p M I D D L E } k 0015620 e y i s u s e d , t h e 0015640 c u r s o r w i l l s t a r 0015660 t o u t t u g g i n g a t 0015700 t h e n e a r e s t c o r 0015720 n e r o f t h e e x i s t 0015740 i n g w i n d o w , w h i c 0015760 h i s u s e f u l f o r 0016000 m a k i n g s m a l l a d j 0016020 u s t m e n t s i n a w i 0016040 n d o w t h a t i s a l r 0016060 e a d y p o s i t i o n e d 0016100 c o r r e c t l y . T h i s 0016120 i s d o n e b y c a l l i 0016140 n g t h e f u n c t i o n 0016160 { f n S H A P E W } . \r } } \r 0016200 \r \r \r { D e f { T y p e ( W 0016220 i n d o w M e n u C o m m a 0016240 n d ) } \r { N a m e R E D I S 0016260 P L A Y } \r { T e x t \r R e d i 0016300 s p l a y s t h e w i n d o 0016320 w . ( S e e { f n R E D 0016340 I S P L A Y W } , { P a g e R 0016360 e f F n R E D I S P L A Y W 0016400 } . ) \r } } \r \r \r \r { D e f { 0016420 T y p e ( W i n d o w M e n 0016440 u C o m m a n d ) } \r { N a m 0016460 e P A I N T } \r { T e x t \r S 0016500 w i t c h e s t o a m o d 0016520 e i n w h i c h t h e c 0016540 u r s o r c a n b e u s e 0016560 d l i k e a p a i n t b 0016600 r u s h t o d r a w i n 0016620 a w i n d o w . T h i s 0016640 i s u s e f u l f o r m a 0016660 k i n g n o t e s o n a 0016700 w i n d o w . W h i l e t 0016720 h e { l i s p L E F T } k 0016740 e y i s d o w n , b i t s 0016760 a r e a d d e d . W h i 0017000 l e t h e { l i s p M I D 0017020 D L E } k e y i s d o w n 0017040 , t h e y a r e e r a s e 0017060 d . T h e { l i s p R I 0017100 G H T } b u t t o n p o p s 0017120 u p a c o m m a n d m e 0017140 n u t h a t a l l o w s c 0017160 h a n g i n g o f t h e b 0017200 r u s h s h a p e , s i z e 0017220 a n d s h a d e , c h a n 0017240 g i n g t h e m o d e o f 0017260 c o m b i n i n g t h e b 0017300 r u s h w i t h t h e e x 0017320 i s t i n g b i t s , o r 0017340 s t o p p i n g p a i n t m 0017360 o d e . \r \r P a i n t m o d e 0017400 a l s o c o n t a i n s a 0017420 h a r d c o p y c o m m a n 0017440 d t h a t m a k e s a P 0017460 r e s s f i l e o f t h e 0017500 b i t s i n a w i n d o 0017520 w a n d s e n d s i t t 0017540 o t h e p r i n t e r . 0017560 T h e r e a r e l i m i t a 0017600 t i o n s o n t h e c o m 0017620 p l e x i t y a n d s i z e 0017640 o f t h e b i t m a p s 0017660 t h a t s o m e p r i n t e 0017700 r s w i l l p r i n t . 0017720 I f t h e p r i n t e r d 0017740 o e s n o t p r i n t t h 0017760 e e n t i r e w i n d o w 0020000 c o r r e c t l y , t r y a 0020020 s m a l l e r w i n d o w 0020040 o r o n e w i t h f e w e 0020060 r b l a c k b i t s i n 0020100 i t . T o g e t a h a 0020120 r d c o p y o f a n a r b 0020140 i t r a r y p a r t o f t 0020160 h e s c r e e n t h a t c 0020200 r o s s e s w i n d o w b o 0020220 u n d a r i e s , u s e t h 0020240 e { l i s p H A R D C O P Y 0020260 } c o m m a n d i n t h e 0020300 b a c k g r o u n d m e n u 0020320 ( b e l o w ) . \r } } \r \r \r \r 0020340 { i n d e x * P R I M A R Y * 0020360 S N A P ( W i n d o w M e 0020400 n u C o m m a n d ) } \r \r { D 0020420 e f { T y p e ( W i n d o w 0020440 M e n u C o m m a n d ) } \r 0020460 { N a m e S N A P } \r { T e x 0020500 t \r P r o m p t s f o r a 0020520 r e g i o n o n t h e s c 0020540 r e e n a n d m a k e s a 0020560 n e w w i n d o w w h o s 0020600 e b i t s a r e a s n a 0020620 p s h o t o f t h e b i t 0020640 s c u r r e n t l y i n t 0020660 h a t r e g i o n . U s e 0020700 f u l f o r s a v i n g s 0020720 o m e p a r t i c u l a r l y 0020740 c h o i c e i m a g e b e 0020760 f o r e t h e w i n d o w 0021000 i m a g e c h a n g e s . \r } 0021020 } \r \r \r O c c a s i o n a l l y 0021040 , a u s e r w i l l h a 0021060 v e a n u m b e r o f l 0021100 a r g e w i n d o w s o n 0021120 t h e s c r e e n , m a k i 0021140 n g i t d i f f i c u l t 0021160 t o a c c e s s t h o s e 0021200 w i n d o w s b e i n g u 0021220 s e d . T o h e l p w i 0021240 t h t h e p r o b l e m o 0021260 f s c r e e n s p a c e m 0021300 a n a g e m e n t , t h e I 0021320 n t e r l i s p - D w i n d o 0021340 w s y s t e m a l l o w s 0021360 t h e c r e a t i o n o f 0021400 { i t I c o n s } . A n 0021420 i c o n i s a s m a l l 0021440 r e c t a n g l e ( c o n t a 0021460 i n i n g t e x t o r a 0021500 b i t m a p ) w h i c h i s 0021520 a " s h r u n k e n - d o w 0021540 n " f o r m o f a p a r 0021560 t i c u l a r w i n d o w . 0021600 U s i n g t h e { l i s p 0021620 S H R I N K } a n d { l i 0021640 s p E X P A N D } c o m m a 0021660 n d s , t h e u s e r c a 0021700 n s h r i n k w i n d o w s 0021720 n o t c u r r e n t l y b 0021740 e i n g u s e d i n t o i 0021760 c o n s , a n d q u i c k l 0022000 y r e s t o r e t h e o r 0022020 i g i n a l w i n d o w s a 0022040 t a n y t i m e . \r \r \r \r { 0022060 D e f { T y p e ( W i n d o 0022100 w M e n u C o m m a n d ) } 0022120 \r { N a m e S H R I N K } \r { 0022140 T e x t \r R e m o v e s t h e 0022160 w i n d o w f r o m t h e 0022200 s c r e e n a n d b r i n 0022220 g s u p i t s { t e r m 0022240 i c o n } . ( S e e { f n 0022260 S H R I N K W } , { P a g e 0022300 R e f F n S H R I N K W } . 0022320 ) T h e w i n d o w c a 0022340 n b e r e s t o r e d b y 0022360 s e l e c t i n g { l i s p 0022400 E X P A N D } f r o m t h 0022420 e w i n d o w c o m m a n d 0022440 m e n u o f t h e i c o 0022460 n . \r } } \r \r \r I f t h e { 0022500 l i s p R I G H T } b u t t 0022520 o n i s p r e s s e d w h 0022540 i l e t h e c u r s o r i 0022560 s i n a n { t e r m i c 0022600 o n } , t h e w i n d o w 0022620 c o m m a n d m e n u w i l 0022640 l c o n t a i n a s l i g 0022660 h t l y d i f f e r e n t s 0022700 e t o f c o m m a n d s . 0022720 T h e { l i s p R E D I S 0022740 P L A Y } a n d { l i s p 0022760 C L E A R } c o m m a n d s 0023000 a r e r e m o v e d , a n d 0023020 t h e { l i s p S H R I N 0023040 K } c o m m a n d i s r e 0023060 p l a c e d w i t h t h e 0023100 { l i s p E X P A N D } c o 0023120 m m a n d : \r \r \r { D e f { T 0023140 y p e ( W i n d o w M e n u 0023160 C o m m a n d ) } \r { N a m e 0023200 E X P A N D } \r { T e x t \r R 0023220 e s t o r e s t h e w i n d 0023240 o w a s s o c i a t e d w i 0023260 t h t h i s i c o n a n d 0023300 r e m o v e s t h e i c o 0023320 n . ( S e e { f n E X P 0023340 A N D W } , { P a g e R e f 0023360 F n E X P A N D W } . ) \r } } 0023400 \r \r \r \r I f t h e { l i s p 0023420 R I G H T } b u t t o n i 0023440 s p r e s s e d w h i l e 0023460 t h e c u r s o r i s n o 0023500 t i n a n y w i n d o w , 0023520 a " b a c k g r o u n d m 0023540 e n u " a p p e a r s w i t 0023560 h t h e f o l l o w i n g 0023600 o p e r a t i o n s : \r \r \r { D 0023620 e f { T y p e ( W i n d o w 0023640 M e n u C o m m a n d ) } \r 0023660 { N a m e S A V E V M } \r { T 0023700 e x t \r C a l l s t h e f u 0023720 n c t i o n { f n S A V E V 0023740 M } ( { P a g e R e f F n 0023760 S A V E V M } ) , w h i c h 0024000 w r i t e s o u t a l l o 0024020 f t h e d i r t y p a g e 0024040 s o f t h e v i r t u a l 0024060 m e m o r y . A f t e r 0024100 a { f n S A V E V M } , a 0024120 n d u n t i l t h e p a g 0024140 e f a u l t h a n d l e r i 0024160 s n e x t f o r c e d t o 0024200 w r i t e o u t a d i r 0024220 t y p a g e , y o u r v i 0024240 r t u a l m e m o r y i m a 0024260 g e w i l l b e c o n t i 0024300 n u a b l e ( a s o f t h 0024320 e { f n S A V E V M } ) s 0024340 h o u l d y o u e x p e r i 0024360 e n c e a s y s t e m c r 0024400 a s h o r o t h e r d i s 0024420 a s t e r . \r } } \r \r \r \r { D e 0024440 f { T y p e ( W i n d o w 0024460 M e n u C o m m a n d ) } \r { 0024500 N a m e S N A P } \r { T e x t 0024520 \r T h e s a m e a s t h e 0024540 { l i s p S N A P } c o m 0024560 m a n d d e s c r i b e d a 0024600 b o v e . \r } } \r \r \r \r { D e f 0024620 { T y p e ( W i n d o w M 0024640 e n u C o m m a n d ) } \r { N 0024660 a m e H A R D C O P Y } \r { T 0024700 e x t \r P r o m p t s f o r 0024720 a r e g i o n o n t h e 0024740 s c r e e n , m a k e s a 0024760 p r e s s f i l e a n d s 0025000 e n d s i t t o t h e p 0025020 r i n t e r . \r \r T h e p r i 0025040 n t i n g i s d o n e w i 0025060 t h { f n H A R D C O P Y W 0025100 } ( { P a g e R e f F n H 0025120 A R D C O P Y W } ) , s o i 0025140 f { v a r F U L L P R E S S 0025160 P R I N T E R } i s n o n - 0025200 { l i s p N I L } , t h e 0025220 i m a g e w i l l b e s e 0025240 n t t h e r e , r a t h e r 0025260 t h a n t o { l i s p ( 0025300 P R I N T I N G H O S T ) } . \r 0025320 \r \r { B e g i n N o t e } \r t 0025340 h e f o l l o w i n g c o n 0025360 t r a d i c t s d o c f o r 0025400 H A R D C O P Y W . ? ? ? 0025420 \r \r I f t h e r e g i o n 0025440 i s b i g g e r t h a n w 0025460 h a t a D o v e r c a n 0025500 n o r m a l l y p r i n t , 0025520 a n d F U L L P R E S S P R I 0025540 N T E R i s n o n - N I L , 0025560 t h e s y s t e m w i l l 0025600 a t t e m p t t o s e n d 0025620 a r e d u c e d i m a g e 0025640 t o F U L L P R E S S P R I 0025660 N T E R . F U L L P R E S S P 0025700 R I N T E R i s i n i t i a 0025720 l l y N I L ; t h e s i t 0025740 e - d e p e n d e n t I N I T 0025760 f i l e s h o u l d s e t 0026000 i t a p p r o p r i a t e l 0026020 y i f y o u h a v e a 0026040 " f u l l - p r e s s " p r i 0026060 n t e r a v a i l a b l e ( 0026100 r u n n i n g t h e " P r e 0026120 s s " s e r v e r r a t h e 0026140 r t h a n " S p r u c e " 0026160 s e r v e r . ) \r { E n d N o 0026200 t e } \r } } \r \r \r S o m e b u 0026220 i l t - i n f a c i l i t i e 0026240 s a n d L i s p u s e r s 0026260 p a c k a g e s a d d c o m 0026300 m a n d s t o t h e b a c 0026320 k g r o u n d m e n u , t o 0026340 p r o v i d e a n e a s y 0026360 w a y o f c a l l i n g 0026400 t h e d i f f e r e n t f a 0026420 c i l i t i e s . T h e u 0026440 s e r c a n d e t e r m i n 0026460 e w h a t t h e s e n e w 0026500 c o m m a n d s d o b y 0026520 h o l d i n g t h e { l i s 0026540 p R I G H T } b u t t o n 0026560 d o w n f o r a f e w s 0026600 e c o n d s o v e r t h e 0026620 i t e m i n q u e s t i o n 0026640 ; a n e x p l a n a t o r 0026660 y m e s s a g e w i l l b 0026700 e p r i n t e d i n t h e 0026720 p r o m p t w i n d o w . \r 0026740 \r \r \r T h e f o l l o w i n g 0026760 f u n c t i o n s p r o v i 0027000 d e a f u n c t i o n a l 0027020 i n t e r f a c e t o t h e 0027040 i n t e r a c t i v e w i n 0027060 d o w o p e r a t i o n s s 0027100 o t h a t u s e r p r o g 0027120 r a m s c a n c a l l t h 0027140 e m d i r e c t l y . \r \r \r { 0027160 F n D e f { N a m e D O W I 0027200 N D O W C O M } { A r g s W 0027220 I N D O W } \r { T e x t \r I f 0027240 { a r g W I N D O W } i s 0027260 { l i s p N I L } , i t c 0027300 a l l s { f n D O B A C K G 0027320 R O U N D C O M } . \r \r I f { 0027340 a r g W I N D O W } i s a 0027360 { l i s p W I N D O W } t 0027400 h a t d o e s n ' t h a v e 0027420 a { l i s p D O W I N D O 0027440 W C O M F N } { i n d e x D O 0027460 W I N D O W C O M F N ( W i n 0027500 d o w P r o p e r t y ) } w 0027520 i n d o w p r o p e r t y , 0027540 i t b r i n g s u p t h e 0027560 w i n d o w c o m m a n d 0027600 m e n u . T h e i n i t i 0027620 a l i t e m s i n t h e s 0027640 e m e n u s a r e d e s c 0027660 r i b e d a b o v e . I f 0027700 t h e u s e r s e l e c t 0027720 s o n e o f t h e i t e 0027740 m s f r o m t h e p r o v 0027760 i d e d m e n u , t h a t 0030000 i t e m i s { l i s p A P 0030020 P L Y } e d t o { a r g W 0030040 I N D O W } . \r \r I f { a r g 0030060 W I N D O W } i s a { l 0030100 i s p W I N D O W } t h a t 0030120 h a s a { l i s p D O W 0030140 I N D O W C O M F N } w i n d 0030160 o w p r o p e r t y , i t 0030200 { l i s p A P P L Y } s t h 0030220 a t p r o p e r t y t o { 0030240 l i s p W I N D O W } . S 0030260 h r u n k e n w i n d o w s 0030300 h a v e a { l i s p D O W 0030320 I N D O W C O M F N } p r o p 0030340 e r t y t h a t p r e s e n 0030360 t s a w i n d o w c o m m 0030400 a n d m e n u t h a t c o 0030420 n t a i n s " e x p a n d " 0030440 i n s t e a d o f " s h r i 0030460 n k " . \r \r I f { a r g W I 0030500 N D O W } i s n o t a { 0030520 l i s p W I N D O W } o r 0030540 { l i s p N I L } , { f n 0030560 D O W I N D O W C O M } r e t 0030600 u r n s . \r } } \r \r \r { F n D e 0030620 f { N a m e D O B A C K G R 0030640 O U N D C O M } \r { T e x t \r B 0030660 r i n g s u p t h e b a c 0030700 k g r o u n d m e n u . T 0030720 h e i n i t i a l i t e m s 0030740 i n t h i s m e n u a r 0030760 e d e s c r i b e d a b o v 0031000 e . I f t h e u s e r 0031020 s e l e c t s o n e o f t 0031040 h e i t e m s f r o m t h 0031060 e m e n u , t h a t i t e 0031100 m i s { l i s p E V A L } 0031120 e d . \r } } \r \r { T e x t T h 0031140 e v a r i a b l e s { v a r 0031160 B A C K G R O U N D B U T T O 0031200 N E V E N T F N } , { V A R 0031220 B A C K G R O U N D C U R S O R 0031240 I N F N } , { V A R B A C K 0031260 G R O U N D C U R S O R O U T F 0031300 N } a n d { v a r B A C K 0031320 G R O U N D C U R S O R M O V E 0031340 D F N } p r o v i d e a w 0031360 a y o f t a k i n g a c t 0031400 i o n w h e n t h e r e i 0031420 s c u r s o r a c t i o n 0031440 a n d t h e c u r s o r i 0031460 n i n t h e b a c k g r o 0031500 u n d . I f s e t t o 0031520 t h e n a m e o f a f u 0031540 n c t i o n , t h a t f u n 0031560 c t i o n w i l l b e c a 0031600 l l e d , r e s p e c t i v e 0031620 l y , w h e n e v e r t h e 0031640 c u r s o r i s i n t h 0031660 e b a c k g r o u n d a n d 0031700 a b u t t o n c h a n g e 0031720 s , w h e n t h e c u r s 0031740 o r m o v e s i n t o t h 0031760 e b a c k g r o u n d f r o 0032000 m a w i n d o w , w h e n 0032020 t h e c u r s o r m o v e 0032040 d f r o m t h e b a c k g 0032060 r o u n d i n t o a w i n 0032100 d o w a n d w h e n t h e 0032120 c u r s o r m o v e s f r 0032140 o m o n e p l a c e i n 0032160 t h e b a c k g r o u n d t 0032200 o a n o t h e r . } \r \r \r \r \r 0032220 \r \r } { E n d S u b S e c I 0032240 n t e r a c t i v e W i n d o 0032260 w O p e r a t i o n s } \r \r \r 0032300 \r \r \r { B e g i n S u b S e c 0032320 C h a n g i n g E n t r i e 0032340 s o n t h e W i n d o w 0032360 C o m m a n d M e n u s } \r { 0032400 T i t l e C h a n g i n g E 0032420 n t r i e s o n t h e W i 0032440 n d o w C o m m a n d M e n 0032460 u s } \r { T e x t \r \r \r { n o t 0032500 e t h e f o r m a t o f 0032520 t h e s e c o m m a n d l i 0032540 s t s i s t o t a l l y i 0032560 n c o n s i s t a n t ! D o 0032600 e s D O W I N D O W C O M a 0032620 c t u a l l y r e d e f i n e 0032640 t h e W H E N S E L E C T E 0032660 D F N o f t h e m e n u , 0032700 s o i t w i l l A P P L 0032720 Y C A D R o f t h e l i 0032740 s t r a t h e r t h a n E 0032760 V A L ? ? - - - m j s } \r \r 0033000 \r T h e w i n d o w c o m m 0033020 a n d m e n u s f o r u n 0033040 s h r u n k e n w i n d o w s 0033060 , s h r u n k e n w i n d o 0033100 w s , a n d t h e b a c k 0033120 g r o u n d a r e c a c h e 0033140 d i n t h e v a r i a b l 0033160 e s { v a r W i n d o w M e 0033200 n u } , { v a r I c o n W i 0033220 n d o w M e n u } , a n d { 0033240 v a r B a c k g r o u n d M e 0033260 n u } . T o c h a n g e 0033300 t h e e n t r i e s i n t 0033320 h e s e m e n u s , t h e 0033340 u s e r s h o u l d c h a n 0033360 g e t h e c h a n g e t h 0033400 e m e n u " c o m m a n d 0033420 l i s t s " i n t h e v a 0033440 r i a b l e s { v a r W i n 0033460 d o w M e n u C o m m a n d s } 0033500 , { v a r I c o n W i n d o 0033520 w M e n u C o m m a n d s } , 0033540 a n d { v a r B a c k g r o 0033560 u n d M e n u C o m m a n d s } 0033600 , a n d s e t t h e a p 0033620 p r o p r i a t e m e n u v 0033640 a r i a b l e t o a n o n 0033660 - { l i s p M E N U } , s o 0033700 t h e m e n u w i l l b 0033720 e r e c r e a t e d . T h 0033740 i s p r o v i d e s a w a 0033760 y o f a d d i n g c o m m 0034000 a n d s t o t h e m e n u 0034020 , o f c h a n g i n g i t 0034040 s f o n t o r o f r e s 0034060 t o r i n g t h e m e n u 0034100 i f i t g e t s c l o b b 0034120 e r e d . T h e " c o m m 0034140 a n d l i s t s " a r e i 0034160 n t h e f o r m a t o f 0034200 t h e { l i s p I T E M S } 0034220 f i e l d o f a m e n u 0034240 ( s e e { P a g e R e f ( 0034260 M e n u F i e l d ) I T E M 0034300 S } ) , e x c e p t a s s 0034320 p e c i f i e d b e l o w . \r 0034340 \r N o t e : c o m m a n d 0034360 m e n u s a r e r e c r e a 0034400 t e d u s i n g t h e c u 0034420 r r e n t v a l u e o f { 0034440 v a r M E N U F O N T } . { i 0034460 n d e x M E N U F O N T V a 0034500 r } \r \r \r { V a r D e f { N a 0034520 m e W i n d o w M e n u } } 0034540 \r { V a r D e f { N a m e W 0034560 i n d o w M e n u C o m m a n d 0034600 s } \r { T e x t \r T h e m e n 0034620 u t h a t i s b r o u g h 0034640 t u p i n r e s p o n s e 0034660 t o a r i g h t b u t t 0034700 o n i n a n u n s h r u n 0034720 k e n w i n d o w i s s t 0034740 o r e d o n t h e v a r i 0034760 a b l e { v a r W i n d o w 0035000 M e n u } . I f { v a r 0035020 W i n d o w M e n u } i s s 0035040 e t t o a n o n - { l i s 0035060 p M E N U } , t h e m e n 0035100 u w i l l b e r e c r e a 0035120 t e d f r o m t h e l i s 0035140 t o f c o m m a n d s { v 0035160 a r W i n d o w M e n u C o m 0035200 m a n d s } . T h e { f n 0035220 C A D R } o f e a c h c 0035240 o m m a n d a d d e d t o 0035260 { v a r W i n d o w M e n u C 0035300 o m m a n d s } s h o u l d 0035320 b e a f u n c t i o n n a 0035340 m e t h a t w i l l b e 0035360 { f n A P P L Y } e d t o 0035400 t h e w i n d o w . \r } } \r \r 0035420 \r \r { V a r D e f { N a m e 0035440 I c o n W i n d o w M e n u } 0035460 } \r { V a r D e f { N a m e 0035500 I c o n W i n d o w M e n u C o 0035520 m m a n d s } \r { T e x t \r T h 0035540 e m e n u t h a t i s b 0035560 r o u g h t u p i n r e s 0035600 p o n s e t o a r i g h t 0035620 b u t t o n i n a s h r 0035640 u n k e n w i n d o w i s 0035660 s t o r e d o n t h e v a 0035700 r i a b l e { v a r I c o n 0035720 W i n d o w M e n u } . I f 0035740 i t i s { l i s p N I L 0035760 } , i t i s r e c r e a t 0036000 e d f r o m t h e l i s t 0036020 o f c o m m a n d s { v a 0036040 r I c o n W i n d o w M e n u 0036060 C o m m a n d s } . T h e 0036100 { f n C A D R } o f e a c 0036120 h c o m m a n d a d d e d 0036140 a f u n c t i o n n a m e 0036160 t h a t w i l l b e { f n 0036200 A P P L Y } e d t o t h e 0036220 w i n d o w . \r } } \r \r \r \r { 0036240 V a r D e f { N a m e B a c 0036260 k g r o u n d M e n u } } \r { 0036300 V a r D e f { N a m e B a c 0036320 k g r o u n d M e n u C o m m a 0036340 n d s } \r { T e x t \r T h e m 0036360 e n u t h a t i s b r o u 0036400 g h t u p i n r e s p o n 0036420 s e t o a r i g h t b u 0036440 t t o n i n t h e b a c k 0036460 g r o u n d i s s t o r e d 0036500 o n t h e v a r i a b l e 0036520 { v a r B a c k g r o u n d 0036540 M e n u } . I f i t i s 0036560 { l i s p N I L } , i t 0036600 i s r e c r e a t e d f r o 0036620 m t h e l i s t o f c o 0036640 m m a n d s { v a r B a c k 0036660 g r o u n d M e n u C o m m a n 0036700 d s } . T h e { f n C A 0036720 D R } o f e a c h c o m m 0036740 a n d a d d e d t o { v a 0036760 r B a c k g r o u n d M e n u 0037000 C o m m a n d s } s h o u l d 0037020 b e a f o r m t h a t 0037040 w i l l b e { f n E V A L 0037060 } e d . \r } } \r \r } { E n d S 0037100 u b S e c C h a n g i n g E 0037120 n t r i e s o n t h e W i 0037140 n d o w C o m m a n d M e n 0037160 u s } \r \r \r \r \r \r { B e g i n 0037200 S u b S e c C o o r d i n a t 0037220 e S y s t e m s } \r { T i t l 0037240 e C o o r d i n a t e S y s 0037260 t e m s } \r { T e x t \r \r \r O n 0037300 e w a y o f t h i n k i n 0037320 g o f a w i n d o w i s 0037340 a s a " v i e w " o n t 0037360 o a n o b j e c t ( e . g 0037400 . a g r a p h , a f i l 0037420 e , a p i c t u r e , e t 0037440 c . ) T h e o b j e c t 0037460 h a s i t s o w n n a t u 0037500 r a l c o o r d i n a t e s 0037520 y s t e m i n t e r m s o 0037540 f w h i c h i t s s u b p 0037560 a r t s a r e l a i d o u 0037600 t . W h e n t h e w i n 0037620 d o w i s c r e a t e d , 0037640 t h e X O f f s e t a n d 0037660 Y O f f s e t o f t h e w 0037700 i n d o w ' s d i s p l a y 0037720 s t r e a m a r e s e t t 0037740 o m a p t h e o r i g i n 0037760 o f t h e o b j e c t ' s 0040000 c o o r d i n a t e s y s t 0040020 e m i n t o t h e l o w e 0040040 r l e f t p o i n t o f 0040060 t h e w i n d o w ' s i n t 0040100 e r i o r r e g i o n . A 0040120 t t h e s a m e t i m e , 0040140 t h e C l i p p i n g R e g 0040160 i o n o f t h e d i s p l 0040200 a y s t r e a m i s s e t 0040220 t o c o r r e s p o n d t 0040240 o t h e i n t e r i o r o 0040260 f t h e w i n d o w . F 0040300 r o m t h e n o n , t h e 0040320 d i s p l a y s t r e a m ' 0040340 s c o o r d i n a t e s y s 0040360 t e m i s t r a n s l a t e 0040400 d a n d i t s c l i p p i 0040420 n g r e g i o n a d j u s t 0040440 e d w h e n e v e r t h e 0040460 w i n d o w i s m o v e d , 0040500 s c r o l l e d o r r e s 0040520 h a p e d . \r \r T h e r e a r 0040540 e s e v e r a l d i s t i n 0040560 c t r e g i o n s a s s o c 0040600 i a t e d w i t h a w i n 0040620 d o w v i e w i n g a n o 0040640 b j e c t . F i r s t , t 0040660 h e r e i s a r e g i o n 0040700 i n t h e w i n d o w ' s 0040720 c o o r d i n a t e s y s t 0040740 e m t h a t c o n t a i n s 0040760 t h e c o m p l e t e i m 0041000 a g e o f t h e o b j e c 0041020 t . T h i s r e g i o n 0041040 ( w h i c h c a n o n l y 0041060 b e d e t e r m i n e d b y 0041100 a p p l i c a t i o n p r o 0041120 g r a m s w i t h k n o w l 0041140 e d g e o f t h e " s e m 0041160 a n t i c s " o f t h e o 0041200 b j e c t ) i s s t o r e d 0041220 a s t h e { l i s p E X 0041240 T E N T } { i n d e x E X T E 0041260 N T ( W i n d o w P r o p e 0041300 r t y ) } p r o p e r t y o 0041320 f t h e w i n d o w ( { P 0041340 a g e R e f ( W i n d o w P 0041360 r o p e r t y ) E X T E N T } 0041400 ) . S e c o n d , t h e 0041420 c l i p p i n g r e g i o n 0041440 o f t h e w i n d o w ( o 0041460 b t a i n a b l e w i t h t 0041500 h e f u n c t i o n { f n 0041520 D S P C L I P P I N G R E G I O 0041540 N } ) s p e c i f i e s t h 0041560 e p o r t i o n o f t h e 0041600 o b j e c t t h a t i s 0041620 a c t u a l l y v i s i b l e 0041640 i n t h e w i n d o w . 0041660 T h i s i s s e t s o 0041700 t h a t i t c o r r e s p o 0041720 n d s t o t h e i n t e r 0041740 i o r o f t h e w i n d o 0041760 w ( n o t i n c l u d i n g 0042000 t h e b o r d e r o r t 0042020 i t l e ) . F i n a l l y , 0042040 t h e r e i s t h e r e 0042060 g i o n o n t h e s c r e 0042100 e n t h a t s p e c i f i e 0042120 s t h e t o t a l a r e a 0042140 t h a t t h e w i n d o w 0042160 o c c u p i e s , i n c l u 0042200 d i n g t h e b o r d e r 0042220 a n d t i t l e . T h i s 0042240 r e g i o n ( i n s c r e 0042260 e n c o o r d i n a t e s ) 0042300 i s s t o r e d a s t h e 0042320 { l i s p R E G I O N } { i 0042340 n d e x R E G I O N ( W i n 0042360 d o w P r o p e r t y ) } p 0042400 r o p e r t y o f t h e w 0042420 i n d o w ( { P a g e R e f 0042440 ( W i n d o w P r o p e r t y 0042460 ) R E G I O N } ) . \r \r } { E 0042500 n d S u b S e c C o o r d i 0042520 n a t e S y s t e m s } \r \r \r 0042540 \r \r { B e g i n S u b S e c 0042560 S c r o l l i n g } \r { T i t l 0042600 e S c r o l l i n g } \r { T e 0042620 x t \r \r { T a g W i n d o w S 0042640 c r o l l i n g } \r \r \r T h e 0042660 w i n d o w s y s t e m s u 0042700 p p o r t s t h e i d e a 0042720 o f s c r o l l i n g t h e 0042740 c o n t e n t s o f a w 0042760 i n d o w . S c r o l l i n 0043000 g r e g i o n s a r e o n 0043020 t h e l e f t a n d t h 0043040 e b o t t o m e d g e o f 0043060 e a c h w i n d o w . T 0043100 h e s c r o l l i n g r e g 0043120 i o n s w i l l o n l y b 0043140 e a c t i v e i f t h e 0043160 w i n d o w h a s a { l i 0043200 s p S C R O L L F N } { i n d 0043220 e x S C R O L L F N ( W i n 0043240 d o w P r o p e r t y ) } w 0043260 i n d o w p r o p e r t y ( 0043300 { P a g e R e f ( W i n d o w 0043320 P r o p e r t y ) S C R O L 0043340 L F N } ) a n d d o e s N 0043360 O T h a v e a { l i s p 0043400 N O S C R O L L B A R S } { i n 0043420 d e x N O S C R O L L B A R S 0043440 ( W i n d o w P r o p e r t 0043460 y ) } w i n d o w p r o p e 0043500 r t y ( { P a g e R e f ( W 0043520 i n d o w P r o p e r t y ) 0043540 N O S C R O L L B A R S } ) . 0043560 I f a w i n d o w h a s 0043600 a { l i s p S C R O L L F 0043620 N } , i t s { l i s p N O 0043640 S C R O L L B A R S } p r o p 0043660 e r t y i s n o n - { l i s 0043700 p N I L } , a n d t h e 0043720 c u r s o r m o v e s f r o 0043740 m i n s i d e t h a t w i 0043760 n d o w i n t o i t s s c 0044000 r o l l i n g r e g i o n a 0044020 n d r e m a i n s t h e r e 0044040 f o r { v a r S C R O L L 0044060 W A I T T I M E } { i n d e x 0044100 S C R O L L W A I T T I M E V 0044120 a r } m i l l i s e c o n d s 0044140 ( i n i t i a l l y 1 0 0 0 0044160 ) , a s c r o l l b a r 0044200 a p p e a r s . T h e v a 0044220 l u e o f t h e g l o b a 0044240 l v a r i a b l e { v a r 0044260 S C R O L L B A R W I D T H } { 0044300 i n d e x S C R O L L B A R W 0044320 I D T H V a r } ( i n i t i 0044340 a l l y 2 4 ) d e t e r m i 0044360 n e s t h e s i z e o f 0044400 t h e s c r o l l i n g r e 0044420 g i o n . T h e { l i s p 0044440 L E F T } k e y i s u s 0044460 e d t o i n d i c a t e u 0044500 p w a r d o r l e f t w a r 0044520 d s c r o l l i n g b y t 0044540 h e a m o u n t n e c e s s 0044560 a r y t o m o v e t h e 0044600 s e l e c t e d p o s i t i o 0044620 n t o t h e t o p o r 0044640 t h e l e f t e d g e . 0044660 T h e { l i s p R I G H T } 0044700 k e y i s u s e d t o 0044720 i n d i c a t e d o w n w a r 0044740 d o r r i g h t w a r d s 0044760 c r o l l i n g b y t h e 0045000 a m o u n t n e c e s s a r y 0045020 t o m o v e t h e t o p 0045040 o r l e f t e d g e t o 0045060 t h e s e l e c t e d p o 0045100 s i t i o n . T h e { l i 0045120 s p M I D D L E } k e y i 0045140 s u s e d t o i n d i c a 0045160 t e g l o b a l p l a c e m 0045200 e n t o f t h e o b j e c 0045220 t w i t h i n t h e w i n 0045240 d o w ( s i m i l a r t o 0045260 " t h u m b i n g " a b o o 0045300 k ) . \r \r I n t h e s c r 0045320 o l l r e g i o n , t h e 0045340 p a r t o f t h e o b j e 0045360 c t t h a t i s b e i n g 0045400 v i e w e d b y t h e w 0045420 i n d o w i s m a r k e d 0045440 w i t h a g r a y s h a d 0045460 e . I f t h e w h o l e 0045500 s c r o l l b a r i s t 0045520 h o u g h t o f a s t h e 0045540 e n t i r e o b j e c t , 0045560 t h e s h a d e d p o r t i 0045600 o n i s t h e p o r t i o 0045620 n c u r r e n t l y b e i n 0045640 g v i e w e d . T h i s 0045660 w i l l o n l y o c c u r 0045700 w h e n t h e w i n d o w 0045720 " k n o w s " h o w b i g 0045740 t h e o b j e c t i s ( s 0045760 e e w i n d o w p r o p e r 0046000 t y { i n d e x E X T E N T 0046020 ( W i n d o w P r o p e r t 0046040 y ) } { l i s p E X T E N T } 0046060 , { P a g e R e f ( W i n d 0046100 o w P r o p e r t y ) E X T 0046120 E N T } ) . \r \r W h e n t h e 0046140 b u t t o n i s r e l e a 0046160 s e d i n a s c r o l l 0046200 r e g i o n , t h e f u n c 0046220 t i o n { l i s p S C R O L 0046240 L W } i s c a l l e d . 0046260 { l i s p S C R O L L W } c 0046300 a l l s t h e s c r o l l i 0046320 n g f u n c t i o n a s s o 0046340 c i a t e d w i t h t h e 0046360 w i n d o w t o d o t h e 0046400 a c t u a l s c r o l l i n 0046420 g a n d p r o v i d e s a 0046440 p r o g r a m m a b l e e n 0046460 t r y t o t h e s c r o l 0046500 l i n g o p e r a t i o n . \r 0046520 \r \r { F n D e f { N a m e S 0046540 C R O L L W } { A r g s W I 0046560 N D O W D E L T A X D E L T 0046600 A Y C O N T I N U O U S F L G 0046620 } \r { T e x t \r C a l l s t h 0046640 e { l i s p S C R O L L F N 0046660 } w i n d o w p r o p e r t 0046700 y o f t h e w i n d o w 0046720 { a r g W I N D O W } w i t 0046740 h a r g u m e n t s { a r g 0046760 W I N D O W } , { a r g D 0047000 E L T A X } , { a r g D E L 0047020 T A Y } a n d { a r g C O 0047040 N T I N U O U S F L G } . S 0047060 e e { l i s p S C R O L L F 0047100 N } w i n d o w p r o p e r 0047120 t y , { P a g e R e f ( W i 0047140 n d o w P r o p e r t y ) S 0047160 C R O L L F N } . \r } } \r \r \r \r 0047200 T h e f u n c t i o n t h a 0047220 t t r a c k s t h e m o u 0047240 s e w h i l e i t i s i 0047260 n t h e s c r o l l r e g 0047300 i o n i s { l i s p S C R 0047320 O L L . H A N D L E R } . \r \r { 0047340 F n D e f { N a m e S C R O 0047360 L L . H A N D L E R } { A r g 0047400 s W I N D O W } \r { T e x t \r 0047420 T h i s i s c a l l e d w 0047440 h e n t h e c u r s o r l 0047460 e a v e s a w i n d o w i 0047500 n e i t h e r t h e l e f 0047520 t o r d o w n w a r d d i 0047540 r e c t i o n . I f { a r 0047560 g W I N D O W } d o e s n 0047600 o t h a v e a s c r o l l 0047620 r e g i o n f o r t h i s 0047640 d i r e c t i o n ( e . g . 0047660 t h e w i n d o w h a s 0047700 m o v e d o r r e s h a p e 0047720 d s i n c e i t w a s l 0047740 a s t s c r o l l e d ) , a 0047760 s c r o l l r e g i o n i 0050000 s c r e a t e d t h a t i 0050020 s { v a r S C R O L L B A R 0050040 W I D T H } { i n d e x S C R 0050060 O L L B A R W I D T H V a r } 0050100 w i d e . I t t h e n 0050120 w a i t s f o r { v a r S 0050140 C R O L L W A I T T I M E } { i 0050160 n d e x S C R O L L W A I T T 0050200 I M E V a r } m i l l i s e 0050220 c o n d s a n d i f t h e 0050240 c u r s o r i s s t i l l 0050260 i n s i d e t h e s c r o 0050300 l l r e g i o n , i t o p 0050320 e n s a w i n d o w t h e 0050340 s i z e o f t h e s c r 0050360 o l l r e g i o n a n d c 0050400 h a n g e s t h e c u r s o 0050420 r t o i n d i c a t e t h 0050440 e s c r o l l i n g i s t 0050460 a k i n g p l a c e . \r \r W h 0050500 e n a b u t t o n i s p 0050520 r e s s e d , t h e c u r s 0050540 o r s h a p e i s c h a n 0050560 g e d t o i n d i c a t e 0050600 t h e t y p e o f s c r o 0050620 l l i n g ( u p , d o w n , 0050640 l e f t , r i g h t o r 0050660 t h u m b ) . A f t e r t 0050700 h e b u t t o n i s h e l 0050720 d f o r { v a r W A I T B 0050740 E F O R E S C R O L L T I M E } 0050760 { i n d e x W A I T B E F O R 0051000 E S C R O L L T I M E V a r } 0051020 m i l l i s e c o n d s , u 0051040 n t i l t h e b u t t o n 0051060 i s r e l e a s e d { l i s 0051100 p S C R O L L W } i s c a 0051120 l l e d e a c h { v a r W 0051140 A I T B E T W E E N S C R O L L 0051160 T I M E } { i n d e x W A I T 0051200 B E T W E E N S C R O L L T I M 0051220 E V a r } m i l l i s e c o 0051240 n d s . T h e s e c a l l 0051260 s a r e m a d e w i t h 0051300 t h e { a r g C O N T I N U 0051320 O U S F L G } a r g u m e n t 0051340 s e t t o { l i s p T } 0051360 . I f t h e b u t t o n 0051400 i s r e l e a s e d b e f 0051420 o r e { v a r W A I T B E F 0051440 O R E S C R O L L T I M E } m 0051460 i l l i s e c o n d s , { l i 0051500 s p S C R O L L W } i s c 0051520 a l l e d w i t h t h e { 0051540 a r g C O N T I N U O U S F L 0051560 G } a r g u m e n t s e t 0051600 t o { l i s p N I L } . \r \r 0051620 T h e a r g u m e n t s p a 0051640 s s e d t o { l i s p S C 0051660 R O L L W } d e p e n d o n 0051700 t h e m o u s e b u t t o 0051720 n . I f t h e \r { l i s p 0051740 L E F T } b u t t o n i s 0051760 u s e d i n t h e v e r 0052000 t i c a l s c r o l l r e g 0052020 i o n , { a r g D Y } i s 0052040 d i s t a n c e f r o m c 0052060 u r s o r p o s i t i o n a 0052100 t t h e t i m e t h e b 0052120 u t t o n w a s r e l e a s 0052140 e d t o t h e t o p o f 0052160 t h e w i n d o w a n d 0052200 { a r g D X } i s 0 . 0052220 I f t h e { l i s p R I G 0052240 H T } b u t t o n i s u s 0052260 e d , t h e i n v e r s e 0052300 o f t h i s q u a n t i t y 0052320 i s u s e d f o r { a r 0052340 g D Y } a n d 0 f o r 0052360 { a r g D X } . I f t 0052400 h e { l i s p L E F T } b 0052420 u t t o n i s u s e d i n 0052440 t h e h o r i z o n t a l 0052460 s c r o l l r e g i o n , { 0052500 a r g D X } i s d i s t a 0052520 n c e f r o m c u r s o r 0052540 p o s i t i o n t o l e f t 0052560 o f t h e w i n d o w a 0052600 n d { a r g D Y } i s 0 0052620 . I f t h e { l i s p 0052640 R I G H T } b u t t o n i s 0052660 u s e d , t h e i n v e r 0052700 s e o f t h i s q u a n t 0052720 i t y i s u s e d f o r 0052740 { a r g D X } a n d 0 f 0052760 o r { a r g D Y } . \r \r I f 0053000 t h e { l i s p M I D D L 0053020 E } b u t t o n i s p r e 0053040 s s e d , t h e d i s t a n 0053060 c e a r g u m e n t t o { 0053100 f n S C R O L L W } w i l l 0053120 b e a { l i s p F L O A 0053140 T P } b e t w e e n 0 . 0 0053160 a n d 1 . 0 t h a t i n d 0053200 i c a t e s t h e p r o p o 0053220 r t i o n o f t h e d i s 0053240 t a n c e t h e c u r s o r 0053260 w a s f r o m t h e l e 0053300 f t o r t o p e d g e t 0053320 o t h e r i g h t o r b 0053340 o t t o m e d g e . \r } } \r \r 0053360 \r \r \r { f n S C R O L L B Y R 0053400 E P A I N T F N } i s t h e 0053420 s t a n d a r d s c r o l l 0053440 i n g f u n c t i o n w h i 0053460 c h s h o u l d b e u s e 0053500 d a s t h e { l i s p S 0053520 C R O L L F N } { i n d e x S 0053540 C R O L L F N ( W i n d o w 0053560 P r o p e r t y ) } p r o p e 0053600 r t y f o r m o s t s c r 0053620 o l l i n g w i n d o w s . \r 0053640 \r { F n D e f { N a m e S C 0053660 R O L L B Y R E P A I N T F N } 0053700 { A r g s W I N D O W D E 0053720 L T A X D E L T A Y C O N T 0053740 I N U O U S F L G } \r { T e x t 0053760 \r T h i s f u n c t i o n , 0054000 w h e n u s e d a s a { 0054020 l i s p S C R O L L F N } , 0054040 { f n B I T B L T } s t h e 0054060 b i t s t h a t w i l l 0054100 r e m a i n v i s i b l e a 0054120 f t e r t h e s c r o l l 0054140 t o t h e i r n e w l o c 0054160 a t i o n , f i l l s t h e 0054200 n e w l y e x p o s e d a 0054220 r e a w i t h t e x t u r e 0054240 , a d j u s t s t h e w i 0054260 n d o w ' s c o o r d i n a t 0054300 e s a n d t h e n c a l l 0054320 s t h e w i n d o w ' s { 0054340 l i s p R E P A I N T F N } 0054360 o n t h e n e w l y e x p 0054400 o s e d r e g i o n . T h 0054420 u s t h i s f u n c t i o n 0054440 w i l l s c r o l l a n y 0054460 w i n d o w t h a t h a s 0054500 a r e p a i n t f u n c t 0054520 i o n . I f { a r g W I 0054540 N D O W } h a s a n { l i 0054560 s p E X T E N T } { i n d e x 0054600 E X T E N T ( W i n d o w 0054620 P r o p e r t y ) } p r o p e 0054640 r t y ( { P a g e R e f ( W 0054660 i n d o w P r o p e r t y ) 0054700 E X T E N T } ) , { f n S C 0054720 R O L L B Y R E P A I N T F N } 0054740 w i l l l i m i t s c r o 0054760 l l i n g t o k e e p t h 0055000 e e x t e n t r e g i o n 0055020 v i s i b l e o r n e a r 0055040 v i s i b l e . T h a t i 0055060 s , i t w i l l n o t s 0055100 c r o l l t h e w i n d o w 0055120 s o t h a t t h e t o p 0055140 o f t h e e x t e n t i 0055160 s b e l o w t h e t o p 0055200 o f t h e w i n d o w , t 0055220 h e b o t t o m o f t h e 0055240 e x t e n t i s m o r e 0055260 t h a n o n e p o i n t a 0055300 b o v e t h e t o p o f 0055320 t h e w i n d o w , t h e 0055340 l e f t o f t h e e x t e 0055360 n t i s t o t h e r i g 0055400 h t o f t h e w i n d o w 0055420 a n d t h e r i g h t o 0055440 f t h e e x t e n t i s 0055460 t o t h e l e f t o f t 0055500 h e w i n d o w . T h e 0055520 { l i s p E X T E N T } i s 0055540 s c r o l l e d t o j u s 0055560 t a b o v e t h e w i n d 0055600 o w t o p r o v i d e a 0055620 w a y o f " h i d i n g " 0055640 t h e c o n t e n t s o f 0055660 a w i n d o w . \r \r I f { a 0055700 r g D E L T A X } o r { a 0055720 r g D E L T A Y } i s a 0055740 { l i s p F L O A T P } , { 0055760 f n S C R O L L B Y R E P A I 0056000 N T F N } w i l l p o s i t 0056020 i o n t h e w i n d o w s 0056040 o t h a t i t s t o p o 0056060 r l e f t e d g e w i l l 0056100 b e p o s i t i o n e d a 0056120 t t h a t p r o p o r t i o 0056140 n o f i t s { l i s p E 0056160 X T E N T } . I f t h e 0056200 w i n d o w d o e s n o t 0056220 h a v e a n { l i s p E X 0056240 T E N T } , { f n S C R O L 0056260 L B Y R E P A I N T F N } w i 0056300 l l d o n o t h i n g . \r \r 0056320 I f { a r g C O N T I N U O 0056340 U S F L G } i s n o n - { l 0056360 i s p N I L } , t h i s i 0056400 n d i c a t e s t h a t t h 0056420 e s c r o l l i n g b u t t 0056440 o n i s b e i n g h e l d 0056460 d o w n . I n t h i s 0056500 c a s e , { f n S C R O L L 0056520 B Y R E P A I N T F N } w i l 0056540 l s c r o l l t h e d i s 0056560 t a n c e o f o n e l i n 0056600 e f e e d h e i g h t ( a s 0056620 r e t u r n e d b y { f n 0056640 D S P L I N E F E E D } , { 0056660 P a g e R e f F n D S P L I 0056700 N E F E E D } ) . \r } } \r \r 0056720 \r } { E n d S u b S e c S c 0056740 r o l l i n g } \r \r \r \r \r { B e 0056760 g i n S u b S e c P r o g r 0057000 a m m a t i c W i n d o w O 0057020 p e r a t i o n s } \r { T i t l 0057040 e P r o g r a m m a t i c W 0057060 i n d o w O p e r a t i o n s 0057100 } \r { T e x t \r \r \r { F n D e f 0057120 { N a m e C R E A T E W } 0057140 { A r g s R E G I O N T I T 0057160 L E B O R D E R N O O P E N 0057200 F L G } \r { T e x t \r C r e a t 0057220 e s a n e w w i n d o w . 0057240 { a r g R E G I O N } i 0057260 n d i c a t e s w h e r e a 0057300 n d h o w l a r g e t h e 0057320 w i n d o w s h o u l d b 0057340 e b y s p e c i f y i n g 0057360 t h e e x t e r i o r r e g 0057400 i o n o f t h e w i n d o 0057420 w ( t h e u s a b l e h e 0057440 i g h t a n d w i d t h o 0057460 f t h e r e s u l t i n g 0057500 w i n d o w w i l l b e s 0057520 m a l l e r t h a n t h e 0057540 h e i g h t a n d w i d t h 0057560 o f t h e r e g i o n b 0057600 y t w i c e t h e b o r d 0057620 e r s i z e a n d f u r t 0057640 h e r l e s s t h e h e i 0057660 g h t o f t h e t i t l e 0057700 , i f a n y ) . I f { 0057720 a r g R E G I O N } i s { 0057740 l i s p N I L } , { f n G 0057760 E T R E G I O N } i s c a l 0060000 l e d t o p r o m p t t h 0060020 e u s e r f o r a r e g 0060040 i o n . \r \r I f { a r g T I 0060060 T L E } i s n o n - { l i s 0060100 p N I L } , i t i s p r 0060120 i n t e d i n t h e b o r 0060140 d e r a t t h e t o p o 0060160 f t h e w i n d o w . T 0060200 h e { a r g T I T L E } i 0060220 s p r i n t e d u s i n g 0060240 t h e g l o b a l d i s p l 0060260 a y s t r e a m { v a r W 0060300 i n d o w T i t l e D i s p l a 0060320 y S t r e a m } . { i n d e x 0060340 W i n d o w T i t l e D i s p l 0060360 a y S t r e a m V a r } T 0060400 h u s t h e h e i g h t o 0060420 f t h e t i t l e w i l l 0060440 b e { l i s p ( F O N T P 0060460 R O P W i n d o w T i t l e D 0060500 i s p l a y S t r e a m ' H E 0060520 I G H T ) } . \r \r I f { a r g 0060540 B O R D E R } i s a n u 0060560 m b e r , i t i s u s e d 0060600 a s t h e b o r d e r s 0060620 i z e . I f { a r g B O 0060640 R D E R } i s n o t a n 0060660 u m b e r , t h e w i n d o 0060700 w w i l l h a v e a b o 0060720 r d e r { v a r W B o r d e 0060740 r } { i n d e x W B o r d e r 0060760 V a r } ( i n i t i a l l y 0061000 4 ) b i t s w i d e . \r \r 0061020 I f { a r g N O O P E N F L 0061040 G } i s n o n - { l i s p 0061060 N I L } , t h e w i n d o w 0061100 w i l l n o t b e o p e 0061120 n e d , i . e . d i s p l a 0061140 y e d o n t h e s c r e e 0061160 n . \r \r T h e i n i t i a l 0061200 X a n d Y p o s i t i o n 0061220 s o f t h e w i n d o w 0061240 a r e s e t t o t h e u 0061260 p p e r l e f t c o r n e r 0061300 b y c a l l i n g { f n 0061320 M O V E T O U P P E R L E F T } 0061340 ( { P a g e R e f F n M O 0061360 V E T O U P P E R L E F T } ) . 0061400 \r } } \r \r \r { F n D e f { N a 0061420 m e D E C O D E . W I N D O W 0061440 . A R G } { A r g s W H E R 0061460 E S P E C W I D T H H E I G 0061500 H T T I T L E B O R D E R 0061520 N O O P E N F L G } \r { T e x t 0061540 \r T h i s i s a u s e f u 0061560 l f u n c t i o n f o r p 0061600 r o g r a m s t h a t c r e 0061620 a t e w i n d o w s f r o m 0061640 o n e o f t h e i r a r 0061660 g u m e n t s . { a r g W 0061700 H E R E S P E C } c a n b e 0061720 a { l i s p W I N D O W } 0061740 , a { l i s p R E G I O N 0061760 } , a { l i s p P O S I T 0062000 I O N } o r { l i s p N I 0062020 L } . I f { a r g W H E 0062040 R E S P E C } i s a { l i 0062060 s p W I N D O W } , i t i 0062100 s r e t u r n e d . \r I n 0062120 a l l o t h e r c a s e s 0062140 , { f n C R E A T E W } i 0062160 s c a l l e d w i t h t h 0062200 e a r g u m e n t s { a r g 0062220 T I T L E } { a r g B O R 0062240 D E R } a n d { a r g N O 0062260 O P E N F L G } . T h e { 0062300 l i s p R E G I O N } a r g 0062320 u m e n t t o { F N C R E 0062340 A T E W } i s d e t e r m i 0062360 n e d f r o m { a r g W H 0062400 E R E S P E C } a s f o l l 0062420 o w s . \r \r I f { a r g W H 0062440 E R E S P E C } i s a { l 0062460 i s p R E G I O N } , i t 0062500 i s a d j u s t e d t o b 0062520 e o n t h e s c r e e n , 0062540 t h e n p a s s e d t o 0062560 { f n C R E A T E W } . \r \r I 0062600 f { a r g W I D T H } a n 0062620 d { a r g H E I G H T } a 0062640 r e n o t n u m b e r s , 0062660 { f n C R E A T E W } i s 0062700 g i v e n { l i s p N I L } 0062720 a s a { l i s p R E G I 0062740 O N } a r g u m e n t . \r \r I 0062760 f { a r g W I D T H } a n 0063000 d { a r g H E I G H T } a 0063020 r e n u m b e r s a n d { 0063040 a r g W H E R E S P E C } i 0063060 s a { l i s p P O S I T I 0063100 O N } , t h e r e g i o n 0063120 w h o s e l o w e r l e f t 0063140 c o r n e r i s { a r g 0063160 W H E R E S P E C } , w h o s 0063200 e w i d t h i s { a r g 0063220 W I D T H } a n d w h o s e 0063240 h e i g h t i s { a r g 0063260 H E I G H T } i s a d j u s 0063300 t e d t o b e o n t h e 0063320 s c r e e n , t h e n p a 0063340 s s e d t o { f n C R E A 0063360 T E W } . \r \r I f { a r g W 0063400 I D T H } a n d { a r g H 0063420 E I G H T } a r e n u m b e 0063440 r s a n d { a r g W H E R 0063460 E S P E C } i s n o t a 0063500 { l i s p P O S I T I O N } , 0063520 t h e n { f n G E T B O X 0063540 R E G I O N } i s c a l l e 0063560 d t o p r o m p t t h e 0063600 u s e r f o r t h e p o s 0063620 i t i o n o f a r e g i o 0063640 n t h a t i s { a r g W 0063660 I D T H } b y { a r g H E 0063700 I G H T } . \r \r I f { a r g 0063720 W I D T H } a n d { a r g 0063740 H E I G H T } a r e n o t 0063760 n u m b e r s , { f n C R E 0064000 A T E W } i s g i v e n { 0064020 l i s p N I L } a s a { 0064040 l i s p R E G I O N } a r g 0064060 u m e n t . \r \r \r I f { a r g 0064100 W I D T H } a n d { a r g 0064120 H E I G H T } a r e u s e 0064140 d , t h e y a r e u s e d 0064160 a s i n t e r i o r d i m 0064200 e n s i o n s f o r t h e 0064220 w i n d o w . \r } } \r \r \r \r \r { 0064240 F n D e f { N a m e W I N D 0064260 O W P } { A r g s X } \r { T 0064300 e x t \r R e t u r n s { a r g 0064320 X } i f { a r g X } i 0064340 s a w i n d o w , { l i s 0064360 p N I L } o t h e r w i s e 0064400 . \r } } \r \r \r { F n D e f { N 0064420 a m e O P E N W P } { A r g 0064440 s W I N D O W } \r { T e x t 0064460 \r R e t u r n s { a r g W I 0064500 N D O W } , i f { a r g W 0064520 I N D O W } i s a n o p e 0064540 n w i n d o w ( h a s n o 0064560 t b e e n \r c l o s e d ) ; 0064600 { l i s p N I L } o t h e r 0064620 w i s e . \r } } \r \r \r { F n D e 0064640 f { N a m e O P E N W I N D 0064660 O W S } \r { T e x t \r R e t u r 0064700 n s a l i s t o f a l l 0064720 a c t i v e w i n d o w s . 0064740 \r } } \r \r \r { F n D e f { N a 0064760 m e W H I C H W } { A r g s 0065000 X Y } \r { T e x t \r R e t u 0065020 r n s t h e w i n d o w w 0065040 h i c h c o n t a i n s t h 0065060 e p o s i t i o n i n s c 0065100 r e e n c o o r d i n a t e s 0065120 o f { a r g X } i f { 0065140 a r g X } i s a { l i s 0065160 p P O S I T I O N } , t h e 0065200 p o s i t i o n ( { a r g 0065220 X } , { a r g Y } ) i f { 0065240 a r g X } a n d { a r g 0065260 Y } a r e n u m b e r s , 0065300 o r t h e p o s i t i o n 0065320 o f t h e c u r s o r i f 0065340 { a r g X } i s { l i s 0065360 p N I L } . R e t u r n s 0065400 { l i s p N I L } i f t 0065420 h e c o o r d i n a t e s a 0065440 r e n o t i n a n y w i 0065460 n d o w . I f t h e y a 0065500 r e i n m o r e t h a n 0065520 o n e w i n d o w , i t r 0065540 e t u r n s t h e u p p e r 0065560 m o s t . \r \r E x a m p l e : 0065600 { l i s p ( W H I C H W ) } 0065620 r e t u r n s t h e w i n 0065640 d o w t h a t t h e c u r 0065660 s o r i s i n . \r } } \r \r \r 0065700 { n o t e L a r r y s a y s 0065720 : " U g h ! B a d f u n 0065740 c t i o n n a m e . H o w 0065760 a b o u t u s i n g ' G E 0066000 T W I N D O W ' ? B i l l 0066020 s e c o n d s t h e m o t i 0066040 o n . } \r \r { F n D e f { N a 0066060 m e D E C O D E / W I N D O W 0066100 / O R / D I S P L A Y S T R E A 0066120 M } \r { A r g s D S O R W W 0066140 I N D O W V A R T I T L E B 0066160 O R D E R } \r { T e x t \r R e t 0066200 u r n s a d i s p l a y s 0066220 t r e a m a s d e t e r m i 0066240 n e d b y t h e { a r g 0066260 D S O R W } a n d { a r g 0066300 W I N D O W V A R } a r g u m 0066320 e n t s . I f { a r g D 0066340 S O R W } i s a d i s p l 0066360 a y s t r e a m , i t i s 0066400 r e t u r n e d . I f { 0066420 a r g D S O R W } i s a 0066440 w i n d o w , i t s d i s p 0066460 l a y s t r e a m i s r e 0066500 t u r n e d . I f { a r g 0066520 D S O R W } i s { l i s p 0066540 N I L } , t h e l i t a t 0066560 o m { a r g W I N D O W V A 0066600 R } i s e v a l u a t e d . 0066620 I f i t s v a l u e i 0066640 s a w i n d o w , i t s 0066660 d i s p l a y s t r e a m i 0066700 s r e t u r n e d . I f 0066720 i t s v a l u e i s n o t 0066740 a w i n d o w , { a r g 0066760 W I N D O W V A R } i s s e 0067000 t t o a n e w l y c r e 0067020 a t e d w i n d o w ( p r o 0067040 m p t i n g u s e r f o r 0067060 r e g i o n ) w h o s e d i 0067100 s p l a y s t r e a m i s 0067120 t h e n r e t u r n e d . 0067140 I f { a r g D S O R W } i 0067160 s { l i s p N E W } , t h 0067200 e d i s p l a y s t r e a m 0067220 o f a n e w l y c r e a 0067240 t e d w i n d o w i s r e 0067260 t u r n e d . I f a w i 0067300 n d o w i s i n v o l v e d 0067320 i n t h e d e c o d i n g 0067340 , i t i s o p e n e d a 0067360 n d i f { a r g T I T L E 0067400 } o r { a r g B O R D E R 0067420 } a r e g i v e n , t h e 0067440 { l i s p T I T L E } o r 0067460 { l i s p B O R D E R } p 0067500 r o p e r t y o f t h e w 0067520 i n d o w a r e r e s e t . 0067540 T h e { a r g D S O R W 0067560 } = { l i s p N I L } c a s 0067600 e i s m o s t u s e f u l 0067620 f o r p r o g r a m s t h 0067640 a t w a n t t o d i s p l 0067660 a y t h e i r o u t p u t 0067700 i n a w i n d o w , b u t 0067720 w a n t t o r e u s e t 0067740 h e s a m e w i n d o w e 0067760 a c h t i m e t h e y a r 0070000 e c a l l e d . T h e n 0070020 o n - { l i s p N I L } c a 0070040 s e s a r e g o o d f o r 0070060 d e c o d i n g a d i s p 0070100 l a y s t r e a m a r g u m 0070120 e n t p a s s e d t o a 0070140 f u n c t i o n . \r } } \r \r \r { 0070160 F n D e f { N a m e W I D T 0070200 H I F W I N D O W } { A r g s 0070220 I N T E R I O R W I D T H B 0070240 O R D E R } \r { T e x t \r R e t 0070260 u r n s t h e w i d t h o 0070300 f t h e w i n d o w n e c 0070320 e s s a r y t o h a v e { 0070340 a r g I N T E R I O R W I D T 0070360 H } p o i n t s i n i t s 0070400 i n t e r i o r i f t h e 0070420 w i d t h o f t h e b o 0070440 r d e r i s { a r g B O R 0070460 D E R } . I f { a r g B 0070500 O R D E R } i s { l i s p 0070520 N I L } , t h e d e f a u l 0070540 t b o r d e r s i z e { v 0070560 a r W B o r d e r } { i n d e 0070600 x W B o r d e r V a r } i 0070620 s u s e d . \r } } \r \r \r { F n 0070640 D e f { N a m e H E I G H T 0070660 I F W I N D O W } { A r g s 0070700 I N T E R I O R H E I G H T T 0070720 I T L E F L G B O R D E R } \r 0070740 { T e x t \r R e t u r n s t h 0070760 e h e i g h t o f t h e 0071000 w i n d o w n e c e s s a r y 0071020 t o h a v e { a r g I N 0071040 T E R I O R H E I G H T } p o 0071060 i n t s i n i t s i n t e 0071100 r i o r w i t h a b o r d 0071120 e r o f { a r g B O R D E 0071140 R } a n d , i f { a r g 0071160 T I T L E F L G } i s n o n 0071200 - { l i s p N I L } , a t 0071220 i t l e . I f { a r g B 0071240 O R D E R } i s { l i s p 0071260 N I L } , t h e d e f a u l 0071300 t b o r d e r s i z e { v 0071320 a r W B o r d e r } { i n d e 0071340 x W B o r d e r V a r } i 0071360 s u s e d . \r } } \r \r \r { f n 0071400 W I D T H I F W I N D O W } 0071420 a n d { f n H E I G H T I F 0071440 W I N D O W } a r e u s e f 0071460 u l f o r c a l c u l a t i 0071500 n g t h e w i d t h a n d 0071520 h e i g h t f o r a c a 0071540 l l t o { f n G E T B O X 0071560 P O S I T I O N } f o r t h 0071600 e p u r p o s e o f p o s 0071620 i t i o n i n g a p r o s p 0071640 e c t i v e w i n d o w . \r \r 0071660 \r { F n D e f { N a m e M I 0071700 N I M U M W I N D O W S I Z E } 0071720 { A r g s W I N D O W } \r { 0071740 T e x t \r R e t u r n s a d 0071760 o t t e d p a i r , t h e 0072000 { l i s p C A R } o f w h 0072020 i c h i s t h e m i n i m 0072040 u m w i d t h { a r g W I 0072060 N D O W } n e e d s a n d 0072100 t h e { l i s p C D R } o 0072120 r w h i c h i s t h e m 0072140 i n i m u m h e i g h t { a 0072160 r g W I N D O W } n e e d s 0072200 . \r \r T h e m i n i m u m s 0072220 i z e i s d e t e r m i n e 0072240 d b y t h e v a l u e o 0072260 f t h e w i n d o w p r o 0072300 p e r t y { l i s p M I N S 0072320 I Z E } { i n d e x M I N S I 0072340 Z E ( W i n d o w P r o p e 0072360 r t y ) } o f { a r g W I 0072400 N D O W } . I f t h e v 0072420 a l u e o f t h e { l i s 0072440 p M I N S I Z E } w i n d o 0072460 w p r o p e r t y i s { l 0072500 i s p N I L } , t h e w i 0072520 d t h i s 2 6 a n d t h 0072540 e h e i g h t i s t h e 0072560 h e i g h t { a r g W I N D 0072600 O W } n e e d s t o h a v 0072620 e i t s t i t l e , b o r 0072640 d e r a n d o n e l i n e 0072660 o f t e x t v i s i b l e 0072700 . I f { l i s p M I N S 0072720 I Z E } i s a d o t t e d 0072740 p a i r , i t i s r e t 0072760 u r n e d . I f i t i s 0073000 a { l i s p L I T A T O M 0073020 } , i t s h o u l d b e 0073040 a f u n c t i o n w h i c h 0073060 i s c a l l e d w i t h 0073100 { l i s p W I N D O W } a s 0073120 i t s f i r s t a r g u m 0073140 e n t , w h i c h s h o u l 0073160 d r e t u r n a d o t t e 0073200 d p a i r . \r } } \r \r \r \r I 0073220 n t e r l i s p - D p r o v i 0073240 d e s a s e t o f o p e 0073260 r a t i o n s w h i c h a p 0073300 p l y t o a n y w i n d o 0073320 w . I n a d d i t i o n 0073340 t o b e i n g a v a i l a b 0073360 l e a s f u n c t i o n s , 0073400 m o s t o f t h e s e a 0073420 r e a l s o a v a i l a b l 0073440 e v i a t h e s t a n d a 0073460 r d m o u s e i n t e r f a 0073500 c e . S e e { P a g e R e 0073520 f T a g I n t e r a c t i v 0073540 e W i n d o w O p s } \r \r { T a 0073560 g P r o g r a m m a t i c W i 0073600 n d o w O p s } \r \r \r { F n D e 0073620 f { N a m e T O T O P W } 0073640 { A r g s W I N D O W N O C 0073660 A L L T O P W F N } \r { T e x t 0073700 \r B r i n g s { a r g W I N 0073720 D O W } t o t h e t o p 0073740 o f t h e s t a c k o f 0073760 o v e r l a p p i n g w i n d 0074000 o w s , g u a r a n t e e i n 0074020 g t h a t i t i s e n t 0074040 i r e l y v i s i b l e . 0074060 I f { a r g W I N D O W } 0074100 i s c l o s e d , i t i s 0074120 o p e n e d . T h i s i 0074140 s d o n e a u t o m a t i c 0074160 a l l y w h e n e v e r a 0074200 p r i n t i n g o r d r a w 0074220 i n g o p e r a t i o n o c 0074240 c u r s t o t h e w i n d 0074260 o w . \r \r I f { a r g N O C 0074300 A L L T O P W F N } i s { l 0074320 i s p N I L } , t h e { l 0074340 i s p T O T O P F N } o f 0074360 { a r g W I N D O W } i s 0074400 c a l l e d ( { P a g e R e f 0074420 ( W i n d o w P r o p e r t 0074440 y ) T O T O P F N } ) . I 0074460 f { a r g N O C A L L T O P 0074500 W F N } i s { l i s p T } 0074520 , i t i s n o t c a l l 0074540 e d , w h i c h a l l o w s 0074560 a { l i s p T O T O P F N 0074600 } t o c a l l { f n T O 0074620 T O P W } w i t h o u t c a 0074640 u s i n g a n i n f i n i t 0074660 e l o o p . \r } } \r \r \r \r { F 0074700 n D e f { N a m e S H A P E 0074720 W } { A r g s W I N D O W 0074740 N E W R E G I O N } \r { T e x 0074760 t \r R e s h a p e s { a r g 0075000 W I N D O W } . I f t h e 0075020 w i n d o w p r o p e r t y 0075040 { l i s p R E S H A P E F N 0075060 } i s t h e a t o m { l 0075100 i s p D O N ' T } o r a 0075120 l i s t t h a t c o n t a i 0075140 n s t h e a t o m { l i s 0075160 p D O N ' T } , a m e s s 0075200 a g e i s p r i n t e d i 0075220 n t h e p r o m p t w i n 0075240 d o w , { a r g W I N D O W 0075260 } i s n o t c h a n g e d 0075300 , a n d { l i s p N I L } 0075320 i s r e t u r n e d . \r \r I 0075340 f t h e r e g i o n { a r 0075360 g N E W R E G I O N } i s 0075400 { l i s p N I L } , i t p 0075420 r o m p t s f o r a r e g 0075440 i o n w i t h { f n G E T 0075460 R E G I O N } ( { P a g e R e 0075500 f F n G E T R E G I O N } ) 0075520 . W h e n c a l l i n g 0075540 { f n G E T R E G I O N } , 0075560 t h e f u n c t i o n { f n 0075600 M I N I M U M W I N D O W S I 0075620 Z E } i s c a l l e d t o 0075640 d e t e r m i n e t h e m 0075660 i n i m u m h e i g h t a n 0075700 d w i d t h o f t h e w 0075720 i n d o w a n d t h e w i 0075740 n d o w p r o p e r t y { l 0075760 i s p N E W R E G I O N F N } 0076000 ( { P a g e R e f ( W i n d 0076020 o w P r o p e r t y ) N E W 0076040 R E G I O N F N } ) i s u s 0076060 e d a s t h e { l i s p 0076100 N E W R E G I O N F N } a r g 0076120 u m e n t a n d { a r g W 0076140 I N D O W } a s t h e { l 0076160 i s p N E W R E G I O N F N A 0076200 R G } a r g u m e n t . T 0076220 h i s a l l o w s t h e w 0076240 i n d o w t o c o n t r o l 0076260 t h e s h a p e s a n d 0076300 s i z e s f o r i n t e r a 0076320 c t i v e c a l l s . \r \r I f 0076340 t h e r e g i o n { a r g 0076360 N E W R E G I O N } i s a 0076400 { l i s p R E G I O N } a 0076420 n d i t s { l i s p W I D 0076440 T H } o r { l i s p H E I 0076460 G H T } l e s s t h a n t 0076500 h e m i n i m u m s r e t u 0076520 r n e d b y c a l l i n g 0076540 t h e f u n c t i o n { f n 0076560 M I N I M U M W I N D O W S I 0076600 Z E } , t h e y w i l l b 0076620 e i n c r e a s e d t o t 0076640 h e m i n i m u m s . \r \r U n 0076660 l e s s { a r g W I N D O W 0076700 } h a s a { l i s p D O 0076720 S H A P E F N } w i n d o w 0076740 p r o p e r t y , t h e f u 0076760 n c t i o n { f n S H A P E 0077000 W 1 } i s c a l l e d t o 0077020 r e s h a p e t h e w i n 0077040 d o w . \r \r I f { a r g W I 0077060 N D O W } h a s a w i n d 0077100 o w p r o p e r t y { l i s 0077120 p D O S H A P E F N } ( { P 0077140 a g e R e f ( W i n d o w P 0077160 r o p e r t y ) D O S H A P E 0077200 F N } ) , i t i s c a l l 0077220 e d , p a s s i n g i t { 0077240 a r g W I N D O W } a n d 0077260 { a r g N E W R E G I O N } , 0077300 o r t h e r e g i o n r 0077320 e t u r n e d b y { f n G 0077340 E T R E G I O N } . { l i s 0077360 p D O S H A P E F N } s a r 0077400 e p r o v i d e d t o i m 0077420 p l e m e n t w i n d o w g 0077440 r o u p s a n d f e w u s 0077460 e r s s h o u l d e v e r 0077500 w r i t e t h e m . T h e 0077520 y a r e t r i c k y t o 0077540 w r i t e a n d m u s t c 0077560 a l l { l i s p S H A P E W 0077600 1 } e v e n t u a l l y . 0077620 T h e r e i s a s i m p l 0077640 e r u s e r h o o k i n t 0077660 o r e s h a p e o p e r a t 0077700 i o n s , t h e { l i s p 0077720 R E S H A P E F N } w i n d o 0077740 w p r o p e r t y ( { P a g 0077760 e R e f ( W i n d o w P r o 0100000 p e r t y ) R E S H A P E F N 0100020 } ) . \r } } \r \r \r { F n D e f 0100040 { N a m e S H A P E W 1 } { 0100060 A r g s W I N D O W N E W R 0100100 E G I O N } \r { T e x t \r C h 0100120 a n g e s { a r g W I N D O 0100140 W } ' s s i z e a n d p o 0100160 s i t i o n o n t h e s c 0100200 r e e n t o b e { a r g 0100220 N E W R E G I O N } . A f t 0100240 e r c l e a r i n g t h e 0100260 r e g i o n o n t h e s c 0100300 r e e n , i t c a l l s t 0100320 h e w i n d o w ' s { l i s 0100340 p R E S H A P E F N } , i f 0100360 a n y , p a s s i n g i t 0100400 t h r e e a r g u m e n t s 0100420 : ( 1 ) { a r g W I N D O 0100440 W } , ( 2 ) a b i t m a p 0100460 t h a t c o n t a i n s { 0100500 a r g W I N D O W } ' s p r 0100520 e v i o u s s c r e e n i m 0100540 a g e a n d ( 3 ) t h e 0100560 r e g i o n o f { a r g W 0100600 I N D O W } ' s o l d i m a 0100620 g e w i t h i n t h e b i 0100640 t m a p . \r } } \r \r \r { F n D e 0100660 f { N a m e C L O S E W } 0100700 { A r g s W I N D O W } \r { 0100720 T e x t \r { f n C L O S E W } 0100740 c a l l s t h e f u n c t 0100760 i o n o r f u n c t i o n s 0101000 o n t h e w i n d o w p 0101020 r o p e r t y { l i s p C L 0101040 O S E F N } o f { a r g W 0101060 I N D O W } , i f a n y ( 0101100 { P a g e R e f ( W i n d o w 0101120 P r o p e r t y ) C L O S E 0101140 F N } ) . I f o n e o f 0101160 t h e { l i s p C L O S E 0101200 F N } s i s t h e a t o m 0101220 { l i s p D O N ' T } o r 0101240 r e t u r n s t h e a t o 0101260 m { l i s p D O N ' T } a 0101300 s a v a l u e , { f n 0101320 C L O S E W } r e t u r n s 0101340 w i t h o u t d o i n g a n 0101360 y t h i n g f u r t h e r . 0101400 O t h e r w i s e , { f n 0101420 C L O S E W } r e m o v e s 0101440 { a r g W I N D O W } f r o 0101460 m t h e w i n d o w s t a 0101500 c k a n d r e s t o r e s 0101520 t h e b i t s i t i s o 0101540 b s c u r i n g . \r I f { a r 0101560 g W I N D O W } w a s c l 0101600 o s e d , { a r g W I N D O 0101620 W } i s r e t u r n e d a 0101640 s t h e v a l u e . \r I f 0101660 i t w a s n o t c l o s e 0101700 d , ( f o r e x a m p l e 0101720 b e c a u s e i t s { l i s 0101740 p C L O S E F N } r e t u r 0101760 n e d t h e a t o m { l i 0102000 s p D O N ' T } ) , { l i s 0102020 p N I L } i s r e t u r n 0102040 e d a s t h e v a l u e . 0102060 \r \r { a r g W I N D O W } c 0102100 a n b e r e s t o r e d i 0102120 n t h e s a m e p l a c e 0102140 w i t h t h e s a m e c 0102160 o n t e n t s ( r e o p e n e 0102200 d ) b y c a l l i n g { f 0102220 n O P E N W } o r b y u 0102240 s i n g i t a s t h e s 0102260 o u r c e o f a d i s p l 0102300 a y o p e r a t i o n . \r } } 0102320 \r \r \r { F n D e f { N a m e 0102340 O P E N W } { A r g s W I N 0102360 D O W } \r { T e x t \r I f { 0102400 a r g W I N D O W } i s a 0102420 c l o s e d w i n d o w , 0102440 { f n O P E N W } c a l l s 0102460 t h e f u n c t i o n o r 0102500 f u n c t i o n s o n t h 0102520 e w i n d o w p r o p e r t 0102540 y { l i s p O P E N F N } 0102560 o f { a r g W I N D O W } , 0102600 i f a n y ( { P a g e R e 0102620 f ( W i n d o w P r o p e r 0102640 t y ) O P E N F N } ) . I 0102660 f o n e o f t h e { l i 0102700 s p O P E N F N } s i s t 0102720 h e a t o m { l i s p D O 0102740 N ' T } , t h e w i n d o w 0102760 w i l l n o t b e o p e 0103000 n e d . O t h e r w i s e 0103020 t h e w i n d o w i s p l 0103040 a c e d o n t h e o c c l 0103060 u s i o n s t a c k o f w 0103100 i n d o w s a n d i t s c 0103120 o n t e n t s d i s p l a y e 0103140 d o n t h e s c r e e n . 0103160 I f { a r g W I N D O W 0103200 } i s a n o p e n w i n 0103220 d o w , i t r e t u r n s 0103240 { L I S P N I L } . \r } } \r 0103260 \r \r { n o t e L a r r y s a 0103300 y s : " u g h ! W h y n 0103320 o t j u s t ( M O V E W P 0103340 O S ) ? " \r b e c a u s e M O 0103360 V E P R O C , f o r e x a m 0103400 p l e , g a r b a g e c o l 0103420 l e c t s t o o m u c h i 0103440 f i t c r e a t e s a P 0103460 O S e v e r y m o v e - 0103500 r r b . } \r \r { F n D e f { N 0103520 a m e M O V E W } { A r g s 0103540 W I N D O W P O S o r X Y 0103560 } \r { T e x t \r M o v e s { a 0103600 r g W I N D O W } t o t h 0103620 e p o s i t i o n s p e c i 0103640 f i e d b y { a r g P O S 0103660 o r X } a n d { a r g Y } 0103700 a c c o r d i n g t o t h 0103720 e f o l l o w i n g r u l e 0103740 s : \r \r I f { a r g P O S o 0103760 r X } i s { l i s p N I L 0104000 } , { f n G E T B O X P O S 0104020 I T I O N } ( { P a g e R e f 0104040 F n G E T B O X P O S I T I 0104060 O N } ) i s c a l l e d t 0104100 o r e a d a p o s i t i o 0104120 n f r o m t h e u s e r . 0104140 I f { a r g W I N D O W 0104160 } h a s a { l i s p C A 0104200 L C U L A T E R E G I O N } { i 0104220 n d e x C A L C U L A T E R E 0104240 G I O N ( W i n d o w P r o 0104260 p e r t y ) } w i n d o w p 0104300 r o p e r t y , i t w i l l 0104320 b e c a l l e d w i t h 0104340 { a r g W I N D O W } a s 0104360 a n a r g u m e n t a n d 0104400 s h o u l d r e t u r n a 0104420 r e g i o n w h i c h w i l 0104440 l b e u s e d t o p r o 0104460 m p t t h e u s e r w i t 0104500 h . I f { a r g W I N D 0104520 O W } d o e s n o t h a v 0104540 e a { l i s p C A L C U L 0104560 A T E R E G I O N } w i n d o 0104600 w p r o p e r t y , t h e 0104620 r e g i o n o f { a r g W 0104640 I N D O W } i s u s e d t 0104660 o p r o m p t w i t h . \r \r 0104700 I f { a r g P O S o r X } 0104720 i s a { l i s p P O S I T 0104740 I O N } , { a r g P O S o r 0104760 X } i s u s e d . \r \r I f 0105000 { a r g P O S o r X } a n d 0105020 { a r g Y } a r e b o t 0105040 h { l i s p N U M B E R P } 0105060 , a p o s i t i o n i s 0105100 c r e a t e d u s i n g { a 0105120 r g P O S o r X } a s t h 0105140 e { l i s p X C O O R D } 0105160 a n d { a r g Y } a s t 0105200 h e { l i s p Y C O O R D } 0105220 . \r \r I f { a r g P O S o r 0105240 X } i s a { l i s p R E 0105260 G I O N } , a p o s i t i o 0105300 n i s c r e a t e d u s i 0105320 n g i t s { l i s p L E F 0105340 T } a s t h e { l i s p 0105360 X C O O R D } a n d { l i s 0105400 p B O T T O M } a s t h e 0105420 { l i s p Y C O O R D } . \r 0105440 \r I f { a r g W I N D O W } 0105460 i s n o t o p e n a n d 0105500 { a r g P O S o r X } i s 0105520 n o n - { l i s p N I L } , 0105540 t h e w i n d o w w i l l 0105560 b e m o v e d w i t h o u 0105600 t b e i n g o p e n e d . 0105620 O t h e r w i s e , i t w 0105640 i l l b e o p e n e d . \r \r 0105660 I f { a r g W I N D O W } 0105700 h a s t h e a t o m { l i 0105720 s p D O N ' T } a s a { 0105740 l i s p M O V E F N } p r o 0105760 p e r t y ( { P a g e R e f 0106000 ( W i n d o w P r o p e r t y 0106020 ) M O V E F N } ) , t h e 0106040 w i n d o w w i l l n o t 0106060 b e m o v e d . I f { a 0106100 r g W I N D O W } h a s a 0106120 n y o t h e r n o n - { l i 0106140 s p N I L } v a l u e a s 0106160 a { l i s p M O V E F N } 0106200 p r o p e r t y , i t s h 0106220 o u l d b e a f u n c t i 0106240 o n o r l i s t o f f u 0106260 n c t i o n s t h a t w i l 0106300 l b e c a l l e d b e f o 0106320 r e t h e w i n d o w i s 0106340 m o v e d w i t h t h e 0106360 { a r g W I N D O W } a n d 0106400 t h e n e w p o s i t o n 0106420 a s i t s a r g u m e n t 0106440 s . I f i t r e t u r n 0106460 s t h e a t o m { l i s p 0106500 D O N ' T } , t h e w i n 0106520 d o w w i l l n o t b e 0106540 m o v e d . I f i t r e 0106560 t u r n s a p o s i t i o n 0106600 , t h e w i n d o w w i l 0106620 l b e m o v e d t o t h 0106640 a t p o s i t i o n i n s t 0106660 e a d o f t h e n e w o 0106700 n e . I f t h e r e a r 0106720 e m o r e t h a n o n e 0106740 { l i s p M O V E F N } s , 0106760 t h e l a s t o n e t o 0107000 r e t u r n a v a l u e i 0107020 s t h e o n e t h a t d 0107040 e t e r m i n e s w h e r e 0107060 t h e w i n d o w i s m o 0107100 v e d t o . \r \r I f { a r g 0107120 W I N D O W } i s m o v e 0107140 d a n d { a r g W I N D O 0107160 W } h a s a w i n d o w 0107200 p r o p e r t y o f { l i s 0107220 p A F T E R M O V E F N } ( 0107240 { P a g e R e f ( W i n d o w 0107260 P r o p e r t y ) A F T E R 0107300 M O V E F N } ) , i t s h o 0107320 u l d b e a f u n c t i o 0107340 n o r a l i s t o f f 0107360 u n c t i o n s t h a t w i 0107400 l l b e c a l l e d a f t 0107420 e r t h e w i n d o w i s 0107440 m o v e d w i t h { a r g 0107460 W I N D O W } a s a n a 0107500 r g u m e n t . \r \r { f n M O 0107520 V E W } r e t u r n s t h e 0107540 n e w p o s i t i o n , o 0107560 r { l i s p N I L } i f 0107600 t h e w i n d o w c o u l d 0107620 n o t b e m o v e d . \r } 0107640 } \r \r \r { F n D e f { N a m e 0107660 R E L M O V E W } { A r g s 0107700 W I N D O W P O S I T I O N 0107720 } \r { T e x t \r L i k e { f n 0107740 M O V E W } f o r m o v i 0107760 n g w i n d o w s b u t { 0110000 a r g P O S I T I O N } i s 0110020 i n t e r p r e t e d r e l 0110040 a t i v e t o t h e c u r 0110060 r e n t p o s i t i o n o f 0110100 { a r g W I N D O W } . 0110120 E x a m p l e : T h e f o 0110140 l l o w i n g c o d e m o v 0110160 e s { a r g W I N D O W } 0110200 t o t h e r i g h t o n e 0110220 s c r e e n p o i n t . \r \r 0110240 { l i s p c o d e ( R E L M O 0110260 V E W { a r g W I N D O W } 0110300 ( c r e a t e P O S I T I O 0110320 N X C O O R D _ 1 Y C O 0110340 O R D _ 0 ) ) } \r } } \r \r \r 0110360 { F n D e f { N a m e C L E 0110400 A R W } { A r g s W I N D O 0110420 W } \r { T e x t \r F i l l s { 0110440 a r g W I N D O W } w i t h 0110460 i t s b a c k g r o u n d 0110500 t e x t u r e , c h a n g e s 0110520 i t s c o o r d i n a t e 0110540 s y s t e m s o t h a t t 0110560 h e o r i g i n i s t h e 0110600 l o w e r l e f t c o r n 0110620 e r o f t h e w i n d o w 0110640 , s e t s i t s X p o s 0110660 i t i o n t o t h e l e f 0110700 t m a r g i n a n d s e t 0110720 s i t s Y p o s i t i o n 0110740 t o t h e b a s e l i n 0110760 e o f t h e u p p e r m o 0111000 s t l i n e o f t e x t , 0111020 i e . t h e t o p o f 0111040 t h e w i n d o w l e s s 0111060 t h e f o n t a s c e n t . 0111100 \r } } \r \r \r { F n D e f { N a 0111120 m e B U R Y W } { A r g s 0111140 W I N D O W } \r { T e x t \r P 0111160 u t s { a r g W I N D O W } 0111200 o n t h e b o t t o m o 0111220 f t h e s t a c k b y m 0111240 o v i n g a l l t h e \r w i 0111260 n d o w s t h a t i t c o 0111300 v e r s i n f r o n t o f 0111320 i t . \r } } \r \r \r \r \r { F n D 0111340 e f { N a m e R E D I S P L 0111360 A Y W } { A r g s W I N D O 0111400 W R E G I O N A L W A Y S F 0111420 L G } \r { T e x t \r R e d i s 0111440 p l a y t h e r e g i o n 0111460 { a r g R E G I O N } o f 0111500 t h e w i n d o w { a r g 0111520 W I N D O W } . \r I f { a r g 0111540 R E G I O N } i s { l i s 0111560 p N I L } , t h e e n t i 0111600 r e w i n d o w i s r e d 0111620 i s p l a y e d . I f \r { a 0111640 r g A L W A Y S F L G } i s 0111660 { l i s p N I L } , a n d 0111700 { a r g W I N D O W } d o 0111720 e s n ' t h a v e a { l i 0111740 s p \r R E P A I N T F N } ( { 0111760 P a g e R e f ( W i n d o w 0112000 P r o p e r t y ) R E P A I N 0112020 T F N } ) , { a r g W I N D 0112040 O W } w i l l n o t c h a 0112060 n g e a n d t h e m e s s 0112100 a g e " T h a t w i n d o w 0112120 d o e s n ' t h a v e a 0112140 R E P A I N T F N " w i l l 0112160 b e p r i n t e d i n t h 0112200 e p r o m p t w i n d o w . 0112220 \r \r { n o t e w h a t w i l 0112240 l i t d o i f t h e r e 0112260 i s n o R E P A I N T F N 0112300 a n d A L W A Y S F L G = T 0112320 ? ? } \r } } \r \r \r { F n D e f 0112340 { N a m e S H R I N K W } { 0112360 A r g s W I N D O W T O W H 0112400 A T I C O N P O S I T I O N 0112420 E X P A N D F N } \r { T e x t \r 0112440 { f n S H R I N K W } m a k 0112460 e s a s m a l l i c o n 0112500 w h i c h r e p r e s e n t s 0112520 { a r g W I N D O W } a n 0112540 d r e m o v e s { a r g W 0112560 I N D O W } f r o m t h e 0112600 s c r e e n . I c o n s h 0112620 a v e a d i f f e r e n t 0112640 \r w i n d o w c o m m a n d 0112660 m e n u t h a t c o n t a i 0112700 n s " { l i s p E X P A N D 0112720 } " i n s t e a d o f \r " 0112740 { l i s p S H R I N K } " . 0112760 T h e { l i s p E X P A N D 0113000 } c o m m a n d c a l l s 0113020 { f n E X P A N D W } w h i 0113040 c h \r r e t u r n s t h e 0113060 s h r u n k e n w i n d o w 0113100 t o i t s o r i g i n a l 0113120 s i z e a n d p l a c e . 0113140 T h e i c o n c a n a l 0113160 s o b e e x p a n d e d b 0113200 y p r e s s i n g t h e { 0113220 l i s p M I D D L E } b u t 0113240 t o n i n i t . \r \r T h e 0113260 { l i s p S H R I N K F N } 0113300 p r o p e r t y ( { P a g e 0113320 R e f ( W i n d o w P r o p 0113340 e r t y ) S H R I N K F N } ) 0113360 o f t h e w i n d o w { 0113400 a r g W I N D O W } a f f e 0113420 c t s t h e o p e r a t i o 0113440 n o f { f n S H R I N K W 0113460 } . I f t h e { l i s p 0113500 S H R I N K F N } p r o p e 0113520 r t y o f { a r g W I N D 0113540 O W } i s t h e a t o m 0113560 { l i s p D O N ' T } , { f 0113600 n S H R I N K W } r e t u r 0113620 n s . O t h e r w i s e , 0113640 t h e { l i s p S H R I N K 0113660 F N } p r o p e r t y o f 0113700 t h e w i n d o w i s t r 0113720 e a t e d a s a ( l i s t 0113740 o f ) f u n c t i o n ( s ) 0113760 t o a p p l y t o { a r 0114000 g W I N D O W } ; i f a n 0114020 y r e t u r n s t h e a t 0114040 o m { l i s p D O N ' T } , 0114060 { f n S H R I N K W } r e 0114100 t u r n s . \r \r { a r g T O W 0114120 H A T } , i f g i v e n , 0114140 i n d i c a t e s t h e i m 0114160 a g e t h e i c o n w i n 0114200 d o w w i l l h a v e . 0114220 I f { a r g T O W H A T } 0114240 i s a s t r i n g , a t o 0114260 m o r l i s t , t h e i 0114300 c o n ' s i m a g e w i l l 0114320 b e t h a t s t r i n g 0114340 ( c u r r e n t l y i m p l e 0114360 m e n t e d a s a t i t l 0114400 e - o n l y w i n d o w w i 0114420 t h { a r g T O W H A T } 0114440 a s t h e t i t l e . ) 0114460 I f { a r g T O W H A T } 0114500 i s a { l i s p B I T M A 0114520 P } , t h e i c o n ' s i 0114540 m a g e w i l l b e a c 0114560 o p y o f t h e b i t m a 0114600 p . I f { A R G T O W H 0114620 A T } i s a { l i s p W 0114640 I N D O W } , t h a t w i n 0114660 d o w w i l l b e u s e d 0114700 a s t h e i c o n . \r \r \r 0114720 I f { a r g T O W H A T } 0114740 i s n o t g i v e n ( a s 0114760 i s t h e c a s e w h e 0115000 n i n v o k e d f r o m t 0115020 h e { l i s p S H R I N K } 0115040 w i n d o w c o m m a n d ) 0115060 , t h e n t h e f o l l o 0115100 w i n g a p p l y i n t u 0115120 r n : ( 1 ) I f t h e 0115140 w i n d o w h a s a n { 0115160 l i s p I C O N F N } p r o 0115200 p e r t y ( { P a g e R e f 0115220 ( W i n d o w P r o p e r t y 0115240 ) I C O N F N } ) , i t g 0115260 e t s c a l l e d w i t h 0115300 a r g u m e n t s { l i s p 0115320 ( { a r g W I N D O W } { a 0115340 r g O L D I C O N } ) } , w 0115360 h e r e { a r g W I N D O W 0115400 } i s t h e w i n d o w 0115420 b e i n g s h r u n k a n d 0115440 { a r g O L D I C O N } i 0115460 s t h e p r e v i o u s l y 0115500 c r e a t e d i c o n , i 0115520 f a n y . T h e { l i s 0115540 p I C O N F N } s h o u l d 0115560 r e t u r n o n e o f t 0115600 h e { a r g T O W H A T } 0115620 e n t i t i e s d e s c r i b 0115640 e d a b o v e o r r e t u 0115660 r n t h e { a r g O L D I 0115700 C O N } i f i t d o e s 0115720 n o t w a n t t o c h a n 0115740 g e i t . ( 2 ) I f 0115760 t h e w i n d o w h a s a 0116000 n { l i s p I C O N } p r 0116020 o p e r t y ( { P a g e R e f 0116040 ( W i n d o w P r o p e r t 0116060 y ) I C O N } ) , i t i s 0116100 u s e d a s t h e v a l 0116120 u e o f { a r g T O W H A 0116140 T } . ( 3 ) I f t h e 0116160 w i n d o w h a s n e i t 0116200 h e r a n { l i s p I C O 0116220 N F N } o r { l i s p I C 0116240 O N } p r o p e r t y , t h 0116260 e i c o n w i l l b e { 0116300 a r g W I N D O W } ' s t i 0116320 t l e o r , i f { a r g 0116340 W I N D O W } d o e s n ' t 0116360 h a v e a t i t l e , t h 0116400 e d a t e a n d t i m e 0116420 o f t h e i c o n c r e a 0116440 t i o n . \r \r { a r g I C O N 0116460 P O S I T I O N } g i v e s 0116500 t h e p o s i t i o n t h a 0116520 t t h e n e w i c o n w 0116540 i l l b e o n t h e s c 0116560 r e e n . I f i t i s 0116600 { l i s p N I L } , t h e 0116620 i c o n w i l l b e i n 0116640 t h e c o r n e r o f t h 0116660 e w i n d o w f u r t h e s 0116700 t f r o m t h e c e n t e 0116720 r o f t h e s c r e e n . 0116740 \r \r I n a l l b u t t h e 0116760 d e f a u l t c a s e , t 0117000 h e i c o n i s c a c h e 0117020 d o n t h e p r o p e r t 0117040 y { l i s p I C O N W I N D 0117060 O W } ( { P a g e R e f ( W 0117100 i n d o w P r o p e r t y ) 0117120 I C O N W I N D O W } ) o f 0117140 { a r g W I N D O W } s o 0117160 r e p e a t i n g { f n S H 0117200 R I N K W } r e u s e s t h 0117220 e s a m e i c o n ( u n l 0117240 e s s o v e r r i d d e n b 0117260 y t h e { l i s p I C O N 0117300 F N } d e s c r i b e d a b 0117320 o v e ) . T h u s t o c 0117340 h a n g e t h e i c o n i 0117360 t i s n e c e s s a r y t 0117400 o r e m o v e t h e { l i 0117420 s p I C O N W I N D O W } p 0117440 r o p e r t y o r c a l l 0117460 { f n S H R I N K W } e x p 0117500 l i c i t l y g i v i n g a 0117520 { a r g T O W H A T } a r 0117540 g u m e n t . \r } } \r \r \r { F n 0117560 d e f { n a m e E X P A N D 0117600 W } { a r g s I C O N } \r { 0117620 t e x t \r R e s t o r e s t h 0117640 e w i n d o w f o r w h i 0117660 c h { a r g I C O N } i s 0117700 a n i c o n , a n d r e 0117720 m o v e s t h e i c o n f 0117740 r o m t h e s c r e e n . 0117760 I f t h e { l i s p E X 0120000 P A N D F N } ( { P a g e R e 0120020 f ( W i n d o w P r o p e r 0120040 t y ) E X P A N D F N } ) w 0120060 i n d o w p r o p e r t y o 0120100 f t h e m a i n w i n d o 0120120 w i s t h e a t o m { l 0120140 i s p D O N ' T } , t h e 0120160 w i n d o w w o n ' t b e 0120200 e x p a n d e d . O t h e r 0120220 w i s e , t h e w i n d o w 0120240 w i l l b e r e s t o r e 0120260 d t o i t s o r i g i n a 0120300 l s i z e a n d l o c a t 0120320 i o n a n d t h e { l i s 0120340 p E X P A N D F N } ( o r 0120360 l i s t o f f u n c t i o n 0120400 s ) w i l l b e a p p l i 0120420 e d t o i t . \r } } \r \r \r { 0120440 F n d e f { n a m e I N V E 0120460 R T W } { a r g s W I N D O 0120500 W S H A D E } \r { t e x t \r F 0120520 i l l s t h e w i n d o w 0120540 { A R G W I N D O W } w i t 0120560 h a s h a d e i n I N V 0120600 E R T m o d e . I f S H 0120620 A D E i s { l i s p N I L 0120640 } , { L I S P B L A C K S H 0120660 A D E } i s u s e d . { 0120700 f n I N V E R T W } r e t u 0120720 r n { a r g W I N D O W } 0120740 s o t h a t i t c a n b 0120760 e u s e d i n s i d e { f 0121000 n R E S E T F O R M } . } \r \r 0121020 \r { F n d e f { n a m e F L 0121040 A S H W I N D O W } { a r g s 0121060 W I N ? N F L A S H I N T 0121100 E R V A L S H A D E } \r { t e 0121120 x t \r F l a s h e s a w i n 0121140 d o w b y f i l l i n g i 0121160 t w i t h a s h a d e . 0121200 { A R G W I N ? } i s t 0121220 h e w i n d o w t o f l a 0121240 s h . { a r g N } i s t 0121260 h e n u m b e r o f t i m 0121300 e s t o f l a s h t h e 0121320 w i n d o w a n d d e f a u 0121340 l t s t o 1 . { a r g 0121360 F L A S H I N T E R V A L } i 0121400 s t h e l e n g h t o f 0121420 t i m e i n m i l l i s e c 0121440 o n d s t o w a i t b e t 0121460 w e e n f l a s h e s a n d 0121500 d e f a u l t s t o 2 0 0 0121520 . { a r g S H A D E } i 0121540 s t h e s h a d e t h a t 0121560 w i l l b e f l a s h e d 0121600 a n d d e f a u l t s t o 0121620 { l i s p B L A C K S H A D 0121640 E } . \r } \r \r \r \r } { E n d S 0121660 u b S e c P r o g r a m m a t 0121700 i c W i n d o w O p e r a t 0121720 i o n s } \r \r \r \r { B e g i n 0121740 S u b S e c W i n d o w P r 0121760 o p e r t i e s } \r { T i t l e 0122000 W i n d o w P r o p e r t i 0122020 e s } \r { T e x t \r \r \r T h e 0122040 b e h a v i o r o f a w i 0122060 n d o w i s c o n t r o l l 0122100 e d b y a s e t o f { 0122120 t e r m w i n d o w p r o p 0122140 e r t i e s } . S o m e o 0122160 f t h e s e a r e u s e d 0122200 b y t h e s y s t e m . 0122220 H o w e v e r , a n y a r 0122240 b i t r a r y p r o p e r t y 0122260 n a m e m a y b e u s e 0122300 d b y a u s e r p r o g 0122320 r a m t o a s s o c i a t e 0122340 i n f o r m a t i o n w i t 0122360 h a w i n d o w . F o r 0122400 m a n y a p p l i c a t i o 0122420 n s t h e u s e r w i l l 0122440 a s s o c i a t e t h e s 0122460 t r u c t u r e b e i n g d 0122500 i s p l a y e d w i t h i t 0122520 s w i n d o w u s i n g a 0122540 p r o p e r t y . T h e 0122560 f o l l o w i n g f u n c t i 0122600 o n s p r o v i d e f o r 0122620 r e a d i n g a n d s e t t 0122640 i n g w i n d o w p r o p e 0122660 r t i e s : \r \r \r { F n D e f 0122700 { N a m e W I N D O W P R O P 0122720 } { A r g s W I N D O W P 0122740 R O P N E W V A L U E } \r { T 0122760 y p e n o s p r e a d } \r { T 0123000 e x t \r R e t u r n s t h e 0123020 p r e v i o u s v a l u e o 0123040 f { a r g W I N D O W } ' s 0123060 { a r g P R O P } a s p e 0123100 c t . I f { a r g N E W 0123120 V A L U E } i s g i v e n , 0123140 ( e v e n i f g i v e n 0123160 a s { l i s p N I L } ) , 0123200 i t i s s t o r e d a s 0123220 t h e n e w { a r g P R O 0123240 P } a s p e c t . S o m e 0123260 a s p e c t s c a n n o t 0123300 b e s e t b y t h e u s 0123320 e r a n d w i l l g e n e 0123340 r a t e e r r o r s . A n 0123360 y { a r g P R O P } n a m 0123400 e t h a t i s n o t r e 0123420 c o g n i z e d i s s t o r 0123440 e d o n a p r o p e r t y 0123460 l i s t a s s o c i a t e d 0123500 w i t h t h e w i n d o w 0123520 . \r } } \r \r \r { F n D e f { N 0123540 a m e W I N D O W A D D P R O 0123560 P } { a r g s W I N D O W 0123600 P R O P I T E M T O A D D F 0123620 I R S T F L G } \r { T e x t \r { 0123640 f n W I N D O W A D D P R O P 0123660 } a d d s a n e w i t e 0123700 m t o a w i n d o w p r 0123720 o p e r t y . I f { a r g 0123740 I T E M T O A D D } i s { 0123760 l i s p E Q } t o a n e 0124000 l e m e n t o f t h e { a 0124020 r g P R O P } p r o p e r t 0124040 y o f t h e w i n d o w 0124060 { a r g W I N D O W } , n o 0124100 t h i n g i s a d d e d . 0124120 I f t h e c u r r e n t 0124140 p r o p e r t y i s n o t 0124160 a l i s t , i t i s m a 0124200 d e a l i s t b e f o r e 0124220 { a r g I T E M T O A D D } 0124240 a d d e d . { f n W I N 0124260 D O W A D D P R O P } r e t u 0124300 r n s t h e p r e v i o u s 0124320 p r o p e r t y . I f { 0124340 a r g F I R S T F L G } i s 0124360 n o n - { l i s p N I L } , 0124400 t h e n e w i t e m g o 0124420 e s o n t h e f r o n t 0124440 o f t h e l i s t ; o t h 0124460 e r w i s e , i t g o e s 0124500 o n t h e e n d o f t h 0124520 e l i s t . I f { a r g 0124540 F I R S T F L G } i s n o 0124560 n - { l i s p N I L } a n d 0124600 { a r g I T E M T O A D D } 0124620 i s a l r e a d y o n t 0124640 h e l i s t , i t i s m 0124660 o v e d t o t h e f r o n 0124700 t . ( N o t e : I f t h 0124720 e o r d e r o f i t e m s 0124740 i n t h e l i s t i s 0124760 i m p o r t a n t , t h e l 0125000 i s t c a n b e m o d i f 0125020 i e d u s i n g { f n W I 0125040 N D O W P R O P } . ) { f n 0125060 W I N D O W A D D P R O P } 0125100 i s u s e f u l f o r a d 0125120 d i n g { l i s p O P E N F 0125140 N } o r { l i s p C L O S 0125160 E F N } f u n c t i o n s t 0125200 o a w i n d o w w i t h o 0125220 u t a f f e c t i n g i t s 0125240 e x i s t i n g f u n c t i 0125260 o n s . \r } } \r \r \r { F n D e f 0125300 { N a m e W I N D O W D E L 0125320 P R O P } { a r g s W I N D 0125340 O W P R O P I T E M T O D E 0125360 L E T E } \r { T e x t \r { f n 0125400 W I N D O W D E L P R O P } d 0125420 e l e t e s { a r g I T E M 0125440 T O D E L E T E } f r o m t 0125460 h e w i n d o w p r o p e r 0125500 t y { a r g P R O P } o f 0125520 { a r g W I N D O W } a n 0125540 d r e t u r n s t h e p r 0125560 e v i o u s l i s t i f { 0125600 a r g I T E M T O D E L E T E 0125620 } w a s a n e l e m e n t 0125640 . I f { a r g I T E M T 0125660 O D E L E T E } w a s n o t 0125700 a m e m b e r o f w i n 0125720 d o w p r o p e r t y { a r 0125740 g P R O P } , { l i s p N 0125760 I L } i s r e t u r n e d . 0126000 \r } } \r \r \r { n o t e s h o u 0126020 l d h a v e v a r i a b l e 0126040 S Y S W I N D O W P R O P S 0126060 t h a t i s a l i s t o 0126100 f a l l w i n d o w p r o 0126120 p e r t i e s u s e d b y 0126140 t h e s y s t e m } \r \r \r \r { 0126160 B e g i n S u b S e c M o u 0126200 s e F u n c t i o n W i n d 0126220 o w P r o p e r t i e s } \r { 0126240 T i t l e M o u s e F u n c 0126260 t i o n W i n d o w P r o p 0126300 e r t i e s } \r { T e x t \r \r \r 0126320 T h e s e p r o p e r t i e s 0126340 a l l o w t h e u s e r 0126360 t o c o n t r o l t h e r 0126400 e s p o n s e t o m o u s e 0126420 a c t i v i t y i n a w 0126440 i n d o w . T h e v a l u 0126460 e o f t h e s e p r o p e 0126500 r t i e s , i f n o n - { l 0126520 i s p N I L } , s h o u l d 0126540 b e a f u n c t i o n \r t 0126560 h a t w i l l b e c a l l 0126600 e d ( w i t h t h e w i n 0126620 d o w a s a r g u m e n t ) 0126640 w h e n t h e s p e c i f 0126660 i e d e v e n t \r o c c u r s 0126700 . \r \r N o t e : t h e s e f 0126720 u n c t i o n s s h o u l d 0126740 b e " s e l f - c o n t a i n 0126760 e d " , c o m m u n i c a t i 0127000 n g w i t h t h e o u t s 0127020 i d e w o r l d s o l e l y 0127040 v i a t h e i r w i n d o 0127060 w a r g u m e n t , e . g . 0127100 , b y s e t t i n g w i n 0127120 d o w p r o p e r t i e s . 0127140 I n p a r t i c u l a r , 0127160 t h e s e f u n c t i o n s 0127200 s h o u l d n o t e x p e c 0127220 t t o a c c e s s v a r i 0127240 a b l e s b o u n d o n t 0127260 h e s t a c k , a s t h e 0127300 s t a c k c o n t e x t i 0127320 s f o r m a l l y u n d e f 0127340 i n e d a t t h e t i m e 0127360 t h e s e f u n c t i o n s 0127400 a r e c a l l e d . S i 0127420 n c e t h e f u n c t i o n 0127440 s a r e i n v o k e d a s 0127460 y n c h r o n o u s l y , t h 0127500 e y p e r f o r m a n y { 0127520 l i s p T T Y } i n p u t 0127540 o p e r a t i o n s f r o m 0127560 t h e i r o w n w i n d o w 0127600 . \r \r \r \r { D e f { T y p e 0127620 ( W i n d o w P r o p e r t y 0127640 ) } { N a m e W I N D O W E 0127660 N T R Y F N } \r { T e x t \r W h 0127700 e n e v e r a b u t t o n 0127720 g o e s d o w n i n t h e 0127740 w i n d o w a n d t h e 0127760 p r o c e s s a s s o c i a t 0130000 e d w i t h t h e w i n d 0130020 o w ( s t o r e d u n d e r 0130040 t h e { l i s p P R O C E 0130060 S S } p r o p e r t y ) i s 0130100 n o t t h e t t y p r o 0130120 c e s s , t h e { l i s p 0130140 W I N D O W E N T R Y F N } i 0130160 s c a l l e d . T h e d 0130200 e f a u l t i s { l i s p 0130220 G I V E . T T Y . P R O C E S S 0130240 } ( { P a g e R e f F n G 0130260 I V E . T T Y . P R O C E S S } 0130300 ) w h i c h g i v e s t h 0130320 e p r o c e s s a s s o c i 0130340 a t e d w i t h t h e w i 0130360 n d o w t h e t t y a n d 0130400 c a l l s t h e { l i s p 0130420 B U T T O N E V E N T F N } . 0130440 { l i s p W I N D O W E N 0130460 T R Y F N } c a n b e a 0130500 l i s t o f f u n c t i o n 0130520 s a n d a l l w i l l b 0130540 e c a l l e d . \r } } \r \r \r 0130560 { D e f { T y p e ( W i n d 0130600 o w P r o p e r t y ) } { N 0130620 a m e C U R S O R I N F N } \r 0130640 { T e x t \r W h e n e v e r t 0130660 h e m o u s e m o v e s i 0130700 n t o t h e w i n d o w , 0130720 t h e { l i s p C U R S O R 0130740 I N F N } i s c a l l e d . 0130760 { l i s p C U R S O R I N 0131000 F N } c a n b e a l i s 0131020 t o f f u n c t i o n s a 0131040 n d a l l w i l l b e c 0131060 a l l e d . \r } } \r \r \r { D e f 0131100 { T y p e ( W i n d o w P 0131120 r o p e r t y ) } { N a m e 0131140 C U R S O R O U T F N } \r { T e 0131160 x t \r T h e { l i s p C U R 0131200 S O R O U T F N } i s c a l 0131220 l e d w h e n t h e c u r 0131240 s o r l e a v e s t h e w 0131260 i n d o w . { l i s p C U 0131300 R S O R O U T F N } c a n b 0131320 e a l i s t o f f u n c 0131340 t i o n s a n d a l l w i 0131360 l l b e c a l l e d . \r } } 0131400 \r \r \r { D e f { T y p e ( W 0131420 i n d o w P r o p e r t y ) } 0131440 { N a m e C U R S O R M O V 0131460 E D F N } \r { T e x t \r T h e 0131500 { l i s p C U R S O R M O V E 0131520 D F N } i s c a l l e d w 0131540 h e n e v e r t h e c u r s 0131560 o r h a s m o v e d a n d 0131600 i s i n s i d e t h e w 0131620 i n d o w . { l i s p C U 0131640 R S O R M O V E D F N } c a n 0131660 b e a l i s t o f f u 0131700 n c t i o n s a n d a l l 0131720 w i l l b e c a l l e d . 0131740 T h i s a l l o w s a w 0131760 i n d o w f u n c t i o n t 0132000 o i m p l e m e n t " a c t 0132020 i v e " r e g i o n s w i t 0132040 h i n i t s e l f b y h a 0132060 v i n g i t s { l i s p C 0132100 U R S O R M O V E D F N } d e 0132120 t e r m i n e i f t h e c 0132140 u r s o r i s i n a r e 0132160 g i o n o f i n t e r e s t 0132200 , a n d i f s o , p e r 0132220 f o r m s o m e a c t i o n 0132240 . \r } } \r \r \r { D e f { T y p 0132260 e ( W i n d o w P r o p e r 0132300 t y ) } { N a m e B U T T O 0132320 N E V E N T F N } \r { T e x t \r 0132340 T h e { l i s p B U T T O N 0132360 E V E N T F N } i s c a l l 0132400 e d w h e n e v e r t h e r 0132420 e i s a c h a n g e i n 0132440 t h e s t a t e ( u p o 0132460 r d o w n ) o f t h e m 0132500 o u s e b u t t o n s i n s 0132520 i d e t h e w i n d o w . 0132540 C h a n g e s t o t h e 0132560 m o u s e s t a t e w h i l 0132600 e t h e { l i s p B U T T 0132620 O N E V E N T F N } i s r u 0132640 n n i n g w i l l n o t b 0132660 e i n t e r p r e t e d a s 0132700 n e w b u t t o n e v e n 0132720 t s , a n d t h e { l i s 0132740 p B U T T O N E V E N T F N } 0132760 w i l l n o t b e r e - 0133000 i n v o k e d . \r } } \r \r \r { D 0133020 e f { T y p e ( W i n d o w 0133040 P r o p e r t y ) } { N a m 0133060 e R I G H T B U T T O N F N } 0133100 \r { T e x t \r T h e { l i s p 0133120 R I G H T B U T T O N F N } 0133140 i s c a l l e d i n l i e 0133160 u o f t h e s t a n d a r 0133200 d w i n d o w m e n u o p 0133220 e r a t i o n { l i s p ( D 0133240 O W I N D O W C O M ) } w h e 0133260 n t h e { l i s p R I G H 0133300 T } k e y i s d e p r e s 0133320 s e d i n a w i n d o w . 0133340 M o r e s p e c i f i c a 0133360 l l y , t h e { l i s p R 0133400 I G H T B U T T O N F N } i s 0133420 c a l l e d i n s t e a d 0133440 o f t h e { l i s p B U T 0133460 T O N E V E N T F N } w h e n 0133500 { l i s p ( M O U S E S T A 0133520 T E ( O N L Y R I G H T ) ) 0133540 } . I f t h e { l i s p 0133560 R I G H T } k e y i s t 0133600 o b e t r e a t e d l i k 0133620 e a n y o t h e r k e y 0133640 i n a w i n d o w , s u p 0133660 p l y { l i s p R I G H T B 0133700 U T T O N F N } a n d { l i 0133720 s p B U T T O N E V E N T F N 0133740 } w i t h t h e s a m e 0133760 f u n c t i o n . \r \r N o t e : 0134000 W h e n a n a p p l i c 0134020 a t i o n p r o g r a m d e 0134040 f i n e s i t s o w n { l 0134060 i s p R I G H T B U T T O N F 0134100 N } , t h e r e i s a c 0134120 o n v e n t i o n t h a t t 0134140 h e d e f a u l t { l i s p 0134160 R I G H T B U T T O N F N } , 0134200 { f n D O W I N D O W C O M 0134220 } ( { P a g e R e f F n D 0134240 O W I N D O W C O M } ) , m a 0134260 y b e e x e c u t e d b y 0134300 d e p r e s s i n g t h e 0134320 { l i s p R I G H T } k e y 0134340 w h e n t h e c u r s o r 0134360 i s i n t h e h e a d e 0134400 r o r b o r d e r o f a 0134420 w i n d o w . U s e r p 0134440 r o g r a m s a r e e n c o 0134460 u r a g e d t o f o l l o w 0134500 t h i s c o n v e n t i o n 0134520 . \r } } \r \r \r } { E n d S u b 0134540 S e c M o u s e F u n c t i 0134560 o n W i n d o w P r o p e r 0134600 t i e s } \r \r \r \r \r { B e g i n 0134620 S u b S e c E v e n t W 0134640 i n d o w P r o p e r t i e s 0134660 } \r { T i t l e E v e n t W 0134700 i n d o w P r o p e r t i e s 0134720 } \r { T e x t \r \r \r { D e f { 0134740 T y p e ( W i n d o w P r o 0134760 p e r t y ) } { N a m e C L 0135000 O S E F N } \r { T e x t \r T h e 0135020 { l i s p C L O S E F N } 0135040 w i n d o w p r o p e r t y 0135060 c a n b e a s i n g l e 0135100 f u n c t i o n o r a l i 0135120 s t o f f u n c t i o n s 0135140 t h a t a r e c a l l e d 0135160 j u s t b e f o r e a w i 0135200 n d o w i s c l o s e d b 0135220 y { f n C L O S E W } ( { 0135240 P a g e R e f F n C L O S E 0135260 W } ) . ( N o t e : I f 0135300 t h e { l i s p C A R } o 0135320 f t h e l i s t i s a 0135340 { l i s p L A M B D A } w o 0135360 r d , i t i s t r e a t e 0135400 d a s a s i n g l e f u 0135420 n c t i o n . ) T h e f u 0135440 n c t i o n ( s ) w i l l b 0135460 e c a l l e d w i t h t h 0135500 e w i n d o w a s a s i 0135520 n g l e a r g u m e n t . 0135540 I f a n y o f t h e { l 0135560 i s p C L O S E F N } s a r 0135600 e t h e a t o m { l i s p 0135620 D O N ' T } , o r i f t 0135640 h e v a l u e r e t u r n e 0135660 d b y a n y o f t h e 0135700 { l i s p C L O S E F N } s 0135720 i s t h e a t o m { l i s 0135740 p D O N ' T } , t h e w i 0135760 n d o w w i l l n o t b e 0136000 c l o s e d . \r \r N o t e : 0136020 A { l i s p C L O S E F N 0136040 } s h o u l d n o t c a l 0136060 l { f n C L O S E W } o n 0136100 i t s a r g u m e n t . \r } 0136120 } \r \r \r { D e f { T y p e ( 0136140 W i n d o w P r o p e r t y ) 0136160 } { N a m e O P E N F N } \r 0136200 { T e x t \r T h e { l i s p 0136220 O P E N F N } w i n d o w p 0136240 r o p e r t y c a n b e a 0136260 s i n g l e f u n c t i o n 0136300 o r a l i s t o f f u 0136320 n c t i o n s . I f o n e 0136340 o f t h e { l i s p O P 0136360 E N F N } s i s t h e a t 0136400 o m { l i s p D O N ' T } , 0136420 t h e w i n d o w w i l l 0136440 n o t b e o p e n e d . 0136460 O t h e r w i s e , t h e 0136500 { l i s p O P E N F N } s a 0136520 r e c a l l e d a f t e r 0136540 a w i n d o w h a s b e e 0136560 n o p e n e d b y { f n 0136600 O P E N W } ( { P a g e R e f 0136620 F n O P E N W } ) , w i t 0136640 h t h e w i n d o w a s 0136660 a s i n g l e a r g u m e n 0136700 t . \r } } \r \r \r { n o t e O P 0136720 E N F N a n d C L O S E F N 0136740 s e e m g r a t u i t o u s 0136760 l y a s y m m e t r i c : t 0137000 h e V A L U E S o f C L O 0137020 S E F N s a r e s c a n n e 0137040 d f o r t h e v a l u e 0137060 D O N ' T , b u t y o u h 0137100 a v e t o h a v e t h e 0137120 a t o m D O N ' T a s a n 0137140 O P E N F N ( y o u c a n 0137160 ' t c o m p u t e i t ) 0137200 T h e p r o b l e m i s t 0137220 h a t s o m e O P E N F N s 0137240 m i g h t w a n t t o h 0137260 a c k t h e o p e n w i n 0137300 d o w . H m m m . . . } \r \r 0137320 \r { D e f { T y p e ( W i n 0137340 d o w P r o p e r t y ) } { 0137360 N a m e T O T O P F N } \r { T 0137400 e x t \r I f n o n - { l i s p 0137420 N I L } , w h e n e v e r 0137440 t h e w i n d o w i s b r 0137460 o u g h t t o t h e t o p 0137500 , t h e { l i s p T O T O 0137520 P F N } i s c a l l e d ( 0137540 w i t h t h e w i n d o w 0137560 a s a s i n g l e a r g u 0137600 m e n t ) . T h i s f u n 0137620 c t i o n m a y b e u s e 0137640 d t o b r i n g a c o l 0137660 l e c t i o n o f w i n d o 0137700 w s t o t h e t o p t o 0137720 g e t h e r . \r \r I f t h e 0137740 { a r g N O C A L L T O P W F 0137760 N } a r g u m e n t o f { 0140000 f n T O T O P W } ( { P a g 0140020 e R e f F n T O T O P W } ) 0140040 i s n o n - { l i s p N I 0140060 L } , t h e { l i s p T O 0140100 T O P F N } o f t h e w i 0140120 n d o w i s n o t c a l l 0140140 e d , w h i c h p r o v i d 0140160 e s a w a y o f a v o i 0140200 d i n g i n f i n i t e l o 0140220 o p s w h e n u s i n g { 0140240 f n T O T O P W } f r o m 0140260 w i t h i n a { l i s p T 0140300 O T O P F N } . \r } } \r \r \r { D 0140320 e f { T y p e ( W i n d o w 0140340 P r o p e r t y ) } { N a m 0140360 e S H R I N K F N } \r { T e x 0140400 t \r T h e { l i s p S H R I 0140420 N K F N } w i n d o w p r o 0140440 p e r t y c a n b e a s 0140460 i n g l e f u n c t i o n o 0140500 r a l i s t o f f u n c 0140520 t i o n s t h a t a r e c 0140540 a l l e d j u s t b e f o r 0140560 e a w i n d o w i s s h 0140600 r u n k e n b y { f n S H 0140620 R I N K W } ( { P a g e R e f 0140640 F n S H R I N K W } ) , w 0140660 i t h t h e w i n d o w a 0140700 s a s i n g l e a r g u m 0140720 e n t . I f a n y o f 0140740 t h e { l i s p S H R I N K 0140760 F N } s a r e t h e a t o 0141000 m { l i s p D O N ' T } , 0141020 o r i f t h e v a l u e 0141040 r e t u r n e d b y a n y 0141060 o f t h e { l i s p S H R 0141100 I N K F N } s i s t h e a 0141120 t o m { l i s p D O N ' T } 0141140 , t h e w i n d o w w i l 0141160 l n o t b e s h r u n k . 0141200 \r } } \r \r \r { D e f { T y p e 0141220 ( W i n d o w P r o p e r t 0141240 y ) } { N a m e I C O N F N 0141260 } \r { T e x t \r I f { f n S 0141300 H R I N K W } ( { P a g e R e 0141320 f F n S H R I N K W } ) i 0141340 s c a l l e d w i t h o u t 0141360 b e g i n g i v e n a { 0141400 a r g T O W H A T } a r g u 0141420 m e n t ( a s i s t h e 0141440 c a s e w h e n i n v o k e 0141460 d f r o m t h e { l i s p 0141500 S H R I N K } w i n d o w 0141520