Current File : //usr/local/apps/python3/lib/python3.11/idlelib/__pycache__/config_key.cpython-311.opt-2.pyc
�

�Ke~;��x�	ddlmZmZmZmZddlmZmZmZm	Z	m
Z
mZddlmZddl
mZddlZddlZdZeejejz��Zed��ZdZd	Zd
ZeezezezezezZd�ZGd�d
e��ZGd�de��Zedkr'ddlm Z e ddd���ddl!m"Z"e"e#��dSdS)�)�Toplevel�Listbox�	StringVar�TclError)�Frame�Button�Checkbutton�Entry�Label�	Scrollbar)�
messagebox)�
_setup_dialogN)�F1�F2�F3�F4�F5�F6�F7�F8�F9�F10�F11�F12z~!@#%^&*()_-+={}[]|;:,.<>/?)�Tab�Space�Return)�	BackSpace�Delete�Insert)�Home�End�Page Up�	Page Down�
Left Arrow�Right Arrow�Up Arrow�
Down Arrowc�b�	idd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�id#d$�d%d&�d'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD��dEdEi�}|�||��}dF|vr"|tjvr|���}dG|��S)HNr�space�~�
asciitilde�!�exclam�@�at�#�
numbersign�%�percent�^�asciicircum�&�	ampersand�*�asterisk�(�	parenleft�)�
parenright�_�
underscore�-�minus�+�plus�=�equal�{�	braceleft�}�
braceright�[�bracketleft�]�bracketright�|�bar�;�	semicolon�:�colon�,�comma�.�period�<�less�>�greater�/�slash�?�questionr#�Priorr$�Nextr%�Leftr&�Rightr'�Upr(�Downr�ShiftzKey-)�get�string�ascii_lowercase�upper)�key�	modifiers�mappings   �</usr/local/apps/python3/lib/python3.11/idlelib/config_key.py�
translate_keyrps��9�@�w�w�@���@�!�(�@�,/��@�69�,�@��	�@��}�@�.1�+�@�
�
�@� ��@�.1��@�
��	@�"�'�	@�,/�v�	@�8;�7�	@�

��@�
!��@�@�
�
�
@� #�>�
@�47�u�
@�
��@�!��@�+.�g�@�8;�8�@�
��@��I�@�(+�7�@�58�
�@�
�g�@� +�6�@�
��@�"/�w�@�
�t�@�*�6�@�@�49��@�@�G��+�+�c�3�
�
�C��)����v�'=� =� =��i�i�k�k���#�<�<��c�f��eZdZdZ�fd�Zd�Zd�Zd�Zd�Zdd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Z�xZS)�GetKeysFramezKey Sequence Errorc����	t���|��d|d<d|d<||_||_||_d|_t
|��|_|j�d��|�	��g|_
|jD]@}t
|��}|�d��|j
�|���Ad|_
|���dS)N��borderwidth�sunken�relief�F)�super�__init__�parent�action�current_key_sequences�resultr�
key_string�set�set_modifiers_for_platform�
modifier_varsrm�append�advanced�create_widgets)�selfr|r}r~�modifier�variable�	__class__s      �ror{zGetKeysFrame.__init__1s����	�	������ � � ���]��!��X��������%:��"����#�D�/�/�������B�����'�'�)�)�)������	0�	0�H� ����H��L�L�������%�%�h�/�/�/�/���
��������rqc�(�tj|i|��dS�N)r
�	showerror)r��args�kwargss   ror�zGetKeysFrame.showerrorLs����d�-�f�-�-�-�-�-rqc	���t|d���|_|j�ddddd���t|jd|j�d��	��}|�d
���t|jd|jd
d���}|�ddd���t|��|_|j�dddd���i|_d}t|j
|j��D]g\}}|j�
||��}t|j|j|||d���}|�d|dd
���||j|<|dz
}�ht|jdd���}|�ddddd
���t!|jddd���|_|jjdgt&�R�|j�d |j��|j�dddd!�"��t-|jd#|jj�$��}	|j�|	j�%��|	�dddd!�"��t5|jd&|j�'��|_|j�ddd�(��t|d)���|_|j�ddddd���t|jdd*|j�d+�d,z���}
|
�d
���t=|j|j�-��|_|j�d�.��t|��|_ |j �dddd���t|j dd/���}|�ddd�0��t5||j!d1�2��|_"|j"�ddd3dd�4��|�!��dS)5N�keyseq_basic)�namer�nsew�)�row�column�sticky�padx�padyzNew keys for 'z' :��text�w)�anchor�left�grooveru)�justify�textvariablerxrv�x)�ipadx�ipady�fill�)r�r�r�r�ry)�commandr�r��onvalue�offvalue)r�r�r�r�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.))r�r��)r�r��
columnspanr�r���
�single)�width�height�
selectmode�endz<ButtonRelease-1>�ns)r�r��rowspanr��vertical)�orientr�)�yscrollcommandz
Clear Keys)r�r�)r�r�r��keyseq_advancedzEnter new binding(s) for 'z' :
z2(These bindings will not be checked for validity!))r�)r�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�r��<< Basic Key Binding Entry)r�r��ew)r�r��stickr�r�)#r�frame_keyseq_basic�gridrr}�packr��frame_controls_basic�modifier_checkbuttons�ziprmr��modifier_labelrhr	�build_key_stringr�list_keys_final�insert�AVAILABLE_KEYS�bind�final_key_selectedr�yview�configr�r�
clear_key_seq�button_clear�frame_keyseq_advancedr
�
advanced_keys�frame_help_advanced�toggle_level�button_level)r��basic_title�
basic_keysr�r�r��label�check�
help_basic�scroll_keys_final�advanced_title�
help_advanceds            ror�zGetKeysFrame.create_widgetsPs���"'��>�"B�"B�"B�����$�$��1�V�+,�1�	%�	6�	6�	6��D�3�!B�$�+�!B�!B�!B�D�D�D�������$�$�$��4�2�F�(,���'(�*�*�*�
�	���a�q�s��3�3�3�%*�$�K�K��!��!�&�&�1�Q�v�A�&�N�N�N�&(��"���"%�d�n�d�6H�"I�"I�	�	��H�h��'�+�+�H�h�?�?�E��� 9�(,�(=�E�)1�8�b�R�R�R�E�
�J�J�1�V�!�C�J�@�@�@�38�D�&�x�0��a�K�F�F��4�4�f�!<�=�=�=�
�	���A�a�A�A�c��J�J�J� '�t�'@��.0�X� G� G� G���#���#�E�;�N�;�;�;�;���!�!�"5�t�7N�O�O�O���!�!�a��1�T�!�J�J�J�%�d�&?�-7�.2�.B�.H�J�J�J��	
��#�#�3D�3H�#�I�I�I����1�Q��$��G�G�G�"�4�#<�(4�+/�+=�?�?�?���	
����1�Q�1��=�=�=�&+�4�6G�%H�%H�%H��"��"�'�'�A�a��./�a�	(�	9�	9�	9��t�9�6�$S���$S�$S�$S�%Y�%Z�[�[�[��	���3��'�'�'�"�4�#=�04��A�A�A�������S��)�)�)�$)��;�;�� �� �%�%�!�A�f�1�%�M�M�M��d�6��@�	B�	B�	B�
�	���q��6��:�:�:�#�4��1B�'C�E�E�E�������1�Q�d����K�K�K��������rqc�`�	tjdkr
gd�|_n	gd�|_ddi|_dS)N�darwin)rg�Control�Option�Command)r��Altrgr��Ctrl)�sys�platformrmr��r�s ror�z'GetKeysFrame.set_modifiers_for_platform�sE��	��<�8�#�#�F�F�F�D�N�N�8�8�8�D�N�(�&�1����rqc�8�	|j�d���d��r�|���|j�d���|j���|j���|j�	��d|_
dS|���|j�d���|j���|j���d|_
dS)Nr��Advancedr�r�TzAdvanced Key Binding Entry >>F)
r��cget�
startswithr�r�r��liftr�r��	focus_setr�r�r�r�s ror�zGetKeysFrame.toggle_level�s��1���"�"�6�*�*�5�5�j�A�A�	"���� � � ���$�$�*F�$�G�G�G��&�+�+�-�-�-��$�)�)�+�+�+���(�(�*�*�*� �D�M�M�M���� � � ���$�$�*I�$�J�J�J��#�(�(�*�*�*��%�*�*�,�,�,�!�D�M�M�MrqNc�0�	|���dSr�)r��r��events  ror�zGetKeysFrame.final_key_selected�s��=��������rqc��	|���x}}|j�d��}|r%t||��}|�|��|j�dd�|���d���dS)Nr�rYrAr[)�
get_modifiersr�rhrpr�r�r��join)r��keylistrm�	final_keys    ror�zGetKeysFrame.build_key_string�s���<�"�0�0�2�2�2��)��(�,�,�X�6�6�	��	&�%�i��;�;�I��N�N�9�%�%�%�����4����� 1� 1�4�4�4�5�5�5�5�5rqc�>�	d�|jD��}d�|D��S)Nc�6�g|]}|�����S�)rh)�.0r�s  ro�
<listcomp>z.GetKeysFrame.get_modifiers.<locals>.<listcomp>�s ��F�F�F�x�H�L�L�N�N�F�F�Frqc��g|]}|�|��Sr�r�)r��mods  ror�z.GetKeysFrame.get_modifiers.<locals>.<listcomp>�s��/�/�/��3�/��/�/�/rq)r�)r��mod_lists  ror�zGetKeysFrame.get_modifiers�s/��C�F�F�4�3E�F�F�F��/�/�x�/�/�/�/rqc���	|j�dd��|j�dd��|jD]}|�d���|j�d��dS)Nrr��movetoz0.0ry)r��select_clearr�r�r�r�)r�r�s  ror�zGetKeysFrame.clear_key_seq�sz��-���)�)�!�U�3�3�3���"�"�8�U�3�3�3��*�	�	�H��L�L����������B�����rqc��d|_|j������}|s|�|j|d���dS|js|�|��r|�|��r||_dS)NryzNo key specified.��titler|�message)	rr�rh�stripr��keyerror_titler��keys_ok�bind_ok)r��keyss  ro�okzGetKeysFrame.ok�s��������"�"�$�$�*�*�,�,���	��N�N��!4�T�#6�
�
8�
8�
8��F��M�	�T�\�\�$�/�/�	�T�\�\�$�5G�5G�	��D�K��rqc��	|j�d��}|���}|j}d�|jD��}|�d��s|�||d���n�|s*|ttzvr|�||d���nW|dgkr/|ttzd	zvrd
}|�|||���n!||vrd}|�|||���ndSd
S)Nr�c��g|]	}|D]}|���
Sr�r�)r�r�rls   ror�z(GetKeysFrame.keys_ok.<locals>.<listcomp>�s<��1�1�1��(/�1�1�!$��1�1�1�1rqr[zMissing the final Key)r|rzNo modifier key(s) specified.r�rg)rrzBThe shift modifier by itself may not be used with this key symbol.z'This key combination is already in use.TF)	r�rhr�rr~�endswithr��
FUNCTION_KEYS�	MOVE_KEYS)r�rr�rmr��
key_sequences�msgs       rorzGetKeysFrame.keys_ok�sW��	�
�(�,�,�X�6�6�	��&�&�(�(�	��#��1�1�D�,F�1�1�1�
��}�}�S�!�!�	��N�N�5��#:�
�
<�
<�
<�
<��	��=�9�#<�<�<��N�N��t�#B�
�
D�
D�
D�
D��G�9�$�$��#�i�/�2B�B�C�C�&�C��N�N��t�S�N�A�A�A�A�
�]�
"�
"�;�C��N�N��t�S�N�A�A�A�A��4��urqc���		|�|d���}|�||��dS#t$r+}|�|j|d|�����Yd}~dSd}~wwxYw)Nc��dSr�r�r�rqro�<lambda>z&GetKeysFrame.bind_ok.<locals>.<lambda>s��d�rqTz2The entered key sequence is not accepted.

