HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/__pycache__/configdialog.cpython-310.opt-2.pyc
o

�i��@s�	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�ZLeBeDeFeHeJfZMGdd�de�ZNdaOGdd�de!�ZPGdd�de!�ZQGdd�de!�ZRGdd�de!�ZSGdd�de!�ZTGdd �d e!�ZUGd!d"�d"e"�ZVGd#d$�d$�ZWeW�ZXd%ZYd&d'd(d)d*d+�ZZd,d-�Z[Gd.d/�d/e!�Z\e]d0k�rKdd1l^m_Z_e_d2d3d4d5�dd6l`maZaeaeN�dSdS)7�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)�ScrollableTextFramecspeZdZ	dddd�dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z�fdd�Z	dd�Z
dd�Zdd�Z�Z
S)�ConfigDialog�F)�_htest�_utestcCs�	t�||�||_|ri|_|s|��|�|pd�|��d}|��|s)dnd}|�d|�d|���|�	�|j
ttd�|�|�|�
d|j�|jj��t��|sh|��|��|��dSdS)NzIDLE Preferences����+��height�widthZWM_DELETE_WINDOW)r�__init__�parent�
instance_dictZwithdraw�titleZwinfo_rootxZwinfo_rootyZgeometry�create_widgetsZ	resizabler	Z	transient�protocol�cancel�fontpage�fontlistZ	focus_set�tracers�attachZgrab_setZwm_deiconifyZwait_window)�selfrIrKr?r@�x�y�rV�1/usr/local/lib/python3.10/idlelib/configdialog.pyrH1s,
�zConfigDialog.__init__cCs	t|dd�|_}|jjdd�t|�|_}t|�|_t||j�|_t	||j�|_
t||j�|_t
|�|_t|�|_|j|j
dd�|j|jdd�|j|jdd�|j|jd	d�|j|jd
d�|j|jdd�|��|jtttd�|��jtd
�dS)NZ5px��paddingZnwes)�stickyz Fonts ��text�
Highlightsz Keys z	 Windows z
 Shell/Ed �
Extensions��side�expand�fill�r`)r �frame�gridr'�note�ExtPage�extpage�HighPage�highpage�FontPagerO�KeysPageZkeyspage�WinPageZwinpage�ShedPageZshedpage�addZenable_traversal�packr
rr�create_action_buttonsr)rSrdrfrVrVrWrL`s&


