
    ;eH                     Z   	 d dl Z d dlZd dlZd ZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd	ZdZdZdZej         dk    r	dZ!eeeefZ"ndZ!eeeefZ"d  e# e$e!                    D             Z%dZ& G d  d!          Z' e#d e$e!          z            Z(d" e(D             Z)d# Z* e*e(          Z+g Z,e(D ]CZ-d Z. e# e$e!                    D ]Z/de/z  e-z  re.e"e/         z  Z.e,0                    e.           D G d$ d%          Z1d&Z2e1fdz  e'f e$e2          dz
  z  z   Z3d'  e# e$e2                    D             Z4 e j5        d(          Z6 e j5        d)          Z7d* Z8d+ Z9i Z:d, Z;d- Z<e=d.k    r'd d/l>m?Z?  e?d0dd12           d d3l@mAZA  eAe<           dS dS )4    N                        	   
                                           @      darwin)ShiftControl)Option)Command)r   )Altr   )MetaMc                 4    i | ]}t           |         D ]}||S  )
_modifiers.0numbernames      (/usr/lib/python3.11/idlelib/multicall.py
<dictcomp>r.   7   sD     9 9 9#%/%79 9!  9 9 9 9    zapplication has been destroyedc                   &    e Zd Zd Zd Zd Zd ZdS )_SimpleBinderc                     || _         dt          |         d         z   dz   | _        || _        || _        g | _        d | _        d S )N<r   >)type_typessequencewidget
widgetinstbindedfuncs	handlerid)selfr5   r8   r9   s       r-   __init__z_SimpleBinder.__init__J   sC    	F4LO+C/$r/   c                     | j         s;| j        | j        fd}| j                            | j        | j        |          | _         | j                            |           d S )Nc                     || _         i }t          t          |          dz
  dd          D ]$}||         }||vrd||<    ||           }|r|c S %d S )Nr   T)mc_typerangelen)eventlrA   	wascalledifuncrs          r-   handlerz#_SimpleBinder.bind.<locals>.handlerT   sy     '	s1vvaxR00 % %AQ4D9,,*.	$ DKK %#$HHH% %r/   )r;   r:   r5   r8   bindr9   r7   append)r<   tripletrH   rJ   s       r-   rK   z_SimpleBinder.bindR   sp    ~ 	F#'#3ty 	% 	% 	% 	% "[--do.2mWF FDN%%%%%r/   c                     | j                             |           | j         s4| j                            | j        | j        | j                   d | _        d S d S N)r:   remover8   unbindr9   r7   r;   )r<   rM   rH   s      r-   rQ   z_SimpleBinder.unbindb   sY    %%% 	"Ktt~NNN!DNNN	" 	"r/   c                     | j         r`	 | j                            | j        | j        | j                    d S # t
          j        $ r }t          |j        d         vr Y d }~d S d }~ww xY wd S Nr   )	r;   r8   rQ   r9   r7   tkinterTclErrorAPPLICATION_GONEargs)r<   es     r-   __del__z_SimpleBinder.__del__h   s    > 	""4?DM( ( ( ( (#   '16!944 544444		 	s   +6 A%A  A%N)__name__
__module____qualname__r=   rK   rQ   rY   r'   r/   r-   r1   r1   I   sP          & & & " " "    r/   r1   c                 v    g | ]5d                      fdt          t                    D                       6S ) c              3   D   K   | ]\  }}d |z  z  |d         dz   V  dS )r   r   -Nr'   )r*   rG   mss      r-   	<genexpr>z<listcomp>.<genexpr>w   sP       ) ) AqFa<)!S ) ) ) ) ) )r/   )join	enumerater(   r*   rb   s    @r-   
<listcomp>rg   w   sg     " " "   ) ) ) )$-j$9$9) ) ) ) ) " " "r/   c                     	 d }g }| D ]It          fd| D                       }|                    |d           |                    |           J|S )Nc                 D    	 d}| rt          | d          \  } }||z  }| |S )Nr   r   )divmod)nnbrems      r-   nbitszexpand_substates.<locals>.nbits   s=    ( 	Aq\\FAs#IB  	 	r/   c                     h | ]}|z  S r'   r'   )r*   xstates     r-   	<setcomp>z#expand_substates.<locals>.<setcomp>   s    444%!)444r/   T)keyreverse)listsortrL   )statesrn   	statelist	substatesrq   s       @r-   expand_substatesrz   |   s       I $ $4444V44455	5$///####r/   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )_ComplexBinderc                 ,    |||| j         | j        fd}|S )Nc                 "   dg|d d <   || _         || _        i }d }|D ]P}t          t          |          dz
  dd          D ](}	||	         }
