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

�Ke���L�	ddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddlm.Z.ddl/m0Z1ddlm2Z2ddl3m4Z4m5Z5ddl6m7Z7ddl8m9Z9dd	l:m;Z;dd
l<m=Z=m>Z>ddl?m@Z@ddlAmBZBdd
lCmDZDddlEmFZFddlGmHZHddlImJZJddl?mKZKe5��ZLeBeDeFeHeJfZMGd�de��ZNdaOGd�de!��ZPGd�de!��ZQGd�de!��ZRGd�de!��ZSGd�de!��ZTGd�d e!��ZUGd!�d"e"��ZVGd#�d$��ZWeW��ZXd%ZYd&d'd(d)d*d+�ZZd,�Z[Gd-�d.e!��Z\e]d/kr'dd0l^m_Z_e_d1d2d3�4��dd5l`maZaeaeN��dSdS)6�N)�Toplevel�Listbox�Canvas�	StringVar�
BooleanVar�IntVar�TRUE�FALSE�TOP�BOTTOM�RIGHT�LEFT�SOLID�GROOVE�NONE�BOTH�X�Y�W�E�EW�NS�NSEW�NW�
HORIZONTAL�VERTICAL�ANCHOR�ACTIVE�END�TclError)
�Frame�
LabelFrame�Button�Checkbutton�Entry�Label�
OptionMenu�Notebook�Radiobutton�	Scrollbar�Style�Spinbox�Combobox)�colorchooser)�
messagebox)�idleConf�
ConfigChanges)�
GetKeysWindow)�
DynOptionMenu)�macosx)�SectionName�
HelpSource)�	view_text)�AutoComplete)�CodeContext)�
ParenMatch)�FormatParagraph)�Squeezer)�ScrollableTextFramec�`��eZdZ	dddd�d�Zd�Zd�Zd�Zd�Zd	�Z�fd
�Z	d�Z
d�Zd
�Z�xZ
S)�ConfigDialog�F)�_htest�_utestc��	tj||��||_|ri|_|s|���|�|pd��|���dz}|���|sdndz}|�d|�d|����|�	��|�
tt���|�|��|�
d|j��|jj���t$���|s>|���|���|���dSdS)NzIDLE Preferences����+��height�width�WM_DELETE_WINDOW)r�__init__�parent�
instance_dict�withdraw�title�winfo_rootx�winfo_rooty�geometry�create_widgets�	resizabler
�	transient�protocol�cancel�fontpage�fontlist�	focus_set�tracers�attach�grab_set�wm_deiconify�wait_window)�selfrMrPrArB�x�ys       �>/usr/local/apps/python3/lib/python3.11/idlelib/configdialog.pyrLzConfigDialog.__init__1sx��
	�	��$��'�'�'�����	&�#%�F� ��	��M�M�O�O�O��
�
�5�.�.�/�/�/���� � �2�%����� � �f�$=�B�B�#�>���
�
�k�!�k�k�a�k�k�"�"�"�	
���������e�5��1�1�1����v�����
�
�(�$�+�6�6�6��
��(�(�*�*�*�	�������	��M�M�O�O�O���������������	�	�c���	t|d���x|_}|j�d���t|��x|_}t|��|_t||j��|_t||j��|_
t||j��|_t|��|_t|��|_|�|j
d���|�|jd���|�|jd���|�|jd	���|�|jd
���|�|jd���|���|�t(t*t,���|����t0�
��dS)N�5px��padding�nwes)�stickyz Fonts ��text�
Highlightsz Keys z	 Windows z
 Shell/Ed �
Extensions��side�expand�fill�rq)r!�frame�gridr(�note�ExtPage�extpage�HighPage�highpage�FontPagerY�KeysPage�keyspage�WinPage�winpage�ShedPage�shedpage�add�enable_traversal�packrr	r�create_action_buttonsr)rarurws   rdrTzConfigDialog.create_widgets`s���	�"#�4��7�7�7�7��
�U��
���v��&�&�&�#�E�?�?�*��	�D��t�}�}��� ��t�|�4�4��
� ��t�}�5�5��
� ��t�|�4�4��
��t�}�}��� �����
������Y��/�/�/������\��2�2�2������X��.�.�.������K��0�0�0������\��2�2�2������L��1�1�1��������	�	�s�4�d�	�3�3�3��"�"�$�$�)�)�v�)�6�6�6�6�6rec��	tj��ri}nddi}t|jd���}t|d���}i|_d|jfd|jfd|jfd|jffD]J\}}t|f||td	�|��|j|<|j|�td
����Kt|dd�
���t���|�t���|S)Nri)���rh�Ok�Apply�Cancel�Help)rm�command�	takefocus�)rq�padxr)rI�borderwidthrt)r4�isAquaTkr!ru�buttons�ok�applyrX�helpr#r
r�rrr)ra�padding_args�outer�
buttons_frame�txt�cmds      rdr�z"ConfigDialog.create_action_buttons�s-��	�"�?���	/��L�L�%�v�.�L��d�j�!�,�,�,���e�Q�/�/�/�
����
�4�7�O�
�d�j�!�
�t�{�#�
�T�Y��	!�	6�	6�H�C��
!'�}�!8�3��!&�!8�!8�*6�!8�!8�D�L����L���"�"��1�"�5�5�5�5�
�e�A�1�-�-�-�2�2��2�<�<�<������'�'�'��rec�X�	|���|���dS�N)r��destroy�ras rdr�zConfigDialog.ok�s#��8��
�
�����������rec��	|���t���|j���|���dSr�)�deactivate_current_config�changes�save_allry�save_all_changed_extensions�activate_config_changesr�s rdr�zConfigDialog.apply�sU��9��&�&�(�(�(���������0�0�2�2�2��$�$�&�&�&�&�&rec�b�	t���|���dSr�)r��clearr�r�s rdrXzConfigDialog.cancel�s'��	�
	�
�
�����������rec���|jj�dd��a|���t�����dS)N�1.0�end)rY�font_sample�get�font_sample_text�grab_release�superr�)ra�	__class__s �rdr�zConfigDialog.destroy�sJ����=�4�8�8���F�F��������
���������rec	��	|j�|j���d������}t	|dt
t�|d��z���dS)Nrm)�optionzHelp for IDLE preferencesr@)rP�contents)rw�tab�select�stripr7�help_common�
help_pagesr�)ra�pages  rdr�zConfigDialog.help�s|��	��y�}�}�T�Y�-�-�/�/��}�?�?�E�E�G�G���$�9�&�z�~�~�d�B�'?�'?�?�	A�	A�	A�	A�	A�	Arec�v�	|jj���}|D]}|����dSr�)rMrN�keys�RemoveKeybindings)ra�
win_instances�instances   rdr�z&ConfigDialog.deactivate_current_config�sM��	���1�6�6�8�8�
�%�	)�	)�H��&�&�(�(�(�(�	)�	)rec�z�	|jj���}|D]z}|���|���|���|���|���|����{tD]}|�
���dSr�)rMrNr��ResetColorizer�	ResetFont�set_notabs_indentwidth�ApplyKeybindings�reset_help_menu_entries�update_cursor_blink�reloadables�reload)rar�r��klasss    rdr�z$ConfigDialog.activate_config_changes�s���	�
��1�6�6�8�8�
�%�	+�	+�H��#�#�%�%�%���� � � ��+�+�-�-�-��%�%�'�'�'��,�,�.�.�.��(�(�*�*�*�*� �	�	�E��L�L�N�N�N�N�	�	re)r@)�__name__�
__module__�__qualname__rLrTr�r�r�rXr�r�r�r��
__classcell__�r�s@rdr?r?-s���������-�5��-�-�-�-�-�^$7�$7�$7�L&�&�&�P���
'�'�'���������
A�
A�
A�	)�	)�	)�������rer?u^<ASCII/Latin1>
AaBbCcDdEeFfGgHhIiJj
1234567890#:+=(){}[]
¢£¥§©«®¶½ĞÀÁÂÃÄÅÇÐØß

<IPA,Greek,Cyrillic>
ɐɕɘɞɟɤɫɮɰɷɻʁʃʆʎʞʢʫʭʯ
ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκ
БбДдЖжПпФфЧчЪъЭэѠѤѬӜ

<Hebrew, Arabic>
אבגדהוזחטיךכלםמןנסעף
ابجدهوزحطي٠١٢٣٤٥٦٧٨٩

<Devanagari, Tamil>
०१२३४५६७८९अआइईउऊएऐओऔ
௦௧௨௩௪௫௬௭௮௯அஇஉஎ

