<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    YI~d8  ã               @   sæ   d dl mZmZmZmZ d dlmZmZmZm	Z	m
Z
mZ d dl mZ d dlZd dlZdZeejej ƒZedƒZdZdZd	Zee e e e e Zd
d„ ZG dd„ deƒZedkrâd dlmZ edddd d dlmZ eeƒ dS )é    )ÚToplevelÚListboxÚ	StringVarÚTclError)ÚFrameÚButtonÚCheckbuttonÚEntryÚLabelÚ	Scrollbar)Ú
messageboxN)ZF1ZF2ZF3ZF4ZF5ZF6ZF7ZF8ZF9ZF10ZF11ZF12z~!@#%^&*()_-+={}[]|;:,.<>/?)ÚTabÚSpaceZReturn)Z	BackSpaceZDeleteZInsert)ZHomeZEndzPage Upz	Page Downz
Left ArrowzRight ArrowzUp Arrowz
Down Arrowc          $   C   s|   ddddddddd	d
dddddddddddddddddddddd d!d"d#d$œ#}|  | | ¡} d%|krr| tjkrr|  ¡ } d&| › S )'NZspaceZ
asciitildeZexclamZatZ
numbersignÚpercentZasciicircumZ	ampersandZasteriskZ	parenleftZ
parenrightZ
underscoreZminusZplusZequalZ	braceleftZ
bracerightZbracketleftZbracketrightZbarZ	semicolonZcolonZcommaZperiodZlessZgreaterZslashZquestionZPriorZNextZLeftZRightZUpZDownr   )#r   ú~ú!ú@ú#ú%ú^ú&Ú*ú(ú)Ú_ú-ú+ú=Ú{Ú}ú[ú]ú|ú;ú:ú,Ú.ú<ú>ú/ú?zPage Upz	Page Downz
Left ArrowzRight ArrowzUp Arrowz
Down Arrowr   ÚShiftzKey-)ÚgetÚstringÚascii_lowercaseÚupper)ÚkeyÚ	modifiersÚmapping© r3   ú7/opt/alt/python37/lib64/python3.7/idlelib/config_key.pyÚtranslate_key   s     r5   c               @   s†   e Zd ZdZdddœdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zddd„Z	dd„ Z
dd„ Zdd„ Zd dd„Zd!dd„Zdd„ Zdd„ ZdS )"ÚGetKeysDialogzKey Sequence ErrorF)Ú_htestÚ_utestc      	      C   sF  t  | |¡ |  ¡  | jdd | jddd |  |¡ |  |¡ |  ¡  |  d| j	¡ || _
|| _|| _d| _t| ƒ| _| j d¡ |  ¡  g | _x,| jD ]"}t| ƒ}| d¡ | j |¡ qœW d| _|  ¡  |  ¡  |  d| ¡ | ¡ d |  ¡ d   | ¡ |s | ¡ d |  ¡ d  nd	 f ¡ |sB|  ¡  |   ¡  d S )
Né   )ÚborderwidthF)ÚheightÚwidthZWM_DELETE_WINDOWÚ z+%d+%dé   é–   )!r   Ú__init__ZwithdrawZ	configureZ	resizableÚtitleZ	transientZgrab_setZprotocolÚcancelÚparentÚactionÚcurrent_key_sequencesÚresultr   Ú
key_stringÚsetÚset_modifiers_for_platformÚmodifier_varsr1   ÚappendÚadvancedÚcreate_widgetsZupdate_idletasksZgeometryZwinfo_rootxZwinfo_widthZwinfo_reqwidthZwinfo_rootyZwinfo_heightZwinfo_reqheightZ	deiconifyZwait_window)	ÚselfrC   rA   rD   rE   r7   r8   ÚmodifierÚvariabler3   r3   r4   r@   0   s@    



