$ od -c -N 50000 [eris]<Lisp>KOTO>LISPUSERS>KEYOBJ.TEDIT!1 0000000 X E R O X \t K E Y O B J \r 2 \r \r 0000020 4 \r \r 1 \r \r K E Y O B J \r 1 \r \r 0000040 4 \r \r B y : G r e g N u y 0000060 e n s ( N u y e n s . p a @ X 0000100 e r o x . c o m ) \r K E Y O B J 0000120 p r o v i d e s a n I n t 0000140 e r l i s p - D i m a g e o b 0000160 j e c t w h i c h m i m i c 0000200 s a k e y . T h e d e 0000220 f a u l t i m a g e l o o k 0000240 s l i k e t h i s : \r \0 001 \0 0000260 \0 \0 \0 \0 ` \0 : \0 001 \0 \0 \0 \0 \0 \0 \0 0000300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000320 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 377 377 0000340 377 377 377 377 377 377 377 376 \0 001 377 377 377 377 377 377 0000360 377 377 377 376 \0 001 376 \0 \0 \0 \0 \0 \0 \0 001 376 0000400 \0 001 360 \0 \0 \0 \0 \0 \0 \0 \0 > \0 001 360 \0 0000420 \0 \0 \0 \0 \0 \0 \0 > \0 001 330 \0 \0 \0 \0 \0 0000440 \0 \0 \0 N \0 001 354 177 377 377 377 377 377 377 370 216 0000460 \0 001 326 300 \0 \0 \0 \0 \0 \0 \r 016 \0 001 253 \0 0000500 \0 \0 \0 \0 \0 \0 002 006 \0 001 326 \0 \0 \0 \0 \0 0000520 \0 \0 001 006 \0 001 256 \0 \0 \0 \0 \0 \0 \0 001 206 0000540 \0 001 324 \0 \0 \0 \0 \0 \0 \0 \0 206 \0 001 254 \0 0000560 \0 \0 \0 \0 \0 \0 \0 206 \0 001 324 \0 \0 \0 \0 \0 0000600 \0 \0 \0 206 \0 001 254 \0 \0 \0 \0 \0 \0 \0 \0 206 0000620 \0 001 324 \0 \0 \0 \0 \0 \0 \0 \0 206 \0 001 254 \0 0000640 \0 \0 \0 \0 \0 \0 \0 206 \0 001 324 \0 \0 \0 \0 \0 0000660 \0 \0 \0 206 \0 001 254 \0 \0 \0 \0 \0 \0 \0 \0 206 0000700 \0 001 324 \0 \0 \0 \0 \0 \0 \0 \0 206 \0 001 254 \0 0000720 \0 \0 \0 \0 \0 \0 \0 206 \0 001 324 \0 \0 \0 \0 \0 0000740 \0 \0 \0 206 \0 001 254 \0 \0 \0 \0 \0 \0 \0 \0 206 0000760 \0 001 324 \0 361 374 202 177 177 ? \0 206 \0 001 254 001 0001000 \t \0 302 \b @ 200 206 \0 001 324 002 001 \0 242 \b 0001020 @ 200 206 \0 001 254 002 001 370 222 \b ~ 200 206 0001040 \0 001 324 002 001 \0 222 \b @ ? \0 206 \0 001 254 002 0001060 001 \0 212 \b @ 200 206 \0 001 324 001 \t \0 206 \b 0001100 @ 200 206 \0 001 254 \0 361 374 202 \b 177 200 206 0001120 \0 001 324 \0 \0 \0 \0 \0 \0 \0 \0 206 \0 001 254 \0 0001140 \0 \0 \0 \0 \0 \0 \0 206 \0 001 324 \0 \0 \0 \0 \0 0001160 \0 \0 \0 206 \0 001 254 \0 \0 \0 \0 \0 \0 \0 \0 206 0001200 \0 001 324 \0 \0 \0 \0 \0 \0 \0 \0 206 \0 001 254 \0 0001220 \0 \0 \0 \0 \0 \0 \0 206 \0 001 324 \0 \0 \0 \0 \0 0001240 \0 \0 \0 206 \0 001 254 \0 \0 \0 \0 \0 \0 \0 \0 206 0001260 \0 001 326 \0 \0 \0 \0 \0 \0 \0 001 206 \0 001 252 \0 0001300 \0 \0 \0 \0 \0 \0 001 006 \0 001 327 \0 \0 \0 \0 \0 0001320 \0 \0 002 006 \0 001 345 300 \0 \0 \0 \0 \0 \0 017 016 0001340 \0 001 311 177 377 377 377 377 377 377 375 216 \0 001 362 * 0001360 252 252 252 252 252 252 252 316 \0 001 344 U U U U U 0001400 U U U ~ \0 001 370 252 252 252 252 252 252 252 252 276 0001420 \0 001 374 U U U U U U U U 376 \0 001 377 377 0001440 377 377 377 377 377 377 377 376 \0 001 377 377 377 377 377 377 0001460 377 377 377 376 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0001500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0001560 \0 \r T h e s e k e y s a r e 0001600 p r e s s e d b y c l i c 0001620 k i n g t h e m o u s e i 0001640 n s i d e t h e k e y ' s 0001660 i m a g e . T h e r e s u 0001700 l t o f p r e s s i n g a 0001720 k e y i s d e t e r m i n 0001740 e d ( j u s t l i k e t h 0001760 e p h y s i c a l k e y ) 0002000 b y t h e I n t e r l i s p 0002020 - D s y s t e m f u n c t i 0002040 o n K E Y A C T I O N . 0002060 T o e n t e r a K E Y 0002100 O B J i n t o T E d i t t 0002120 y p e ^ o . I n s i d e 0002140 t h e w i n d o w t h a t 0002160 p o p s u p , c a l l t h 0002200 e f o l l o w i n g f u n c 0002220 t i o n : \r ( K E Y O B J . C R 0002240 E A T E K e y N a m e K e 0002260 y L a b e l A b o r t a b l e 0002300 ) \t [ F u n c t i o n ] \r K e y 0002320 N a m e i s t h e k e y 0002340 t h a t y o u w a n t t h 0002360 e o b j e c t t o b e h a 0002400 v e l i k e . ( C E N T E 0002420 R i n t h e e x a m p l e 0002440 a b o v e ) . K e y L a b 0002460 e l i s a n o p t i o n a 0002500 l l a b e l o t h e r t h 0002520 a n t h e k e y w h o s e 0002540 a c t i o n i t m i m i c 0002560 s . I f K e y L a b e l i 0002600 s a l i s t o f t w o 0002620 e l e m e n t s , t h e f i 0002640 r s t i s d i s p l a y e d 0002660 a b o v e t h e s e c o n 0002700 d . A b o r t a b l e i s 0002720 a f l a g w h i c h i n 0002740 d i c a t e s t h a t n o 0002760 t r a n s i t i o n s s h o u 0003000 l d b e g e n e r a t e d 0003020 i f t h e m o u s e b u t 0003040 t o n i s r e l e a s e d 0003060 o u t s i d e t h e k e y 0003100 i m a g e . \r K E Y O B J . F O 0003120 N T \t [ V a r i a b l e ] \r D e 0003140 t e r m i n e s t h e f o n 0003160 t i n w h i c h t h e l 0003200 a b e l i s c r e a t e d 0003220 i n s i d e t h e k e y o b 0003240 j . D e f a u l t i s H 0003260 e l v e t i c a 1 0 . \r \r \0 0003300 \0 \0 \0 \0 003 ( L I S T ( ( P A G 0003320 E N I L ( F O L I O I N F O 0003340 ( A R A B I C ) S T A R T I 0003360 N G P A G E # 1 ) ( 0 0 0003400 6 1 2 7 9 2 ) ( ( F O L I O 0003420 N I L ( P A R A L O O K S 0003440 ( Q U A D C E N T E R E D ) 0003460 C H A R L O O K S ( S U P E R 0003500 S C R I P T 0 S I Z E 1 0 0003520 F A M I L Y M O D E R N O 0003540 V E R L I N E O F F S T R I 0003560 K E O U T O F F U N D E R L 0003600 I N E O F F S L O P E R E 0003620 G U L A R W E I G H T M E D 0003640 I U M ) F O R M A T I N F O 0003660 ( A R A B I C ) ) ( 1 7 4 3 0003700 6 2 8 8 3 6 ) N I L ) ( 0003720 H E A D I N G N I L ( H E A 0003740 D I N G T Y P E R U N N I N G 0003760 H E A D ) ( 8 4 7 4 4 4 4 0004000 4 3 6 ) N I L ) ( T E X T 0004020 N I L N I L ( 8 4 9 6 0004040 4 5 6 6 0 0 ) N I L ) ) ) 0004060 ( P A G E N I L N I L ( 0 0004100 0 6 1 2 7 9 2 ) ( ( F O 0004120 L I O N I L ( P A R A L O O 0004140 K S ( Q U A D C E N T E R E 0004160 D ) C H A R L O O K S ( S U 0004200 P E R S C R I P T 0 S I Z E 0004220 1 0 F A M I L Y M O D E R 0004240 N O V E R L I N E O F F S 0004260 T R I K E O U T O F F U N D 0004300 E R L I N E O F F S L O P E 0004320 R E G U L A R W E I G H T 0004340 M E D I U M ) ) ( 2 8 2 4 2 0004360 7 2 3 6 ) N I L ) ( H E 0004400 A D I N G N I L ( H E A D I 0004420 N G T Y P E R U N N I N G H E 0004440 A D ) ( 8 4 7 4 4 4 4 4 0004460 3 6 ) N I L ) ( T E X T N 0004500 I L N I L ( 8 4 9 6 4 5 0004520 6 6 0 0 ) N I L ) ) ) ( P 0004540 A G E N I L N I L ( 0 0 0004560 6 1 2 7 9 2 ) ( ( F O L I 0004600 O N I L ( P A R A L O O K S 0004620 ( Q U A D C E N T E R E D ) 0004640 C H A R L O O K S ( S U P E 0004660 R S C R I P T 0 S I Z E 1 0004700 0 F A M I L Y M O D E R N 0004720 O V E R L I N E O F F S T R 0004740 I K E O U T O F F U N D E R 0004760 L I N E O F F S L O P E R 0005000 E G U L A R W E I G H T M E 0005020 D I U M ) ) ( 2 8 2 4 2 7 0005040 2 3 6 ) N I L ) ( H E A D 0005060 I N G N I L ( H E A D I N G 0005100 T Y P E R U N N I N G H E A D 0005120 ) ( 8 4 7 4 4 4 4 4 3 6 0005140 ) N I L ) ( T E X T N I L 0005160 N I L ( 8 4 9 6 4 5 6 0005200 6 0 0 ) N I L ) ) ) ) ) \0 \0 \0 0005220 \0 \0 005 \0 \a \0 . \0 \0 \0 \0 001 310 \0 \f \0 0005240 \0 \0 005 003 004 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 0005260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005300 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 \0 \f \0 \0 \0 0005320 005 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 0005360 \0 001 310 \0 \f \0 \0 \0 005 002 004 \0 \0 \0 \0 \0 0005400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005420 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 \0 021 \0 \0 \0 0005440 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 0005500 212 001 8 \0 006 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 0005520 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005540 \0 \0 \0 \0 ( \0 212 \0 212 001 8 \0 \0 \0 \0 \0 0005560 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 D \0 \0 \0 0005620 \0 001 310 \0 \0 \0 \0 \0 \0 003 004 \0 \0 001 001 310 0005640 001 \0 \0 \0 \0 \0 \0 \0 \v P A G E H E A 0005660 D I N G \0 \v R U N N I N G H E A 0005700 D \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005720 \0 \0 \0 \0 004 \0 005 \0 027 \0 \t H E L V E 0005740 T I C A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 0005760 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 0006000 \0 \0 \0 024 \0 006 M O D E R N \0 \f \0 \0 0006020 \0 \0 \0 \0 002 \0 \0 024 \0 006 M O D E R N 0006040 \0 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 022 \0 004 L O 0006060 G O \0 030 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006100 \0 002 \0 \a \0 \0 \0 005 \0 \0 \0 \0 005 \0 \0 \0 0006120 001 \0 \0 \0 \0 004 \0 \0 \0 \a \0 \0 \0 \0 002 \0 0006140 \0 \0 \0 \0 002 \0 \a \0 \0 \0 002 \0 001 \0 \v H 0006160 R U L E . G E T F N 001 \0 024 \0 006 M 0006200 O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 0006220 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 006 0006240 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0006260 T F N 001 \0 024 \0 006 M O D E R N \0 \n 0006300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 0006320 002 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 002 \0 001 \0 0006340 \v H R U L E . G E T F N 001 \0 024 \0 0006360 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 0006400 \0 \0 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 0006420 \0 005 \0 \0 \0 \a \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0006440 002 \0 005 \0 \0 \0 002 \0 001 \0 \v H R U L E 0006460 . G E T F N 001 \0 024 \0 006 M O D E R 0006500 N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 0006520 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 002 0006540 \0 001 \0 \v H R U L E . G E T F N 001 0006560 \0 024 \0 006 M O D E R N \0 \f \0 \0 \0 \0 0006600 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 0006620 \0 \0 002 \0 004 \0 \0 \0 ' \0 \0 \0 \0 002 \0 \0 0006640 \0 \0 \0 002 \0 003 \0 \0 \0 c \0 \0 \0 \0 002 \0 0006660 \0 \0 \0 \0 002 \0 002 \0 \0 002 304 \0 001 \0 \f B 0006700 M O B J . G E T F N 3 001 \0 024 \0 006 0006720 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0006740 \0 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 0006760 001 \0 \0 001 $ \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 0007000 \0 001 \0 \0 \0 7 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 0007020 002 \0 001 \0 \0 001 z \0 \0 \0 \0 002 \0 \0 \0 \0 0007040 \0 002 \0 001 \0 \0 \0 027 \0 \0 \0 \0 002 \0 \0 \0 0007060 \0 \0 002 \0 001 \0 \0 \0 _ \0 \0 \0 \0 002 \0 \0 0007100 \0 \0 \0 002 \0 003 \0 \0 \0 001 \0 \0 \0 \0 001 \0 0007120 \0 \0 \0 \0 002 \0 003 \0 \0 \0 001 \0 \0 \0 \0 001 0007140 \0 \0 006 277 \0 + z 272 0007150