<East Asian>
〇一二三四五六七八九
汉字漢字人木火土金水
가냐더려모뵤수유즈치
あいうえおアイウエオ
c�>��eZdZ�fd�Zd�Zd�Zd�Zd�Zdd�Z�xZ	S)	r|c���t���|��|j|_|���|���dSr�)r�rL�highlight_sample�create_page_font�
load_font_cfg)ra�masterr{r�s   �rdrLzFontPage.__init__"sP���
������ � � � (� 9����������������rec�8�	t�t|��|j��|_t�t|��|j��|_t�t
|��|j��|_t|dtd���}t|dtd���}t|��}t|��}t|td���}t|ddt�	��|_|j�d
|j��|j�d|j��|j�d|j��t%|��}|�|jj�
��|j�|j���t|d���}t-||jd��|_t1||jddd���|_t5|��}|j|_|j�t:dd���|j�t>t@��|�!dd���|�"dd���|�#dddd���|�#dddddd���|�$tJddtL���|�$tJddtL���|�$tJtN���|j�$ttPtL���|�$ttR���|�$ttN���|j�$ttN���|j�$ttNd �!��|�$tPtT�"��dS)#Nr�z Shell/Editor Font �r��reliefrmz Font Sample (Editable) zFont Face :)�justifyrm�T�rIr��exportselection�<ButtonRelease-1>z<KeyRelease-Up>z<KeyRelease-Down>�r�)�yscrollcommandzSize :rl�r�Bold)�variable�onvalue�offvaluerm)�wraprJrI��weightr�)�row�columnr��padyr��nsew)r�r��rowspanr�r�rk�rqr�r�rs�rq�anchorrp)rqrsrD�rqr�r�)rrrs)+r\r�r�var_changed_font�	font_name�	font_sizer�	font_boldr"rr!r&rrr
rZ�bind�on_fontlist_selectr*�config�yview�setr3�sizelistr$�bold_toggler=rmr�r�insertrr��columnconfigure�rowconfigurervr�rrrr	rr)	ra�
frame_font�frame_sample�frame_font_name�frame_font_param�font_name_title�scroll_font�font_size_title�font_sample_frames	         rdr�zFontPage.create_page_font(s���$	�J!���Y�t�_�_�d�6K�L�L��� ���Y�t�_�_�d�6K�L�L��� ���Z��%5�%5�t�7L�M�M��� ��!�F�%:�<�<�<�
�!�$�A�f�'A�C�C�C�� �
�+�+�� ��,�,�����M�C�C�C�����*.��G�G�G��
��
���.��0G�H�H�H��
���,�d�.E�F�F�F��
���.��0G�H�H�H���0�0�����4�=�#6��7�7�7��
���K�O��<�<�<�� 0�x�@�@�@��%�&6����M�M��
�&� �4�>��A�F�4�4�4���0��=�=��,�1�������T��1��=�=�=������%5�6�6�6�	
���Q�q��)�)�)����!�A��&�&�&����A�a�a�a��8�8�8����a��1�1�1�!'�	�	)�	)�	)�	���#�A�A�A��>�>�>����3�Q�Q�Q��?�?�?����#�a��0�0�0��
����T���:�:�:����d���+�+�+����$�q��1�1�1��
����Q��/�/�/�����4����;�;�;����d���6�6�6�6�6rec�2�	tj|dd��}|d���}|d}|ddk}tt	tj|������}|D]"}|j�t|���#|j
�|��d�|D��}	|�|��}|j�|��|j�
|��|j�|��|j�|��n#t $rYnwxYw|j�d|��|j�|��|���dS)	N�main�EditorWindowrr�r��boldc�6�g|]}|�����S�)�lower)�.0�ss  rd�
<listcomp>z*FontPage.load_font_cfg.<locals>.<listcomp>�s ��-�-�-�!�A�G�G�I�I�-�-�-re)�7�8�9�10�11�12�13�14�16�18�20�22�25�29�34�40)r0�GetFontr
�sortedr��tkfont�familiesrZr�rr��index�see�
select_set�
select_anchor�activate�
ValueErrorr��SetMenur��set_samples)	ra�configured_fontr�r�r��fonts�font�lc_fonts�current_font_indexs	         rdr�zFontPage.load_font_cfg�s���	�#�*�4���H�H��#�A�&�,�,�.�.�	�#�A�&�	�$�Q�'��/�	��s�6�?�4�0�0�1�1�2�2���	,�	,�D��M� � ��d�+�+�+�+�����9�%�%�%�-�-�u�-�-�-��	�!)���	�!:�!:���M���0�1�1�1��M�$�$�%7�8�8�8��M�'�'�(:�;�;�;��M�"�"�#5�6�6�6�6���	�	�	��D�	����	
�
���O�'�	)�	)�	)�	
����9�%�%�%��������s�A=D>�>
E�
Ec�t�	|j���}t�ddd|��|j���}t�ddd|��|j���}t�ddd|��|���dS)Nrr	r/z	font-sizez	font-bold)r�r�r��
add_optionr�r�r,�ra�params�values   rdr�zFontPage.var_changed_font�s���	���"�"�$�$�����6�>�6�5�A�A�A���"�"�$�$�����6�>�;��F�F�F���"�"�$�$�����6�>�;��F�F�F��������rec���	|j�|jjdkrtnt
��}|j�|�����dS)N�
KeyRelease)	rZr��type�namerrr�r�r
)ra�eventr/s   rdr�zFontPage.on_fontlist_select�s[��	�
�}� � ��*�/�\�9�9���v�G�G������4�:�:�<�<�(�(�(�(�(reNc��	|j���}|j���rtjntj}||j���|f}||jd<||jd<dS)Nr/)	r�r�r�r#�BOLD�NORMALr�r�r�)rar;r��font_weight�new_fonts     rdr,zFontPage.set_samples�sv��	��N�&�&�(�(�	�%)�^�%7�%7�%9�%9�L�f�k�k�v�}���t�~�1�1�3�3�[�A��#+���� �(0���f�%�%�%rer�)
r�r�r�rLr�r�r�r�r,r�r�s@rdr|r| s�������������W7�W7�W7�r � � �D
�
�
�)�)�)�1�1�1�1�1�1�1�1rer|c���eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)rzc���t���|��||_|���|_t|��|_|���|���dSr�)	r�rLry�winfo_toplevel�cdr+�style�create_page_highlight�load_theme_cfg�rar�ryr�s   �rdrLzHighPage.__init__�sl���
������ � � �����'�'�)�)����6�]�]��
��"�"�$�$�$��������rec
���	idd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd ��_t�t����j���_t�t����j���_t����_	t�t����j
���_t�t����j���_
t�t����j���_t!�d!t"d"�#��}t!�d!t"d$�#��}t%|t&d%�&��}|jx}�_|�d'd(d%d%t.d)t0�*��|�d+d,���|�d-d.���d/}|D]!\}}|�t6||���"t9|�d0t6�������}t?d%|��D]=}	|�|	�d1�|	t9tA|�����d2��d3�d4���>�jD]1}
|
f�fd5�	}|�!�j|
d)d6|���2d7|d8<�j"�d9d%d:�;��tG|d9�<���_$tG|��}tK�j$d=�j&�>���_'tQ�j$�jdd)�?���_)tU|�j	d%d@�j+�A���_,tU|�j	d)dB�j+�A���_-�j	�.d%��tK|dC�j/�>���_0tc|dD�E��}
tU|�j
d%�j2dF�G���_3tU|�j
d)�j2dH�G���_4tQ|�jdd�I���_5tQ|�jdd�I���_6tK|dJ�j7�>���_8tc|d!�K���_9|�:tvdLdLtxtz�M��|�:t|dLdLt~�N���j$�:t|dLdLt~�N��|�:t|dLd)�O��|�:t|dLdLtxtz�M���j'�:t|txt~dPdQ�R���j)�:t|txt~dPdS�R���j,�:tvt��T���j-�:t�t��T���j0�:t�t~dLdL�U��|
�:t|t�dLdL�V���j3�:t|t�dL�W���j4�:t|t�dLd!�V���j5�:t|t~dLdL�U���j6�:t|t~t�dLdL�X���j8�:t|t~dLdL�U���j9�:t|t~dL�Y��dS)ZNzNormal Code or Text)�normal�00zCode Context)�context�01zPython Keywords)�keyword�02zPython Definitions)�
definition�03zPython Builtins)�builtin�04zPython Comments)�comment�05zPython Strings)�string�06z
Selected Text)�hilite�07z
Found Text)�hit�08�Cursor)�cursor�09zEditor Breakpoint)�breakrzShell Prompt)�consolerz
Error Text)�errorrzShell User Output)�stdoutrzShell User Exception)�stderrrzLine Number)�
linenumberrr�z Custom Highlighting r�z Highlighting Theme r�)r�r�)�courier�r@�hand2r)r/r]rJrIr��highlightthicknessr�z<Double-Button-1>c��dS�Nr_r��es rd�<lambda>z0HighPage.create_page_highlight.<locals>.<lambda>us���rez<B1-Motion>c��dSrjrrks rdrmz0HighPage.create_page_highlight.<locals>.<lambda>vs��7�re)")z# Click selects item.rT��
rJ)zcode context sectionrLro)z| cursorr]ro)�defrN)� rJ)�funcrP)z(param):
  rJ)z"Return None."rV)z

  var0 = rJ)z'string'rV)z

  var1 = rJ)z
'selected'rX)z

  var2 = rJ)z'found'rZ)z

  var3 = rJ)�listrR)�(rJ)�NonerN)z)
rJ)z  breakpoint("line")r_)z

rJ�z>>>r`)z	 3.14**2
rJ)z9.8596rbrorw)z pri rJ)�nra)zt(
rJ)�SyntaxErrorrcror�z.0�drrrdc�<���j�|��dSr�)�highlight_targetr�)r;�elemras  �rd�temz+HighPage.create_page_highlight.<locals>.tem�s ����%�)�)�$�/�/�/�/�/rez<ButtonPress-1>�disabled�state�frame_color_set.TFrame�solid)r�r�)rEzChoose Color for :�rmr�)rh�
Foreground)r�r6rmr��
BackgroundzSave as New Custom Themez	Select : rlza Built-in Theme�r�r6r�rmza Custom Themer�zDelete Custom Theme�r�r��rqr�r�rrrsr��rqr�r���)rqrrrsr�r�r�r��rqrsr�r��rqr�r�r�r�)rqrsr�r�r�)rqrsr�)D�theme_elementsr\r�r�var_changed_builtin_name�builtin_name�var_changed_custom_name�custom_namer�fg_bg_toggle�var_changed_color�color�var_changed_theme_source�theme_source�var_changed_highlight_targetr|r"rr=rrmr��	configurer
rr�r�r�lenr��
splitlines�range�str�tag_bindrEr!�frame_color_setr#�	get_color�button_set_colorr3�
targetlistr)�set_color_sample_binding�fg_on�bg_onr��save_as_new_theme�button_save_customr&�set_theme_type�builtin_theme_on�custom_theme_on�builtinlist�
customlist�
delete_custom�button_delete_custom�
theme_messager�rr	rrrrr
rr)ra�frame_custom�frame_theme�sample_framerm�string_tagsrV�tag�n_lines�lineno�elementr~�frame_fg_bg_toggle�theme_type_titles`             rdrFzHighPage.create_page_highlight�s����s	�h�!�#3���-��
�0��
!�"6�	�

�0��
�0�
�
�.��
�-��
�-��
�&��
 ���
�-��
�/��
 �!1��
#�$4�� 
�/�!���$$�K�K��$����!>�@�@���"�;�;��$����!=�?�?���&�t�,�,����[�[��$����!7�9�9��
�#�K�K��4� � �$�"?�A�A��� '����$����!B�!D�!D���
"�$�A�f�'>�@�@�@�� ��1�V�&<�>�>�>��+��U��;�;�;��'3�'8�8��t�$����(���!��A�D�	�	B�	B�	B�	
�	�	�%�'8�'8�9�9�9��	�	�-�!2�!2�3�3�3�9��$'�	*�	*�K�F�C��K�K��V�S�)�)�)�)��d�h�h�u�c�*�*�5�5�7�7�8�8���A�w�'�'�	&�	&�F��K�K�6�
�
�
�!�3�s�7�|�|�#4�#4�9�9�9�9�9�9�$�
&�
&�
&�
&��*�	M�	M�G� '�
0�
0�
0�
0�
0�
0�
�M�M��'��0��3�5F��
M�
M�
M�
M�"��W�
��
���5�1�$+�	�	-�	-�	-�$�\�9Q�R�R�R���"�<�0�0�� &��$�+?���!(�!(�!(���(��$�d�&;�T�#$�&�&�&���!�"�T�->�a�!�4�+H�J�J�J��
�!�"�T�->�a�!�4�+H�J�J�J��
�	
����a� � � �"(��#=��.�#0�#0�#0���!��;�?�?�?�� +��d�&7�q��+�2D�!F�!F�!F��� +��d�&7�q��+�2B� D� D� D���)��T�.��d�D�D�D���'��T�-�t�T�C�C�C���$*��"7��*�%,�%,�%,��!�#�;�A�>�>�>���	���t�!�!�D�t��L�L�L����c�����:�:�:���!�!�s����!�C�C�C����S�q�q��9�9�9�����q�q��D�	�	B�	B�	B���"�"��D�q�q�q�"�Q�Q�Q�����#�d�����K�K�K��
���T�!��,�,�,��
���U�1��-�-�-���$�$�&�q�q�q�$�I�I�I����3�q�q�q��A�A�A���"�"��A�A�"�>�>�>���!�!�s�1�1�1�!�E�E�E�����3�Q�Q�Q��?�?�?�����#�A�a�a�a��H�H�H��!�&�&�C�a�a�a�&�H�H�H�����S�q�q��9�9�9�9�9rec	���	�j�tjddddd�����tj��}�j���r�tjdd��}|����j�	||��tjdd��}|���|s5�j
�d	���j�d
��n��j
�	||d��n�tjdd��}|����j
�	||��tjdd��}|����j�	||d������t�j�����}|��fd��
���j�	||d����������dS)Nr�Theme�default�boolr��r9r��	highlight�user�r�- no custom themes -rc�*���j|dS)Nr�)r�)rbras �rdrmz)HighPage.load_theme_cfg.<locals>.<lambda>s���t�':�1�'=�a�'@�re)�key)r�r�r0�	GetOption�CurrentThemer��GetSectionList�sortr�r+r�r�r�r�r�rtr�r�r��paint_theme_sample�set_highlight_target)ra�current_option�	item_list�theme_namess`   rdrGzHighPage.load_theme_cfg�s6���	�(	
����h�0������D�D�D�	E�	E�	E�"�.�0�0���� � �"�"�	>� �/�	�;�G�G�I��N�N������$�$�Y��?�?�?� �/���D�D�I��N�N�����
A��$�*�*�=�9�9�9�� �$�$�%;�<�<�<�<���'�'�	�9�Q�<�@�@�@�@� �/���D�D�I��N�N�����O�#�#�I�~�>�>�>� �/�	�;�G�G�I��N�N������$�$�Y�	�!��=�=�=��������4�.�3�3�5�5�6�6�����@�@�@�@��A�A�A������[��^�<�<�<����!�!�!��!�!�#�#�#�#�#rec��	d}|j���}||vrctjddd��|vr#t�ddd|d��t�ddd|��d|jd<nDt�ddd|��t�dddd	��d	|jd<|���dS)
N)zIDLE ClassiczIDLE Newrr�r:r�name2zNew theme, see Helprmr@)r�r�r0r�r�r3r�r�)rar5�
old_themesr6s    rdr�z!HighPage.var_changed_builtin_names���	�
2�
��!�%�%�'�'���
�"�"��!�&�'�6�:�:�*�L�L��"�"�6�7�F�J�q�M�J�J�J����v�w���?�?�?�)>�D��v�&�&����v�w���>�>�>����v�w���<�<�<�)+�D��v�&����!�!�!�!�!rec��	|j���}|dkr3t�ddd|��|���dSdS)Nr�rr�r:)r�r�r�r3r�r4s   rdr�z HighPage.var_changed_custom_namesc��	�
� �$�$�&�&���*�*�*����v�w���>�>�>��#�#�%�%�%�%�%�+�*rec���	|j���}t�ddd|��|r|���dS|���dS)Nrr�r�)r�r�r�r3r�r�r4s   rdr�z!HighPage.var_changed_theme_source$so��	�
�!�%�%�'�'�����6�7�I�u�=�=�=��	+��)�)�+�+�+�+�+��(�(�*�*�*�*�*rec�0�	|���dSr�)�on_new_color_set�rar5s  rdr�zHighPage.var_changed_color1s��)��������rec�0�	|���dSr�)r�r�s  rdr�z%HighPage.var_changed_highlight_target5s��?��!�!�#�#�#�#�#rec�*�	|j���r0d|jd<d|jd<|j�d��dSd|jd<|j�d��d|jd<|j�d��dS�NrJr�rr��z	!disabled)r�r�r�r�r�r�r�r�s rdr�zHighPage.set_theme_type9s���	�"�� � �"�"�	<�(0�D��W�%�'1�D�O�G�$��%�+�+�M�:�:�:�:�:�(2�D��W�%�� �&�&�~�6�6�6�'/�D�O�G�$��%�+�+�N�;�;�;�;�;rec���	|j���}|j�|jdd��}tj|d|z|���\}}|r�||kr�|j���rLd}|�|��}|sdS|�	|��|j
�|��dS|j
�|��dSdSdS)NrE�
backgroundzPick new color for : )rMrP�initialcolorz_Your changes will be saved as a new Custom Theme. Enter a name for your new Custom Theme below.)r|r�rE�lookupr�r.�askcolorr��get_new_theme_name�
create_newr�r�)ra�target�
prev_color�	rgbTuplet�color_string�message�	new_themes       rdr�zHighPage.get_colorUs��	�"�&�*�*�,�,���Z�&�&�t�';�G�'D�'3�5�5�
�".�"7��#:�6�#A�'�#)�#)�#)��	�<��	-�\�Z�7�7�� �$�$�&�&�

-�K�� �3�3�G�<�<�	� �1��F��O�O�I�.�.�.��J�N�N�<�0�0�0�0�0��
���|�,�,�,�,�,�	-�	-�7�7rec��	|j���}|j�d|���|j���rdnd}|j|j���d}|jj|fi||i��|j	���}|dz|z}t�d|||��dS)Nr��r��
foregroundr�r�-r�)r�r�rEr�r�r�r|r��
tag_configr�r�r3)ra�	new_color�plane�sample_element�theme�
theme_elements      rdr�zHighPage.on_new_color_set{s���>��J�N�N�$�$�	��
���5�)��L�L�L� $� 1� 5� 5� 7� 7�I���\���,�T�-B�-F�-F�-H�-H�I�!�L��(���(��N�N�E�9�;M�N�N�N�� �$�$�&�&��&��,�u�4�
����;��}�i�H�H�H�H�Hrec��	tjdd��tjdd��z}t|d||��j}|S)Nr�r�r�zNew Custom Theme�r0r�r5�result)rar��
used_namesr�s    rdr�zHighPage.get_new_theme_name�sR��4��-�f�k�B�B��'�	�;�?�?�@�
���(�'�:�?�?�?E�	��rec�d�	|�d��}|r|�|��dSdS)NzNew Theme Name:)r�r�)ra�new_theme_names  rdr�zHighPage.save_as_new_theme�sG��	��0�0�1B�C�C���	,��O�O�N�+�+�+�+�+�	,�	,rec�F�	|j���rd}|j���}nd}|j���}t	j||��}|tdvr#td|}|D]
}||||<�|�||��t	jdd��}|�	��|j
�||��|j�d��|�
��dS)Nr�r�r�r)r�r�r�r�r0�GetThemeDictr��save_newr�r�r�r+r�r�)rar��
theme_type�
theme_namer��
theme_changesr��custom_theme_lists        rdr�zHighPage.create_new�s'��	�$�� � �"�"�	0�"�J��*�.�.�0�0�J�J��J��)�-�-�/�/�J��)�*�j�A�A�	����-�-�-�#�K�0��<�M�(�
<�
<��%2�7�%;�	�'�"�"��
�
�n�i�0�0�0�$�3�F�K�H�H����� � � ����� 1�>�B�B�B�����a� � � ��������rec��	|j���dkrO|j�d��|j�d��|j�d��nN|j�d��|j�d��|j�d��|���dS)Nr\r�r�r�)r|r�r�r�r�r�r��set_color_sampler�s rdr�zHighPage.set_highlight_target�s���	�"� �$�$�&�&�(�2�2��J���]�+�+�+��J���]�+�+�+���!�!�!�$�$�$�$��J���^�,�,�,��J���^�,�,�,���!�!�!�$�$�$��������rec�0�	|���dSr�)r�)ra�argss  rdr�z!HighPage.set_color_sample_binding�s!��	�
	
�������rec��	|j|j���d}|j���rdnd}|j�||��}|j�d|���dS)Nrr�r�r�r�)r�r|r�r�r��tag_cgetrEr�)rar�r�r�s    rdr�zHighPage.set_color_sample�s���
	��!�$�"7�";�";�"=�"=�>�q�A�� $� 1� 5� 5� 7� 7�I���\���%�.�.�s�E�:�:���
���5�%��H�H�H�H�Hrec�2�	|j���r|j���}n|j���}|jD]�}|j|d}tj||��}|dkrtj|d��d|d<|tdvr=td|}|dz|vr||dz|d<|dz|vr||dz|d<|jj	|fi|����|�
��dS)	Nrr]rJr�r�z-foregroundr�z-background)r�r�r�r�r�r0�GetHighlightr�r�r�r�)rar��
element_titler��colors�
theme_dicts      rdr�zHighPage.paint_theme_sample�sS��	�&�� � �"�"�	+��%�)�)�+�+�E�E��$�(�(�*�*�E�!�0�
	@�
	@�M��)�-�8��;�G��*�5�'�:�:�F��(�"�"�'/�'<��x�()�()�)5�(7��|�$����,�,�,�$�[�1�%�8�
��]�*�j�8�8�+5�g�
�6M�+N�F�<�(��]�*�j�8�8�+5�g�
�6M�+N�F�<�(�,�D�!�,�W�?�?��?�?�?�?��������rec��	tjd�|��|D]1}||}tjd�|||���2dS)Nr��r0�userCfg�
AddSection�	SetOption)rar�r�r�r6s     rdr�zHighPage.save_newsn��	�
	���%�0�0��<�<�<��	P�	P�G��'�N�E���[�)�3�3�J���O�O�O�O�	P�	Prec�$�tj|i|��Sr��r/�askyesno�rar�kwargss   rdrzHighPage.askyesno*����"�D�3�F�3�3�3rec��	|j���}d}|�d||z|���sdS|j���t