zConfigDialog.create_widgetscCs�	t��ri}nddi}t|jdd�}t|dd�}i|_d|jfd|jfd|jfd|jffD]\}}t	|f||t
d	�|��|j|<|j|jtd
d�q.t|ddd
�jt
d�|jtd�|S)NrY)���rXZOkZApplyZCancelZHelp)r\�command�	takefocus�)r`�padxr)rF�borderwidthrc)r3ZisAquaTkr rdZbuttons�ok�applyrN�helpr"r	rpr
r
r)rSZpadding_argsZouterZ
buttons_frameZtxt�cmdrVrVrWrq�s*�
��z"ConfigDialog.create_action_buttonscCs	|��|��dS�N)r{�destroy�rSrVrVrWrz�szConfigDialog.okcCs(	|��t��|j��|��dSr~)�deactivate_current_config�changes�save_allrh�save_all_changed_extensions�activate_config_changesr�rVrVrWr{�s

zConfigDialog.applycCs	t��|��dSr~)r��clearrr�rVrVrWrN�szConfigDialog.cancelcs&|jj�dd�a|��t���dS)N�1.0�end)rO�font_sample�get�font_sample_textZgrab_release�superrr���	__class__rVrWr�szConfigDialog.destroycCs:	|jj|j��dd���}t|dtt�|d�d�dS)Nr\)�optionzHelp for IDLE preferencesr>)rK�contents)rfZtab�select�stripr6�help_common�
help_pagesr�)rSZpagerVrVrWr|�s

�zConfigDialog.helpcCs$	|jj��}|D]}|��q	dSr~)rIrJ�keysZRemoveKeybindings)rS�
win_instances�instancerVrVrWr��s

�z&ConfigDialog.deactivate_current_configcCs^	|jj��}|D]}|��|��|��|��|��|��q	t	D]}|�
�q&dSr~)rIrJr�ZResetColorizerZ	ResetFontZset_notabs_indentwidthZApplyKeybindingsZreset_help_menu_entriesZupdate_cursor_blink�reloadables�reload)rSr�r��klassrVrVrWr��s

�z$ConfigDialog.activate_config_changes)r>)�__name__�
__module__�__qualname__rHrLrqrzr{rNrr|r�r��
__classcell__rVrVr�rWr=-s/&(	r=u^<ASCII/Latin1>
AaBbCcDdEeFfGgHhIiJj
1234567890#:+=(){}[]
¢£¥§©«®¶½ĞÀÁÂÃÄÅÇÐØß

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

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

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

<East Asian>
〇一二三四五六七八九
汉字漢字人木火土金水
가냐더려모뵤수유즈치
あいうえおアイウエオ
csFeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zddd
�Z�Z	S)rkcs(t��|�|j|_|��|��dSr~)r�rH�highlight_sample�create_page_font�
load_font_cfg)rS�masterrjr�rVrWrH"szFontPage.__init__c	Cs 	t�t|�|j�|_t�t|�|j�|_t�t|�|j�|_t|dt	dd�}t|dt	dd�}t
|�}t
|�}t|tdd�}t
|ddtd	�|_|j�d
|j�|j�d|j�|j�d|j�t|�}|j|jjd
�|jj|jd�t|dd�}t||jd�|_t||jdddd�|_t|�}|j|_|jjtddd�|j�tt �|j!ddd�|j"ddd�|j#ddddd�|j#ddddddd�|j$t%ddt&d�|j$t%ddt&d�|j$t%t'd�|jj$tt(t&d�|j$tt)d�|j$tt'd�|jj$tt'd�|jj$tt'd d!�|j$t(t*d"�dS)#Nrtz Shell/Editor Font �ry�reliefr\z Font Sample (Editable) zFont Face :)Zjustifyr\�T�rFrv�exportselection�<ButtonRelease-1>z<KeyRelease-Up>z<KeyRelease-Down>�ru)�yscrollcommandzSize :r[�rZBold)�variable�onvalue�offvaluer\)�wraprGrF�Zweightrw)�row�columnrx�padyrs�nsew)r�r�Zrowspanrxr�rZ�r`rxr�rb�r`�anchorr_)r`rbrA�r`r�rx)rarb)+rQror�var_changed_font�	font_name�	font_sizer�	font_boldr!rr r%r
rr	rP�bind�on_fontlist_selectr)�config�yview�setr2�sizelistr#Zbold_toggler<r\r�r�insertrr��columnconfigure�rowconfigurererpr
rrrrr)	rSZ
frame_fontZframe_sampleZframe_font_nameZframe_font_paramZfont_name_titleZscroll_fontZfont_size_titleZfont_sample_framerVrVrWr�(sb%������zFontPage.create_page_fontc	Cs�	t�|dd�}|d��}|d}|ddk}ttt�|���}|D]	}|j�t	|�q#|j
�|�dd�|D�}z|�|�}|j�|�|j�
|�|j�|�|j�|�Wn	tybYnw|j�d	|�|j�|�|��dS)
N�main�EditorWindowrr�rtZboldcSsg|]}|���qSrV)�lower)�.0�srVrVrW�
<listcomp>�sz*FontPage.load_font_cfg.<locals>.<listcomp>)�7�8�9�10�11�12�13�14�16Z18Z20Z22Z25Z29Z34Z40)r/ZGetFontr��sortedr��tkfont�familiesrPr�rr��index�see�
select_set�
select_anchorZactivate�
ValueErrorr��SetMenur��set_samples)	rSZconfigured_fontr�r�r�Zfonts�fontZlc_fontsZcurrent_font_indexrVrVrWr��s0
��zFontPage.load_font_cfgcGs\	|j��}t�ddd|�|j��}t�ddd|�|j��}t�ddd|�|��dS)Nr�r�r�z	font-sizez	font-bold)r�r�r��
add_optionr�r�r��rS�params�valuerVrVrWr��s


zFontPage.var_changed_fontcCs2	|j�|jjdkrtnt�}|j�|���dS)NZ
KeyRelease)	rPr��type�namerrr�r�r�)rS�eventr�rVrVrWr��s
�zFontPage.on_fontlist_selectNcCsJ	|j��}|j��rtjntj}||j��|f}||jd<||jd<dS)Nr�)	r�r�r�r�ZBOLDZNORMALr�r�r�)rSr�r�Zfont_weightZnew_fontrVrVrWr��s

zFontPage.set_samplesr~)
r�r�r�rHr�r�r�r�r�r�rVrVr�rWrk sY"
rkcs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Z�ZS)+rics:t��|�||_|��|_t|�|_|��|��dSr~)	r�rHrh�winfo_toplevel�cdr*�style�create_page_highlight�load_theme_cfg�rSr�rhr�rVrWrH�s

zHighPage.__init__c	s`	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!td"d#�}t�d!td$d#�}t|td%d&�}|j}�_|jd'd(d%d%td)td*�|�d+d,d-��|�d.d/d-��d0}|D]\}}|�t||�q�t|�d1t����}td%|�D]}	|�|	�d2�|	tt |���d3��d4�d5�qÈjD]}
|
f�fd6d7�	}|�!�j|
d)d8|�q�d9|d:<�j"jd;d%d<d=�t#|d;d>��_$t#|�}t%�j$d?�j&d@��_'t(�j$�jdd)dA��_)t*|�j	d%dB�j+dC��_,t*|�j	d)dD�j+dC��_-�j	�.d%�t%|dE�j/d@��_0t1|dFdG�}
t*|�j
d%�j2dHdI��_3t*|�j
d)�j2dJdI��_4t(|�jdddK��_5t(|�jdddK��_6t%|dL�j7d@��_8t1|d!dM��_9|j:t;dNdNt<t=dO�|j:t>dNdNt?dP��j$j:t>dNdNt?dP�|j:t>dNd)dQ�|j:t>dNdNt<t=dO��j'j:t>t<t?dRdSdT��j)j:t>t<t?dRdUdT��j,j:t;t@dV��j-j:tAtBdV��j0j:tCt?dNdNdW�|
j:t>tBdNdNdX��j3j:t>tBdNdY��j4j:t>tBdNd!dX��j5j:t>t?dNdNdW��j6j:t>t?tBdNdNdZ��j8j:t>t?dNdNdW��j9j:t>t?dNd[�dS)\NzNormal Code or Text)�normalZ00zCode Context)�contextZ01zPython Keywords)�keywordZ02zPython Definitions)�
definitionZ03zPython Builtins)�builtinZ04zPython Comments)�commentZ05zPython Strings)�stringZ06z
Selected Text)�hiliteZ07z
Found Text)�hitZ08�Cursor)�cursorZ09zEditor Breakpoint)�breakr�zShell Prompt)�consoler�z
Error Text)�errorr�zShell User Output)�stdoutr�zShell User Exception)�stderrr�zLine Number)�
linenumberr�rtz Custom Highlighting r�z Highlighting Theme r�)r�ry)Zcourier�r>Zhand2r)r�r�rGrFrv�highlightthicknessr�z<Double-Button-1>cS�dS�Nr�rV��erVrVrW�<lambda>u�z0HighPage.create_page_highlight.<locals>.<lambda>z<B1-Motion>cSrrrVrrVrVrWrvr)")z# Click selects item.r���
r�)zcode context sectionr�r)z| cursorr�r)�defr�)� r�)�funcr�)z(param):
  r�)z"Return None."r�)z

  var0 = r�)z'string'r�)z

  var1 = r�)z