*zGetKeysDialog.__init__c             O   s   t j||Ž d S )N)r   Ú	showerror)rN   ÚargsÚkwargsr3   r3   r4   rQ   `   s    zGetKeysDialog.showerrorc          	   C   s0  t | ddd | _}|jdddd t | ƒ}|jdd	d
 t|dd| jd| _| jjddddd t|dd| jd| _| jjddddd t |dd| _	| j	jdddddd t
| j	d| j› dd}|jdd t
| j	d| jddd}|jddd	d t |ƒ| _| jjddddd  i | _d}xft| j| jƒD ]T\}}| j ||¡}t| j| j|||d!d"}	|	jd|ddd# |	| j|< |d7 }q0W t
| jdd$d%}
|
jddd&ddd' t| jd(d)d*d+| _| jjdBtžŽ  | j d-| j¡ | jjdd&d&d.d/ t| jd0| jjd1}| jj|jd2 |jddd&d.d/ t| jd3| j d4| _!| j!jddd&d5 t |d6d| _"| j"jdddddd t
| j"dd7| j› d8d9 d%}|jdd t#| j"| jd:| _$| j$jd	d; t |ƒ| _%| j%jddddd  t
| j%dd<d%}|jdddd= t|| j&d>d?| _'| j'jddd@dddA |  &¡  d S )CNr>   Zsunken)r:   ÚreliefÚtopTZboth)ÚsideÚexpandÚfillZbottomÚx)rV   rX   ZOKé   )Útextr<   Úcommandr   r9   )ÚrowÚcolumnÚpadxÚpadyZCancelé   Zkeyseq_basic)ÚnameZnsew)r]   r^   Ústickyr_   r`   zNew keys for 'z' :)r[   Úw)ÚanchorÚleftZgroove)ÚjustifyÚtextvariablerT   r:   )ZipadxZipadyrX   )r]   r^   rc   r_   r=   )r\   r[   rP   ZonvalueZoffvalue)r]   r^   r_   rc   z¸Select the desired modifier keys
above, and the final key from the
list on the right.

Use upper case Symbols when using
the Shift modifier.  (Letters will be
converted automatically.))rg   r[   é   )r]   r^   Ú
columnspanr_   rc   é   é
   Zsingle)r<   r;   Z
selectmodeÚendz<ButtonRelease-1>Úns)r]   r^   Zrowspanrc   Zvertical)Zorientr\   )Zyscrollcommandz
Clear Keys)r[   r\   )r]   r^   rj   Zkeyseq_advancedzEnter new binding(s) for 'z' :
z2(These bindings will not be checked for validity!))rh   )rX   aÁ  Key bindings are specified using Tkinter keysyms as
in these samples: <Control-f>, <Shift-F2>, <F12>,
<Control-space>, <Meta-less>, <Control-Alt-Shift-X>.
Upper case is used when the Shift modifier is present!

'Emacs style' multi-keystroke bindings are specified as
follows: <Control-x><Control-y>, where the first key
is the 'do-nothing' keybinding.