|
|vrd||
<    ||	         |           }|r n)|r nQg |d d <   |D ]} |             g |d d <   |r|S d S )NTr   r@   )rA   mc_staterB   rC   )rD   listsrA   r   ishandlerrunningdoafterhandlerrF   rI   rE   rG   rH   fs               r-   rJ   z0_ComplexBinder.__create_handler.<locals>.handler   s     $(&QQQ#EM%ENIA 	 	s1vvaxR00 " "AQ4D9,,*.	$ AaDKK "!E E"$QQQ#   "N111  r/   )r   r   )r<   r   rA   r   rJ   s        r-   __create_handlerz_ComplexBinder.__create_handler   s1    #(%('+'<%)%8	 	 	 	4 r/   c           	          | _         t          |         d          _        | _        | _        d d t
          D             i _        g  _        g  _        g  _	        t
          D ]} fdt          |         D             }                     ||t          |                   }dt          |         z    j        z   dz   } j                            | j                             j        ||          f           d S )Nr   c                     g | ]}g S r'   r'   rf   s     r-   rg   z+_ComplexBinder.__init__.<locals>.<listcomp>   s    "7"7"7!2"7"7"7r/   c                 6    g | ]}j         d          |         S rO   )r:   )r*   rG   r<   s     r-   rg   z+_ComplexBinder.__init__.<locals>.<listcomp>   s&    JJJ1T%d+A.JJJr/   r3   r4   )r5   r6   typenamer8   r9   _statesr:   
handleridsr   r   _state_subsets_ComplexBinder__create_handler_state_codes_state_namesrL   rK   )r<   r5   r8   r9   rb   r   rJ   seqs   `       r-   r=   z_ComplexBinder.__init__   s   	tQ$ "7"7w"7"7"78 !#  	J 	JAJJJJq8IJJJE++E4aIIGl1o%dm3C7CO""C)9)9$/:=w*H *H $I J J J J		J 	Jr/   c           	          d          j         vrd t          D              j         d         <   t          D ] fdd         d fD             }                     | j        t                             }dt
                    j        dd         d} j                            | j	        
                     j        ||          f            fd} j        s |             d S  j                            |           d S )Nr   c                     g | ]}g S r'   r'   rf   s     r-   rg   z'_ComplexBinder.bind.<locals>.<listcomp>   s    +@+@+@1B+@+@+@r/   c                 V    g | ]%}t                    D ]}j        |         |         &S r'   )r   r:   )r*   detailrG   rb   r<   s      r-   rg   z'_ComplexBinder.bind.<locals>.<listcomp>   sP     = = =$#1!#4= = *6215 = = = =r/   r3   r`   r4   c                  h    j         d                  d                                                 S Nr   r   )r:   rL   rH   r<   rM   s   r-   <lambda>z%_ComplexBinder.bind.<locals>.<lambda>   *    t'
3GAJ?FFtLL r/   )r:   r   r   r5   r   r   r   r   rL   r8   rK   r9   r   r   )r<   rM   rH   r   rJ   r   doitrb   s   ```    @r-   rK   z_ComplexBinder.bind   s[   1:T---+@+@+@+@+@DWQZ( N N= = = = =)0T(:= = = //ty0<QA A$0OOT]]]GAJJJO&&T[-=-=do>A7.L .L (M N N N NLLLLLL$ 	-DFFFFF&&t,,,,,r/   c                 t      fd} j         s |             d S  j                            |           d S )Nc                  h    j         d                  d                                                 S r   )r:   rP   r   s   r-   r   z'_ComplexBinder.unbind.<locals>.<lambda>   r   r/   )r   r   rL   )r<   rM   rH   r   s   ``` r-   rQ   z_ComplexBinder.unbind   sP    LLLLLL$ 	-DFFFFF&&t,,,,,r/   c                     | j         D ]X\  }}	 | j                            | j        ||           (# t          j        $ r}t          |j        d         vr Y d }~Qd }~ww xY wd S rS   )r   r8   rQ   r9   rT   rU   rV   rW   )r<   r   idrX   s       r-   rY   z_ComplexBinder.__del__   s     	 	GC""4?C<<<<#   '16!944 54444	 	s   !0AAAN)rZ   r[   r\   r   r=   rK   rQ   rY   r'   r/   r-   r|   r|      sb          :J J J.- - -$- - -    r/   r|   ))KeyPressKey)
KeyRelease)ButtonPressButton)ButtonRelease)Activate)	Circulate)Colormap)	Configure)
Deactivate)Destroy)Enter)Expose)FocusIn)FocusOut)Gravity)Leave)Map)Motion)
MouseWheel)Property)Reparent)Unmap)
Visibilityc                 4    i | ]}t           |         D ]}||S r'   )r6   r)   s      r-   r.   r.     sC     1 1 1!'1 1 V 1 1 1 1r/   z^\w+$z^[1-5]$c                 D   	 | r| d         dk    s| d         dk    rd S | dd                              d          }d}|r<|d         t          v r-|dt          |d                  z  z  }|d= |r|d         t          v -|r&|d         t          v rt          |d                  }|d= nd S t          |         t          u r	|s|rd S d }n[|d dD             v rt
          }nt          }|sd }n9t          |          dk    r$|                    |d                   r	|d         }nd S |||fS )	Nr   r3   r@   r4   r   r`   c                 (    g | ]}t           |         S r'   )_type_namesrf   s     r-   rg   z#_parse_sequence.<locals>.<listcomp>$  s    GGGqKNGGGr/   )r   r   )	split_modifier_namesr   _binder_classesr1   
_keysym_re
_button_rerC   match)r7   words	modifiersr5   r   type_res         r-   _parse_sequencer     sv   
  x{c))Xb\S-@-@tQrTN  %%EI
 E!H//Q/%(333	!H  E!H//  q[((58$!HHtt-- 	 	4FF GG,FGGGGG GG G 	FFZZ1__uQx!8!8_1XFF4dF""r/   c                     | d         r?dt           | d                  z   t          | d                  d         z   dz   | d         z   dz   S dt           | d                  z   t          | d                  d         z   dz   S )Nr   r3   r   r   r`   r4   )r   r6   )rM   s    r-   _triplet_to_sequencer   2  s    qz F<