'selected'r�)z

  var2 = r�)z'found'r�)z

  var3 = r�)�listr�)�(r�)�Noner�)z)
r�)z  breakpoint("line")r�)z

r��z>>>r�)z	 3.14**2
r�)z9.8596r�rr)z pri r�)�nr�)zt(
r�)�SyntaxErrorr�rr�z.0�dr	r�cs�j�|�dSr~)�highlight_targetr�)r��elemr�rVrW�tem��z+HighPage.create_page_highlight.<locals>.temz<ButtonPress-1>�disabled�state�frame_color_set.TFrameZsolid)ryr�)r�zChoose Color for :�r\ru)r�Z
Foreground)r�r�r\ruZ
BackgroundzSave as New Custom Themez	Select : r[za Built-in Theme�r�r�rur\za Custom Themer�zDelete Custom Theme�ryrw�r`rxr�rarbr��r`rxr���)r`rarbrxr�rsr��r`rbrxr��r`r�rxr�r�)r`rbr�rxr�)r`rbr�)D�theme_elementsrQror�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_targetrr!rr<rr\r��	configurer	rr�r�r�lenr��
splitlines�range�strZtag_bindr�r �frame_color_setr"�	get_colorZbutton_set_colorr2�
targetlistr(�set_color_sample_binding�fg_on�bg_onr��save_as_new_themeZbutton_save_customr%�set_theme_typeZbuiltin_theme_on�custom_theme_on�builtinlist�
customlist�
delete_custom�button_delete_custom�
theme_messagerpr
rrr
rrrrr)rS�frame_customZframe_themeZsample_framer\Zstring_tagsr��tagZn_lines�lineno�elementrZframe_fg_bg_toggleZtheme_type_titlerVr�rWr��s$t��������	�
���
����
�
�

�
�
������
�
��
������
�
��
�zHighPage.create_page_highlightc	s0	�j�tjdddddd��t��}�j��rLt�dd�}|���j�	||�t�dd�}|��|sB�j
�d	��j�d
�n.�j
�	||d�n$t�dd�}|���j
�	||�t�dd�}|���j�	||d����t�j���}|j�fdd
�d��j�	||d�������dS)Nr��Theme�default�boolr��r�rE�	highlight�user�r�- no custom themes -rcs�j|dS)Nr�)r")rTr�rVrWrsz)HighPage.load_theme_cfg.<locals>.<lambda>)�key)r+r�r/�	GetOptionZCurrentThemer��GetSectionList�sortr;r�r:rr&r<r9rr"r�r4�paint_theme_sample�set_highlight_target)rS�current_option�	item_listZtheme_namesrVr�rWr��s6

�
zHighPage.load_theme_cfgcGs�	d}|j��}||vr-t�ddd�|vrt�ddd|d�t�ddd|�d|jd<nt�ddd|�t�dddd	�d	|jd<|��dS)
N)zIDLE ClassiczIDLE Newr�rDr�r�name2zNew theme, see Helpr\r>)r$r�r/rMr�r�r?rP)rSr�Z
old_themesr�rVrVrWr#s

z!HighPage.var_changed_builtin_namecGs4	|j��}|dkrt�ddd|�|��dSdS)NrKr�rDr�)r&r�r�r�rPr�rVrVrWr%s
�z HighPage.var_changed_custom_namecG�8	|j��}t�ddd|�|r|��dS|��dS)Nr�rDrE)r+r�r�r�r#r%r�rVrVrWr*$s
z!HighPage.var_changed_theme_sourcecG�	|��dSr~)�on_new_color_set�rSr�rVrVrWr(1�zHighPage.var_changed_colorcGrVr~)rQrXrVrVrWr,5rYz%HighPage.var_changed_highlight_targetcC�`	|j��rd|jd<d|jd<|j�d�dSd|jd<|j�d�d|jd<|j�d�dS�Nr�rrrJ�z	!disabled)r+r�r;r<r>rr:r�rVrVrWr99s




zHighPage.set_theme_typecCs�	|j��}|j�|jdd�}tj|d||d�\}}|rG||krI|j��r?d}|�|�}|s2dS|�	|�|j
�|�dS|j
�|�dSdSdS)Nr��
backgroundzPick new color for : )rIrKZinitialcolorz_Your changes will be saved as a new Custom Theme. Enter a name for your new Custom Theme below.)rr�r��lookupr2r-Zaskcolorr+�get_new_theme_name�
create_newr)r�)rS�targetZ
prev_colorZ	rgbTupletZcolor_string�message�	new_themerVrVrWr3Us&
�
�


�zHighPage.get_colorcCs�	|j��}|jjd|d�|j��rdnd}|j|j��d}|jj|fi||i��|j	��}|d|}t
�d|||�dS)Nr�r]�
foregroundr]r�-rH)r)r�r�r-r'r"rr��
tag_configr&r�r�)rSZ	new_color�planeZsample_element�themeZ
theme_elementrVrVrWrW{s

zHighPage.on_new_color_setcC�.	t�dd�t�dd�}t|d||�j}|S)NrIrHrEzNew Custom Theme�r/rNr4�result)rSrb�
used_namesrcrVrVrWr_��

���zHighPage.get_new_theme_namecC�"	|�d�}|r|�|�dSdS)NzNew Theme Name:)r_r`)rS�new_theme_namerVrVrWr8�s

�zHighPage.save_as_new_themecCs�	|j��rd}|j��}nd}|j��}t�||�}|tdvr2td|}|D]}||||<q)|�||�t�dd�}|�	�|j
�||�|j�d�|�
�dS)NrErIrHr)r+r�r$r&r/ZGetThemeDictr��save_newrNrOr<r�r�r9)rSrpZ
theme_type�
theme_namercZ
theme_changesrCZcustom_theme_listrVrVrWr`�s"

zHighPage.create_newcCsf	|j��dkr|j�d�|j�d�|j�d�n|j�d�|j�d�|j�d�|��dS)Nr�rJr�r\)rr�r6rr7r'r��set_color_sampler�rVrVrWrQ�szHighPage.set_highlight_targetcGrVr~)rs)rS�argsrVrVrWr5�sz!HighPage.set_color_sample_bindingcCsJ	|j|j��d}|j��rdnd}|j�||�}|jjd|d�dS)Nrrer]rrd)r"rr�r'r�Ztag_cgetr�r-)rSrArhr)rVrVrWrs�s
zHighPage.set_color_samplecCs�	|j��r|j��}n|j��}|jD]O}|j|d}t�||�}|dkr1t�|d�d|d<|tdvrYtd|}|d|vrK||d|d<|d|vrY||d|d<|jj	|fi|��q|�
�dS)	Nrr�r�r]rHz-foregroundrez-background)r+r�r$r&r"r/ZGetHighlightr�r�rgrs)rSriZ
element_titlerCZcolorsZ
theme_dictrVrVrWrP�s*


��zHighPage.paint_theme_samplecCs<	tjd�|�|D]}||}tjd�|||�qdS)NrH�r/�userCfgZ
AddSection�	SetOption)rSrrrirCr�rVrVrWrqs�zHighPage.save_newcO�tj|i|��Sr~�r.�askyesno�rSrt�kwargsrVrVrWrz*rzHighPage.askyesnocCs�	|j��}d}|jd|||d�sdS|j��t�d|�t�dd�}|�	�|s9|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�rIrHrIrJrKrr�rDrEr�)r&r�rzr�r�r��delete_sectionr/rNrOr:rr<r�r+r��
defaultCfg�Getr$r�rhr�r�r9)rSrr�delmsgrSrVrVrWr=.s*

�


zHighPage.delete_custom)r�r�r�rHr�r�r#r%r*r(r,r9r3rWr_r8r`rQr5rsrPrqrzr=r�rVrVr�rWri�s.4
&((rics�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zedd��Zdd �Zd!d"�Z�ZS)#rlcs0t��|�||_|��|_|��|��dSr~)r�rHrhr�r��create_page_keys�load_key_cfgr�r�rVrWrH`s

zKeysPage.__init__cs$	t�t|�|j�|_t�t|�|j�|_t�t|�|j�|_	t�t|�|j
�|_t|dt
dd�}t|dt
dd��t|�}t|dd�}t|�}t|td�}t|ttd�|_|j�d	|j�|jj|d
<|jj|d
<|j|jd<|j|jd<t|d
|jdd�|_�fdd�td�D�}t|d|j	d|jdd�|_ t|d|j	d|jdd�|_!t"|d|jddd�|_#t"|d|jddd�|_$t|dd|j%d�|_&t|dd|j'd�|_(t|ddd�|_)|j*t+ddt,t-d��j*t+ddt-d�|jj*t+t.ddd�|j*t/ddt,t-d�|j0ddd �|j1ddd �|j2dddt3d!�|jj2ddt4d"�|j2ddt5d"�|j2ddt6d"�|j j2ddt3t5d"�|j!j2ddt3t5d"�|j#j2ddt4d"�|j$j2ddt4d"�|j)j2ddt4ddd#�|j&j*t/t.d$dd%�|j(j*t/t.d$dd%�|dj*t7t-d$d&�|dj*t7t.d$dd'�dS)(Nrtz Custom Key Bindings r�z	 Key Set zAction - Key(s)r[�Zorient)rvr�r�rur�ZxscrollcommandzGet New Keys for Selectionr)r\rurcsg|]	}t�ddd��qS)rtr)rYry)r )r��i�Zframe_key_setsrVrWr��s�z-KeysPage.create_page_keys.<locals>.<listcomp>rr�zUse a Built-in Key SetrzUse a Custom Key Setr�zDelete Custom Key SetrzSave as New Custom Key Setrrwrr�r r�)r�r�Z
columnspanrZ�r�r�rZ)r�r�rZrxr�T)r`rbrarx�r`rbra)r`rbrar�)8rQrorr#r$r%r&r�var_changed_keyset_source�
keyset_source�var_changed_keybinding�
keybindingr!rr r%r)rrr	�bindingslistr��on_bindingslist_selectr�Zxviewr�r"�get_new_keys�button_new_keysr0r(�
set_keys_typeZbuiltin_keyset_on�custom_keyset_onr2r;r<�delete_custom_keys�button_delete_custom_keys�save_as_new_key_setZbutton_save_custom_keys�keys_messagerprrrrr
r�r�rerrrrr
)rSr@Zframe_targetZtarget_titleZscroll_target_yZscroll_target_xZframesrVr�rWr�gs�Q
�
�
�
������
�������zKeysPage.create_page_keysc	Cs�	|j�tjdddddd��t��}|j��rLt�dd�}|��|j�	||�t�dd�}|��|sB|j
�d	�|j�d
�n.|j
�	||d�n$t�dd�}|��|j
�	||�t�dd�}|��|j�	|t���|��t��}|�|�dS)Nr��KeysrErFr�rGr�rIrJ�- no custom keys -r)r�r�r/rMZCurrentKeysr�rNrOr;r�r�rr&r<�default_keysr��load_keys_list)rSrRrS�keyset_namerVrVrWr�s0

�
zKeysPage.load_key_cfgcGs�	d}|j��}||vr-t�ddd�|vrt�ddd|d�t�ddd|�d|jd<nt�ddd|�t�dddd	�d	|jd<|�|�dS)
N)zIDLE Classic WindowszIDLE Classic UnixzIDLE Classic MaczIDLE Classic OSXr�r�r�rrTzNew key set, see Helpr\r>)r$r�r/rMr�r�r�r�)rSr�Zold_keysr�rVrVrWr#&s

z!KeysPage.var_changed_builtin_namecGs6	|j��}|dkrt�ddd|�|�|�dSdS)Nr�r�r�r�)r&r�r�r�r�r�rVrVrWr%:s
�z KeysPage.var_changed_custom_namecGrU)Nr�r�rE)r�r�r�r�r#r%r�rVrVrWr�As
z"KeysPage.var_changed_keyset_sourcecGsn	|j��}|j��}|j�t���d}t�|�r$t�	d|||�dSt�
|�}|d}t�	d|||�dS)Nrr�Z_cfgBindings�
extensions)r�r�r&r�r�splitr/Z
IsCoreBindingr�r�ZGetExtnNameForEvent)rSr�r�Zkey_setr��ext_nameZext_keybind_sectionrVrVrWr�Js



zKeysPage.var_changed_keybindingcCrZr[)r�r�r;r<r�rr�r�rVrVrWr�Vs




zKeysPage.set_keys_typecCsH	|j�t�}|j�|�}|��d}|j��r|j��}n|j��}t�	�}|t
dvr@t
d|}|D]
}||��||<q5t|���}t
|d||�j}	|	r�|j��rqd}
|�|
�}|sl|j�|�|j�|�dS|�|�|j�|�|j�||d|	�|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�r�r�r$r&r/ZGetCurrentKeySetr�r�valuesr1rl�get_new_keys_namer�r��create_new_key_set�deleter�r�r�)rS�
list_index�binding�	bind_nameZcurrent_key_set_nameZcurrent_bindings�key_set_changesr�Zcurrent_key_sequences�new_keysrb�
new_keysetrVrVrWr�bsD

��


zKeysPage.get_new_keyscCrj)NrIr�rEzNew Custom Key Setrk)rSrbrmr�rVrVrWr��rnzKeysPage.get_new_keys_namecCro)NzNew Key Set Name:)r�r�)rSZ
new_keys_namerVrVrWr��s

�zKeysPage.save_as_new_key_setcCs	|j�d�dS)Nr\)r�r�rSr�rVrVrWr��szKeysPage.on_bindingslist_selectc
Cs�	|j��r|j��}n|j��}t�|�}i}|D]}|dd�}d�||�}|||<q|tdvrEtd|}|D]}||||<q<|�||�t�	dd�}	|	�
�|j�|	|�|j�
d�|��dS)Nrt���r	r�rIr)r�r�r$r&r/ZGetCoreKeys�joinr��save_new_key_setrNrOr<r�r�r�)
rSZnew_key_set_nameZprev_key_set_nameZ	prev_keysr�r�Z
event_namer�r�Zcustom_key_listrVrVrWr��s(



zKeysPage.create_new_key_setcCs�	d}|j��rd}|j�t�}t�|�}t|���}|��|j�	dt
�|D]0}d�||�}|dd�}|tdvrM|td|vrMtd||}|j�
t
|d|�q(|ro|j�|�|j�|�|j�|�dSdS)	NFTrr	rtr�r�r�)r��curselectionr�rr/Z	GetKeySetrr�rOr�rr�r�r�r�r�r�)rSr�Zreselectr��keysetZ
bind_namesr�rLrVrVrWr��s*

�zKeysPage.load_keys_listcCs<	tjd�|�|D]}||}tjd�|||�qdS)Nr�ru)r�r�r�r�rVrVrWr��s	�zKeysPage.save_new_key_setcOrxr~ryr{rVrVrWrz�rzKeysPage.askyesnocCs�	|j��}d}|jd|||d�sdS|j��t�d|�t�dd�}|�	�|s9|j
�d�|j�
|d�n	|j�
||d�|j�tjd	�d
d��|j�tjd	�d
d�p^t���t��|j��|j��|��dS)
Nz0Are you sure you wish to delete the key set %r ?zDelete Key Setr}r�rIrJr�rr�r�rEr�)r&r�rzr�r�r�r~r/rNrOr�rr<r�r�r�rr�r$r�r�rhr�r�r�)rSr�r�rSrVrVrWr��s2

�
��

zKeysPage.delete_custom_keys)r�r�r�rHr�r�r#r%r�r�r�r�r�r�r�r�r��staticmethodr�rzr�r�rVrVr�rWrl^s(!	,
rlc�4eZdZ�fdd�Zdd�Zdd�Zdd�Z�ZS)	rmc�(t��|�|��|��|��dSr~)r�rH�init_validators�create_page_windows�load_windows_cfg�rSr�r�rVrWrH�zWinPage.__init__c�*t�d���fdd�}|�|�df|_dS)N�[0-9]*c�	��|�duSr~��	fullmatch�r��Zdigits_or_empty_rerVrW�is_digits_or_empty�z3WinPage.init_validators.<locals>.is_digits_or_empty�%P��re�compile�register�digits_only�rSr�rVr�rWr��
zWinPage.init_validatorscCs�	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|dtdd
�}t|dd�}t|dd�}t||jddd�|_t||jddd�|_t|dd�}t|dd�}t|dd�}t||jd|jdd�|_t|dd�}t||jd|jdd�|_t|dd�}t|dd�}	zt||jddd|jdd�|_Wnty�t||jdttdd ��dd!�|_Ynwt|d"d�}
t |d#|j	d$�|_!t|dd�}t|d%d�}t||j
d&|jdd�|_"t|dd�}
t|
d'd�}t#|
|jd(d)d*d(�|_$t|dd�}t|d+d�}t||jd&|jdd�|_%t |d,|j
d$�|_&t|dd�}t|d-d�}t||jd.|jdd�|_'|j(t)d/d/t*t+d0�|j(t)d/dt,d1�|j(t-t.d/d/d2�|jj(t/t.d/d/d2�|jj(t/t.d/d/d2�|j(t)d/dt,d1�|j(t-t.d/d/d2�|jj(t/t0dd/d2�|j(t/t0d/d3�|jj(t/t0dd/d2�|j(t/t0d/d3�|j(t)d/dt,d1�|	j(t-t.d/d4�|jj(t-t.dd4�|j!j(t/t0d5d/d2�|j(t)d/dt,d1�|j(t-t.d/d/d2�|j"j(t)dd/d6�|
j(t)d/dt,d1�|j(t-t.d/d/d2�|j$j(t)dd/d6�|j(t)d/dt,d1�|j(t-t.d/d4�|j&j(t/t0d5d/d2�|j%j(t)t.d5d/d2�|j(t)d/dt,d1�|j(t-t.d/d/d2�|j'j(t)dd/d6�dS)7N)r��General�editor-on-startup)r�r�rG)r�r�rF)r��Indent�
num-spaces)r�r��cursor-blink)r�r7�	popupwait)r�r9r�)r�r9�flash-delay)r�r9�bell)r�r:�	max-widthrtz Window Preferencesr�rrz
At Startupr[r�zOpen Edit Window�r�r�r\zOpen Shell Windowz$Initial Window Size  (in characters)ZWidthrsrL��textvariablerG�validatecommand�validateZHeightzIndent spaces (4 is standard)�
)r�Zfrom_�torGr�r��readonly�)r�rr�rGzCursor BlinkzCursor blink)r\r�z%Completions Popup Wait (milliseconds)rrzParen Match StyleZ
expression�openerZparensz;Time Match Displayed (milliseconds)
(0 is until next input)zBell on MismatchzFormat Paragraph Max Widthrrwrr�r!�r`r�r�r�r�r)1rQror�startup_editr�	win_width�
win_height�
indent_spacesr�cursor_blink�autocomplete_wait�paren_style�flash_delay�
paren_bell�format_widthr!rr r%r(Zstartup_editor_onZstartup_shell_onr$r�Z
win_width_intZwin_height_intr+Zindent_chooserrr,rr0r#Zcursor_blink_boolZ
auto_wait_intr&Zparen_style_typeZparen_flash_timeZbell_onZformat_width_intrpr
rrrr
rrr)rSZframe_windowZ	frame_runZ
startup_titleZframe_win_sizeZwin_size_titleZwin_width_titleZwin_height_titleZframe_cursorZindent_titleZcursor_blink_titleZframe_autocompleteZauto_wait_titleZframe_paren1Zparen_style_titleZframe_paren2Zparen_time_titleZframe_formatZformat_width_titlerVrVrWr�s(�����������������������������zWinPage.create_page_windowscCs|j�tjddddd��|j�tjddddd��|j�tjddd	dd��|j�tjdd
ddd��|j�tjddddd��|j�tjd
dddd��|j	�t�d
dd��|j
�tjd
dddd��|j�t�d
dd��|j�tjd
dddd��dS)Nr�r�r�rF�r�r�rG�intrFr�r�r�r�r7r�r9r�r�r�r:r�)
r�r�r/rMr�r�r�r�r�r�r�r�r�r�rVrVrWr��s<
�
�
�
�
�
�
�
�
�
�zWinPage.load_windows_cfg)r�r�r�rHr�r�r�r�rVrVr�rWrms+rmcr�)	rncr�r~)r�rHr��create_page_shed�load_shelled_cfgr�r�rVrWrH�r�zShedPage.__init__cr�)Nr�cr�r~r�r�r�rVrWr��r�z4ShedPage.init_validators.<locals>.is_digits_or_emptyr�r�r�rVr�rWr��r�zShedPage.init_validatorscCsV	t�t|�d�|_t�t|�d�|_t�t|�d�|_t�t|�d�|_t	|dt
dd�}t	|dt
dd�}t|d	d
�}t|dd�}t
|d
|j|jdd�|_t|d	d
�}t|dd�}t||jd	dd�|_t||jddd�|_t|d	d
�}t|dd�}t||jdd�|_t|d	d
�}	t|	dd�}
t
|	|jd|jdd�|_|jtddtd�t|���|jtddtd�|jtdd	td�|jttddd�|jjtddd�|jtdd	td�|jttddd�|jjttddd�|jjttddd�|jtdd	td�|jttddd�|jjtddd�|	jtdd	td�|
jttddd�|jjtddd�dS)N)r��PyShell�auto-squeeze-min-lines)r�r��autosave)r�r��line-numbers-default)r�r8�maxlinesrtz Shell Preferencesr�z Editor PreferencesrrzAuto-Squeeze Min. Lines:r[rrL)rGr�r�r�zAt Start of Run (F5)  zPrompt to Saver�r�z	No Promptz Show line numbers in new windows)r�rGzMax Context Lines :rsr�rwr�r!r)rQror�auto_squeeze_min_linesrr�r�line_numbers_default�
context_linesr!rr r%r$r�Zauto_squeeze_min_lines_intr(Zsave_ask_onZsave_auto_onr#Zline_numbers_default_boolZcontext_intrpr
rrr
rr)rSZframe_shellZframe_editorZframe_auto_squeeze_min_linesZauto_squeeze_min_lines_titleZ
frame_saveZrun_save_titleZframe_line_numbers_defaultZline_numbers_default_titleZ
frame_contextZ
context_titlerVrVrWr��s��������������zShedPage.create_page_shedc	Csn|j�tjddddd��|j�tjddddd	d
��|j�tjdddd	d��|j�tjd
dddd��dS)Nr�r�r�r�r�r�r�rrF)rEr�r�r�r�r8r�)r�r�r/rMr�r�r�r�rVrVrWr�Ys
�

�
�
�zShedPage.load_shelled_cfg)r�r�r�rHr�r�r�r�rVrVr�rWrn�s
hrncsLeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	�Z
S)rgcsDt��|�tjd|_tjd|_|�t�|_|�	�|�
�dS)Nr�)r�rHr/r�ext_defaultCfgrv�ext_userCfgr��is_int�load_extensions�create_page_extensionsr�r�rVrWrHgszExtPage.__init__cCs~	t|�|_t|dtdd�}t|dtdd�|_|jddd�|jddd�t||jdd	�|_	|j	�
d
|j�t||j	j
d�}|j|j	_t|ddd
�|_|j	jdddd�|jdddd�|jjdddddgd�|jdd�i|_d|_||_|j	|_d}t|j�D]}|�|�|d|d}q�|j�|�|j	�d�|�d�|jdddd�t|�jddd�|jjdddd�dS)Nrtz Feature Extensions r�z Help Menu Extensions rr�r�Zbrowse)ZlistvariableZ
selectmodez<<ListboxSelect>>r��)rGrFZnws�r�r�rZ�nsr�r�)r�r�rZrxrXr>�{z} r�)r�r�Zsew)rZextension_namesr!r�	HelpFrameZ
frame_helpr�r�r�extension_listr��extension_selectedr)r�r�r��
details_framerer-�config_frame�current_extensionZ
outerframeZtabbed_page_setr�r��create_extension_frameZ
selection_setr%)rSZ	frame_extZscrollZ	ext_namesr�rVrVrWr�osF
���


zExtPage.create_page_extensionsc

CsD	i|_tjdd�D]}g|j|<q
|jD]�}t|j�|��}dd�|D�}|D]}|�|�q(||}|D]h}|jj||dd�}zddd�|}d}Wntykzt	|�}d	}Wn
t
yh|}d}YnwYnwz
|jj|||d|d
�}Wnt
y�|}Ynwt|�}	|	�
t|��|j|�|||||	d��q6qdS)NF)Zactive_onlycSsg|]	}|�d�r|�qS)�enable)�
startswith)r��opt_namerVrVrWr��s
�z+ExtPage.load_extensions.<locals>.<listcomp>T)�raw)�True�FalserFr�)r�rrE)r�r�rEr��var)r�r/Z
GetExtensionsr�r�Z
GetOptionList�remover��KeyErrorr�r�r�rr�r1�append)
rSr�Zopt_listZenablesrZdef_strZdef_objZopt_typer�r	rVrVrWr��sZ
����
��
���zExtPage.load_extensionscCs�	|j��}|r|j�|�}|dus||jkr,|jr,|jjdd�|j|j��d|_|rE|jj|d�|j|jdddd�||_dSdS)Nr>r[rr�r�)	r�r�r�rr�r�rZgrid_forgetre)rSr�ZnewselrVrVrWr��s