Error: r�F)r��unbindrr�r)r�r�binding�errs    rorzGetKeysFrame.bind_oks���D�
	��i�i��l�l�3�3�G�
�K�K��g�&�&�&��4���	�	�	��N�N��-�d�-�'*�-�-�
�
/�
/�
/��5�5�5�5�5�����	���s�2�
A'� A"�"A'r�)�__name__�
__module__�__qualname__rr{r�r�r�r�r�r�r�r�rrr�
__classcell__�r�s@rorsrs,s��������*�N������6.�.�.�W�W�W�r2�2�2�"�"�"�  � � � �6�6�6�0�0�0�
 � � �	�	�	����>������rqrsc�l��eZdZddd��fd�
Zed���Zejd���Zd	d�Zd	d�Z�xZ	S)
�
GetKeysWindowF)�_htest�_utestc����	t���|��|���d|d<|�dd���|���|���|���dz|���dzz
z}|���|s/|�	��dz|�
��dzz
ndz}|�d|�d|����|�|��t|||��x|_}	|�d|j��t#|��}
t%|
d	d
|j���|_t%|
dd
|j���|_|j�d
d
dd���|j�d
ddd���|	�ddd���|
�dd���|�|��t3|��|���|s*|���|���dSdS)Nr�rvF)r�r�ru�rC�WM_DELETE_WINDOW�OK�)r�r�r��Cancelr)r�r�r�r�r��topT�both)�side�expandr��bottomr�)r%r�)rzr{�withdraw�	resizable�update_idletasks�winfo_rootx�winfo_width�winfo_reqwidth�winfo_rooty�winfo_height�winfo_reqheight�geometryr�rs�frame�protocol�cancelrrr�	button_ok�
button_cancelr�r��	transientr�grab_set�	deiconify�wait_window)r�r|r�r}r~rrr��yr2�
frame_buttonsr�s           �ror{zGetKeysWindow.__init__sy���		�	������ � � ��
�
������]�����e�5��1�1�1�������
�
�
�
!�
!�� � �"�"�A�%��(;�(;�(=�(=�q�(@�@�B��
�
�
�
!�
!��%�v�"�"�$�$�a�'�$�*>�*>�*@�*@�!�*C�C�C�!$�&��	
�
�
�k�!�k�k�a�k�k�"�"�"��
�
�5����)�$��8M�N�N�N��
�U��
�
�(�$�+�6�6�6��d���
��
�D�&'���:�:�:���#�M��)*�D�K�A�A�A��������!�!�!��<�<�<�����A�a�a�a��@�@�@�
�
�
��d��
�8�8�8�����s��3�3�3����v�����d�����
�
�����	��N�N������������	�	rqc��|jjSr��r2rr�s rorzGetKeysWindow.resultJs
���z� � rqc��||j_dSr�r>)r��values  rorzGetKeysWindow.resultNs��!��
���rqNc��|j���|���|���dSr�)r2r�grab_release�destroyr�s  rorzGetKeysWindow.okRs4���
�
�
�����������������rqc�d�d|_|���|���dS)Nry)rrBrCr�s  ror4zGetKeysWindow.cancelWs,������������������rqr�)
rrrr{�propertyr�setterrr4rrs@rorrs��������!��,�,�,�,�,�,�,�\�!�!��X�!��]�"�"��]�"�����
�������rqr�__main__)�mainz!idlelib.idle_test.test_config_keyruF)�	verbosity�exit)�run)$�tkinterrrrr�tkinter.ttkrrr	r
rrr
�tkinter.simpledialogrrir�r
�tuplerj�digits�
ALPHANUM_KEYS�PUNCTUATION_KEYS�WHITESPACE_KEYS�	EDIT_KEYSrr�rprsrr�unittestrH�idlelib.idle_test.htestrK�
GetKeysDialogr�rqro�<module>rXs����;�:�:�:�:�:�:�:�:�:�:�:�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�������.�.�.�.�.�.�
�
�
�
�
�
�
�
�8�
���f�,�v�}�<�=�=�
��5�6�7�7��,��-�	�
6�	��"2�2�]�B�!�"�$-�.�09�:�����(k�k�k�k�k�5�k�k�k�\@�@�@�@�@�H�@�@�@�F�z����������D�	,���F�F�F�F�+�+�+�+�+�+��C�
�������rq