Multiple separate bindings for one action should be
separated by a space, eg., <Alt-v> <Meta-v>.)r]   r^   rc   z<< Basic Key Binding Entry)r\   r[   Zew)r]   r^   Zstickr_   r`   )rm   )(r   ÚframeÚpackr   ÚokZ	button_okZgridrB   Zbutton_cancelÚframe_keyseq_basicr
   rD   rG   Úframe_controls_basicZmodifier_checkbuttonsÚzipr1   rJ   Úmodifier_labelr,   r   Úbuild_key_stringr   Úlist_keys_finalÚinsertÚAVAILABLE_KEYSÚbindÚfinal_key_selectedr   ÚyviewÚconfigrH   Úclear_key_seqZbutton_clearÚframe_keyseq_advancedr	   Úadvanced_keysÚframe_help_advancedÚtoggle_levelÚbutton_level)rN   ro   Zframe_buttonsZbasic_titleZ
basic_keysr^   rO   rP   ZlabelZcheckZ
help_basicZscroll_keys_finalZadvanced_titleZhelp_advancedr3   r3   r4   rM   d   sˆ    






zGetKeysDialog.create_widgetsc             C   s4   t jdkrddddg| _ndddg| _ddi| _d S )NÚdarwinr+   ZControlZOptionZCommandZAltZCtrl)ÚsysÚplatformr1   ru   )rN   r3   r3   r4   rI   Ê   s    
z(GetKeysDialog.set_modifiers_for_platformc             C   s‚   | j  d¡ d¡rN|  ¡  | j jdd | j ¡  | j ¡  | j 	¡  d| _
n0|  ¡  | j jdd | j ¡  | j ¡  d| _
d S )Nr[   ZAdvancedz<< Basic Key Binding Entry)r[   TzAdvanced Key Binding Entry >>F)rƒ   ZcgetÚ
startswithr~   r}   r   Zliftr   r€   Z	focus_setrL   rr   rs   )rN   r3   r3   r4   r‚   Ø   s    




zGetKeysDialog.toggle_levelNc             C   s   |   ¡  d S )N)rv   )rN   Úeventr3   r3   r4   r{   è   s    z GetKeysDialog.final_key_selectedc             C   sN   |   ¡  }}| j d¡}|r0t||ƒ}| |¡ | j dd |¡› d¡ d S )Nre   r'   r   r(   )Úget_modifiersrw   r,   r5   rK   rG   rH   Újoin)rN   Úkeylistr1   Ú	final_keyr3   r3   r4   rv   ì   s    

zGetKeysDialog.build_key_stringc             C   s   dd„ | j D ƒ}dd„ |D ƒS )Nc             S   s   g | ]}|  ¡ ‘qS r3   )r,   )Ú.0rP   r3   r3   r4   ú
<listcomp>÷   s    z/GetKeysDialog.get_modifiers.<locals>.<listcomp>c             S   s   g | ]}|r|‘qS r3   r3   )r   Úmodr3   r3   r4   rŽ   ø   s    )rJ   )rN   Zmod_listr3   r3   r4   r‰   õ   s    zGetKeysDialog.get_modifiersc             C   sF   | j  dd¡ | j  dd¡ x| jD ]}| d¡ q$W | j d¡ d S )Nr   rm   Zmovetoz0.0r=   )rw   Zselect_clearr|   rJ   rH   rG   )rN   rP   r3   r3   r4   r~   ú   s
    zGetKeysDialog.clear_key_seqc             C   s\   | j  ¡  ¡ }|s(| j| j| dd d S | js8|  |¡rH|  |¡rH|| _|  	¡  |  
¡  d S )NzNo key specified.)rA   rC   Úmessage)rG   r,   ÚstriprQ   Úkeyerror_titlerL   Úkeys_okÚbind_okrF   Úgrab_releaseÚdestroy)rN   rˆ   Úkeysr3   r3   r4   rq     s    
zGetKeysDialog.okc             C   s   d| _ |  ¡  |  ¡  d S )Nr=   )rF   r•   r–   )rN   rˆ   r3   r3   r4   rB     s    zGetKeysDialog.cancelc             C   s¾   | j  d¡}|  ¡ }| j}dd„ | jD ƒ}| d¡sF| j|| dd nt|sh|tt krh| j|| dd nR|d	gkr˜|tt d
 kr˜d}| j|| |d n"||kr¶d}| j|| |d ndS dS )Nre   c             S   s   g | ]}|D ]}|‘qqS r3   r3   )r   r‹   r0   r3   r3   r4   rŽ     s    z)GetKeysDialog.keys_ok.<locals>.<listcomp>r(   zMissing the final Key)rC   r   zNo modifier key(s) specified.)rA   rC   r   r+   )r   r   zBThe shift modifier by itself may not be used with this key symbol.z'This key combination is already in use.TF)	rw   r,   r‰   r’   rE   ÚendswithrQ   ÚFUNCTION_KEYSÚ	MOVE_KEYS)rN   r—   rŒ   r1   rA   Zkey_sequencesÚmsgr3   r3   r4   r“     s*    



zGetKeysDialog.keys_okc          
   C   sd   y|   |dd„ ¡}W n: tk
rN } z| j| j| d|› d dS d }~X Y nX |  ||¡ dS d S )Nc               S   s   d S )Nr3   r3   r3   r3   r4   Ú<lambda>4  ó    z'GetKeysDialog.bind_ok.<locals>.<lambda>z2The entered key sequence is not accepted.

Error: )rA   rC   r   FT)rz   r   rQ   r’   Zunbind)rN   r—   ZbindingÚerrr3   r3   r4   r”   1  s    zGetKeysDialog.bind_ok)N)N)N)Ú__name__Ú
__module__Ú__qualname__r’   r@   rQ   rM   rI   r‚   r{   rv   r‰   r~   rq   rB   r“   r”   r3   r3   r3   r4   r6   +   s   /f
	

r6   Ú__main__)Úmainz!idlelib.idle_test.test_config_keyr>   F)Ú	verbosityÚexit)Úrun) Ztkinterr   r   r   r   Ztkinter.ttkr   r   r   r	   r
   r   r   r-   r…   r™   Útupler.   ÚdigitsZALPHANUM_KEYSZPUNCTUATION_KEYSZWHITESPACE_KEYSZ	EDIT_KEYSrš   ry   r5   r6   rŸ   Zunittestr£   Zidlelib.idle_test.htestr¦   r3   r3   r3   r4   Ú<module>   s(      