�zExtPage.extension_selectedcCs�	t|jddd�}||j|<|j}t|j|�D]W\}}t||dd�}|j|dtd�|d}|dd	krGt	||d
ddd
�j|dt
dd�q|ddkrat||d|jdfdd�j|dt
dd�qt||dd�j|dt
dd�qdS)Nr�rEr�r[rr�r	r�rFrrr)r�r�r�rGr��)r�r�rZrxr�rLr�r�)r�r�r�rGr�)r�rG)�VerticalScrolledFramer�r�interior�	enumerater�r%rerr#rr$r�r)rSr��fZ
entry_arear��optZlabelr	rVrVrWr�s0
�
�
�
�
�zExtPage.create_extension_framecCsZ	|d}|d}|d����p|}|d�|�||kr%|j�||�S|j�|||�S)Nr�rEr	)r�r�r�r�ZRemoveOptionrw)rS�sectionrr�rEr�rVrVrW�set_extension_valueszExtPage.set_extension_valuecCsL	d}|jD]}|j|}|D]
}|�||�rd}qq|r$|j��dSdS)NFT)r�rr�ZSave)rSZhas_changesr��optionsrrVrVrWr�s

���z#ExtPage.save_all_changed_extensions)r�r�r�rHr�r�r�rrr�r�rVrVr�rWrgfs?.rgcs\eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Z�ZS)r�cs(t�j|fi|��|��|��dSr~)r�rH�create_frame_help�
load_helplist)rSr�Zcfgr�rVrWrH+szHelpFrame.__init__cCs	t|�}t|ddtd�|_t|�}|jj|d<|j|jd<|j�d|j�t|�}t	|ddd	|j
d
�|_t	|dd	|jd�|_
t	|d
dd	|jd
�|_|jtddttd�|jjttttd�|jtttd�|jtddtd�|jjttdd�|j
jttd�|jjttdd�dS)NrwTr�rur�r�ZEditrr)r\rrGruZAdd)r\rGruZRemover)r`r�rarb)r`r�rbr�r�r�)r rr	�helplistr)r�r�r��help_source_selectedr"�helplist_item_edit�button_helplist_edit�helplist_item_addZbutton_helplist_add�helplist_item_remove�button_helplist_removerpr
rrrrrrr
)rSZframe_helplistZscroll_helplistZ
frame_buttonsrVrVrWr0s<����zHelpFrame.create_frame_helpcCrVr~)�set_add_delete_stater�rVrVrWrbrYzHelpFrame.help_source_selectedcCsn	|j��dkr|j�d�|j�d�dS|j��r)|j�d�|j�d�dS|j�d�|j�d�dS)Nr�rJr\)r�sizerrrr�r�rVrVrWrfs
zHelpFrame.set_add_delete_statecCs@	t|d�j}|r|j�|�|j�t|d�|��dSdS)NzNew Help Sourcer)r5rl�
user_helplistrrr�r�update_help_changes)rS�help_sourcerVrVrWrss�zHelpFrame.helplist_item_addcCs�	|j�t�}|j|}t|d|d|dd�j}|r=||kr?||j|<|j�|�|j�||d�|��|�	�dSdSdS)NzEdit Help Sourcerr�)Zmenuitem�filepath)
rr�rr!r5rlr�r�r"r)rS�
item_indexr#Znew_help_sourcerVrVrWrs"
��
�zHelpFrame.helplist_item_editcCs6	|j�t�}|j|=|j�|�|��|��dSr~)rr�rr!r�r"r)rSr%rVrVrWr�szHelpFrame.helplist_item_removecCsX	itdd<tdt|j�d�D]}t�ddt|�d�|j|ddd���qdS)Nr�Z	HelpFilesr��;rt)r�r0r.r!r�r1r�)rS�numrVrVrWr"�s
��zHelpFrame.update_help_changescCsBt��|_|j�dd�|jD]}|j�t|d�q|��dS)Nrr�)r/ZGetAllExtraHelpSourcesListr!rr�r�rr)rSZ	help_itemrVrVrWr�s


