[Catalyst-commits] r7632 - in trunk/Catalyst-Engine-Wx: lib/Catalyst/Engine/Wx t

eriam at dev.catalyst.perl.org eriam at dev.catalyst.perl.org
Thu Apr 24 20:19:37 BST 2008


Author: eriam
Date: 2008-04-24 20:19:37 +0100 (Thu, 24 Apr 2008)
New Revision: 7632

Modified:
   trunk/Catalyst-Engine-Wx/lib/Catalyst/Engine/Wx/Event.pm
   trunk/Catalyst-Engine-Wx/t/3_wx.t
Log:
test 3 works

Modified: trunk/Catalyst-Engine-Wx/lib/Catalyst/Engine/Wx/Event.pm
===================================================================
--- trunk/Catalyst-Engine-Wx/lib/Catalyst/Engine/Wx/Event.pm	2008-04-24 19:08:04 UTC (rev 7631)
+++ trunk/Catalyst-Engine-Wx/lib/Catalyst/Engine/Wx/Event.pm	2008-04-24 19:19:37 UTC (rev 7632)
@@ -1,4513 +1,4512 @@
-ÿþp a c k a g e   C a t a l y s t : : E n g i n e : : W x : : E v e n t ; 
- 
- u s e   s t r i c t ; 
- u s e   v a r s   q w ( @ I S A   @ E X P O R T _ O K ) ; 
- 
- o u r   $ V E R S I O N   =   " 0 . 0 2 _ 0 5 " ; 
- 
- u s e   E x p o r t e r ; 
- 
- @ I S A   =   q w ( E x p o r t e r ) ; 
- 
- #   W e   h a v e   e x c e p t i o n s   t o   t h e   c l a s s i c a l   G e t V a l u e 
- #   a n d   w e   d e a l   w i t h   t h e s e   w i t h   a   h a s h   t a b l e 
- #   U n t i l   n o w   m o s t   s t u f f   s h o u l d   b e   o k   w i t h   G e t V a l u e 
- #   a n d   G e t S t r i n g S e l e c t i o n 
- m y   $ g e t V a l u e   =   { } ; 
- 
- # $ g e t V a l u e - > { ' W x : : T e x t C t r l ' }   =   s u b   { 
- #         r e t u r n   $ _ [ 0 ] - > G e t V a l u e ; 
- # } ; 
- 
- s u b   _ p o s t _ e v e n t   { 
-         m y   ( $ o p t )   =   @ _ ; 
-         
-         i f   ( d e f i n e d   $ o p t - > { p a r e n t }   & &   $ o p t - > { p a r e n t } - > c a n ( ' G e t C h i l d r e n ' ) )   { 
-                 f o r e a c h   ( $ o p t - > { p a r e n t } - > G e t C h i l d r e n )   { 
-                         i f   ( $ _ - > c a n ( ' G e t V a l u e ' ) )   { 
-                                 $ o p t - > { $ _ - > G e t N a m e }   =   $ _ - > G e t V a l u e ; 
-                         } 
-                         e l s i f   ( $ _ - > c a n ( ' G e t S t r i n g S e l e c t i o n ' ) )   { 
-                                 $ o p t - > { $ _ - > G e t N a m e }   =   $ _ - > G e t S t r i n g S e l e c t i o n ; 
-                         } 
-                         e l s i f   (   $ g e t V a l u e - > {   r e f ( $ _ )   }   )   { 
-                                 $ o p t - > { $ _ - > G e t N a m e }   =   $ g e t V a l u e - > {   r e f ( $ _ )   } ( $ _ ) ; 
-                         } 
-                 } 
-         } 
-         
-         P O E : : K e r n e l - > p o s t ( ' c a t a l y s t - w x p e r l ' ,   ' E V E N T _ R E Q U E S T ' ,   $ o p t ) ; 
- } 
- 
- 
-     
- s u b   C A T _ E V T _ Q U I T   {   
-       P O E : : K e r n e l - > p o s t ( ' c a t a l y s t - w x p e r l ' ,   ' _ s t o p ' ) ; 
- } 
- 
- s u b   C A T _ E V T   { 
-         m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-         m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-         m y   $ p a r a m s           =   $ _ [ 2 ]   | |   { } ; 
-         
-         $ p a r a m s - > { ' c o n t r o l l e r ' }   =   $ c o n t r o l l e r ; 
-         $ p a r a m s - > { ' p a r e n t ' }           =   $ p a r e n t ; 
-         
-         _ p o s t _ e v e n t ( $ p a r a m s ) ; 
- } 
- 
- # 
- #   A c t i v a t e E v e n t 
- # 
- 
- s u b   C A T _ E V T _ A C T I V A T E ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ A C T I V A T E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ A C T I V A T E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                   _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                   } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ A C T I V A T E _ A P P ( $ $ )   {     
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ A C T I V A T E _ A P P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ A C T I V A T E _ A P P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                   _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                   } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   C o m m a n d E v e n t 
- # 
- s u b   C A T _ E V T _ C O M M A N D _ R A N G E ( $ $ $ $ $ )   {   $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   $ _ [ 2 ] ,   $ _ [ 3 ] ,   $ _ [ 4 ]   )   }   #   F I X   M E   ! ! 
- 
- s u b   C A T _ E V T _ B U T T O N   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ B U T T O N _ C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   {             
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ B U T T O N _ C L I C K E D ,   s u b   {   
-                         m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                         _ p o s t _ e v e n t ( { 
-                                 c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                                 p a r e n t             = >   $ p a r e n t , 
-                                 c o n t r o l           = >   $ t h i s , 
-                                 e v e n t               = >   $ e v e n t 
-                         } ) ; 
-               } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C H E C K B O X ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H E C K B O X _ C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H E C K B O X _ C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C H O I C E ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H O I C E _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H O I C E _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ L I S T B O X ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O X _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O X _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T B O X _ D C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O X _ D O U B L E C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O X _ D O U B L E C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T E X T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ U P D A T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ U P D A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- s u b   C A T _ E V T _ T E X T _ E N T E R ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ E N T E R ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ E N T E R ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T E X T _ M A X L E N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ M A X L E N ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ M A X L E N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T E X T _ U R L ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ U R L ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ U R L ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ M E N U ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ M E N U _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ M E N U _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- #   N E E D S   F I X   ! ! 
- s u b   C A T _ E V T _ M E N U _ R A N G E ( $ $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ M E N U _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ M E N U _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ S L I D E R ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S L I D E R _ U P D A T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S L I D E R _ U P D A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ R A D I O B O X ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ R A D I O B O X _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ R A D I O B O X _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ R A D I O B U T T O N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ R A D I O B U T T O N _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ R A D I O B U T T O N _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L B A R ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S C R O L L B A R _ U P D A T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S C R O L L B A R _ U P D A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M B O B O X ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C O M B O B O X _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C O M B O B O X _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T O O L ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- #   N E E D S   F I X   ! ! 
- s u b   C A T _ E V T _ T O O L _ R A N G E ( $ $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T O O L _ R C L I C K E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ R C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ R C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- #   N E E D S   F I X   ! ! 
- s u b   C A T _ E V T _ T O O L _ R C L I C K E D _ R A N G E ( $ $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ R C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ R C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T O O L _ E N T E R ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ E N T E R ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L _ E N T E R ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ L E F T _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L E F T _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L E F T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ L E F T _ D C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L E F T _ D C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L E F T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ R I G H T _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ R I G H T _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S E T _ F O C U S ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S E T _ F O C U S ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S E T _ F O C U S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ K I L L _ F O C U S ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ K I L L _ F O C U S ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ K I L L _ F O C U S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ E N T E R ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ E N T E R ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ E N T E R ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T O G G L E B U T T O N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O G G L E B U T T O N _ C L I C K E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O G G L E B U T T O N _ C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ C H E C K L I S T B O X ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H E C K L I S T B O X _ T O G G L E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H E C K L I S T B O X _ T O G G L E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       }   
- } 
- s u b   C A T _ E V T _ T E X T _ C U T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ C U T ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ C U T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T E X T _ C O P Y ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ C O P Y ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ C O P Y ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- s u b   C A T _ E V T _ T E X T _ P A S T E ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ P A S T E ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T E X T _ P A S T E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;   
-       } 
- } 
- 
- # 
- #   C l o s e E v e n t 
- # 
- s u b   C A T _ E V T _ C L O S E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C L O S E _ W I N D O W ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C L O S E _ W I N D O W ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;     
-       } 
- } 
- s u b   C A T _ E V T _ E N D _ S E S S I O N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   {   
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ E N D _ S E S S I O N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ E N D _ S E S S I O N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;     
-       } 
- } 
- s u b   C A T _ E V T _ Q U E R Y _ E N D _ S E S S I O N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ Q U E R Y _ E N D _ S E S S I O N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ Q U E R Y _ E N D _ S E S S I O N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;     
-       } 
- } 
- 
- # 
- #   D r o p F i l e s E v e n t 
- # 
- 
- s u b   C A T _ E V T _ D R O P _ F I L E S ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ D R O P _ F I L E S ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ D R O P _ F I L E S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;     
-       } 
- } 
- 
- # 
- #   E r a s e E v e n t 
- # 
- s u b   C A T _ E V T _ E R A S E _ B A C K G R O U N D ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ E R A S E _ B A C K G R O U N D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ E R A S E _ B A C K G R O U N D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ;     
-       } 
- } 
- 
- # 
- #   F i n d D i a l o g E v e n t 
- # 
- s u b   C A T _ E V T _ F I N D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ F I N D _ N E X T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ N E X T ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ N E X T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ F I N D _ R E P L A C E ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ R E P L A C E ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ R E P L A C E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ F I N D _ R E P L A C E _ A L L ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ R E P L A C E _ A L L ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ R E P L A C E _ A L L ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ F I N D _ C L O S E ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ C L O S E ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ F I N D _ C L O S E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   F o c u s E v e n t 
- # 
- s u b   C A T _ E V T _ S E T _ F O C U S ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S E T _ F O C U S ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S E T _ F O C U S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ K I L L _ F O C U S ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ K I L L _ F O C U S ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ K I L L _ F O C U S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   K e y E v e n t 
- # 
- 
- s u b   C A T _ E V T _ C H A R ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C H A R ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C H A R ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C H A R _ H O O K ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C H A R _ H O O K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C H A R _ H O O K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ K E Y _ D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ K E Y _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ K E Y _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ K E Y _ U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ K E Y _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ K E Y _ U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   G r i d * E v e n t 
- # 
- 
- s u b   C A T _ E V T _ G R I D _ C E L L _ L E F T _ C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ L E F T _ C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ L E F T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ C E L L _ R I G H T _ C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ R I G H T _ C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ C E L L _ L E F T _ D C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ L E F T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ L E F T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ C E L L _ R I G H T _ D C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ R I G H T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ R I G H T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ L A B E L _ L E F T _ C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ L E F T _ C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ L E F T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ L A B E L _ R I G H T _ C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ R I G H T _ C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ L A B E L _ L E F T _ D C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ L E F T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ L E F T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ L A B E L _ R I G H T _ D C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ R I G H T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ L A B E L _ R I G H T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ R O W _ S I Z E ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ R O W _ S I Z E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ R O W _ S I Z E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ C O L _ S I Z E ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C O L _ S I Z E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C O L _ S I Z E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ R A N G E _ S E L E C T ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ R A N G E _ S E L E C T ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ R A N G E _ S E L E C T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ C E L L _ C H A N G E ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ C H A N G E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ C E L L _ C H A N G E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ S E L E C T _ C E L L ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ S E L E C T _ C E L L ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ S E L E C T _ C E L L ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ E D I T O R _ S H O W N ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ E D I T O R _ S H O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ E D I T O R _ S H O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ E D I T O R _ H I D D E N ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ E D I T O R _ H I D D E N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ E D I T O R _ H I D D E N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ G R I D _ E D I T O R _ C R E A T E D ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ E D I T O R _ C R E A T E D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ G R I D _ E D I T O R _ C R E A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   H e l p E v e n t 
- # 
- 
- s u b   C A T _ E V T _ H E L P ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ H E L P ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ H E L P _ R A N G E ( $ $ $ $ )   {   $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   $ _ [ 2 ] ,   & W x : : w x E V T _ H E L P ,   $ _ [ 3 ]   )   }   #   F I X   M E   ! ! ! ! 
- s u b   C A T _ E V T _ D E T A I L E D _ H E L P ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ D E T A I L E D _ H E L P ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ D E T A I L E D _ H E L P _ R A N G E ( $ $ $ $ )   {   $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   $ _ [ 2 ] ,   & W x : : w x E V T _ D E T A I L E D _ H E L P ,   $ _ [ 3 ]   )   }   #   F I X   M E   ! ! ! ! 
- 
- # 
- #   I c o n i z e E v e n t 
- # 
- 
- s u b   C A T _ E V T _ I C O N I Z E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ I C O N I Z E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ I C O N I Z E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   I d l e E v e n t 
- # 
- 
- s u b   C A T _ E V T _ I D L E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ I D L E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ I D L E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   I n i t D i a l o g E v e n t 
- # 
- 
- s u b   C A T _ E V T _ I N I T _ D I A L O G ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ I N I T _ D I A L O G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ I N I T _ D I A L O G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   J o y s t i c k E v e n t 
- # 
- 
- s u b   C A T _ E V T _ J O Y _ B U T T O N _ D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ B U T T O N _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ B U T T O N _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ J O Y _ B U T T O N _ U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ B U T T O N _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ B U T T O N _ U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ J O Y _ M O V E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ M O V E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ M O V E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ J O Y _ Z M O V E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ Z M O V E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r     =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ J O Y _ Z M O V E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   L i s t b o o k E v e n t 
- # 
- 
- s u b   C A T _ E V T _ L I S T B O O K _ P A G E _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O O K _ P A G E _ C H A N G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T B O O K _ P A G E _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O O K _ P A G E _ C H A N G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T B O O K _ P A G E _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   C h o i c e b o o k E v e n t 
- # 
- 
- s u b   C A T _ E V T _ C H O I C E B O O K _ P A G E _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H O I C E B O O K _ P A G E _ C H A N G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H O I C E B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C H O I C E B O O K _ P A G E _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H O I C E B O O K _ P A G E _ C H A N G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ C H O I C E B O O K _ P A G E _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   T o o l b o o k E v e n t 
- # 
- 
- s u b   C A T _ E V T _ T O O L B O O K _ P A G E _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L B O O K _ P A G E _ C H A N G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T O O L B O O K _ P A G E _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L B O O K _ P A G E _ C H A N G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T O O L B O O K _ P A G E _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   T r e e b o o k E v e n t 
- # 
- s u b   C A T _ E V T _ T R E E B O O K _ P A G E _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ P A G E _ C H A N G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E B O O K _ P A G E _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ P A G E _ C H A N G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ P A G E _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E B O O K _ N O D E _ C O L L A P S E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ N O D E _ C O L L A P S E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ N O D E _ C O L L A P S E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E B O O K _ N O D E _ E X P A N D E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ N O D E _ E X P A N D E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E B O O K _ N O D E _ E X P A N D E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   L i s t E v e n t 
- # 
- s u b   C A T _ E V T _ L I S T _ B E G I N _ D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ B E G I N _ D R A G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ B E G I N _ R D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ B E G I N _ R D R A G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ B E G I N _ R D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ B E G I N _ L A B E L _ E D I T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ B E G I N _ L A B E L _ E D I T ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ B E G I N _ L A B E L _ E D I T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ C A C H E _ H I N T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C A C H E _ H I N T ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C A C H E _ H I N T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ E N D _ L A B E L _ E D I T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ E N D _ L A B E L _ E D I T ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ E N D _ L A B E L _ E D I T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ D E L E T E _ I T E M ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ D E L E T E _ I T E M ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ D E L E T E _ I T E M ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ D E L E T E _ A L L _ I T E M S ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ D E L E T E _ A L L _ I T E M S ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ D E L E T E _ A L L _ I T E M S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ G E T _ I N F O ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ G E T _ I N F O ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ G E T _ I N F O ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ S E T _ I N F O ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ S E T _ I N F O ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ S E T _ I N F O ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ I T E M _ S E L E C T E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ I T E M _ D E S E L E C T E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ D E S E L E C T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ D E S E L E C T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ K E Y _ D O W N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ K E Y _ D O W N ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ K E Y _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ I N S E R T _ I T E M ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I N S E R T _ I T E M ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I N S E R T _ I T E M ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ C O L _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ R I G H T _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ R I G H T _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ M I D D L E _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ M I D D L E _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ M I D D L E _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ I T E M _ A C T I V A T E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ A C T I V A T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ A C T I V A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ C O L _ R I G H T _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ R I G H T _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ C O L _ B E G I N _ D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ B E G I N _ D R A G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ C O L _ D R A G G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ D R A G G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ D R A G G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ C O L _ E N D _ D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ E N D _ D R A G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ C O L _ E N D _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ I T E M _ F O C U S E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ F O C U S E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ F O C U S E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L I S T _ I T E M _ R I G H T _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ R I G H T _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ L I S T _ I T E M _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   M e n u E v e n t 
- # 
- 
- s u b   C A T _ E V T _ M E N U _ C H A R ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ C H A R ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ C H A R ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M E N U _ I N I T ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ I N I T ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ I N I T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M E N U _ H I G H L I G H T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ M E N U _ H I G H L I G H T ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ M E N U _ H I G H L I G H T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ P O P U P _ M E N U ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ P O P U P _ M E N U ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ P O P U P _ M E N U ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O N T E X T _ M E N U ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O N T E X T _ M E N U ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O N T E X T _ M E N U ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M E N U _ O P E N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ O P E N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ O P E N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M E N U _ C L O S E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ C L O S E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M E N U _ C L O S E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   M o u s e E v e n t 
- # 
- s u b   C A T _ E V T _ L E F T _ D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E F T _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E F T _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L E F T _ U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E F T _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E F T _ U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L E F T _ D C L I C K ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E F T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E F T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M I D D L E _ D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M I D D L E _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M I D D L E _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M I D D L E _ U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M I D D L E _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M I D D L E _ U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M I D D L E _ D C L I C K ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M I D D L E _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M I D D L E _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ R I G H T _ D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ R I G H T _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ R I G H T _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ R I G H T _ U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ R I G H T _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ R I G H T _ U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ R I G H T _ D C L I C K ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ R I G H T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ R I G H T _ D C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M O T I O N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O T I O N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O T I O N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ E N T E R _ W I N D O W ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ E N T E R _ W I N D O W ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ E N T E R _ W I N D O W ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ L E A V E _ W I N D O W ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E A V E _ W I N D O W ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ L E A V E _ W I N D O W ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M O U S E W H E E L ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O U S E W H E E L ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O U S E W H E E L ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M O U S E _ E V E N T S ( $ $ )   { 
-     m y (   $ x ,   $ y   )   =   @ _ ; 
-     C A T _ E V T _ L E F T _ D O W N (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ L E F T _ U P (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ L E F T _ D C L I C K (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ M I D D L E _ D O W N (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ M I D D L E _ U P (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ M I D D L E _ D C L I C K (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ R I G H T _ D O W N (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ R I G H T _ U P (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ R I G H T _ D C L I C K (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ M O T I O N (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ E N T E R _ W I N D O W (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ L E A V E _ W I N D O W (   $ x ,   $ y   ) ; 
-     C A T _ E V T _ M O U S E W H E E L (   $ x ,   $ y   ) ; 
- } 
- 
- # 
- #   M o v e E v e n t 
- # 
- 
- s u b   C A T _ E V T _ M O V E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O V E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O V E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ M O V I N G ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O V I N G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ M O V I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   N o t e b o o k E v e n t 
- # 
- 
- s u b   C A T _ E V T _ N O T E B O O K _ P A G E _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ N O T E B O O K _ P A G E _ C H A N G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ N O T E B O O K _ P A G E _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ N O T E B O O K _ P A G E _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ N O T E B O O K _ P A G E _ C H A N G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ N O T E B O O K _ P A G E _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   P a i n t E v e n t 
- # 
- 
- s u b   C A T _ E V T _ P A I N T ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ P A I N T ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ P A I N T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   P r o c e s s E v e n t 
- # 
- 
- s u b   C A T _ E V T _ E N D _ P R O C E S S ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ E N D _ P R O C E S S ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ E N D _ P R O C E S S ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S a s h E v e n t 
- # 
- s u b   C A T _ E V T _ S A S H _ D R A G G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S A S H _ D R A G G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S A S H _ D R A G G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S A S H _ D R A G G E D _ R A N G E ( $ $ $ $ )   {   $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   $ _ [ 2 ] ,   & W x : : w x E V T _ S A S H _ D R A G G E D ,   $ _ [ 3 ]   )   } 
- 
- # 
- #   S i z e E v e n t 
- # 
- 
- s u b   C A T _ E V T _ S I Z E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S I Z E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S I Z I N G ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S I Z I N G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S c r o l l E v e n t 
- # 
- 
- s u b   C A T _ E V T _ S C R O L L _ T O P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ B O T T O M ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ B O T T O M ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ L I N E U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ L I N E D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ P A G E U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ P A G E D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ T H U M B T R A C K ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B T R A C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L _ T H U M B R E L E A S E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B R E L E A S E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ T O P ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T O P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ B O T T O M ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ B O T T O M ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ B O T T O M ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ L I N E U P ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ L I N E D O W N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E D O W N ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       }   
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ P A G E U P ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E U P ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ P A G E D O W N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E D O W N ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ T H U M B T R A C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B T R A C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B T R A C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ C O M M A N D _ S C R O L L _ T H U M B R E L E A S E ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B R E L E A S E ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B R E L E A S E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S c r o l l W i n E v e n t 
- # 
- s u b   C A T _ E V T _ S C R O L L W I N _ T O P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ T O P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ B O T T O M ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ B O T T O M ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ L I N E U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ L I N E U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ L I N E D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ L I N E D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ P A G E U P ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ P A G E U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ P A G E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ P A G E D O W N ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ P A G E D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ T H U M B T R A C K ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ T H U M B T R A C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S C R O L L W I N _ T H U M B R E L E A S E ( $ $ )   { 
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S C R O L L W I N _ T H U M B R E L E A S E ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S p i n E v e n t 
- # 
- 
- s u b   C A T _ E V T _ S P I N _ U P ( $ $ $ )   {   
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E U P ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S P I N _ D O W N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E D O W N ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ L I N E D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S P I N ( $ $ $ )   {   
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B T R A C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ S C R O L L _ T H U M B T R A C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S P I N C T R L ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P I N C T R L _ U P D A T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P I N C T R L _ U P D A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S p l i t t e r E v e n t 
- # 
- s u b   C A T _ E V T _ S P L I T T E R _ S A S H _ P O S _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ S A S H _ P O S _ C H A N G I N G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ S A S H _ P O S _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S P L I T T E R _ S A S H _ P O S _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ S A S H _ P O S _ C H A N G E D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ S A S H _ P O S _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ S P L I T T E R _ U N S P L I T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ U N S P L I T ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ U N S P L I T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       }   
- } 
- s u b   C A T _ E V T _ S P L I T T E R _ D O U B L E C L I C K E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ D O U B L E C L I C K E D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ S P L I T T E R _ D O U B L E C L I C K E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S y s C o l o u r C h a n g e d E v e n t 
- # 
- 
- s u b   C A T _ E V T _ S Y S _ C O L O U R _ C H A N G E D ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ S Y S _ C O L O U R _ C H A N G E D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   T a s k b a r 
- # 
- 
- s u b   C A T _ E V T _ T A S K B A R _ M O V E ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ M O V E ,   $ _ [ 1 ]   ) ;   
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T A S K B A R _ L E F T _ D O W N ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ L E F T _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T A S K B A R _ L E F T _ U P ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ L E F T _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T A S K B A R _ R I G H T _ D O W N ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ R I G H T _ D O W N ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T A S K B A R _ R I G H T _ U P ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ R I G H T _ U P ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T A S K B A R _ L E F T _ D C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ L E F T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T A S K B A R _ R I G H T _ D C L I C K ( $ $ )   {   
-       i f   ( r e f   $ _ [ 1 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ T A S K B A R _ R I G H T _ D C L I C K ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 1 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   T r e e E v e n t 
- # 
- 
- s u b   C A T _ E V T _ T R E E _ B E G I N _ D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ B E G I N _ R D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ R D R A G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ R D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ E N D _ D R A G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ E N D _ D R A G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ E N D _ D R A G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ B E G I N _ L A B E L _ E D I T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ L A B E L _ E D I T ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ B E G I N _ L A B E L _ E D I T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ E N D _ L A B E L _ E D I T ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ E N D _ L A B E L _ E D I T ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ E N D _ L A B E L _ E D I T ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ G E T _ I N F O ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ G E T _ I N F O ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ G E T _ I N F O ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ S E T _ I N F O ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C L O S E _ W I N D O W ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ S E T _ I N F O ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ E X P A N D E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ E X P A N D E D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ E X P A N D E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ E X P A N D I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ E X P A N D I N G ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ E X P A N D I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ C O L L A P S E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   - 1 ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ C O L L A P S E D ,   $ _ [ 1 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ C O L L A P S E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ C O L L A P S I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ C O L L A P S I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ C O L L A P S I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ S E L _ C H A N G E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ S E L _ C H A N G E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ S E L _ C H A N G E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ S E L _ C H A N G I N G ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ S E L _ C H A N G I N G ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ S E L _ C H A N G I N G ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ K E Y _ D O W N ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ K E Y _ D O W N ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ K E Y _ D O W N ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ D E L E T E _ I T E M ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ D E L E T E _ I T E M ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ D E L E T E _ I T E M ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ A C T I V A T E D ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ A C T I V A T E D ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ A C T I V A T E D ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ R I G H T _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ R I G H T _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ R I G H T _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ M I D D L E _ C L I C K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ M I D D L E _ C L I C K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ M I D D L E _ C L I C K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ T R E E _ I T E M _ M E N U ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ M E N U ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ C O M M A N D _ T R E E _ I T E M _ M E N U ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   U p d a t e U I E v e n t 
- # 
- s u b   C A T _ E V T _ U P D A T E _ U I ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : C A T _ E V T _ U P D A T E _ U I ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ U P D A T E _ U I ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- s u b   C A T _ E V T _ U P D A T E _ U I _ R A N G E ( $ $ $ $ )   {   #   F I X   M E   ! ! 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   $ _ [ 2 ] ,   & W x : : C A T _ E V T _ U P D A T E _ U I _ R A N G E ,   $ _ [ 3 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : C A T _ E V T _ U P D A T E _ U I _ R A N G E ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   H y p e r l i n k E v e n t 
- # 
- s u b   C A T _ E V T _ H Y P E R L I N K ( $ $ $ )   { 
-       i f   ( r e f   $ _ [ 2 ]   e q   ' C O D E ' )   { 
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : C A T _ E V T _ H Y P E R L I N K ,   $ _ [ 2 ]   ) ; 
-       } 
-       e l s e   { 
-             m y   $ p a r e n t           =   $ _ [ 0 ] ; 
-             m y   $ c o n t r o l         =   $ _ [ 1 ] ; 
-             m y   $ c o n t r o l l e r   =   $ _ [ 2 ] ; 
-             
-             $ _ [ 0 ] - > C o n n e c t (   $ _ [ 1 ] ,   - 1 ,   & W x : : w x E V T _ H Y P E R L I N K ,   s u b   { 
-                   m y (   $ t h i s ,   $ e v e n t   )   =   @ _ ; 
-                 _ p o s t _ e v e n t ( { 
-                         c o n t r o l l e r     = >   $ c o n t r o l l e r , 
-                         p a r e n t             = >   $ p a r e n t , 
-                         c o n t r o l           = >   $ t h i s , 
-                         e v e n t               = >   $ e v e n t 
-                 } ) ; 
-             } ) ; 
-       } 
- } 
- 
- # 
- #   S o c k e t 
- # 
- 
- s u b   C A T _ E V T _ S O C K E T ( $ $ $ )   {   g o t o   & W x : : S o c k e t : : E v e n t : : C A T _ E V T _ S O C K E T   } 
- s u b   C A T _ E V T _ S O C K E T _ A L L ( $ $ $ )   {   g o t o   & W x : : S o c k e t : : E v e n t : : C A T _ E V T _ S O C K E T _ A L L   } 
- s u b   C A T _ E V T _ S O C K E T _ I N P U T ( $ $ $ )   {   g o t o   & W x : : S o c k e t : : E v e n t : : C A T _ E V T _ S O C K E T _ I N P U T   } 
- s u b   C A T _ E V T _ S O C K E T _ O U T P U T ( $ $ $ )   {   g o t o   & W x : : S o c k e t : : E v e n t : : C A T _ E V T _ S O C K E T _ O U T P U T   } 
- s u b   C A T _ E V T _ S O C K E T _ C O N N E C T I O N ( $ $ $ )   {   g o t o   & W x : : S o c k e t : : E v e n t : : C A T _ E V T _ S O C K E T _ C O N N E C T I O N   } 
- s u b   C A T _ E V T _ S O C K E T _ L O S T ( $ $ $ )   {   g o t o   & W x : : S o c k e t : : E v e n t : : C A T _ E V T _ S O C K E T _ L O S T   } 
- 
- # 
- #   P r o t o t y p e s 
- # 
- s u b   C A T _ E V T _ C A L E N D A R ( $ $ $ ) ; 
- s u b   C A T _ E V T _ C A L E N D A R _ S E L _ C H A N G E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ C A L E N D A R _ D A Y ( $ $ $ ) ; 
- s u b   C A T _ E V T _ C A L E N D A R _ M O N T H ( $ $ $ ) ; 
- s u b   C A T _ E V T _ C A L E N D A R _ Y E A R ( $ $ $ ) ; 
- s u b   C A T _ E V T _ C A L E N D A R _ W E E K D A Y _ C L I C K E D ( $ $ $ ) ; 
- 
- s u b   C A T _ E V T _ S T C _ C H A N G E ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ S T Y L E N E E D E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ C H A R A D D E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ S A V E P O I N T R E A C H E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ S A V E P O I N T L E F T ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ R O M O D I F Y A T T E M P T ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ K E Y ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ D O U B L E C L I C K ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ U P D A T E U I ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ M O D I F I E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ M A C R O R E C O R D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ M A R G I N C L I C K ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ N E E D S H O W N ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ P O S C H A N G E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ P A I N T E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ U S E R L I S T S E L E C T I O N ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ U R I D R O P P E D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ D W E L L S T A R T ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ D W E L L E N D ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ S T A R T _ D R A G ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ D R A G _ O V E R ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ D O _ D R O P ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ Z O O M ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ H O T S P O T _ C L I C K ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ H O T S P O T _ D C L I C K ( $ $ $ ) ; 
- s u b   C A T _ E V T _ S T C _ C A L L T I P _ C L I C K ( $ $ $ ) ; 
- 
- p u s h   @ E X P O R T _ O K ,   q w ( 
- C A T _ E V T 
- C A T _ E V T _ Q U I T 
- C A T _ E V T _ A C T I V A T E 
- C A T _ E V T _ A C T I V A T E _ A P P 
- C A T _ E V T _ C O M M A N D _ R A N G E 
- C A T _ E V T _ B U T T O N 
- C A T _ E V T _ C H E C K B O X 
- C A T _ E V T _ C H O I C E 
- C A T _ E V T _ L I S T B O X 
- C A T _ E V T _ L I S T B O X _ D C L I C K 
- C A T _ E V T _ T E X T 
- C A T _ E V T _ T E X T _ E N T E R 
- C A T _ E V T _ T E X T _ M A X L E N 
- C A T _ E V T _ T E X T _ U R L 
- C A T _ E V T _ M E N U 
- C A T _ E V T _ M E N U _ R A N G E 
- C A T _ E V T _ S L I D E R 
- C A T _ E V T _ R A D I O B O X 
- C A T _ E V T _ R A D I O B U T T O N 
- C A T _ E V T _ S C R O L L B A R 
- C A T _ E V T _ C O M B O B O X 
- C A T _ E V T _ T O O L 
- C A T _ E V T _ T O O L _ R A N G E 
- C A T _ E V T _ T O O L _ R C L I C K E D 
- C A T _ E V T _ T O O L _ R C L I C K E D _ R A N G E 
- C A T _ E V T _ T O O L _ E N T E R 
- C A T _ E V T _ C O M M A N D _ L E F T _ C L I C K 
- C A T _ E V T _ C O M M A N D _ L E F T _ D C L I C K 
- C A T _ E V T _ C O M M A N D _ R I G H T _ C L I C K 
- C A T _ E V T _ C O M M A N D _ S E T _ F O C U S 
- C A T _ E V T _ C O M M A N D _ K I L L _ F O C U S 
- C A T _ E V T _ C O M M A N D _ E N T E R 
- C A T _ E V T _ T O G G L E B U T T O N 
- C A T _ E V T _ C H E C K L I S T B O X 
- C A T _ E V T _ T E X T _ C U T 
- C A T _ E V T _ T E X T _ C O P Y 
- C A T _ E V T _ T E X T _ P A S T E 
- C A T _ E V T _ C L O S E 
- C A T _ E V T _ E N D _ S E S S I O N 
- C A T _ E V T _ Q U E R Y _ E N D _ S E S S I O N 
- C A T _ E V T _ D R O P _ F I L E S 
- C A T _ E V T _ E R A S E _ B A C K G R O U N D 
- C A T _ E V T _ F I N D 
- C A T _ E V T _ F I N D _ N E X T 
- C A T _ E V T _ F I N D _ R E P L A C E 
- C A T _ E V T _ F I N D _ R E P L A C E _ A L L 
- C A T _ E V T _ F I N D _ C L O S E 
- C A T _ E V T _ S E T _ F O C U S 
- C A T _ E V T _ K I L L _ F O C U S 
- C A T _ E V T _ C H A R 
- C A T _ E V T _ C H A R _ H O O K 
- C A T _ E V T _ K E Y _ D O W N 
- C A T _ E V T _ K E Y _ U P 
- C A T _ E V T _ G R I D _ C E L L _ L E F T _ C L I C K 
- C A T _ E V T _ G R I D _ C E L L _ R I G H T _ C L I C K 
- C A T _ E V T _ G R I D _ C E L L _ L E F T _ D C L I C K 
- C A T _ E V T _ G R I D _ C E L L _ R I G H T _ D C L I C K 
- C A T _ E V T _ G R I D _ L A B E L _ L E F T _ C L I C K 
- C A T _ E V T _ G R I D _ L A B E L _ R I G H T _ C L I C K 
- C A T _ E V T _ G R I D _ L A B E L _ L E F T _ D C L I C K 
- C A T _ E V T _ G R I D _ L A B E L _ R I G H T _ D C L I C K 
- C A T _ E V T _ G R I D _ R O W _ S I Z E 
- C A T _ E V T _ G R I D _ C O L _ S I Z E 
- C A T _ E V T _ G R I D _ R A N G E _ S E L E C T 
- C A T _ E V T _ G R I D _ C E L L _ C H A N G E 
- C A T _ E V T _ G R I D _ S E L E C T _ C E L L 
- C A T _ E V T _ G R I D _ E D I T O R _ S H O W N 
- C A T _ E V T _ G R I D _ E D I T O R _ H I D D E N 
- C A T _ E V T _ G R I D _ E D I T O R _ C R E A T E D 
- C A T _ E V T _ H E L P 
- C A T _ E V T _ H E L P _ R A N G E 
- C A T _ E V T _ D E T A I L E D _ H E L P 
- C A T _ E V T _ D E T A I L E D _ H E L P _ R A N G E 
- C A T _ E V T _ I C O N I Z E 
- C A T _ E V T _ I D L E 
- C A T _ E V T _ I N I T _ D I A L O G 
- C A T _ E V T _ J O Y _ B U T T O N _ D O W N 
- C A T _ E V T _ J O Y _ B U T T O N _ U P 
- C A T _ E V T _ J O Y _ M O V E 
- C A T _ E V T _ J O Y _ Z M O V E 
- C A T _ E V T _ L I S T B O O K _ P A G E _ C H A N G I N G 
- C A T _ E V T _ L I S T B O O K _ P A G E _ C H A N G E D 
- C A T _ E V T _ C H O I C E B O O K _ P A G E _ C H A N G I N G 
- C A T _ E V T _ C H O I C E B O O K _ P A G E _ C H A N G E D 
- C A T _ E V T _ T O O L B O O K _ P A G E _ C H A N G I N G 
- C A T _ E V T _ T O O L B O O K _ P A G E _ C H A N G E D 
- C A T _ E V T _ T R E E B O O K _ P A G E _ C H A N G I N G 
- C A T _ E V T _ T R E E B O O K _ P A G E _ C H A N G E D 
- C A T _ E V T _ T R E E B O O K _ N O D E _ C O L L A P S E D 
- C A T _ E V T _ T R E E B O O K _ N O D E _ E X P A N D E D 
- C A T _ E V T _ L I S T _ B E G I N _ D R A G 
- C A T _ E V T _ L I S T _ B E G I N _ R D R A G 
- C A T _ E V T _ L I S T _ B E G I N _ L A B E L _ E D I T 
- C A T _ E V T _ L I S T _ C A C H E _ H I N T 
- C A T _ E V T _ L I S T _ E N D _ L A B E L _ E D I T 
- C A T _ E V T _ L I S T _ D E L E T E _ I T E M 
- C A T _ E V T _ L I S T _ D E L E T E _ A L L _ I T E M S 
- C A T _ E V T _ L I S T _ G E T _ I N F O 
- C A T _ E V T _ L I S T _ S E T _ I N F O 
- C A T _ E V T _ L I S T _ I T E M _ S E L E C T E D 
- C A T _ E V T _ L I S T _ I T E M _ D E S E L E C T E D 
- C A T _ E V T _ L I S T _ K E Y _ D O W N 
- C A T _ E V T _ L I S T _ I N S E R T _ I T E M 
- C A T _ E V T _ L I S T _ C O L _ C L I C K 
- C A T _ E V T _ L I S T _ R I G H T _ C L I C K 
- C A T _ E V T _ L I S T _ M I D D L E _ C L I C K 
- C A T _ E V T _ L I S T _ I T E M _ A C T I V A T E D 
- C A T _ E V T _ L I S T _ C O L _ R I G H T _ C L I C K 
- C A T _ E V T _ L I S T _ C O L _ B E G I N _ D R A G 
- C A T _ E V T _ L I S T _ C O L _ D R A G G I N G 
- C A T _ E V T _ L I S T _ C O L _ E N D _ D R A G 
- C A T _ E V T _ L I S T _ I T E M _ F O C U S E D 
- C A T _ E V T _ L I S T _ I T E M _ R I G H T _ C L I C K 
- C A T _ E V T _ M E N U _ C H A R 
- C A T _ E V T _ M E N U _ I N I T 
- C A T _ E V T _ M E N U _ H I G H L I G H T 
- C A T _ E V T _ P O P U P _ M E N U 
- C A T _ E V T _ C O N T E X T _ M E N U 
- C A T _ E V T _ M E N U _ O P E N 
- C A T _ E V T _ M E N U _ C L O S E 
- C A T _ E V T _ L E F T _ D O W N 
- C A T _ E V T _ L E F T _ U P 
- C A T _ E V T _ L E F T _ D C L I C K 
- C A T _ E V T _ M I D D L E _ D O W N 
- C A T _ E V T _ M I D D L E _ U P 
- C A T _ E V T _ M I D D L E _ D C L I C K 
- C A T _ E V T _ R I G H T _ D O W N 
- C A T _ E V T _ R I G H T _ U P 
- C A T _ E V T _ R I G H T _ D C L I C K 
- C A T _ E V T _ M O T I O N 
- C A T _ E V T _ E N T E R _ W I N D O W 
- C A T _ E V T _ L E A V E _ W I N D O W 
- C A T _ E V T _ M O U S E W H E E L 
- C A T _ E V T _ M O U S E _ E V E N T S 
- C A T _ E V T _ M O V E 
- C A T _ E V T _ M O V I N G 
- C A T _ E V T _ N O T E B O O K _ P A G E _ C H A N G I N G 
- C A T _ E V T _ N O T E B O O K _ P A G E _ C H A N G E D 
- C A T _ E V T _ P A I N T 
- C A T _ E V T _ E N D _ P R O C E S S 
- C A T _ E V T _ S A S H _ D R A G G E D 
- C A T _ E V T _ S A S H _ D R A G G E D _ R A N G E 
- C A T _ E V T _ S I Z E 
- C A T _ E V T _ S I Z I N G 
- C A T _ E V T _ S C R O L L _ T O P 
- C A T _ E V T _ S C R O L L _ B O T T O M 
- C A T _ E V T _ S C R O L L _ L I N E U P 
- C A T _ E V T _ S C R O L L _ L I N E D O W N 
- C A T _ E V T _ S C R O L L _ P A G E U P 
- C A T _ E V T _ S C R O L L _ P A G E D O W N 
- C A T _ E V T _ S C R O L L _ T H U M B T R A C K 
- C A T _ E V T _ S C R O L L _ T H U M B R E L E A S E 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ T O P 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ B O T T O M 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ L I N E U P 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ L I N E D O W N 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ P A G E U P 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ P A G E D O W N 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ T H U M B T R A C K 
- C A T _ E V T _ C O M M A N D _ S C R O L L _ T H U M B R E L E A S E 
- C A T _ E V T _ S C R O L L W I N _ T O P 
- C A T _ E V T _ S C R O L L W I N _ B O T T O M 
- C A T _ E V T _ S C R O L L W I N _ L I N E U P 
- C A T _ E V T _ S C R O L L W I N _ L I N E D O W N 
- C A T _ E V T _ S C R O L L W I N _ P A G E U P 
- C A T _ E V T _ S C R O L L W I N _ P A G E D O W N 
- C A T _ E V T _ S C R O L L W I N _ T H U M B T R A C K 
- C A T _ E V T _ S C R O L L W I N _ T H U M B R E L E A S E 
- C A T _ E V T _ S P I N _ U P 
- C A T _ E V T _ S P I N _ D O W N 
- C A T _ E V T _ S P I N 
- C A T _ E V T _ S P I N C T R L 
- C A T _ E V T _ S P L I T T E R _ S A S H _ P O S _ C H A N G I N G 
- C A T _ E V T _ S P L I T T E R _ S A S H _ P O S _ C H A N G E D 
- C A T _ E V T _ S P L I T T E R _ U N S P L I T 
- C A T _ E V T _ S P L I T T E R _ D O U B L E C L I C K E D 
- C A T _ E V T _ S Y S _ C O L O U R _ C H A N G E D 
- C A T _ E V T _ T A S K B A R _ M O V E 
- C A T _ E V T _ T A S K B A R _ L E F T _ D O W N 
- C A T _ E V T _ T A S K B A R _ L E F T _ U P 
- C A T _ E V T _ T A S K B A R _ R I G H T _ D O W N 
- C A T _ E V T _ T A S K B A R _ R I G H T _ U P 
- C A T _ E V T _ T A S K B A R _ L E F T _ D C L I C K 
- C A T _ E V T _ T A S K B A R _ R I G H T _ D C L I C K 
- C A T _ E V T _ T R E E _ B E G I N _ D R A G 
- C A T _ E V T _ T R E E _ B E G I N _ R D R A G 
- C A T _ E V T _ T R E E _ E N D _ D R A G 
- C A T _ E V T _ T R E E _ B E G I N _ L A B E L _ E D I T 
- C A T _ E V T _ T R E E _ E N D _ L A B E L _ E D I T 
- C A T _ E V T _ T R E E _ G E T _ I N F O 
- C A T _ E V T _ T R E E _ S E T _ I N F O 
- C A T _ E V T _ T R E E _ I T E M _ E X P A N D E D 
- C A T _ E V T _ T R E E _ I T E M _ E X P A N D I N G 
- C A T _ E V T _ T R E E _ I T E M _ C O L L A P S E D 
- C A T _ E V T _ T R E E _ I T E M _ C O L L A P S I N G 
- C A T _ E V T _ T R E E _ S E L _ C H A N G E D 
- C A T _ E V T _ T R E E _ S E L _ C H A N G I N G 
- C A T _ E V T _ T R E E _ K E Y _ D O W N 
- C A T _ E V T _ T R E E _ D E L E T E _ I T E M 
- C A T _ E V T _ T R E E _ I T E M _ A C T I V A T E D 
- C A T _ E V T _ T R E E _ I T E M _ R I G H T _ C L I C K 
- C A T _ E V T _ T R E E _ I T E M _ M I D D L E _ C L I C K 
- C A T _ E V T _ T R E E _ I T E M _ M E N U 
- C A T _ E V T _ U P D A T E _ U I 
- C A T _ E V T _ U P D A T E _ U I _ R A N G E 
- C A T _ E V T _ H Y P E R L I N K 
- C A T _ E V T _ S O C K E T 
- C A T _ E V T _ S O C K E T _ A L L 
- C A T _ E V T _ S O C K E T _ I N P U T 
- C A T _ E V T _ S O C K E T _ O U T P U T 
- C A T _ E V T _ S O C K E T _ C O N N E C T I O N 
- C A T _ E V T _ S O C K E T _ L O S T 
- C A T _ E V T _ C A L E N D A R 
- C A T _ E V T _ C A L E N D A R _ S E L _ C H A N G E D 
- C A T _ E V T _ C A L E N D A R _ D A Y 
- C A T _ E V T _ C A L E N D A R _ M O N T H 
- C A T _ E V T _ C A L E N D A R _ Y E A R 
- C A T _ E V T _ C A L E N D A R _ W E E K D A Y _ C L I C K E D 
- C A T _ E V T _ S T C _ C H A N G E 
- C A T _ E V T _ S T C _ S T Y L E N E E D E D 
- C A T _ E V T _ S T C _ C H A R A D D E D 
- C A T _ E V T _ S T C _ S A V E P O I N T R E A C H E D 
- C A T _ E V T _ S T C _ S A V E P O I N T L E F T 
- C A T _ E V T _ S T C _ R O M O D I F Y A T T E M P T 
- C A T _ E V T _ S T C _ K E Y 
- C A T _ E V T _ S T C _ D O U B L E C L I C K 
- C A T _ E V T _ S T C _ U P D A T E U I 
- C A T _ E V T _ S T C _ M O D I F I E D 
- C A T _ E V T _ S T C _ M A C R O R E C O R D 
- C A T _ E V T _ S T C _ M A R G I N C L I C K 
- C A T _ E V T _ S T C _ N E E D S H O W N 
- C A T _ E V T _ S T C _ P O S C H A N G E D 
- C A T _ E V T _ S T C _ P A I N T E D 
- C A T _ E V T _ S T C _ U S E R L I S T S E L E C T I O N 
- C A T _ E V T _ S T C _ U R I D R O P P E D 
- C A T _ E V T _ S T C _ D W E L L S T A R T 
- C A T _ E V T _ S T C _ D W E L L E N D 
- C A T _ E V T _ S T C _ S T A R T _ D R A G 
- C A T _ E V T _ S T C _ D R A G _ O V E R 
- C A T _ E V T _ S T C _ D O _ D R O P 
- C A T _ E V T _ S T C _ Z O O M 
- C A T _ E V T _ S T C _ H O T S P O T _ C L I C K 
- C A T _ E V T _ S T C _ H O T S P O T _ D C L I C K 
- C A T _ E V T _ S T C _ C A L L T I P _ C L I C K ) ; 
- 
- 1 ; 
- 
- = h e a d 1   N A M E 
- 
- C a t a l y s t : : E n g i n e : : W x : : E v e n t   -   C a t a l y s t   w x P e r l   E n g i n e   e v e n t s   m a n a g e r 
- 
- = h e a d 1   S Y N O P S I S 
- 
- I n   y o u r   w x   c l a s s e s   y o u   c a n   a t t a c h   e v e n t s   t h e   t r a d i t i o n n a l   w a y   a n d   t h e n 
- c a l l   t h e   C a t a l y s t   c o n t r o l l e r s   b y   c a l l i n g   C A T A L Y S T _ E V T . 
- 
-         #   A t t a c h   e v e n t s 
-         E V T _ B U T T O N (   $ s e l f ,   $ s e l f - > { b u t t o n } ,   s u b   { 
-                 C A T _ E V T ( $ s e l f ,   ' R o o t - > h e l l o _ w o r l d ' ) 
-         } ) ; 
- 
- Y o u   c a n   p a s s   p a r a m e t e r s   a l o n g   w i t h   y o u r   e v e n t : 
- 
-         E V T _ B U T T O N (   $ s e l f ,   $ s e l f - > { b u t t o n } ,   s u b   { 
-                 C A T _ E V T ( $ s e l f ,   ' R o o t - > h e l l o _ w o r l d ' ,   {   m e s s a g e   = >   $ s e l f - > { m e s s a g e } - > G e t V a l u e   }   ) 
-         } ) ; 
- 
- Y o u   c a n   a l s o   n a m e   y o u r   c o n t r o l s   a n d   g e t   t h e m   a u t o m a t i c a l l y   a d d e d   t o   
- y o u r   r e q u e s t ' s   p a r a m e t e r s ,   t h e n   y o u   s i m p l y   u s e   t h e   a p p r o p r i a t e   e v e n t 
- f o r   t h e   c o n t r o l 
- 
- 	 m y   $ c t r l   =   W x : : T e x t C t r l - > n e w ( $ s e l f ,   - 1 ,   " " ,   w x D e f a u l t P o s i t i o n ,   w x D e f a u l t S i z e ) ; 
-         $ c t r l - > S e t N a m e ( ' m e s s a g e ' ) ; 
-         
-         C A T _ E V T _ B U T T O N (   $ s e l f ,   $ s e l f - > { b u t t o n } ,   ' R o o t - > h e l l o _ w o r l d ' ) ; 
- 
-         #   R o o t - > h e l l o _ w o r l d   s h o u l d   r e c e i v e   a   m e s s a g e   p a r a m e t e r   w i t h   t h e   v a l u e   s t o r e d   i n 
-         #   t h e   c o n t r o l 
- 
- = h e a d 1   D E S C R I P T I O N 
- 
- C a t a l y s t : : E n g i n e : : W x : : E v e n t   i s   t h e   m o d u l e   t h a t   y o u   c a n   u s e   t o   a t t a c h   e v e n t s   t o   
- y o u r   c o n t r o l s   a n d   t o   t r i g g e r   C a t a l y s t   c o n t r o l l e r s . 
- 
- = h e a d 2   C A T _ E V T 
- 
- C a l l s   a   C a t a l y s t   c o n t r o l l e r   e i t h e r   b y   i t s   p a t h   o r   b y   i t s   r e p r e s e n t a t i o n . 
- W h e r e   R o o t - > h e l l o _ w o r l d   i s   t h e   r e p r e s e n t a t i o n   o f   t h e   h e l l o _ w o r l d   s u b   i n   t h e   
- R o o t   m o d u l e . 
- 
- Y o u   c a n   a l s o   c a l l   i t   w i t h   ' / h e l l o _ w o r l d ' . 
- 
- T h e   f o l l o w i n g   i s   e q u i v a l e n t   t o   l o a d i n g   t h e   a p p l i c a t i o n   i f   y o u   h a v e   n o t   d e f i n e d 
- a   b o o t s t r a p   o p t i o n . 
- 
-         C A T _ E V T ( u n d e f ,   ' R o o t - > d e f a u l t ' ) ; 
- 
- 
- = h e a d 2   C A T _ Q U I T 
- 
- T h i s   e v e n t   q u i t s   t h e   l o o p   a n d   e x i t s   t h e   a p p l i c a t i o n s . 
- 
- F o r   e x e m p l e   t h i s   e x i t s   t h e   a p p l i c a t i o n   w h e n   y o u   c l o s e   t h e   w i n d o w . 
- 
-         E V T _ C L O S E (   $ w i n d o w ,   s u b   {   C A T _ E V T _ Q U I T ;   }   ) ; 
- 
- = h e a d 1   A U T H O R S 
- 
- E r i a m   S c h a f f t e r ,   C < e r i a m @ c p a n . o r g >   a n d   t h e   C a t a l y s t   a n d   w x P e r l   t e a m . 
- 
- = h e a d 1   C O P Y R I G H T 
- 
- T h i s   p r o g r a m   i s   f r e e   s o f t w a r e ,   y o u   c a n   r e d i s t r i b u t e   i t   a n d / o r   m o d i f y   i t   
- u n d e r   t h e   s a m e   t e r m s   a s   P e r l   i t s e l f . 
- 
- = c u t 
- 
\ No newline at end of file
+package Catalyst::Engine::Wx::Event;
+
+use strict;
+use vars qw(@ISA @EXPORT_OK);
+
+our $VERSION = "0.02_05";
+
+use Exporter;
+
+ at ISA = qw(Exporter);
+
+# We have exceptions to the classical GetValue
+# and we deal with these with a hash table
+# Until now most stuff should be ok with GetValue
+# and GetStringSelection
+my $getValue = {};
+
+#$getValue->{'Wx::TextCtrl'} = sub {
+#    return $_[0]->GetValue;
+#};
+
+sub _post_event {
+    my ($opt) = @_;
+    
+    if (defined $opt->{parent} && $opt->{parent}->can('GetChildren')) {
+        foreach ($opt->{parent}->GetChildren) {
+            if ($_->can('GetValue')) {
+                $opt->{$_->GetName} = $_->GetValue;
+            }
+            elsif ($_->can('GetStringSelection')) {
+                $opt->{$_->GetName} = $_->GetStringSelection;
+            }
+            elsif ( $getValue->{ ref($_) } ) {
+                $opt->{$_->GetName} = $getValue->{ ref($_) }($_);
+            }
+        }
+    }
+    
+    POE::Kernel->post('catalyst-wxperl', 'EVENT_REQUEST', $opt);
+}
+
+
+  
+sub CAT_EVT_QUIT { 
+   POE::Kernel->post('catalyst-wxperl', '_stop');
+}
+
+sub CAT_EVT {
+    my $parent     = $_[0];
+    my $controller = $_[1];
+    my $params     = $_[2] || {};
+    
+    $params->{'controller'} = $controller;
+    $params->{'parent'}     = $parent;
+    
+    _post_event($params);
+}
+
+#
+# ActivateEvent
+#
+
+sub CAT_EVT_ACTIVATE($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ACTIVATE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ACTIVATE, sub {
+         my( $this, $event ) = @_;
+         _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+         });
+      });
+   }
+}
+sub CAT_EVT_ACTIVATE_APP($$) {  
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ACTIVATE_APP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ACTIVATE_APP, sub {
+         my( $this, $event ) = @_;
+         _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+         });
+      });
+   }
+}
+
+#
+# CommandEvent
+#
+sub CAT_EVT_COMMAND_RANGE($$$$$) { $_[0]->Connect( $_[1], $_[2], $_[3], $_[4] ) } # FIX ME !!
+
+sub CAT_EVT_BUTTON {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_BUTTON_CLICKED, $_[2] );
+   }
+   else {      
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_BUTTON_CLICKED, sub { 
+            my( $this, $event ) = @_;
+            _post_event({
+                controller  => $controller,
+                parent      => $parent,
+                control     => $this,
+                event       => $event
+            });
+       });
+   }
+}
+sub CAT_EVT_CHECKBOX($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHECKBOX_CLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHECKBOX_CLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_CHOICE($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHOICE_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHOICE_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_LISTBOX($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOX_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOX_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LISTBOX_DCLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TEXT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_UPDATED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_UPDATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+# ------------------------------------------------------------------------------------------------------
+sub CAT_EVT_TEXT_ENTER($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_ENTER, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_ENTER, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TEXT_MAXLEN($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_MAXLEN, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_MAXLEN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TEXT_URL($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_URL, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_URL, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_MENU($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_MENU_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_MENU_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+# NEEDS FIX !!
+sub CAT_EVT_MENU_RANGE($$$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_MENU_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_MENU_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_SLIDER($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SLIDER_UPDATED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SLIDER_UPDATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_RADIOBOX($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_RADIOBOX_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_RADIOBOX_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_RADIOBUTTON($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_RADIOBUTTON_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_RADIOBUTTON_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_SCROLLBAR($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SCROLLBAR_UPDATED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SCROLLBAR_UPDATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMBOBOX($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_COMBOBOX_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_COMBOBOX_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TOOL($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_CLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_CLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+# NEEDS FIX !!
+sub CAT_EVT_TOOL_RANGE($$$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_CLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_CLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TOOL_RCLICKED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_RCLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_RCLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+# NEEDS FIX !!
+sub CAT_EVT_TOOL_RCLICKED_RANGE($$$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_RCLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_RCLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TOOL_ENTER($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_ENTER, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOL_ENTER, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMMAND_LEFT_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LEFT_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LEFT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMMAND_LEFT_DCLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LEFT_DCLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LEFT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMMAND_RIGHT_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_RIGHT_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMMAND_SET_FOCUS($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SET_FOCUS, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SET_FOCUS, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMMAND_KILL_FOCUS($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_KILL_FOCUS, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_KILL_FOCUS, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_COMMAND_ENTER($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_ENTER, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_ENTER, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TOGGLEBUTTON($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_CHECKLISTBOX($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   } 
+}
+sub CAT_EVT_TEXT_CUT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_CUT, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_CUT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TEXT_COPY($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_COPY, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_COPY, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+sub CAT_EVT_TEXT_PASTE($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_PASTE, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TEXT_PASTE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      }); 
+   }
+}
+
+#
+# CloseEvent
+#
+sub CAT_EVT_CLOSE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CLOSE_WINDOW, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CLOSE_WINDOW, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });  
+   }
+}
+sub CAT_EVT_END_SESSION($$) {
+   if (ref $_[1] eq 'CODE') { 
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_END_SESSION, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_END_SESSION, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });  
+   }
+}
+sub CAT_EVT_QUERY_END_SESSION($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_QUERY_END_SESSION, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_QUERY_END_SESSION, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });  
+   }
+}
+
+#
+# DropFilesEvent
+#
+
+sub CAT_EVT_DROP_FILES($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_DROP_FILES, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_DROP_FILES, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });  
+   }
+}
+
+#
+# EraseEvent
+#
+sub CAT_EVT_ERASE_BACKGROUND($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ERASE_BACKGROUND, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ERASE_BACKGROUND, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });  
+   }
+}
+
+#
+# FindDialogEvent
+#
+sub CAT_EVT_FIND($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_FIND_NEXT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_NEXT, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_NEXT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_FIND_REPLACE($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_REPLACE, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_REPLACE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_FIND_REPLACE_ALL($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_REPLACE_ALL, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_REPLACE_ALL, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_FIND_CLOSE($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_CLOSE, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_FIND_CLOSE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# FocusEvent
+#
+sub CAT_EVT_SET_FOCUS($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SET_FOCUS, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SET_FOCUS, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_KILL_FOCUS($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_KILL_FOCUS, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_KILL_FOCUS, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# KeyEvent
+#
+
+sub CAT_EVT_CHAR($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CHAR, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CHAR, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_CHAR_HOOK($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CHAR_HOOK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CHAR_HOOK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_KEY_DOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_KEY_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_KEY_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_KEY_UP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_KEY_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_KEY_UP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# Grid*Event
+#
+
+sub CAT_EVT_GRID_CELL_LEFT_CLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_LEFT_CLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_LEFT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_CELL_RIGHT_CLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_RIGHT_CLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_CELL_LEFT_DCLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_LEFT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_LEFT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_CELL_RIGHT_DCLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_RIGHT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_RIGHT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_LABEL_LEFT_CLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_LEFT_CLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_LEFT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_LABEL_RIGHT_CLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_RIGHT_CLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_LABEL_LEFT_DCLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_LEFT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_LEFT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_LABEL_RIGHT_DCLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_RIGHT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_LABEL_RIGHT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_ROW_SIZE($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_ROW_SIZE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_ROW_SIZE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_COL_SIZE($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_COL_SIZE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_COL_SIZE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_RANGE_SELECT($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_RANGE_SELECT, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_RANGE_SELECT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_CELL_CHANGE($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_CHANGE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_CELL_CHANGE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_SELECT_CELL($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_SELECT_CELL, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_SELECT_CELL, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_EDITOR_SHOWN($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_EDITOR_SHOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_EDITOR_SHOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_EDITOR_HIDDEN($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_EDITOR_HIDDEN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_EDITOR_HIDDEN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_GRID_EDITOR_CREATED($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_EDITOR_CREATED, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_GRID_EDITOR_CREATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# HelpEvent
+#
+
+sub CAT_EVT_HELP($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_HELP, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_HELP_RANGE($$$$) { $_[0]->Connect( $_[1], $_[2], &Wx::wxEVT_HELP, $_[3] ) } # FIX ME !!!!
+sub CAT_EVT_DETAILED_HELP($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_DETAILED_HELP, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_DETAILED_HELP_RANGE($$$$) { $_[0]->Connect( $_[1], $_[2], &Wx::wxEVT_DETAILED_HELP, $_[3] ) } # FIX ME !!!!
+
+#
+# IconizeEvent
+#
+
+sub CAT_EVT_ICONIZE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ICONIZE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ICONIZE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# IdleEvent
+#
+
+sub CAT_EVT_IDLE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_IDLE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_IDLE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# InitDialogEvent
+#
+
+sub CAT_EVT_INIT_DIALOG($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_INIT_DIALOG, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_INIT_DIALOG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# JoystickEvent
+#
+
+sub CAT_EVT_JOY_BUTTON_DOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_BUTTON_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_BUTTON_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_JOY_BUTTON_UP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_BUTTON_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_BUTTON_UP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_JOY_MOVE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_MOVE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_MOVE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_JOY_ZMOVE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_ZMOVE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller  = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_JOY_ZMOVE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ListbookEvent
+#
+
+sub CAT_EVT_LISTBOOK_PAGE_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LISTBOOK_PAGE_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ChoicebookEvent
+#
+
+sub CAT_EVT_CHOICEBOOK_PAGE_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_CHOICEBOOK_PAGE_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ToolbookEvent
+#
+
+sub CAT_EVT_TOOLBOOK_PAGE_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TOOLBOOK_PAGE_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# TreebookEvent
+#
+sub CAT_EVT_TREEBOOK_PAGE_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREEBOOK_PAGE_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREEBOOK_NODE_COLLAPSED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREEBOOK_NODE_EXPANDED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ListEvent
+#
+sub CAT_EVT_LIST_BEGIN_DRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_BEGIN_DRAG, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_BEGIN_RDRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_BEGIN_RDRAG, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_BEGIN_RDRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_BEGIN_LABEL_EDIT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_CACHE_HINT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_CACHE_HINT, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_CACHE_HINT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_END_LABEL_EDIT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_END_LABEL_EDIT, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_END_LABEL_EDIT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_DELETE_ITEM($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_DELETE_ITEM, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_DELETE_ITEM, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_DELETE_ALL_ITEMS($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_GET_INFO($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_GET_INFO, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_GET_INFO, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_SET_INFO($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_SET_INFO, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_SET_INFO, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_ITEM_SELECTED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_SELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_SELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_ITEM_DESELECTED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_DESELECTED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_DESELECTED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_KEY_DOWN($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_KEY_DOWN, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_KEY_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_INSERT_ITEM($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_INSERT_ITEM, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_INSERT_ITEM, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_COL_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_RIGHT_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_RIGHT_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_MIDDLE_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_MIDDLE_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_MIDDLE_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_ITEM_ACTIVATED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_ACTIVATED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_ACTIVATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_COL_RIGHT_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_RIGHT_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_COL_BEGIN_DRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_COL_DRAGGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_DRAGGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_DRAGGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_COL_END_DRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_END_DRAG, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_COL_END_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_ITEM_FOCUSED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_FOCUSED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_FOCUSED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LIST_ITEM_RIGHT_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# MenuEvent
+#
+
+sub CAT_EVT_MENU_CHAR($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_CHAR, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_CHAR, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MENU_INIT($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_INIT, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_INIT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MENU_HIGHLIGHT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_MENU_HIGHLIGHT, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_MENU_HIGHLIGHT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_POPUP_MENU($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_POPUP_MENU, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_POPUP_MENU, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_CONTEXT_MENU($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CONTEXT_MENU, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CONTEXT_MENU, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MENU_OPEN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_OPEN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_OPEN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MENU_CLOSE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_CLOSE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MENU_CLOSE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# MouseEvent
+#
+sub CAT_EVT_LEFT_DOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEFT_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEFT_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LEFT_UP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEFT_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEFT_UP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LEFT_DCLICK($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEFT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEFT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MIDDLE_DOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MIDDLE_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MIDDLE_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MIDDLE_UP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MIDDLE_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MIDDLE_UP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MIDDLE_DCLICK($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MIDDLE_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MIDDLE_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_RIGHT_DOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_RIGHT_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_RIGHT_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_RIGHT_UP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_RIGHT_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_RIGHT_UP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_RIGHT_DCLICK($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_RIGHT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_RIGHT_DCLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MOTION($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOTION, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOTION, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_ENTER_WINDOW($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ENTER_WINDOW, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_ENTER_WINDOW, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_LEAVE_WINDOW($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEAVE_WINDOW, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_LEAVE_WINDOW, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MOUSEWHEEL($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOUSEWHEEL, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOUSEWHEEL, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MOUSE_EVENTS($$) {
+  my( $x, $y ) = @_;
+  CAT_EVT_LEFT_DOWN( $x, $y );
+  CAT_EVT_LEFT_UP( $x, $y );
+  CAT_EVT_LEFT_DCLICK( $x, $y );
+  CAT_EVT_MIDDLE_DOWN( $x, $y );
+  CAT_EVT_MIDDLE_UP( $x, $y );
+  CAT_EVT_MIDDLE_DCLICK( $x, $y );
+  CAT_EVT_RIGHT_DOWN( $x, $y );
+  CAT_EVT_RIGHT_UP( $x, $y );
+  CAT_EVT_RIGHT_DCLICK( $x, $y );
+  CAT_EVT_MOTION( $x, $y );
+  CAT_EVT_ENTER_WINDOW( $x, $y );
+  CAT_EVT_LEAVE_WINDOW( $x, $y );
+  CAT_EVT_MOUSEWHEEL( $x, $y );
+}
+
+#
+# MoveEvent
+#
+
+sub CAT_EVT_MOVE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOVE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOVE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_MOVING($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOVING, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_MOVING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# NotebookEvent
+#
+
+sub CAT_EVT_NOTEBOOK_PAGE_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_NOTEBOOK_PAGE_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# PaintEvent
+#
+
+sub CAT_EVT_PAINT($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_PAINT, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_PAINT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ProcessEvent
+#
+
+sub CAT_EVT_END_PROCESS($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_END_PROCESS, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_END_PROCESS, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# SashEvent
+#
+sub CAT_EVT_SASH_DRAGGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SASH_DRAGGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SASH_DRAGGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SASH_DRAGGED_RANGE($$$$) { $_[0]->Connect( $_[1], $_[2], &Wx::wxEVT_SASH_DRAGGED, $_[3] ) }
+
+#
+# SizeEvent
+#
+
+sub CAT_EVT_SIZE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SIZE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SIZING($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SIZING, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ScrollEvent
+#
+
+sub CAT_EVT_SCROLL_TOP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_BOTTOM($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_BOTTOM, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_LINEUP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_LINEUP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_LINEDOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_LINEDOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_PAGEUP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_PAGEUP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_PAGEDOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_PAGEDOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_THUMBTRACK($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_THUMBTRACK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLL_THUMBRELEASE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_THUMBRELEASE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+sub CAT_EVT_COMMAND_SCROLL_TOP($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_TOP, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_TOP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_COMMAND_SCROLL_BOTTOM($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_BOTTOM, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_BOTTOM, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_COMMAND_SCROLL_LINEUP($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_COMMAND_SCROLL_LINEDOWN($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEDOWN, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEDOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   } 
+}
+sub CAT_EVT_COMMAND_SCROLL_PAGEUP($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_PAGEUP, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_PAGEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_COMMAND_SCROLL_PAGEDOWN($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_PAGEDOWN, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_PAGEDOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_COMMAND_SCROLL_THUMBTRACK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_THUMBTRACK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_THUMBTRACK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_COMMAND_SCROLL_THUMBRELEASE($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_THUMBRELEASE, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_THUMBRELEASE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# ScrollWinEvent
+#
+sub CAT_EVT_SCROLLWIN_TOP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_TOP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_BOTTOM($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_BOTTOM, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_LINEUP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_LINEUP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_LINEDOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_LINEDOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_PAGEUP($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_PAGEUP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_PAGEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_PAGEDOWN($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_PAGEDOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_THUMBTRACK($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_THUMBTRACK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SCROLLWIN_THUMBRELEASE($$) {
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SCROLLWIN_THUMBRELEASE, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# SpinEvent
+#
+
+sub CAT_EVT_SPIN_UP($$$) { 
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEUP, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SPIN_DOWN($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEDOWN, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_LINEDOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SPIN($$$) { 
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_THUMBTRACK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_SCROLL_THUMBTRACK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SPINCTRL($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SPINCTRL_UPDATED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SPINCTRL_UPDATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# SplitterEvent
+#
+sub CAT_EVT_SPLITTER_SASH_POS_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SPLITTER_SASH_POS_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_SPLITTER_UNSPLIT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_SPLITTER_UNSPLIT, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SPLITTER_UNSPLIT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   } 
+}
+sub CAT_EVT_SPLITTER_DOUBLECLICKED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# SysColourChangedEvent
+#
+
+sub CAT_EVT_SYS_COLOUR_CHANGED($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_SYS_COLOUR_CHANGED, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# Taskbar
+#
+
+sub CAT_EVT_TASKBAR_MOVE($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_MOVE, $_[1] ); 
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TASKBAR_LEFT_DOWN($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_LEFT_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TASKBAR_LEFT_UP($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_LEFT_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TASKBAR_RIGHT_DOWN($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_RIGHT_DOWN, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TASKBAR_RIGHT_UP($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_RIGHT_UP, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TASKBAR_LEFT_DCLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_LEFT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TASKBAR_RIGHT_DCLICK($$) { 
+   if (ref $_[1] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_TASKBAR_RIGHT_DCLICK, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $controller = $_[1];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# TreeEvent
+#
+
+sub CAT_EVT_TREE_BEGIN_DRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_BEGIN_RDRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_RDRAG, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_RDRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_END_DRAG($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_END_DRAG, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_END_DRAG, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_BEGIN_LABEL_EDIT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_END_LABEL_EDIT($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_END_LABEL_EDIT, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_END_LABEL_EDIT, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_GET_INFO($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_GET_INFO, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_GET_INFO, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_SET_INFO($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_CLOSE_WINDOW, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_SET_INFO, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_EXPANDED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_ITEM_EXPANDED, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_EXPANDED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_EXPANDING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_ITEM_EXPANDING, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_EXPANDING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_COLLAPSED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( -1, -1, &Wx::wxEVT_COMMAND_TREE_ITEM_COLLAPSED, $_[1] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_COLLAPSED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_COLLAPSING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_COLLAPSING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_COLLAPSING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_SEL_CHANGED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_SEL_CHANGED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_SEL_CHANGED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_SEL_CHANGING($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_SEL_CHANGING, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_SEL_CHANGING, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_KEY_DOWN($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_KEY_DOWN, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_KEY_DOWN, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_DELETE_ITEM($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_DELETE_ITEM, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_DELETE_ITEM, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_ACTIVATED($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_ACTIVATED, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_ACTIVATED, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_RIGHT_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_MIDDLE_CLICK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_TREE_ITEM_MENU($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_MENU, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_COMMAND_TREE_ITEM_MENU, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# UpdateUIEvent
+#
+sub CAT_EVT_UPDATE_UI($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::CAT_EVT_UPDATE_UI, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_UPDATE_UI, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+sub CAT_EVT_UPDATE_UI_RANGE($$$$) { # FIX ME !!
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], $_[2], &Wx::CAT_EVT_UPDATE_UI_RANGE, $_[3] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::CAT_EVT_UPDATE_UI_RANGE, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# HyperlinkEvent
+#
+sub CAT_EVT_HYPERLINK($$$) {
+   if (ref $_[2] eq 'CODE') {
+      $_[0]->Connect( $_[1], -1, &Wx::CAT_EVT_HYPERLINK, $_[2] );
+   }
+   else {
+      my $parent     = $_[0];
+      my $control    = $_[1];
+      my $controller = $_[2];
+      
+      $_[0]->Connect( $_[1], -1, &Wx::wxEVT_HYPERLINK, sub {
+         my( $this, $event ) = @_;
+        _post_event({
+            controller  => $controller,
+            parent      => $parent,
+            control     => $this,
+            event       => $event
+        });
+      });
+   }
+}
+
+#
+# Socket
+#
+
+sub CAT_EVT_SOCKET($$$) { goto &Wx::Socket::Event::CAT_EVT_SOCKET }
+sub CAT_EVT_SOCKET_ALL($$$) { goto &Wx::Socket::Event::CAT_EVT_SOCKET_ALL }
+sub CAT_EVT_SOCKET_INPUT($$$) { goto &Wx::Socket::Event::CAT_EVT_SOCKET_INPUT }
+sub CAT_EVT_SOCKET_OUTPUT($$$) { goto &Wx::Socket::Event::CAT_EVT_SOCKET_OUTPUT }
+sub CAT_EVT_SOCKET_CONNECTION($$$) { goto &Wx::Socket::Event::CAT_EVT_SOCKET_CONNECTION }
+sub CAT_EVT_SOCKET_LOST($$$) { goto &Wx::Socket::Event::CAT_EVT_SOCKET_LOST }
+
+#
+# Prototypes
+#
+sub CAT_EVT_CALENDAR($$$);
+sub CAT_EVT_CALENDAR_SEL_CHANGED($$$);
+sub CAT_EVT_CALENDAR_DAY($$$);
+sub CAT_EVT_CALENDAR_MONTH($$$);
+sub CAT_EVT_CALENDAR_YEAR($$$);
+sub CAT_EVT_CALENDAR_WEEKDAY_CLICKED($$$);
+
+sub CAT_EVT_STC_CHANGE($$$);
+sub CAT_EVT_STC_STYLENEEDED($$$);
+sub CAT_EVT_STC_CHARADDED($$$);
+sub CAT_EVT_STC_SAVEPOINTREACHED($$$);
+sub CAT_EVT_STC_SAVEPOINTLEFT($$$);
+sub CAT_EVT_STC_ROMODIFYATTEMPT($$$);
+sub CAT_EVT_STC_KEY($$$);
+sub CAT_EVT_STC_DOUBLECLICK($$$);
+sub CAT_EVT_STC_UPDATEUI($$$);
+sub CAT_EVT_STC_MODIFIED($$$);
+sub CAT_EVT_STC_MACRORECORD($$$);
+sub CAT_EVT_STC_MARGINCLICK($$$);
+sub CAT_EVT_STC_NEEDSHOWN($$$);
+sub CAT_EVT_STC_POSCHANGED($$$);
+sub CAT_EVT_STC_PAINTED($$$);
+sub CAT_EVT_STC_USERLISTSELECTION($$$);
+sub CAT_EVT_STC_URIDROPPED($$$);
+sub CAT_EVT_STC_DWELLSTART($$$);
+sub CAT_EVT_STC_DWELLEND($$$);
+sub CAT_EVT_STC_START_DRAG($$$);
+sub CAT_EVT_STC_DRAG_OVER($$$);
+sub CAT_EVT_STC_DO_DROP($$$);
+sub CAT_EVT_STC_ZOOM($$$);
+sub CAT_EVT_STC_HOTSPOT_CLICK($$$);
+sub CAT_EVT_STC_HOTSPOT_DCLICK($$$);
+sub CAT_EVT_STC_CALLTIP_CLICK($$$);
+
+push @EXPORT_OK, qw(
+CAT_EVT
+CAT_EVT_QUIT
+CAT_EVT_ACTIVATE
+CAT_EVT_ACTIVATE_APP
+CAT_EVT_COMMAND_RANGE
+CAT_EVT_BUTTON
+CAT_EVT_CHECKBOX
+CAT_EVT_CHOICE
+CAT_EVT_LISTBOX
+CAT_EVT_LISTBOX_DCLICK
+CAT_EVT_TEXT
+CAT_EVT_TEXT_ENTER
+CAT_EVT_TEXT_MAXLEN
+CAT_EVT_TEXT_URL
+CAT_EVT_MENU
+CAT_EVT_MENU_RANGE
+CAT_EVT_SLIDER
+CAT_EVT_RADIOBOX
+CAT_EVT_RADIOBUTTON
+CAT_EVT_SCROLLBAR
+CAT_EVT_COMBOBOX
+CAT_EVT_TOOL
+CAT_EVT_TOOL_RANGE
+CAT_EVT_TOOL_RCLICKED
+CAT_EVT_TOOL_RCLICKED_RANGE
+CAT_EVT_TOOL_ENTER
+CAT_EVT_COMMAND_LEFT_CLICK
+CAT_EVT_COMMAND_LEFT_DCLICK
+CAT_EVT_COMMAND_RIGHT_CLICK
+CAT_EVT_COMMAND_SET_FOCUS
+CAT_EVT_COMMAND_KILL_FOCUS
+CAT_EVT_COMMAND_ENTER
+CAT_EVT_TOGGLEBUTTON
+CAT_EVT_CHECKLISTBOX
+CAT_EVT_TEXT_CUT
+CAT_EVT_TEXT_COPY
+CAT_EVT_TEXT_PASTE
+CAT_EVT_CLOSE
+CAT_EVT_END_SESSION
+CAT_EVT_QUERY_END_SESSION
+CAT_EVT_DROP_FILES
+CAT_EVT_ERASE_BACKGROUND
+CAT_EVT_FIND
+CAT_EVT_FIND_NEXT
+CAT_EVT_FIND_REPLACE
+CAT_EVT_FIND_REPLACE_ALL
+CAT_EVT_FIND_CLOSE
+CAT_EVT_SET_FOCUS
+CAT_EVT_KILL_FOCUS
+CAT_EVT_CHAR
+CAT_EVT_CHAR_HOOK
+CAT_EVT_KEY_DOWN
+CAT_EVT_KEY_UP
+CAT_EVT_GRID_CELL_LEFT_CLICK
+CAT_EVT_GRID_CELL_RIGHT_CLICK
+CAT_EVT_GRID_CELL_LEFT_DCLICK
+CAT_EVT_GRID_CELL_RIGHT_DCLICK
+CAT_EVT_GRID_LABEL_LEFT_CLICK
+CAT_EVT_GRID_LABEL_RIGHT_CLICK
+CAT_EVT_GRID_LABEL_LEFT_DCLICK
+CAT_EVT_GRID_LABEL_RIGHT_DCLICK
+CAT_EVT_GRID_ROW_SIZE
+CAT_EVT_GRID_COL_SIZE
+CAT_EVT_GRID_RANGE_SELECT
+CAT_EVT_GRID_CELL_CHANGE
+CAT_EVT_GRID_SELECT_CELL
+CAT_EVT_GRID_EDITOR_SHOWN
+CAT_EVT_GRID_EDITOR_HIDDEN
+CAT_EVT_GRID_EDITOR_CREATED
+CAT_EVT_HELP
+CAT_EVT_HELP_RANGE
+CAT_EVT_DETAILED_HELP
+CAT_EVT_DETAILED_HELP_RANGE
+CAT_EVT_ICONIZE
+CAT_EVT_IDLE
+CAT_EVT_INIT_DIALOG
+CAT_EVT_JOY_BUTTON_DOWN
+CAT_EVT_JOY_BUTTON_UP
+CAT_EVT_JOY_MOVE
+CAT_EVT_JOY_ZMOVE
+CAT_EVT_LISTBOOK_PAGE_CHANGING
+CAT_EVT_LISTBOOK_PAGE_CHANGED
+CAT_EVT_CHOICEBOOK_PAGE_CHANGING
+CAT_EVT_CHOICEBOOK_PAGE_CHANGED
+CAT_EVT_TOOLBOOK_PAGE_CHANGING
+CAT_EVT_TOOLBOOK_PAGE_CHANGED
+CAT_EVT_TREEBOOK_PAGE_CHANGING
+CAT_EVT_TREEBOOK_PAGE_CHANGED
+CAT_EVT_TREEBOOK_NODE_COLLAPSED
+CAT_EVT_TREEBOOK_NODE_EXPANDED
+CAT_EVT_LIST_BEGIN_DRAG
+CAT_EVT_LIST_BEGIN_RDRAG
+CAT_EVT_LIST_BEGIN_LABEL_EDIT
+CAT_EVT_LIST_CACHE_HINT
+CAT_EVT_LIST_END_LABEL_EDIT
+CAT_EVT_LIST_DELETE_ITEM
+CAT_EVT_LIST_DELETE_ALL_ITEMS
+CAT_EVT_LIST_GET_INFO
+CAT_EVT_LIST_SET_INFO
+CAT_EVT_LIST_ITEM_SELECTED
+CAT_EVT_LIST_ITEM_DESELECTED
+CAT_EVT_LIST_KEY_DOWN
+CAT_EVT_LIST_INSERT_ITEM
+CAT_EVT_LIST_COL_CLICK
+CAT_EVT_LIST_RIGHT_CLICK
+CAT_EVT_LIST_MIDDLE_CLICK
+CAT_EVT_LIST_ITEM_ACTIVATED
+CAT_EVT_LIST_COL_RIGHT_CLICK
+CAT_EVT_LIST_COL_BEGIN_DRAG
+CAT_EVT_LIST_COL_DRAGGING
+CAT_EVT_LIST_COL_END_DRAG
+CAT_EVT_LIST_ITEM_FOCUSED
+CAT_EVT_LIST_ITEM_RIGHT_CLICK
+CAT_EVT_MENU_CHAR
+CAT_EVT_MENU_INIT
+CAT_EVT_MENU_HIGHLIGHT
+CAT_EVT_POPUP_MENU
+CAT_EVT_CONTEXT_MENU
+CAT_EVT_MENU_OPEN
+CAT_EVT_MENU_CLOSE
+CAT_EVT_LEFT_DOWN
+CAT_EVT_LEFT_UP
+CAT_EVT_LEFT_DCLICK
+CAT_EVT_MIDDLE_DOWN
+CAT_EVT_MIDDLE_UP
+CAT_EVT_MIDDLE_DCLICK
+CAT_EVT_RIGHT_DOWN
+CAT_EVT_RIGHT_UP
+CAT_EVT_RIGHT_DCLICK
+CAT_EVT_MOTION
+CAT_EVT_ENTER_WINDOW
+CAT_EVT_LEAVE_WINDOW
+CAT_EVT_MOUSEWHEEL
+CAT_EVT_MOUSE_EVENTS
+CAT_EVT_MOVE
+CAT_EVT_MOVING
+CAT_EVT_NOTEBOOK_PAGE_CHANGING
+CAT_EVT_NOTEBOOK_PAGE_CHANGED
+CAT_EVT_PAINT
+CAT_EVT_END_PROCESS
+CAT_EVT_SASH_DRAGGED
+CAT_EVT_SASH_DRAGGED_RANGE
+CAT_EVT_SIZE
+CAT_EVT_SIZING
+CAT_EVT_SCROLL_TOP
+CAT_EVT_SCROLL_BOTTOM
+CAT_EVT_SCROLL_LINEUP
+CAT_EVT_SCROLL_LINEDOWN
+CAT_EVT_SCROLL_PAGEUP
+CAT_EVT_SCROLL_PAGEDOWN
+CAT_EVT_SCROLL_THUMBTRACK
+CAT_EVT_SCROLL_THUMBRELEASE
+CAT_EVT_COMMAND_SCROLL_TOP
+CAT_EVT_COMMAND_SCROLL_BOTTOM
+CAT_EVT_COMMAND_SCROLL_LINEUP
+CAT_EVT_COMMAND_SCROLL_LINEDOWN
+CAT_EVT_COMMAND_SCROLL_PAGEUP
+CAT_EVT_COMMAND_SCROLL_PAGEDOWN
+CAT_EVT_COMMAND_SCROLL_THUMBTRACK
+CAT_EVT_COMMAND_SCROLL_THUMBRELEASE
+CAT_EVT_SCROLLWIN_TOP
+CAT_EVT_SCROLLWIN_BOTTOM
+CAT_EVT_SCROLLWIN_LINEUP
+CAT_EVT_SCROLLWIN_LINEDOWN
+CAT_EVT_SCROLLWIN_PAGEUP
+CAT_EVT_SCROLLWIN_PAGEDOWN
+CAT_EVT_SCROLLWIN_THUMBTRACK
+CAT_EVT_SCROLLWIN_THUMBRELEASE
+CAT_EVT_SPIN_UP
+CAT_EVT_SPIN_DOWN
+CAT_EVT_SPIN
+CAT_EVT_SPINCTRL
+CAT_EVT_SPLITTER_SASH_POS_CHANGING
+CAT_EVT_SPLITTER_SASH_POS_CHANGED
+CAT_EVT_SPLITTER_UNSPLIT
+CAT_EVT_SPLITTER_DOUBLECLICKED
+CAT_EVT_SYS_COLOUR_CHANGED
+CAT_EVT_TASKBAR_MOVE
+CAT_EVT_TASKBAR_LEFT_DOWN
+CAT_EVT_TASKBAR_LEFT_UP
+CAT_EVT_TASKBAR_RIGHT_DOWN
+CAT_EVT_TASKBAR_RIGHT_UP
+CAT_EVT_TASKBAR_LEFT_DCLICK
+CAT_EVT_TASKBAR_RIGHT_DCLICK
+CAT_EVT_TREE_BEGIN_DRAG
+CAT_EVT_TREE_BEGIN_RDRAG
+CAT_EVT_TREE_END_DRAG
+CAT_EVT_TREE_BEGIN_LABEL_EDIT
+CAT_EVT_TREE_END_LABEL_EDIT
+CAT_EVT_TREE_GET_INFO
+CAT_EVT_TREE_SET_INFO
+CAT_EVT_TREE_ITEM_EXPANDED
+CAT_EVT_TREE_ITEM_EXPANDING
+CAT_EVT_TREE_ITEM_COLLAPSED
+CAT_EVT_TREE_ITEM_COLLAPSING
+CAT_EVT_TREE_SEL_CHANGED
+CAT_EVT_TREE_SEL_CHANGING
+CAT_EVT_TREE_KEY_DOWN
+CAT_EVT_TREE_DELETE_ITEM
+CAT_EVT_TREE_ITEM_ACTIVATED
+CAT_EVT_TREE_ITEM_RIGHT_CLICK
+CAT_EVT_TREE_ITEM_MIDDLE_CLICK
+CAT_EVT_TREE_ITEM_MENU
+CAT_EVT_UPDATE_UI
+CAT_EVT_UPDATE_UI_RANGE
+CAT_EVT_HYPERLINK
+CAT_EVT_SOCKET
+CAT_EVT_SOCKET_ALL
+CAT_EVT_SOCKET_INPUT
+CAT_EVT_SOCKET_OUTPUT
+CAT_EVT_SOCKET_CONNECTION
+CAT_EVT_SOCKET_LOST
+CAT_EVT_CALENDAR
+CAT_EVT_CALENDAR_SEL_CHANGED
+CAT_EVT_CALENDAR_DAY
+CAT_EVT_CALENDAR_MONTH
+CAT_EVT_CALENDAR_YEAR
+CAT_EVT_CALENDAR_WEEKDAY_CLICKED
+CAT_EVT_STC_CHANGE
+CAT_EVT_STC_STYLENEEDED
+CAT_EVT_STC_CHARADDED
+CAT_EVT_STC_SAVEPOINTREACHED
+CAT_EVT_STC_SAVEPOINTLEFT
+CAT_EVT_STC_ROMODIFYATTEMPT
+CAT_EVT_STC_KEY
+CAT_EVT_STC_DOUBLECLICK
+CAT_EVT_STC_UPDATEUI
+CAT_EVT_STC_MODIFIED
+CAT_EVT_STC_MACRORECORD
+CAT_EVT_STC_MARGINCLICK
+CAT_EVT_STC_NEEDSHOWN
+CAT_EVT_STC_POSCHANGED
+CAT_EVT_STC_PAINTED
+CAT_EVT_STC_USERLISTSELECTION
+CAT_EVT_STC_URIDROPPED
+CAT_EVT_STC_DWELLSTART
+CAT_EVT_STC_DWELLEND
+CAT_EVT_STC_START_DRAG
+CAT_EVT_STC_DRAG_OVER
+CAT_EVT_STC_DO_DROP
+CAT_EVT_STC_ZOOM
+CAT_EVT_STC_HOTSPOT_CLICK
+CAT_EVT_STC_HOTSPOT_DCLICK
+CAT_EVT_STC_CALLTIP_CLICK);
+
+1;
+
+=head1 NAME
+
+Catalyst::Engine::Wx::Event - Catalyst wxPerl Engine events manager
+
+=head1 SYNOPSIS
+
+In your wx classes you can attach events the traditionnal way and then
+call the Catalyst controllers by calling CATALYST_EVT.
+
+    # Attach events
+    EVT_BUTTON( $self, $self->{button}, sub {
+        CAT_EVT($self, 'Root->hello_world')
+    });
+
+You can pass parameters along with your event:
+
+    EVT_BUTTON( $self, $self->{button}, sub {
+        CAT_EVT($self, 'Root->hello_world', { message => $self->{message}->GetValue } )
+    });
+
+You can also name your controls and get them automatically added to 
+your request's parameters, then you simply use the appropriate event
+for the control
+
+	my $ctrl = Wx::TextCtrl->new($self, -1, "", wxDefaultPosition, wxDefaultSize);
+    $ctrl->SetName('message');
+    
+    CAT_EVT_BUTTON( $self, $self->{button}, 'Root->hello_world');
+
+    # Root->hello_world should receive a message parameter with the value stored in
+    # the control
+
+=head1 DESCRIPTION
+
+Catalyst::Engine::Wx::Event is the module that you can use to attach events to 
+your controls and to trigger Catalyst controllers.
+
+=head2 CAT_EVT
+
+Calls a Catalyst controller either by its path or by its representation.
+Where Root->hello_world is the representation of the hello_world sub in the 
+Root module.
+
+You can also call it with '/hello_world'.
+
+The following is equivalent to loading the application if you have not defined
+a bootstrap option.
+
+    CAT_EVT(undef, 'Root->default');
+
+
+=head2 CAT_QUIT
+
+This event quits the loop and exits the applications.
+
+For exemple this exits the application when you close the window.
+
+    EVT_CLOSE( $window, sub { CAT_EVT_QUIT; } );
+
+=head1 AUTHORS
+
+Eriam Schaffter, C<eriam at cpan.org> and the Catalyst and wxPerl team.
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it 
+under the same terms as Perl itself.
+
+=cut

Modified: trunk/Catalyst-Engine-Wx/t/3_wx.t
===================================================================
--- trunk/Catalyst-Engine-Wx/t/3_wx.t	2008-04-24 19:08:04 UTC (rev 7631)
+++ trunk/Catalyst-Engine-Wx/t/3_wx.t	2008-04-24 19:19:37 UTC (rev 7632)
@@ -11,7 +11,7 @@
 plan tests => 7;
 
 BEGIN { 
-    use lib "t/lib/";
+    use lib "./t/lib/";
 
     $ENV{CATALYST_ENGINE} ||= 'Wx';
     require Catalyst::Engine::Wx;




More information about the Catalyst-commits mailing list