++F71:,>q,AA#Eqz 	 <
++F71:,>q,AA#EEr/   c                 j     	  t           v rt                     S  G  fdd           }|t            <   |S )Nc                   X    e Zd Z fdZd	 fd	Zd
 fd	Z fdZ fdZd
 fd	Zd Z	dS )#MultiCallCreator.<locals>.MultiCallc                       j          g|R i | i  _         fdt          t          t                              D              _        d S )Nc                 >    g | ]}t          |         |          S r'   )r   )r*   rG   r<   r8   s     r-   rg   z@MultiCallCreator.<locals>.MultiCall.__init__.<locals>.<listcomp>K  s:     ; ; ;"# .a0FDAA ; ; ;r/   )r=   _MultiCall__eventinforB   rC   r6   _MultiCall__binders)r<   rW   kwargsr8   s   `  r-   r=   z,MultiCallCreator.<locals>.MultiCall.__init__E  sq    FOD242226222  "D; ; ; ; ;',S[['9'9; ; ;DNNNr/   Nc                    t          |          t          u rt          |          dk    r|d d         dk    r|dd          dk    r|| j        v r| j        |         }|d         8|d         D ]/}| j        |d                                      ||d                    0||d<   |d         2|d         D ])}| j        |d                                      ||           *n|g g| j        |<                       | |||          S )Nr   <<>>r   r   )r5   strrC   r   r   rQ   rK   )r<   r7   rH   addeirM   r8   s         r-   rK   z(MultiCallCreator.<locals>.MultiCall.bindN  s#    H~~$$X):):|t##(=(=t///)(3B!u(')!u N NG N71:6==gr!uMMMM BqE!u(')!u K KG N71:6;;GTJJJJ26D$X.;;tXtS999r/   c                 j   t          |          t          u rt          |          dk    rs|d d         dk    re|dd          dk    rW|| j        v rN| j        |         \  }}|<|D ])}| j        |d                                      ||           *d | j        |         d<                       | ||          S )Nr   r   r   r   r   r   )r5   r   rC   r   r   rQ   )r<   r7   funcidrH   tripletsrM   r8   s         r-   rQ   z*MultiCallCreator.<locals>.MultiCall.unbind`  s    H~~$$X):):|t##(=(=4+++!%!1(!;h##+ I Iwqz299'4HHHH48D$X.q1==x888r/   c                 *   || j         vrd g g| j         |<   | j         |         \  }}|D ]i}t          |          }|                    | ||           +|'| j        |d                                      ||           |                    |           jd S Nr   )r   r   	event_addr   rK   rL   r<   virtual	sequencesrH   r   r   rM   r8   s          r-   r   z-MultiCallCreator.<locals>.MultiCall.event_addk  s     d...-12J )!-g6ND(  - -)#..?$$T7C8888'wqz277FFFOOG,,,,- -r/   c                    || j         vrd S | j         |         \  }}|D ]i}t          |          }|                    | ||           +|'| j        |d                                      ||           |                    |           jd S r   )r   r   event_deleter   rQ   rP   r   s          r-   r   z0MultiCallCreator.<locals>.MultiCall.event_delete|  s    d...!-g6ND(  - -)#..?''gs;;;;'wqz299'4HHHOOG,,,,- -r/   c                     |	|| j         vr                    | |          S t          t          t          | j         |         d                                                 | |          z   S r   )r   