zHelpFrame.load_helplist)
r�r�r�rHrrrrrrr"rr�rVrVr�rWr�)s2
r�c@sBeZdZ	dd�Zdd�Zdd�Zedd��Zd	d
�Zdd�Z	d
S)�VarTracecCs	g|_g|_dSr~)�untraced�tracedr�rVrVrWrH�s
zVarTrace.__init__cCs	|j��|j��dSr~)r)r�r*r�rVrVrWr��s
zVarTrace.clearcCs,	t|t�r|�||�}|j�||f�|Sr~)�
isinstance�tuple�
make_callbackr)r�rSr	�callbackrVrVrWro�s

zVarTrace.addcs	��fdd�}|S)Ncs	tjg������R�dSr~)r�r�r�)r��r�r	rVrW�default_callback�sz0VarTrace.make_callback.<locals>.default_callbackrV)r	r�r1rVr0rWr-�szVarTrace.make_callbackcCs@	|jr|j��\}}|�d|�|j�||f�|jsdSdS)N�write)r)�popZ	trace_addr*rr.rVrVrWrR�s�zVarTrace.attachcCsL	|jr$|j��\}}|�d|��dd�|j�||f�|jsdSdS)Nr2rr�)r*r3Ztrace_removeZ
trace_infor)rr.rVrVrW�detach�s�zVarTrace.detachN)
r�r�r�rHr�ror�r-rRr4rVrVrVrWr(�s
r(a7When 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/Tabsr]r�r�r^cCs.	|sdSzt|�WdStyYdSw)NTF)r�r�r�rVrVrWr�3	s�r�c@seZdZ	dd�ZdS)rcs�tj||g|�Ri|��t|td�}|jtttd�t|dd|j	dd���jt
ttd�|j
�jd���d���d�t��|_��jdd�td����fd	d
�}��d|����fdd
�}��d|�dS)Nr�)rbr`rar��)ryr�r�rGr�r�)Zwindowr�cs$������f}�jd|d�dS)Nz	0 0 %s %s)Zscrollregion)�winfo_reqwidthZwinfo_reqheightr�)r�r )�canvasrrVrW�_configure_interiorZ	sz;VerticalScrolledFrame.__init__.<locals>._configure_interiorz<Configure>cs*������kr�j����d�dSdS)N)rG)r6Zwinfo_widthZ
itemconfigure)r��r7rZinterior_idrVrW�_configure_canvas`	s�z9VerticalScrolledFrame.__init__.<locals>._configure_canvas)r rHr)rrprrr	rr�r
rrr�r�Zxview_movetoZyview_movetorZ
create_windowrr�)rSrIrt�kwZ
vscrollbarr8r:rVr9rWrHE	s"�

zVerticalScrolledFrame.__init__N)r�r�r�rHrVrVrVrWr>	sr�__main__)r�z#idlelib.idle_test.test_configdialogrtF)�	verbosity�exit)�run)br��tkinterrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrZtkinter.ttkr r!r"r#r$r%r&r'r(r)r*r+r,r-Ztkinter.fontr�r�r.Zidlelib.configr/r0Zidlelib.config_keyr1Zidlelib.dynoptionr2Zidlelibr3Z
idlelib.queryr4r5Zidlelib.textviewr6Zidlelib.autocompleter7Zidlelib.codecontextr8Zidlelib.parenmatchr9Zidlelib.formatr:Zidlelib.squeezerr;r<r�r�r=r�rkrirlrmrnrgr�r(rQr�r�r�rr�Zunittestr�Zidlelib.idle_test.htestr?rVrVrVrW�<module>s��<�W�+4SD=�>
+