�d|��tjdd��}|�	��|s6|j
�d��|j�
|d��n!|j�
||d��|j�tjd	�d
d����|j�tjd	�d
d����t
���|j���|j���|���dS)
Nz.Are you sure you wish to delete the theme %r ?zDelete Theme�rMr�r�r�r�rrr�r�r:)r�r�rrDr�r��delete_sectionr0r�r�r�r�r�r+r�r��
defaultCfg�Getr�r�ryr�r�r�)rar��delmsgr�s    rdr�zHighPage.delete_custom.s���	�*�%�)�)�+�+�
�A���}�}���*�!4�T��C�C�	��F���)�)�+�+�+����{�J�7�7�7��+�F�K�@�@�	��������	=�� �&�&�}�5�5�5��O�#�#�I�/E�F�F�F�F��O�#�#�I�y��|�<�<�<�����h�1�&�9�=�=�g�y�Q�Q�R�R�R�����h�1�&�9�=�=�g�v�N�N�O�O�O���������0�0�2�2�2���'�'�)�)�)��������re)r�r�r�rLrFrGr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�s@rdrzrz�su������������|:�|:�|:�|2$�2$�2$�h"�"�"�&	&�	&�	&�+�+�+� � � �$�$�$�<�<�<�8$-�$-�$-�L	I�	I�	I����	,�	,�	,�&�&�&�P � � �8 � � �I�I�I�$& �& �& �P	P�	P�	P�4�4�4�-�-�-�-�-�-�-rerzc���eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zed���Zd�Zd�Z�xZS)r}c����t���|��||_|���|_|���|���dSr�)r�rLryrCrD�create_page_keys�load_key_cfgrHs   �rdrLzKeysPage.__init__`s_���
������ � � �����'�'�)�)����������������rec�"��	t�t|��|j��|_t�t|��|j��|_t�t|��|j��|_	t�t|��|j
��|_t|dtd���}t|dtd����t|��}t|d���}t!|��}t!|t"���}t%|t&t&���|_|j�d	|j��|jj|d
<|jj|d
<|j|jd<|j|jd<t5|d
|jd���|_�fd�t;d��D��}t=|d|j	d|jd���|_ t=|d|j	d|jd���|_!tE|d|jdd���|_#tE|d|jdd���|_$t5|dd|j%���|_&t5|dd|j'���|_(t|dd���|_)|�*tVddtXtZ�����*tVddtZ���|j�*tVt\dd���|�*t^ddtXtZ���|�0dd���|�1dd���|�2dddtf� ��|j�2ddth�!��|�2ddtj�!��|�2ddtl�!��|j �2ddtftjz�!��|j!�2ddtftjz�!��|j#�2ddth�!��|j$�2ddth�!��|j)�2ddthdd�"��|j&�*t^t\d#d�$��|j(�*t^t\d#d�$��|d�*tntZd#�%��|d�*tnt\d#d�&��dS)'Nr�z Custom Key Bindings r�z	 Key Set zAction - Key(s)rl��orient)r�r�r�r�r��xscrollcommandzGet New Keys for Selectionr)rmr�r�c�4��g|]}t�dd�����S)r�r)rir�)r!)r�i�frame_key_setss  �rdrz-KeysPage.create_page_keys.<locals>.<listcomp>�s8���%�%�%�����q�A�A�A�%�%�%rerr�zUse a Built-in Key Setr�zUse a Custom Key Setr�zDelete Custom Key Setr�zSave as New Custom Key Setr�r�r�r�r�r�)r�r��
columnspanrk�r�r�rk)r�r�rkr�r�T)rqrsrrr��rqrsrr)rqrsrrr�)8r\r�rr�r�r�r�r�var_changed_keyset_source�
keyset_source�var_changed_keybinding�
keybindingr"rr!r&r*rrr
�bindingslistr��on_bindingslist_selectr��xviewr�r#�get_new_keys�button_new_keysr�r)�
set_keys_type�builtin_keyset_on�custom_keyset_onr3r�r��delete_custom_keys�button_delete_custom_keys�save_as_new_key_set�button_save_custom_keys�keys_messager�rr	rrrr�r�rvrrrrr)rar��frame_target�target_title�scroll_target_y�scroll_target_x�framesr$s       @rdrzKeysPage.create_page_keysgsd���P	�b$�K�K��$����!>�@�@���"�;�;��$����!=�?�?���$�[�[��4� � �$�"@�B�B���!�+�+��$����!<�>�>���
"��!�F�,�.�.�.��$��!�F��F�F�F���\�*�*���\�0A�B�B�B��#�L�1�1��#�L��D�D�D��#���u�F�F�F�������2�#�:�	<�	<�	<�%)�%6�%<��	�"�%)�%6�%<��	�"�.=�.A���*�+�.=�.A���*�+�%��#?��)�� =� =� =���%�%�%�%� ��8�8�%�%�%��!,��q�	�D�$6�a��*�1I�"K�"K�"K���!,��q�	�D�$6�a��*�1G�!I�!I�!I���)��q�	�4�,�d�D�B�B�B���'��q�	�4�+�T�4�A�A�A���)/��q�	� 7��/�*1�*1�*1��&�(.��q�	� <��0�(2�(2�(2��$�"�&��)��;�;�;���	���v�A�A�d���N�N�N�����a�a�d��C�C�C���!�!�v�A�A�A�!�F�F�F����t�!�!�D�t��L�L�L��$�$�Q�q�$�1�1�1��!�!�!�A�!�.�.�.����a��a���B�B�B�����1�Q�t��<�<�<�����1�R��8�8�8�����1�R��8�8�8���#�#��!�A�b�D�#�A�A�A���"�"�q��1�R�4�"�@�@�@�����!�A�d��;�;�;������1�T��:�:�:�����1�Q�t�!�!��L�L�L��&�+�+��A�d�QR�+�S�S�S��$�)�)�t�!�D�q�)�Q�Q�Q��q�	���C�d�4��8�8�8��q�	���C�a��1��=�=�=�=�=rec	��	|j�tjddddd�����tj��}|j���r�tjdd��}|���|j�	||��tjdd��}|���|s5|j
�d	��|j�d
��n�|j
�	||d��n�tjdd��}|���|j
�	||��tjdd��}|���|j�	|tj����|���tj��}|�|��dS)Nr�Keysr�r�r�r�r�r�r��- no custom keys -r)r)r�r0r��CurrentKeysr�r�r�r�r+r3r�r�r��default_keysr1�load_keys_list)rar�r��keyset_names    rdrzKeysPage.load_key_cfgs���I�����x�1���	��� C� C� C�	D�	D�	D�"�-�/�/����!�!�#�#�	I� �/�	�6�B�B�I��N�N������$�$�Y��?�?�?� �/���?�?�I��N�N�����
A��%�+�+�M�:�:�:�� �$�$�%9�:�:�:�:���'�'�	�9�Q�<�@�@�@�@� �/���?�?�I��N�N�����O�#�#�I�~�>�>�>� �/�	�6�B�B�I��N�N������$�$�Y��0E�0G�0G�H�H�H��������*�,�,�����K�(�(�(�(�(rec��	d}|j���}||vrctjddd��|vr#t�ddd|d��t�ddd|��d|jd<nDt�ddd|��t�dddd	��d	|jd<|�|��dS)
N)zIDLE Classic WindowszIDLE Classic UnixzIDLE Classic MaczIDLE Classic OSXrr?r:rr�zNew key set, see Helprmr@)r�r�r0r�r�r3r8rC)rar5�old_keysr6s    rdr�z!KeysPage.var_changed_builtin_name&s���/�
���!�%�%�'�'���� � ��!�&�&�&�9�9��I�I��"�"�6�6�6�8�A�;�G�G�G����v�v�w��>�>�>�(?�D��f�%�%����v�v�v�u�=�=�=����v�v�w��;�;�;�(*�D��f�%����E�"�"�"�"�"rec��	|j���}|dkr4t�ddd|��|�|��dSdS)Nr@rr?r:)r�r�r�r3rCr4s   rdr�z KeysPage.var_changed_custom_name:sa��.�� �$�$�&�&���(�(�(����v�v�v�u�=�=�=�����&�&�&�&�&�)�(rec���	|j���}t�ddd|��|r|���dS|���dS)Nrr?r�)r)r�r�r3r�r�r4s   rdr(z"KeysPage.var_changed_keyset_sourceAsk��D��"�&�&�(�(�����6�6�9�e�<�<�<��	+��)�)�+�+�+�+�+��(�(�*�*�*�*�*rec��	|j���}|j���}|j�t�����d}t
j|��rt�	d|||��dSt
j
|��}|dz}t�	d|||��dS)Nrr��_cfgBindings�
extensions)r+r�r�r,r�splitr0�
IsCoreBindingr�r3�GetExtnNameForEvent)rar5r6�key_setr;�ext_name�ext_keybind_sections       rdr*zKeysPage.var_changed_keybindingJs���'���#�#�%�%���"�&�&�(�(���!�%�%�f�-�-�3�3�5�5�a�8���!�%�(�(�	P����v�w��u�=�=�=�=�=��3�E�:�:�H�"*�^�";�����|�-@�%��O�O�O�O�Orec�*�	|j���r0d|jd<d|jd<|j�d��dSd|jd<|j�d��d|jd<|j�d��dSr�)r)r�r�r�r5r�r3r�s rdr1zKeysPage.set_keys_typeVs���J���!�!�#�#�	A�(0�D��W�%�'1�D�O�G�$��*�0�0��?�?�?�?�?�(2�D��W�%��!�'�'��7�7�7�'/�D�O�G�$��*�0�0��@�@�@�@�@rec���	|j�t��}|j�|��}|���d}|j���r|j���}n|j���}tj	��}|tdvr5td|}|D]}||���||<� t|�����}t|d||��j}	|	�r|j���rdd}
|�|
��}|s6|j�|��|j�|��dS|�|��|j�|��|j�||dz|	z��|j�|��|j�|��|j�|	��dS|j�|��|j�|��dS)Nrr�zGet New KeyszcYour changes will be saved as a new Custom Key Set. Enter a name for your new Custom Key Set below.� - )r,r%rr�rLr)r�r�r0�GetCurrentKeySetr�rt�valuesr2r��get_new_keys_namer'r(�create_new_key_set�deleter�r+r�)ra�
list_index�binding�	bind_name�current_key_set_name�current_bindings�key_set_changesr;�current_key_sequences�new_keysr��
new_keysets            rdr/zKeysPage.get_new_keysbsa��	��&�,�,�V�4�4�
��#�'�'�
�3�3���M�M�O�O�A�&�	���!�!�#�#�	:�#'�#4�#8�#8�#:�#:� � �#'�#3�#7�#7�#9�#9� �#�4�6�6���7�6�?�2�2�%�f�o�.B�C�O�(�
I�
I��*9�%�*@�*F�*F�*H�*H� ��'�'� $�%5�%<�%<�%>�%>� ?� ?�� ��~�y�%�'�'�'-�	��	8��!�%�%�'�'�	
8�N��!�3�3�G�<�<�
�!�8��%�0�0��<�<�<��%�3�3�J�?�?�?��F��+�+�J�7�7�7���$�$�Z�0�0�0���$�$�Z��5���1I�J�J�J���(�(��4�4�4���+�+�J�7�7�7��O����)�)�)�)�)���(�(��4�4�4���+�+�J�7�7�7�7�7rec��	tjdd��tjdd��z}t|d||��j}|S)Nr�r�r�zNew Custom Key Setr�)rar�r�rbs    rdrWzKeysPage.get_new_keys_name�sS��3��-�f�f�=�=��'�	�6�:�:�;�
� ��*�G�Z�A�A�AG�	��rec�d�	|�d��}|r|�|��dSdS)NzNew Key Set Name:)rWrX)ra�
new_keys_names  rdr6zKeysPage.save_as_new_key_set�sE��J��.�.�/B�C�C�
��	3��#�#�M�2�2�2�2�2�	3�	3rec�<�	|j�d��dS)Nr�)r0r��rar;s  rdr-zKeysPage.on_bindingslist_select�s"��@���"�"�>�2�2�2�2�2rec��	|j���r|j���}n|j���}t	j|��}i}|D],}|dd�}d�||��}|||<�-|tdvr#td|}|D]
}||||<�|�||��t	j	dd��}	|	�
��|j�|	|��|j�
d��|���dS)Nr����rrr�r�r)r)r�r�r�r0�GetCoreKeys�joinr��save_new_key_setr�r�r�r+r�r1)
ra�new_key_set_name�prev_key_set_name�	prev_keysrar;�
event_namer[r_�custom_key_lists
          rdrXzKeysPage.create_new_key_set�sb��	�
��!�!�#�#�	7� $� 1� 5� 5� 7� 7��� $� 0� 4� 4� 6� 6���(�):�;�;�	����	+�	+�E��q��t��J��h�h�y��/�0�0�G�#*�H�Z� � �����/�/�%�f�o�.?�@�O�(�
9�
9��"1�%�"8��������.��9�9�9�"�1�&�&�A�A�������������1A�B�B�B�����q�!�!�!��������rec��	d}|j���r!d}|j�t��}t	j|��}t
|�����}|���|j�	dt��|D]�}d�||��}|dd�}|tdvr.|td|vrtd||}|j�
t|dz|z����|rP|j�|��|j�|��|j�|��dSdS)	NFTrrrr�rir�rT)r,�curselectionr%rr0�	GetKeySetrtr�r�rYrrkr�r�r&r'r()rarD�reselectrZ�keyset�
bind_namesr\r�s        rdrCzKeysPage.load_keys_list�sx��	�����)�)�+�+�	9��H��*�0�0��8�8�J��#�K�0�0���&�+�+�-�-�(�(�
��������� � ��C�(�(�(�#�	?�	?�I��(�(�6�)�,�-�-�C�!�!�B�$��I��g�f�o�-�-������ <�<�<�!�&�/�+�6�y�A�C���$�$�S�)�E�/�#�*=�>�>�>�>��	8���!�!�*�-�-�-���(�(��4�4�4���+�+�J�7�7�7�7�7�	8�	8rec��	tjd�|��|D]1}||}tjd�|||���2dS)Nr�r
)rDrvr;r6s    rdrlzKeysPage.save_new_key_set�sn��	�	��� �+�+�K�8�8�8��	J�	J�E��5�M�E���V�$�.�.�{�E�5�I�I�I�I�	J�	Jrec�$�tj|i|��Sr�rrs   rdrzKeysPage.askyesno�rrec��	|j���}d}|�d||z|���sdS|j���t
�d|��tjdd��}|�	��|s6|j
�d��|j�
|d��n!|j�
||d��|j�tjd	�d
d����|j�tjd	�d
d��ptj����t
���|j���|j���|���dS)
Nz0Are you sure you wish to delete the key set %r ?zDelete Key Setrr�r�r�r@rrr?r�r:)r�r�rrDr�r�rr0r�r�r3r�r�r+r)r�rrr�rBr�ryr�r�r1)rarDrr�s    rdr4zKeysPage.delete_custom_keys�s���	��&�*�*�,�,��C���}�}� �6�K�#7���F�F�	��F���)�)�+�+�+����v�{�3�3�3��+�F�F�;�;�	��������	=��!�'�'�
�6�6�6��O�#�#�I�/C�D�D�D�D��O�#�#�I�y��|�<�<�<�����x�2�6�:� #��F�I� 6� 6�	8�	8�	8�����h�1�&�9�=�=�f�f�M�M�9�!)�!6�!8�!8�	:�	:�	:�	��������0�0�2�2�2���'�'�)�)�)��������re)r�r�r�rLrrr�r�r(r*r1r/rWr6r-rXrC�staticmethodrlrr4r�r�s@rdr}r}^sB������������^>�^>�^>�@)�)�)�>#�#�#�('�'�'�+�+�+�
P�
P�
P�
A�
A�
A�*8�*8�*8�X���3�3�3�3�3�3����<8�8�8�4�
J�
J��\�
J�4�4�4� � � � � � � rer}c�0��eZdZ�fd�Zd�Zd�Zd�Z�xZS)rc����t���|��|���|���|���dSr�)r�rL�init_validators�create_page_windows�load_windows_cfg�rar�r�s  �rdrLzWinPage.__init__sW���
������ � � �������� � �"�"�"��������rec�r��tjd����fd�}|�|��df|_dS)N�[0-9]*c�4��	��|��duSr���	fullmatch�r�digits_or_empty_res �rd�is_digits_or_emptyz3WinPage.init_validators.<locals>.is_digits_or_empty����9�%�/�/��2�2�$�>�>re�%P��re�compile�register�digits_only�rar�r�s  @rdr~zWinPage.init_validators�N����Z�	�2�2��	?�	?�	?�	?�	?�!�M�M�*<�=�=�t�E����rec�P�	t�t|��d��|_t�t	|��d��|_t�t	|��d��|_t�t	|��d��|_t�t|��d��|_	t�t	|��d��|_
t�t	|��d��|_t�t	|��d��|_t�t|��d	��|_
t�t	|��d
��|_t|dt d�
��}t#|d���}t%|d���}t'||jdd���|_t'||jdd���|_t#|d���}t%|d���}t%|d���}t-||jd|jd���|_t%|d���}t-||jd|jd���|_t#|d���}t%|d���}		t5||jddd|jd���|_nI#t8$r<t;||jdt=t?dd ����d�!��|_YnwxYwt%|d"���}
tA|d#|j	�$��|_!t#|d���}t%|d%���}t-||j
d&|jd���|_"t#|d���}
t%|
d'���}tG|
|jd(d)d*d(��|_$t#|d���}t%|d+���}t-||jd&|jd���|_%tA|d,|j
�$��|_&t#|d���}t%|d-���}t-||jd.|jd���|_'|�(tRd/d/tTtV�0��|�(tRd/dtX�1��|�(tZt\d/d/�2��|j�(t^t\d/d/�2��|j�(t^t\d/d/�2��|�(tRd/dtX�1��|�(tZt\d/d/�2��|j�(t^t`dd/�2��|�(t^t`d/�3��|j�(t^t`dd/�2��|�(t^t`d/�3��|�(tRd/dtX�1��|	�(tZt\d/�4��|j�(tZt\d�4��|j!�(t^t`d5d/�2��|�(tRd/dtX�1��|�(tZt\d/d/�2��|j"�(tRdd/�6��|
�(tRd/dtX�1��|�(tZt\d/d/�2��|j$�(tRdd/�6��|�(tRd/dtX�1��|�(tZt\d/�4��|j&�(t^t`d5d/�2��|j%�(tRt\d5d/�2��|�(tRd/dtX�1��|�(tZt\d/d/�2��|j'�(tRdd/�6��dS)7N)r�General�editor-on-startup)rr	rJ)rr	rI)r�Indent�
num-spaces)rr	�cursor-blink)rKr8�	popupwait)rKr:rE)rKr:�flash-delay)rKr:�bell)rKr;�	max-widthr�z Window Preferencesr�rr�z
At Startuprlr�zOpen Edit Window�r�r6rmzOpen Shell Windowz$Initial Window Size  (in characters)�Widthr�r���textvariablerJ�validatecommand�validate�HeightzIndent spaces (4 is standard)�
)r��from_�torJr�r��readonly�)r�r�rVrJzCursor BlinkzCursor blink)rmr�z%Completions Popup Wait (milliseconds)r�zParen Match Style�
expression�opener�parensz;Time Match Displayed (milliseconds)
(0 is until next input)zBell on MismatchzFormat Paragraph Max Widthr�r�r�r�r��rqr�r�r�r�r�)1r\r�r�startup_editr�	win_width�
win_height�
indent_spacesr�cursor_blink�autocomplete_wait�paren_style�flash_delay�
paren_bell�format_widthr"rr!r&r)�startup_editor_on�startup_shell_onr%r��
win_width_int�win_height_intr,�indent_chooserr r-rtr�r$�cursor_blink_bool�
auto_wait_intr'�paren_style_type�paren_flash_time�bell_on�format_width_intr�rr	rrrrr
r)ra�frame_window�	frame_run�
startup_title�frame_win_size�win_size_title�win_width_title�win_height_title�frame_cursor�indent_title�cursor_blink_title�frame_autocomplete�auto_wait_title�frame_paren1�paren_style_title�frame_paren2�paren_time_title�frame_format�format_width_titles                   rdrzWinPage.create_page_windowssu��&	�P$�K�K��t���F�H�H��� ����$���!B�D�D���!�+�+��$���!C�E�E���$�[�[��$���!A�C�C���#�K�K��4� � �"J�L�L���!(����$���!L�"N�"N���"�;�;��$���!F�H�H���"�;�;��$���!L�N�N���!�+�+��4� � �"F�H�H���#�K�K��$���!O�Q�Q���"�$�A�f�'<�>�>�>���,�A�6�6�6�	��i�l�;�;�;�
�!,��D�$5�Q�'�")�")�")���!,��D�$5�Q�(�!*�!*�!*����|��;�;�;����%K�M�M�M����W�=�=�=��"��T�^�1� $� 0�5�
�
�
���!��h�?�?�?��#��T�_�A� $� 0�5�
�
�
���
�\�q�9�9�9���\�"A�C�C�C��	I�")� �t�/A���!�$(�$4�u�#F�#F�#F�D�����	I�	I�	I�"*� �t�/A�$�T�%��"�+�+�->�->�a�#I�#I�#I�D����	I����#�<�n�E�E�E��!,�\��6:�6G�"I�"I�"I���#�<�Q�@�@�@��� 2�%L�N�N�N��"�"��1G���)9�E�K�K�K����\�q�9�9�9��!�,�5H�I�I�I�� *��d�.����,�!0�!0����\�q�9�9�9�� ��$<�=�=�=��!&��4�+;�1� $� 0�5�!B�!B�!B���#��#5���Q�Q�Q����\�q�9�9�9��"�<�(D�F�F�F�� %��4�+<�A� $� 0�5�!�!�!���	���s���4�d��K�K�K����C�a�a�a��8�8�8�����Q�Q�Q��?�?�?���"�"��a�a�a�"�H�H�H���#�#��q�q�q�#�I�I�I�����1�1�1��=�=�=�����a�a�a��@�@�@��� � �e�A�B�Q� �G�G�G����5����;�;�;�����U�1�2�A��F�F�F����%����:�:�:����s�����;�;�;����t�A�A��6�6�6��� � �d�1�2� �>�>�>���#�#��q�r��#�J�J�J����S�q�q�q��A�A�A����$�q�q�q��A�A�A�����S�r���:�:�:����s�����;�;�;����D�����C�C�C���"�"��"�1�"�=�=�=����s�����;�;�;����4����:�:�:�����u�Q�R�a��@�@�@���"�"��A�B�Q�"�G�G�G����s�����;�;�;����T�!�!�!��D�D�D���"�"��"�1�"�=�=�=�=�=s�%%L�AM�Mc��|j�tjdddd�����|j�tjdddd�����|j�tjddd	d�����|j�tjdd
dd�����|j�tjdddd�����|j�tjd
ddd�����|j	�tjd
dd����|j
�tjd
ddd�����|j�tjd
dd����|j�tjd
ddd�����dS)Nrr�r�r��r9r	rJ�intrIr�r�r�rKr8r�r:rEr�r�r;r�)
r�r�r0r�r�r�r�r�r�r�r�r�r�r�s rdr�zWinPage.load_windows_cfg�sM������h�0��	�#6�V�E�E�E�	F�	F�	F�����8�-����e�=�=�=�	>�	>�	>�����H�.����u�>�>�>�	?�	?�	?�����x�1���,�U� <� <� <�	=�	=�	=�����h�0����V�E�E�E�	F�	F�	F���"�"�8�#5��n�k��$G�$G�$G�	H�	H�	H�����X�/��l�G�5�5�	6�	6�	6�����X�/��l�M��G�G�G�	H�	H�	H�����H�.��l�F�4�4�	5�	5�	5�����h�0��/��5�J�J�J�	K�	K�	K�	K�	Kre)r�r�r�rLr~rr�r�r�s@rdrrss������� � � � � �F�F�F�h>�h>�h>�TK�K�K�K�K�K�Krerc�0��eZdZ�fd�Zd�Zd�Zd�Z�xZS)r�c����t���|��|���|���|���dSr�)r�rLr~�create_page_shed�load_shelled_cfgr�s  �rdrLzShedPage.__init__�sW���
������ � � ��������������������rec�r��tjd����fd�}|�|��df|_dS)Nr�c�4��	��|��duSr�r�r�s �rdr�z4ShedPage.init_validators.<locals>.is_digits_or_empty�r�rer�r�r�s  @rdr~zShedPage.init_validators�r�rec��	t�t|��d��|_t�t	|��d��|_t�t
|��d��|_t�t|��d��|_t|dtd���}t|dtd���}t|d	�
��}t|d���}t|d
|j|jd���|_t|d	�
��}t|d���}t!||jd	d���|_t!||jdd���|_t|d	�
��}t|d���}t'||jd���|_t|d	�
��}	t|	d���}
t|	|jd|jd���|_|�t.ddt0���t|�����|�t.ddt0���|�t.dd	t2���|�t4t6dd���|j�t.dd���|�t.dd	t2���|�t4t6dd���|j�t8t6dd���|j�t8t6dd���|�t.dd	t2���|�t4t6dd���|j�t4dd���|	�t.dd	t2���|
�t4t6dd���|j�t.dd���dS)N)r�PyShell�auto-squeeze-min-lines)rr��autosave)rr	�line-numbers-default)rKr9�maxlinesr�z Shell Preferencesr�z Editor Preferencesrr�zAuto-Squeeze Min. Lines:rlr�r�)rJr�r�r�zAt Start of Run (F5)  zPrompt to Saver�r�z	No Promptz Show line numbers in new windows)r�rJzMax Context Lines :r�r�r�r�r�r�)r\r�r�auto_squeeze_min_linesrr�r�line_numbers_default�
context_linesr"rr!r&r%r��auto_squeeze_min_lines_intr)�save_ask_on�save_auto_onr$�line_numbers_default_bool�context_intr�rrrrrr
)ra�frame_shell�frame_editor�frame_auto_squeeze_min_lines�auto_squeeze_min_lines_title�
frame_save�run_save_title�frame_line_numbers_default�line_numbers_default_title�
frame_context�
context_titles           rdr�zShedPage.create_page_shed�s#��	�<'.�k�k��$���!N�'P�'P��#� ����t���=�?�?��
�$+�K�K��4� � �@�%B�%B��!�%�[�[��$���!J�L�L���!��1�V�&:�<�<�<��!�$�A�f�'<�>�>�>��(-�[�a�'H�'H�'H�$�',�-I�2L�(N�(N�(N�$�*/�,�A�!�8� $� 0�5�+
�+
�+
��'��<�Q�7�7�7�
��z�0H�I�I�I��&��T�]�!�%�'�'�'���(��T�]�!� �"�"�"���&+�<�Q�%G�%G�%G�"�%*�&�-O�&Q�&Q�&Q�"�)4�*��2��*�*�*��&�
�l��:�:�:�
��m�2G�H�H�H�
� ��D�,>�a� $� 0�5�
�
�
���	���c�����=�=�=�
�d�����������s�����>�>�>�$�)�)�s����)�K�K�K�$�)�)�t�A�A�A�)�N�N�N��'�,�,�#�A�A�,�F�F�F����S�q�q�q��9�9�9�����a�a�a��@�@�@�����E�!�!�!��D�D�D�����5�����C�C�C�"�'�'�S�q�q�q�'�I�I�I�"�'�'�T�!�!�!�'�L�L�L��&�+�+��A�A�+�F�F�F�����!�!�!��<�<�<�����Q�Q�Q��?�?�?�����3�Q�Q��7�7�7�7�7rec	��|j�tjdddd�����|j�tjddddd	�
����|j�tjdddd	�����|j�tjd
ddd�����dS)Nrr�r�r�r�r�r�rr�)r�r9r	r�rKr9r�)r�r�r0r�r�r�r�r�s rdr�zShedPage.load_shelled_cfgYs���#�'�'��(:��	�#;�%�)I�)I�)I�	J�	J�	J�	
�
���(�,��	�:�q�v�G�G�G�	H�	H�	H��!�%�%�h�&8���(>�V�'M�'M�'M�	N�	N�	N�����x�1��m�Z�e� E� E� E�	F�	F�	F�	F�	Fre)r�r�r�rLr~r�r�r�r�s@rdr�r��ss������� � � � � �F�F�F�f8�f8�f8�P
F�
F�
F�
F�
F�
F�
Frer�c�B��eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	�xZ
S)rxc�4��t���|��tjd|_tjd|_|�t��|_|�	��|�
��dS)NrK)r�rLr0r�ext_defaultCfgr�ext_userCfgr��is_int�load_extensions�create_page_extensionsr�s  �rdrLzExtPage.__init__gsx���
������ � � �&�1�,�?���#�+�L�9����m�m�F�+�+����������#�#�%�%�%�%�%rec���	t|��|_t|dtd���}t	|dtd���|_|�dd���|�dd���t||jd�	��|_	|j	�
d
|j��t||j	j
���}|j|j	_t|dd�
��|_|j	�ddd���|�ddd���|j�dddddg���|�d���i|_d|_||_|j	|_d}t/|j��D]"}|�|��|dz|zdz}�#|j�|��|j	�d��|�d��|�ddd���t7|���dd���|j�ddd���dS)Nr�z Feature Extensions r�z Help Menu Extensions rr�r��browse)�listvariable�
selectmodez<<ListboxSelect>>r��)rJrI�nws�r�r�rk�nsr�r�)r�r�rkr�rhr@�{z} r&)r�r��sew)r�extension_namesr"r�	HelpFrame�
frame_helpr�r�r�extension_listr��extension_selectedr*r�r�r��
details_framervr��config_frame�current_extension�
outerframe�tabbed_page_setr"rK�create_extension_frame�
selection_setr&)ra�	frame_ext�scroll�	ext_namesrPs     rdr�zExtPage.create_page_extensionsos{��	�. )�������t��6�$:�<�<�<�	�#�D�a��$<�>�>�>���	���q���+�+�+��!�!�!�A�!�.�.�.�%�i�d�>R�19�;�;�;����� � �!4�d�6M�N�N�N��9�d�.A�.G�H�H�H��+1�:���*�'�	��S�I�I�I����� � ��q�� �?�?�?����1�!�D��1�1�1�����q�a��b�!�W��M�M�M����B��'�'�'����!%������#�2����	��t��/�/�	:�	:�H��'�'��1�1�1�!�C��(�2�T�9�I�I��� � ��+�+�+���)�)�!�,�,�,�����%�%�%�	���1�Q�v��6�6�6�
�d�����Q�q��)�)�)������1�U��;�;�;�;�;rec
��	i|_tjd���D]}g|j|<�
|jD�]G}t|j�|����}d�|D��}|D]}|�|���||z}|D]�}|j�||d���}	ddd�|}d}n7#t$r*	t|��}d}n#t$r|}d}YnwxYwYnwxYw	|j�|||d|�	��}n#t$r|}YnwxYwt|��}	|	�
t|����|j|�|||||	d
������IdS)NF)�active_onlyc�<�g|]}|�d���|��S)�enable)�
startswith)r�opt_names  rdrz+ExtPage.load_extensions.<locals>.<listcomp>�s:��9�9�9�H�"�-�-�h�7�7�9�x�9�9�9reT)�raw)�True�Falser�r�)r9rr�)r:r9r�r6�var)rKr0�
GetExtensionsr"r��
GetOptionList�remover�KeyErrorr�r*r�rr�r��append)
rarP�opt_list�enablesr�def_str�def_obj�opt_typer6rs
          rdr�zExtPage.load_extensions�s$��K���� �.�5�A�A�A�	+�	+�H�(*�D�O�H�%�%���%	4�%	4�H��d�1�?�?��I�I�J�J�H�9�9��9�9�9�G�#�
*�
*������)�)�)�)���)�H�$�
4�
4���-�1�1� �(��2�6�6��	(�&*�E�:�:�7�C�G�%�H�H���(�(�(�(�"%�g�,�,��#(����%�(�(�(�")��#'����(������	(����$� �,�0�0�$�h�X�4�$+�1�-�-�E�E��"�$�$�$�#�E�E�E�$������o�o������E�
�
�#�#�#����)�0�0�(�:B�=D�;@�9<�	23�23�4�4�4�4�-
4�%	4�%	4sH�)
B7�7
C+�C�C+�C%	�"C+�$C%	�%C+�*C+�/D�D�Dc��	|j���}|r|j�|��}|�||jkrM|jrF|j�d���|j|j���d|_|rG|j�|���|j|�ddd���||_dSdS)Nr@rlrr�r)	r
rsr�rrr�r
�grid_forgetrv)rar;�newsels   rdrzExtPage.extension_selected�s���9��$�1�1�3�3���	5��(�,�,�V�4�4�F��>�V�t�'=�=�=��%�
.��"�)�)�r�)�2�2�2��!�$�"8�9�E�E�G�G�G�)-��&��	,���%�%�6�%�2�2�2���f�%�*�*�!��6�*�J�J�J�%+�D�"�"�"�	,�	,rec�n�	t|jdd���}||j|<|j}t	|j|��D]�\}}t
||d���}|�|dt���|d}|dd	kr1t||d
dd�
���|dtd����~|ddkr8t||d|jdfd����|dtd�����t||d����|dtd�����dS)NrrHr:rlrr&rr9r�rrr�)r�r�r�rJr��)r�r�rkr�r�r�r�r�)r�r�r�rJr�)r�rJ)�VerticalScrolledFramerr
�interior�	enumeraterKr&rvrr$rr%r�r)rarP�f�
entry_arear��opt�labelrs        rdrzExtPage.create_extension_frame�sZ��K�!�$�"4�S��L�L�L��&'���(�#��Z�
�!�$�/�(�";�<�<�	E�	E�H�C���*�3�v�;�7�7�7�E��J�J�3�q��J�4�4�4��e�*�C��6�{�f�$�$��J��$*�W�A����"�d�s�1�Q�Q�d�G�G�G�G��V���%�%��j�s�U�'+�{�D�&9��������Q�t�!��D�D�D�D��j�s�"�������Q�t�!��D�D�D�D��rec�0�	|d}|d}|d������p|}|d�|��||kr|j�||��S|j�|||��S)Nr:r�r)r�r�r�r��RemoveOptionr
)ra�sectionr4r:r�r6s      rd�set_extension_valuezExtPage.set_extension_values���	�
�6�{���i�.���E�
��� � �&�&�(�(�3�G���E�
���u����
�W����#�0�0��$�?�?�?���)�)�'�4��?�?�?rec��	d}|jD],}|j|}|D]}|�||��rd}��-|r|j���dSdS)NFT)rKr9r��Save)ra�has_changesrP�optionsr4s     rdr�z#ExtPage.save_all_changed_extensionss���	�����	'�	'�H��o�h�/�G��
'�
'���+�+�H�c�:�:�'�"&�K��
'��	$���!�!�#�#�#�#�#�	$�	$re)r�r�r�rLr�r�rrr9r�r�r�s@rdrxrxfs��������&�&�&�&�&�=<�=<�=<�~,4�,4�,4�\
,�
,�
,����4@�@�@�"$�$�$�$�$�$�$rerxc�N��eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Z�xZS)
rc���t��j|fi|��|���|���dSr�)r�rL�create_frame_help�
load_helplist)rar��cfgr�s   �rdrLzHelpFrame.__init__+sL���������'�'�3�'�'�'���� � � ��������rec��	t|��}t|ddt���|_t	|��}|jj|d<|j|jd<|j�d|j��t|��}t|ddd	|j
�
��|_t|dd	|j���|_
t|d
dd	|j�
��|_|�t"ddt$t&���|j�t"t(t$t&���|�t*t,t.���|�t*ddt.���|j�t0t,d���|j
�t0t,���|j�t0t,d���dS)Nr�Tr�r�r�r��Editrr�)rmr�rJr��Add)rmrJr��Remover�)rqr�rrrs)rqr�rsr�r�r�)r!rr
�helplistr*r�r�r��help_source_selectedr#�helplist_item_edit�button_helplist_edit�helplist_item_add�button_helplist_add�helplist_item_remove�button_helplist_remover�rr	rrr
rrr)ra�frame_helplist�scroll_helplist�
frame_buttonss    rdr@zHelpFrame.create_frame_help0s���	�(�t������q�D� %�'�'�'��
�$�N�3�3��%)�]�%8��	�"�*9�*=��
�&�'��
���.��0I�J�J�J��d���
�$*��F�*���!8�%:�%:�%:��!�$*��E���!7�$9�$9�$9�� �'-��H�J���!:�'<�'<�'<��#�
	����A�A�d���N�N�N��
����Q�t�$��G�G�G����%����:�:�:�����A�A�A��>�>�>��!�&�&�C���&�B�B�B�� �%�%�3�q�%�9�9�9��#�(�(�c�!�!�(�D�D�D�D�Drec�0�	|���dSr�)�set_add_delete_statergs  rdrHzHelpFrame.help_source_selectedbs��5��!�!�#�#�#�#�#rec��	|j���dkr6|j�d��|j�d��dS|j���r6|j�d��|j�d��dS|j�d��|j�d��dS)Nr�r�r�)rG�sizerJr�rNrsr�s rdrSzHelpFrame.set_add_delete_statefs���K��=�����!�#�#��%�+�+�M�:�:�:��'�-�-�m�<�<�<�<�<��}�)�)�+�+�
A��)�/�/��?�?�?��+�1�1�.�A�A�A�A�A��)�/�/�
�>�>�>��+�1�1�-�@�@�@�@�@rec���	t|d��j}|rV|j�|��|j�t|d��|���dSdS)NzNew Help Sourcer)r6r��
user_helplistr$rGr�r�update_help_changes)ra�help_sources  rdrKzHelpFrame.helplist_item_addssy��	�
!��'8�9�9�@���	'���%�%�k�2�2�2��M� � ��k�!�n�5�5�5��$�$�&�&�&�&�&�	'�	'rec��	|j�t��}|j|}t	|d|d|d���j}|ru||krq||j|<|j�|��|j�||d��|���|�	��dSdSdS)NzEdit Help Sourcerr�)�menuitem�filepath)
rGr%rrWr6r�rYr�rXrS)ra�
item_indexrY�new_help_sources    rdrIzHelpFrame.helplist_item_edits���	�
�]�(�(��0�0�
��(��4��$��(�$�Q��$�Q������		�
�	(��+�=�=�-<�D��z�*��M� � ��,�,�,��M� � ��_�Q�-?�@�@�@��$�$�&�&�&��%�%�'�'�'�'�'�	(�	(�=�=rec���	|j�t��}|j|=|j�|��|���|���dSr�)rGr%rrWrYrXrS)rar]s  rdrMzHelpFrame.helplist_item_remove�si��	��]�(�(��0�0�
���z�*��
���Z�(�(�(�� � �"�"�"��!�!�#�#�#�#�#rec��	itdd<tdt|j��dz��D]U}t�ddt|��d�|j|dz
dd������VdS)Nr�	HelpFilesr��;r�)r�r�r�rWr3r�rk)ra�nums  rdrXzHelpFrame.update_help_changes�s���<�')�����$���C�� 2�3�3�a�7�8�8�	=�	=�C�����K��S����H�H�T�/��A��6�r��r�:�;�;�
=�
=�
=�
=�	=�	=rec���tj��|_|j�dd��|jD](}|j�t|d���)|���dS)Nrr�)r0�GetAllExtraHelpSourcesListrWrGrYr�rrS)ra�	help_items  rdrAzHelpFrame.load_helplist�st��%�@�B�B����
���Q��&�&�&��+�	4�	4�I��M� � ��i��l�3�3�3�3��!�!�#�#�#�#�#re)
r�r�r�rLr@rHrSrKrIrMrXrAr�r�s@rdrr)s�������������
0E�0E�0E�d$�$�$�A�A�A�
'�
'�
'�(�(�(�(	$�	$�	$�=�=�=�$�$�$�$�$�$�$rerc�D�eZdZ	d�Zd�Zd�Zed���Zd�Zd�Z	dS)�VarTracec�$�	g|_g|_dSr�)�untraced�tracedr�s rdrLzVarTrace.__init__�s��	���
�����rec�l�	|j���|j���dSr�)rjr�rkr�s rdr�zVarTrace.clear�s3��"��
��������������rec��	t|t��r|�||��}|j�||f��|Sr�)�
isinstance�tuple�
make_callbackrjr$�rar�callbacks   rdr�zVarTrace.add�sO��
	��h��&�&�	9��)�)�#�x�8�8�H��
���c�8�_�-�-�-��
rec����	��fd�}|S)Nc�T��	tjg�������R�dSr�)r�r3r�)r5r�rs ��rd�default_callbackz0VarTrace.make_callback.<locals>.default_callback�s0���4���2��2����	�	�2�2�2�2�2�2rer)rr�rus`` rdrpzVarTrace.make_callback�s-����M�	3�	3�	3�	3�	3�	3� �rec���	|jrW|j���\}}|�d|��|j�||f��|j�UdSdS)N�write)rj�pop�	trace_addrkr$rqs   rdr]zVarTrace.attach�st��:��m�	0� �M�-�-�/�/�M�C���M�M�'�8�,�,�,��K����X��/�/�/��m�	0�	0�	0�	0�	0rec��	|jru|j���\}}|�d|���dd��|j�||f��|j�sdSdS)Nrwrr�)rkrx�trace_remove�
trace_inforjr$rqs   rd�detachzVarTrace.detach�s���+��k�	2� �K�O�O�-�-�M�C�����W�c�n�n�&6�&6�q�&9�!�&<�=�=�=��M� � �#�x��1�1�1��k�	2�	2�	2�	2�	2reN)
r�r�r�rLr�r�r{rpr]r}rrerdrhrh�s}������,�
�
�
�������"� � ��\� �0�0�0�2�2�2�2�2rerha7When you click either the Apply or Ok buttons, settings in this
dialog that are different from IDLE's default are saved in
a .idlerc directory in your home directory. Except as noted,
these changes apply to all versions of IDLE installed on this
machine. [Cancel] only cancels changes made since the last save.
u
Font sample: This shows what a selection of Basic Multilingual Plane
unicode characters look like for the current font selection.  If the
selected font does not define a character, Tk attempts to find another
font that does.  Substitute glyphs depend on what is available on a
particular system and will not necessarily have the same size as the
font selected.  Line contains 20 characters up to Devanagari, 14 for
Tamil, and 10 for East Asia.

Hebrew and Arabic letters should display right to left, starting with
alef, א and ا.  Arabic digits display left to right.  The
Devanagari and Tamil lines start with digits.  The East Asian lines
are Chinese digits, Chinese Hanzi, Korean Hangul, and Japanese
Hiragana and Katakana.

You can edit the font sample. Changes remain until IDLE is closed.
z�
Highlighting:
The IDLE Dark color theme is new in October 2015.  It can only
be used with older IDLE releases if it is saved as a custom
theme, with a different name.
z�
Keys:
The IDLE Modern Unix key set is new in June 2016.  It can only
be used with older IDLE releases if it is saved as a custom
key set, with a different name.
a_
General:

AutoComplete: Popupwait is milliseconds to wait after key char, without
cursor movement, before popping up completion box.  Key char is '.' after
identifier or a '/' (or '\' on Windows) within a string.

FormatParagraph: Max-width is max chars in lines after re-formatting.
Use with paragraphs in both strings and comment blocks.

ParenMatch: Style indicates what is highlighted when closer is entered:
'opener' - opener '({[' corresponding to closer; 'parens' - both chars;
'expression' (default) - also everything in between.  Flash-delay is how
long to highlight if cursor is not moved (0 means forever).

CodeContext: Maxlines is the maximum number of code context lines to
display when Code Context is turned on for an editor window.

Shell Preferences: Auto-Squeeze Min. Lines is the minimum number of lines
of output to automatically "squeeze".
a�
ZzDummy: This extension is provided as an example for how to create and
use an extension.  Enable indicates whether the extension is active or
not; likewise enable_editor and enable_shell indicate which windows it
will be active on.  For this extension, z-text is the text that will be
inserted at or removed from the beginning of the lines of selected text,
or the current line if no selection.
)z
Fonts/Tabsrnr?r�roc�R�	|sdS	t|��dS#t$rYdSwxYw)NTF)r�r*)rs rdr�r�3	sI��.����t���A�����t�������u�u����s��
&�&c��eZdZ	d�ZdS)r/c����	�tj||g|�Ri|��t|t���}|�t
tt���t|dd|j	d������ttt���|�
�j�����d����d��t���x|_���dd�t&����	��fd	�}��d
|�����	fd�}��d
|��dS)Nr)rsrqrrr��)r�rhr�rJr'r�)�windowr�c�����������f}��d|z���dS)Nz	0 0 %s %s)�scrollregion)�winfo_reqwidth�winfo_reqheightr�)r;rU�canvasr0s  ��rd�_configure_interiorz;VerticalScrolledFrame.__init__.<locals>._configure_interiorZ	sD����+�+�-�-�x�/G�/G�/I�/I�J�D��M�M�{�T�'9�M�:�:�:�:�:rez<Configure>c�����������kr+����������dSdS)N)rJ)r��winfo_width�
itemconfigure)r;r�r0�interior_ids ���rd�_configure_canvasz9VerticalScrolledFrame.__init__.<locals>._configure_canvas`	sZ����&�&�(�(�F�,>�,>�,@�,@�@�@��$�$�[��8J�8J�8L�8L�$�M�M�M�M�M�A�@re)r!rLr*rr�rr
r
rr�rrr	r�r��xview_moveto�yview_movetor0�
create_windowrr�)
rarMr�kw�
vscrollbarr�r�r�r0r�s
       @@@rdrLzVerticalScrolledFrame.__init__E	s}�����
��t�V�1�d�1�1�1�b�1�1�1��t�H�5�5�5�
����Q�U�5��9�9�9���!��'1�~�S�B�B�B������D���6�6�6����&�,��/�/�/�	���A�������A����$)��=�=�0��
���*�*�1�a���*�L�L��	;�	;�	;�	;�	;�	;�	�
�
�m�%8�9�9�9�	N�	N�	N�	N�	N�	N�	N�	���M�#4�5�5�5��reN)r�r�r�rLrrerdr/r/>	s(�������!�!�!�!�!rer/�__main__)rz#idlelib.idle_test.test_configdialogr�F)�	verbosity�exit)�run)br��tkinterrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr �tkinter.ttkr!r"r#r$r%r&r'r(r)r*r+r,r-r.�tkinter.fontr/r#r/�idlelib.configr0r1�idlelib.config_keyr2�idlelib.dynoptionr3�idlelibr4�
idlelib.queryr5r6�idlelib.textviewr7�idlelib.autocompleter8�idlelib.codecontextr9�idlelib.parenmatchr:�idlelib.formatr;�idlelib.squeezerr<r=r�r�r?r�r|rzr}rr�rxrrhr\r�r�r�r/r��unittestr�idlelib.idle_test.htestr�rrerd�<module>r�s��
�
�	�	�	�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�
,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�!� � � � � �������������2�2�2�2�2�2�2�2�,�,�,�,�,�,�+�+�+�+�+�+�������1�1�1�1�1�1�1�1�&�&�&�&�&�&�-�-�-�-�-�-�+�+�+�+�+�+�)�)�)�)�)�)�*�*�*�*�*�*�%�%�%�%�%�%�0�0�0�0�0�0�
�-�/�/���[�*�o����B�B�B�B�B�8�B�B�B�lE��<g1�g1�g1�g1�g1�u�g1�g1�g1�TQ
�Q
�Q
�Q
�Q
�u�Q
�Q
�Q
�hn�n�n�n�n�u�n�n�n�b
OK�OK�OK�OK�OK�e�OK�OK�OK�dBF�BF�BF�BF�BF�u�BF�BF�BF�J@$�@$�@$�@$�@$�e�@$�@$�@$�FC$�C$�C$�C$�C$�
�C$�C$�C$�L:2�:2�:2�:2�:2�:2�:2�:2�z�(�*�*�����"�
��*�g;�;�
�|���(�(�(�(�(�E�(�(�(�V�z����������D�	.�!�%�H�H�H�H�+�+�+�+�+�+��C��������re