event_infotuplemapr   )r<   r   r8   s     r-   r   z.MultiCallCreator.<locals>.MultiCall.event_info  sv    '1A"A"A((w777S!5!%!1'!:1!=? ? @ @((w778 8r/   c                     | j         D ]r}| j         |         \  }}|r^|D ][}	 | j        |d                                      ||           +# t          j        $ r}t
          |j        d         vr Y d }~Td }~ww xY wsd S )Nr   r   )r   r   rQ   rT   rU   rV   rW   )r<   r   rH   r   rM   rX   s         r-   rY   z+MultiCallCreator.<locals>.MultiCall.__del__  s    + & &!%!1'!:h &#+ & && N71:6==gtLLLL&/ & & &#3qvay#@#@ % $A#@#@#@#@&& &s   'A		A7A22A7)NNNrO   )
rZ   r[   r\   r=   rK   rQ   r   r   r   rY   )r8   s   r-   	MultiCallr   B  s        	; 	; 	; 	; 	;	: 	: 	: 	: 	: 	:$		9 		9 		9 		9 		9 		9	- 	- 	- 	- 	-"	- 	- 	- 	- 	-	8 	8 	8 	8 	8 	8		& 		& 		& 		& 		&r/   r   )_multicall_dict)r8   r   s   ` r-   MultiCallCreatorr   :  sq       v&&Y& Y& Y& Y& Y& Y& Y&V Y& Y& Y&v (OFr/   c                    t          j        |           }|                    d           t          t          |                                                     d          dd                    \  }}|                    d||dz   fz              t          t           j                  |          	                                 dgffd	} |d            |d	            |d
            |d            |d            |d            |d            |d            |d            |d            |d            |d           d S )NzTest MultiCall+r   z+%d+%d   r   c                       fd}                     d|d         z  |                               d|d         z              |dxx         dz  cc<   d S )Nc                 &    t                     d S rO   )print)rD   r   s    r-   rJ   z-_multi_call.<locals>.bindseq.<locals>.handler  s    #JJJJJr/   z<<handler%d>>r   r   )rK   r   )r   rk   rJ   texts   `  r-   bindseqz_multi_call.<locals>.bindseq  sp    	 	 	 	 			/!A$&000qt+S111	!	r/   z<Key>z<Control-Key>z<Alt-Key-a>z<Control-Key-a>z<Alt-Control-Key-a>z<Key-b>z<Control-Button-1>z
<Button-2>z<Alt-Button-1>z
<FocusOut>z<Enter>z<Leave>)
rT   Topleveltitler   intgeometryr   r   Textpack)parenttoprp   yr   r   s        @r-   _multi_callr     s   

6
"
"CIIsFOO%%++C00455DAqLLQCL())))GL))#..DIIKKKs       GGGOGMGG!"""GIG !!!GLGGLGIGIr/   __main__)mainzidlelib.idle_test.test_mainmenuF)	verbosityexit)run)BresysrT   MC_KEYPRESSMC_KEYRELEASEMC_BUTTONPRESSMC_BUTTONRELEASEMC_ACTIVATEMC_CIRCULATEMC_COLORMAPMC_CONFIGUREMC_DEACTIVATE
MC_DESTROYMC_ENTER	MC_EXPOSE
MC_FOCUSINMC_FOCUSOUT
MC_GRAVITYMC_LEAVEMC_MAP	MC_MOTIONMC_MOUSEWHEELMC_PROPERTYMC_REPARENTMC_UNMAPMC_VISIBILITYMC_SHIFT
MC_CONTROLMC_ALTMC_META	MC_OPTION
MC_COMMANDplatformr(   _modifier_masksrB   rC   r   rV   r1   r   r   rz   r   r   rb   rI   rG   rL   r|   r6   r   r   compiler   r   r   r   r   r   r   rZ   unittestr   idlelib.idle_test.htestr   r'   r/   r-   <module>r$     su  < 
			 



  Q}q12BA|1{1lAxbIR*2
x2Fyb+b+2(R}dTFT7	t* <8FJY
COODJ!68W=O9 9',uSS__'='=9 9 9 4 & & & & & & & &Z %SS__$
%
%" " !" " "
  $ "!'** 	  A	AU33z??## $ $Fa< 	$##A[ [ [ [ [ [ [ [~
 "#a'=*:cc&kk!m*LL1 1#(5V#5#51 1 1 RZ!!
RZ
##
%# %# %#NF F F d d dN  4 zD	*aeDDDD++++++C r/   