<!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~dL˜ ã               @   sZ  d dl Z d dl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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mZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z. d dl/m0Z1 d dlm2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d d	l<m=Z=m>Z> d d
l?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dl?mKZK e5ƒ ZLeBeDeFeHeJfZMG dd„ deƒZNdaOG dd„ de!ƒZPG dd„ de!ƒZQG dd„ de!ƒZRG dd„ de!ƒZSG dd„ dƒZTeTƒ ZUdZVdd d!d"d#œZWd$d%„ ZXG d&d'„ d'e!ƒZYeZd(krVd d)l[m\Z\ e\d*d+d,d- d d.l]m^Z^ e^eNƒ dS )/é    N)ÚToplevelÚListboxÚScaleÚ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)ÚFrameÚ
LabelFrameÚButtonÚCheckbuttonÚEntryÚLabelÚ
OptionMenuÚNotebookÚRadiobuttonÚ	ScrollbarÚStyle)Ú
messagebox)ÚidleConfÚConfigChanges)ÚGetKeysDialog)ÚDynOptionMenu)Úmacosx)ÚSectionNameÚ
HelpSource)Ú	view_text)ÚAutoComplete)ÚCodeContext)Ú
ParenMatch)ÚFormatParagraph)ÚSqueezer)ÚScrollableTextFramec                   sž   e Zd Zd$dddœdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z‡ fdd„Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Z‡  ZS )%ÚConfigDialogÚ F)Ú_htestÚ_utestc            C   sÚ   t  | |¡ || _|ri |_|s(|  ¡  | jdd |  |p>d¡ | ¡ d }| ¡ |s\dnd }|  	d|› d|› ¡ |  
¡  | jttd |  |¡ |  d	| j¡ | jj ¡  t ¡  |sÖ|  ¡  |  ¡  |  ¡  d S )
Né   )ÚborderwidthzIDLE Preferencesé   é   é–   ú+)ÚheightÚwidthZWM_DELETE_WINDOW)r   Ú__init__ÚparentÚinstance_dictZwithdrawÚ	configureÚtitleZwinfo_rootxZwinfo_rootyZgeometryÚcreate_widgetsZ	resizabler
   Z	transientZprotocolÚcancelÚfontpageÚfontlistZ	focus_setÚtracersÚattachZgrab_setZwm_deiconifyZwait_window)ÚselfrG   rJ   r<   r=   ÚxÚy© rT   ú9/opt/alt/python37/lib64/python3.7/idlelib/configdialog.pyrF   0   s*    
zConfigDialog.__init__c             C   sÀ   t | ƒ | _}t|ƒ| _t|| jƒ| _t|ƒ| _t|ƒ| _	|  
¡ | _|j| jdd |j| jdd |j| jdd |j| j	dd |j| jdd | ¡  |jtttd |  ¡ jtd d S )	Nz
Fonts/Tabs)ÚtextÚ
Highlightsz Keys z	 General Z
Extensions)ÚsideÚexpandÚfill)rX   )r'   ÚnoteÚHighPageÚhighpageÚFontPagerM   ÚKeysPageZkeyspageÚGenPageZgenpageÚcreate_page_extensionsZextpageÚaddZenable_traversalÚpackr   r	   r   Úcreate_action_buttonsr   )rQ   r[   rT   rT   rU   rK   `   s    



zConfigDialog.create_widgetsc             C   s¾   t  ¡ ri }nddi}t| dd}t|dd}i | _xbd| jfd| jfd| jfd| jffD ]:\}}t|f||t	d	œ|—Ž| j|< | j| j
td
d qZW t|dddj
td |j
td |S )NÚpadding)é   é   é   )re   ZOkZApplyZCancelZHelp)rV   ÚcommandÚ	takefocusr>   )rX   Úpadxr   )rD   r?   )rX   )r0   ZisAquaTkr    ZbuttonsÚokÚapplyrL   Úhelpr"   r
   rc   r   r   r   )rQ   Zpadding_argsZouterZbuttons_frameZtxtÚcmdrT   rT   rU   rd      s"    
z"ConfigDialog.create_action_buttonsc             C   s   |   ¡  |  ¡  d S )N)rm   Údestroy)rQ   rT   rT   rU   rl   §   s    zConfigDialog.okc             C   s$   |   ¡  t ¡  |  ¡  |  ¡  d S )N)Údeactivate_current_configÚchangesÚsave_allÚsave_all_changed_extensionsÚactivate_config_changes)rQ   rT   rT   rU   rm   ±   s    zConfigDialog.applyc             C   s   t  ¡  |  ¡  d S )N)rr   Úclearrp   )rQ   rT   rT   rU   rL   ¾   s    zConfigDialog.cancelc                s&   | j j dd¡a|  ¡  tƒ  ¡  d S )Nz1.0Úend)rM   Úfont_sampleÚgetÚfont_sample_textZgrab_releaseÚsuperrp   )rQ   )Ú	__class__rT   rU   rp   Ç   s    zConfigDialog.destroyc             C   s8   | j j| j  ¡ dd ¡ }t| dtt |d¡ d d S )NrV   )ÚoptionzHelp for IDLE preferencesr;   )rJ   Úcontents)r[   ZtabZselectÚstripr3   Úhelp_commonÚ
help_pagesry   )rQ   ZpagerT   rT   rU   rn   Í   s    zConfigDialog.helpc             C   s&   | j j ¡ }x|D ]}| ¡  qW d S )N)rG   rH   ÚkeysZRemoveKeybindings)rQ   Úwin_instancesÚinstancerT   rT   rU   rq   Ù   s    
z&ConfigDialog.deactivate_current_configc             C   sd   | j j ¡ }x<|D ]4}| ¡  | ¡  | ¡  | ¡  | ¡  | ¡  qW xt	D ]}| 
¡  qPW d S )N)rG   rH   r‚   ZResetColorizerZ	ResetFontZset_notabs_indentwidthZApplyKeybindingsZreset_help_menu_entriesZupdate_cursor_blinkÚreloadablesÚreload)rQ   rƒ   r„   ÚklassrT   rT   rU   ru   ä   s    

z$ConfigDialog.activate_config_changesc             C   sh  | j }t| jƒ}tjd | _tjd | _|  t	¡| _	|  
¡  t| ƒ| _|jddd |jddd t|| jdd| _| j d| j¡ t|| jjd	}|j| j_t|d
d
d| _| jjdddd |jdddd | jjdddddgd |jdd i | _d | _| | _| j| _d}x.t| j ƒD ] }|  !|¡ |d | d }qW | j |¡ | j "d¡ |  d ¡ |S )NÚ
extensionsr   é   )Úweightrh   Zbrowse)ZlistvariableZ
selectmodez<<ListboxSelect>>)ri   éú   )rE   rD   Znws)ÚcolumnÚrowÚstickyÚnsÚnsewé
   )rŒ   r   rŽ   rk   )re   r;   Ú{z} )#rG   r    r[   r,   Ú
defaultCfgÚext_defaultCfgÚuserCfgÚext_userCfgÚregisterÚis_intÚload_extensionsr   Zextension_namesÚrowconfigureÚcolumnconfigurer   Úextension_listÚbindÚextension_selectedr)   ÚyviewÚsetÚyscrollcommandr!   Údetails_frameÚgridrI   Úconfig_frameÚcurrent_extensionZ
outerframeZtabbed_page_setÚsortedrˆ   Úcreate_extension_frameZselection_set)rQ   rG   ÚframeZscrollZ	ext_namesÚext_namerT   rT   rU   ra   õ   s>    





z#ConfigDialog.create_page_extensionsc       
      C   s^  i | _ xtjddD ]}g | j |< qW x0| j D ]$}t| j |¡ƒ}dd„ |D ƒ}x|D ]}| |¡ qZW || }xà|D ]Ø}| jj||dd}ydddœ| }d}W nB tk
rè   yt	|ƒ}d	}W n t
k
râ   |}d }Y nX Y nX y| jj|||d|d
}W n t
k
r   |}Y nX t| ƒ}	|	 t|ƒ¡ | j |  |||||	dœ¡ qzW q0W d S )NF)Zactive_onlyc             S   s   g | ]}|  d ¡r|‘qS )Zenable)Ú
startswith)Ú.0Úopt_namerT   rT   rU   ú
<listcomp>>  s    z0ConfigDialog.load_extensions.<locals>.<listcomp>T)Úraw)ÚTrueÚFalseÚboolÚint)Útyper®   Údefault)Únamer³   r´   ÚvalueÚvar)rˆ   r,   ZGetExtensionsr¦   r”   ZGetOptionListÚremoveÚGetÚKeyErrorr²   Ú
ValueErrorr–   r   r    ÚstrÚappend)
rQ   r©   Zopt_listZenablesr¬   Zdef_strZdef_objZopt_typer¶   r·   rT   rT   rU   r™   3  sF    


zConfigDialog.load_extensionsc             C   sˆ   | j  ¡ }|r| j  |¡}|d ks,|| jkrV| jrV| jjdd | j| j  ¡  d | _|r„| jj|d | j| jdddd || _d S )Nr;   )rV   r   r   )rŒ   r   rŽ   )	rœ   Úcurselectionry   r¥   r¢   Úconfigr¤   Zgrid_forgetr£   )rQ   ÚeventZnewselrT   rT   rU   rž   a  s    
zConfigDialog.extension_selectedc             C   sæ   t | jddd}|| j|< |j}xÀt| j| ƒD ]®\}}t||d d}|j|dtd |d }|d d	krŽt	||d
dddj|dt
dd q0|d dkrÂt||d| jdfddj|dtdd q0t||ddj|dtdd q0W d S )Nr‹   )rD   rE   rµ   )rV   r   )r   rŒ   rŽ   r·   r³   r±   r¯   r°   é   )ÚvariableÚonvalueÚoffvaluerE   r‰   é   )r   rŒ   rŽ   rk   r²   Úkeyz%Pr‘   )ÚtextvariableÚvalidateÚvalidatecommandrE   é   )rÇ   rE   )ÚVerticalScrolledFramer¢   r¤   ÚinteriorÚ	enumeraterˆ   r%   r£   r   r#   r   r$   r˜   r   )rQ   r©   ÚfZ
entry_arear   ÚoptZlabelr·   rT   rT   rU   r§   p  s$    
z#ConfigDialog.create_extension_framec             C   sX   |d }|d }|d   ¡  ¡ p"|}|d  |¡ ||krH| j ||¡S | j |||¡S )Nrµ   r´   r·   )ry   r   r    r–   ZRemoveOptionÚ	SetOption)rQ   ÚsectionrÏ   rµ   r´   r¶   rT   rT   rU   Úset_extension_valueŠ  s    z ConfigDialog.set_extension_valuec             C   sN   d}x6| j D ],}| j | }x|D ]}|  ||¡r d}q W qW |rJ| j ¡  d S )NFT)rˆ   rÒ   r–   ZSave)rQ   Zhas_changesr©   ÚoptionsrÏ   rT   rT   rU   rt   ›  s    	

z(ConfigDialog.save_all_changed_extensions)r;   )Ú__name__Ú
__module__Ú__qualname__rF   rK   rd   rl   rm   rL   rp   rn   rq   ru   ra   r™   rž   r§   rÒ   rt   Ú__classcell__rT   rT   )r|   rU   r:   ,   s    0(
	>.r:   u^  <ASCII/Latin1>
AaBbCcDdEeFfGgHhIiJj
1234567890#:+=(){}[]
Â¢Â£Â¥Â§Â©Â«Â®Â¶Â½ÄžÃ€ÃÃ‚ÃƒÃ„Ã…Ã‡ÃÃ˜ÃŸ

<IPA,Greek,Cyrillic>
ÉÉ•É˜ÉžÉŸÉ¤É«É®É°É·É»ÊÊƒÊ†ÊŽÊžÊ¢Ê«Ê­Ê¯
Î‘Î±Î’Î²Î“Î³Î”Î´Î•ÎµÎ–Î¶Î—Î·Î˜Î¸Î™Î¹ÎšÎº
Ð‘Ð±Ð”Ð´Ð–Ð¶ÐŸÐ¿Ð¤Ñ„Ð§Ñ‡ÐªÑŠÐ­ÑÑ Ñ¤Ñ¬Óœ

<Hebrew, Arabic>
××‘×’×“×”×•×–×—×˜×™×š×›×œ××ž×Ÿ× ×¡×¢×£
Ø§Ø¨Ø¬Ø¯Ù‡ÙˆØ²Ø­Ø·ÙŠÙ Ù¡Ù¢Ù£Ù¤Ù¥Ù¦Ù§Ù¨Ù©

<Devanagari, Tamil>
à¥¦à¥§à¥¨à¥©à¥ªà¥«à¥¬à¥­à¥®à¥¯à¤…à¤†à¤‡à¤ˆà¤‰à¤Šà¤à¤à¤“à¤”
à¯¦à¯§à¯¨à¯©à¯ªà¯«à¯¬à¯­à¯®à¯¯à®…à®‡à®‰à®Ž

<East Asian>
ã€‡ä¸€äºŒä¸‰å››äº”å…­ä¸ƒå…«ä¹
æ±‰å­—æ¼¢å­—äººæœ¨ç«åœŸé‡‘æ°´
ê°€ëƒë”ë ¤ëª¨ëµ¤ìˆ˜ìœ ì¦ˆì¹˜
ã‚ã„ã†ãˆãŠã‚¢ã‚¤ã‚¦ã‚¨ã‚ª
c                   sV   e Zd Z‡ f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
‡  ZS )r^   c                s0   t ƒ  |¡ |j| _|  ¡  |  ¡  |  ¡  d S )N)r{   rF   Úhighlight_sampleÚcreate_page_font_tabÚload_font_cfgÚload_tab_cfg)rQ   Úmasterr]   )r|   rT   rU   rF   Þ  s
    zFontPage.__init__c             C   sœ  t  t| ƒ| j¡| _t  t| ƒ| j¡| _t  t| ƒ| j¡| _t  t| ƒd¡| _	t
| dtdd}t
| dtdd}t
| dtdd}t|ƒ}t|ƒ}t|tdd}t|d	d
td| _| j d| j¡ | j d| j¡ | j d| j¡ t|ƒ}|j| jjd | jj|jd t|dd}t|| jd ƒ| _t|| jdddd| _t|ƒ}	|	j| _| jjtddd | j  t!t"¡ t|tdd}
t#|| j	ddddd| _$| j%ddd | j&ddd |j'ddddd |j'dddddd d! |j'ddddd"d# |j(t)ddt*d$ |j(t)ddt*d$ |j(t)t+d% | jj(tt,t*d& |j(tt-d' |j(tt+d% | jj(tt+d% | jj(tt+d(d) |	j(t,t.d* |
j(t)t+dd) | j$j(t)dt*d+ d S ),N)ÚmainÚIndentz
num-spacesrh   z Shell/Editor Font )r?   ÚreliefrV   z Font Sample (Editable) z Indentation Width zFont Face :)ZjustifyrV   rÊ   T)rD   rj   Úexportselectionz<ButtonRelease-1>z<KeyRelease-Up>z<KeyRelease-Down>)ri   )r¡   zSize :)rV   r‰   r   ZBold)rÂ   rÃ   rÄ   rV   )ÚwraprE   rD   zPython Standard: 4 Spaces!Z
horizontalé   )rÂ   ÚorientZtickintervalZfrom_Úto)rŠ   r>   )r   rŒ   rk   Úpadyrg   r   )r   rŒ   Zrowspanrk   rå   rŽ   Zew)r   rŒ   rk   rå   rŽ   )rX   rk   rå   rZ   )rX   Úanchor)rX   rY   rZ   )rX   rZ   r@   )rX   ræ   rk   )rY   rZ   )rX   rk   rZ   )/rO   rb   r   Úvar_changed_fontÚ	font_nameÚ	font_sizer   Ú	font_boldr   Ú	space_numr!   r   r    r%   r   r   r
   rN   r   Úon_fontlist_selectr)   r¿   rŸ   r    r/   Úsizelistr#   Zbold_toggler9   rV   rx   r   Úinsertr   rz   r   Zindent_scaler›   rš   r£   rc   r   r   r   r	   r   r   )rQ   Z
frame_fontZframe_sampleZframe_indentZframe_font_nameZframe_font_paramZfont_name_titleZscroll_fontZfont_size_titleZfont_sample_frameZindent_titlerT   rT   rU   rÙ   å  sn    .zFontPage.create_page_font_tabc       	      C   sð   t  | dd¡}|d  ¡ }|d }|d dk}ttt | ¡ƒƒ}x|D ]}| j t	|¡ qFW | j
 |¡ dd„ |D ƒ}y>| |¡}| j |¡ | j |¡ | j |¡ | j |¡ W n tk
rÈ   Y nX | j d	|¡ | j |¡ |  ¡  d S )
NrÝ   ÚEditorWindowr   r‰   rh   Zboldc             S   s   g | ]}|  ¡ ‘qS rT   )Úlower)r«   ÚsrT   rT   rU   r­   f  s    z*FontPage.load_font_cfg.<locals>.<listcomp>)Ú7Ú8Ú9Ú10Ú11Ú12Ú13Ú14Ú16Z18Z20Z22Z25Z29Z34Z40)r,   ZGetFontrð   r¦   r    ÚtkFontZfamiliesrN   rî   r   rè   ÚindexÚseeÚ
select_setÚselect_anchorZactivater»   rí   ÚSetMenurê   Úset_samples)	rQ   Zconfigured_fontrè   ré   rê   ZfontsÚfontZlc_fontsZcurrent_font_indexrT   rT   rU   rÚ   U  s*    

zFontPage.load_font_cfgc             G   sZ   | j  ¡ }t ddd|¡ | j ¡ }t ddd|¡ | j ¡ }t ddd|¡ |  ¡  d S )NrÝ   rï   r  z	font-sizez	font-bold)rè   ry   rr   Ú
add_optionré   rê   r  )rQ   Úparamsr¶   rT   rT   rU   rç   w  s    


zFontPage.var_changed_fontc             C   s0   | j  |jjdkrtnt¡}| j | ¡ ¡ d S )NZ
KeyRelease)	rN   ry   r³   rµ   r   r   rè   r    rð   )rQ   rÀ   r  rT   rT   rU   rì   †  s    zFontPage.on_fontlist_selectNc             C   sH   | j  ¡ }| j ¡ rtjntj}|| j ¡ |f}|| jd< || jd< d S )Nr  )	rè   ry   rê   rû   ZBOLDZNORMALré   rx   rØ   )rQ   rÀ   rè   Zfont_weightZnew_fontrT   rT   rU   r    s
    

zFontPage.set_samplesc             C   s$   t jdddddd}| j |¡ d S )NrÝ   rÞ   z
num-spacesé   r²   )r´   r³   )r,   Ú	GetOptionrë   r    )rQ   rë   rT   rT   rU   rÛ     s    zFontPage.load_tab_cfgc             G   s   | j  ¡ }t ddd|¡ d S )NrÝ   rÞ   z
num-spaces)rë   ry   rr   r  )rQ   r  r¶   rT   rT   rU   Úvar_changed_space_num¨  s    
zFontPage.var_changed_space_num)N)rÔ   rÕ   rÖ   rF   rÙ   rÚ   rç   rì   r  rÛ   r  r×   rT   rT   )r|   rU   r^   Ü  s   p"

r^   c                   s¼   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Z‡  ZS )+r\   c                s2   t ƒ  |¡ |j| _t|ƒ| _|  ¡  |  ¡  d S )N)r{   rF   rÜ   Úcdr*   ÚstyleÚcreate_page_highlightÚload_theme_cfg)rQ   rÜ   )r|   rT   rU   rF   °  s
    
zHighPage.__init__c                s2  ddddddddd	d
dddddddœˆ _ t tˆ ƒˆ j¡ˆ _t tˆ ƒˆ j¡ˆ _tˆ ƒˆ _	t tˆ ƒˆ j
¡ˆ _t tˆ ƒˆ j¡ˆ _t tˆ ƒˆ j¡ˆ _tˆ dtdd}tˆ dtdd}t|tdd}|j }ˆ _|jddddtdtd | ddd„ ¡ | dd d„ ¡ d!}x |D ]\}}| t||¡ qW t| d"t¡ ¡ ƒ}x>td|ƒD ]0}	| |	› d#|	tt |ƒƒ› d$›d%d&¡ qNW x8ˆ j D ].}
|
f‡ fd'd(„	}| !ˆ j |
 d d)|¡ qŠW d*|d+< ˆ j"jd,dd-d. t#|d,d/ˆ _$t#|ƒ}t%ˆ j$d0ˆ j&d1ˆ _'t(ˆ j$ˆ jd dd2ˆ _)t*|ˆ j	dd3ˆ j+d4ˆ _,t*|ˆ j	dd5ˆ j+d4ˆ _-ˆ j	 .d¡ t%|d6ˆ j/d1ˆ _0t1|d7d8}t*|ˆ jdˆ j2d9d:ˆ _3t*|ˆ jdˆ j2d;d:ˆ _4t(|ˆ jd d d<ˆ _5t(|ˆ jd d d<ˆ _6t%|d=ˆ j7d1ˆ _8t1|dd>ˆ _9|j:t;d?d?t<t=d@ |j:t>d?d?t?dA ˆ j$j:t>d?d?t?dA |j:t>d?ddB |j:t>d?d?t<t=d@ ˆ j'j:t>t<t?dCdDdE ˆ j)j:t>t<t?dCdFdE ˆ j,j:t;t@dG ˆ j-j:tAtBdG ˆ j0j:tCt?d?d?dH |j:t>tBd?d?dI ˆ j3j:t>tBd?dJ ˆ j4j:t>tBd?ddI ˆ j5j:t>t?d?d?dH ˆ j6j:t>t?tBd?d?dK ˆ j8j:t>t?d?d?dH ˆ j9j:t>t?d?dL d S )MN)ÚnormalZ00)ÚcontextZ01)ÚkeywordZ02)Ú
definitionZ03)ÚbuiltinZ04)ÚcommentZ05)ÚstringZ06)ÚhiliteZ07)ÚhitZ08)ÚcursorZ09)Úbreakrõ   )Úconsolerö   )Úerrorr÷   )Ústdoutrø   )Ústderrrù   )Ú
linenumberrú   )zNormal Code or TextzCode ContextzPython KeywordszPython DefinitionszPython BuiltinszPython CommentszPython StringszSelected Textz
Found TextÚCursorzEditor BreakpointzShell Promptz
Error TextzShell User OutputzShell User ExceptionzLine Numberrh   z Custom Highlighting )r?   rß   rV   z Highlighting Theme r‰   )rß   r?   )Zcourieré   r;   Zhand2r   )r  r  rE   rD   rj   Úhighlightthicknessrá   z<Double-Button-1>c             S   s   dS )Nr  rT   )ÚerT   rT   rU   Ú<lambda>X  ó    z0HighPage.create_page_highlight.<locals>.<lambda>z<B1-Motion>c             S   s   dS )Nr  rT   )r  rT   rT   rU   r   Y  r!  )")z# Click selects item.r  )Ú
r  )zcode context sectionr  )r"  r  )z| cursorr  )r"  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  )z9.8596r  )r"  r  )z>>>r  )z pri r  )Únr  )zt(
r  )ÚSyntaxErrorr  )r"  r  z1.0z.0Údr$  r  c                s   ˆ j  |¡ d S )N)Úhighlight_targetr    )rÀ   Úelem)rQ   rT   rU   Útemt  s    z+HighPage.create_page_highlight.<locals>.temz<ButtonPress-1>ÚdisabledÚstatezframe_color_set.TFrameZsolid)r?   rß   )r	  zChoose Color for :)rV   ri   )r  Z
Foreground)rÂ   r¶   rV   ri   Z
BackgroundzSave as New Custom Themez	Select : )rV   za Built-in Theme)rÂ   r¶   ri   rV   za Custom Theme)ri   zDelete Custom Theme)r?   r>   )rX   rk   rå   rY   rZ   )rX   rk   rå   rZ   )rX   rk   rå   rÁ   r  )rX   rY   rZ   rk   rå   rg   )rX   ræ   )rX   rZ   rk   rå   )rX   ræ   rk   rå   )rX   ræ   rk   )rX   rZ   ræ   rk   rå   )rX   rZ   rå   )DÚtheme_elementsrO   rb   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!   r   r9   r   rV   rØ   rI   r
   r   r   rî   r   Úlenry   Ú
splitlinesÚranger¼   Ztag_bindr	  r    Úframe_color_setr"   Ú	get_colorZbutton_set_colorr/   Ú
targetlistr(   Úset_color_sample_bindingÚfg_onÚbg_onr    Úsave_as_new_themeZbutton_save_customr%   Úset_theme_typeZbuiltin_theme_onÚcustom_theme_onÚbuiltinlistÚ
customlistÚdelete_customÚbutton_delete_customÚtheme_messagerc   r   r	   r   r   r   r   r   r   r   )rQ   Úframe_customZframe_themeZsample_framerV   Zstring_tagsr  ÚtagZn_linesÚlinenoÚelementr.  Zframe_fg_bg_toggleZtheme_type_titlerT   )rQ   rU   r
  ·  sÒ    v




zHighPage.create_page_highlightc          	      s.  ˆ j  tjdddddd¡ t ¡ }ˆ j  ¡ r–t dd¡}| ¡  ˆ j 	||¡ t dd¡}| ¡  |s‚ˆ j
 d	¡ ˆ j d
¡ qÞˆ j 	||d ¡ nHt dd¡}| ¡  ˆ j 	||¡ t dd¡}| ¡  ˆ j 	||d ¡ ˆ  ¡  tˆ j ¡ ƒ}|j‡ fdd„d ˆ j 	||d ¡ ˆ  ¡  ˆ  ¡  d S )NrÝ   ÚThemer´   r±   r‰   )r³   r´   Ú	highlightÚuser)r/  z- no custom themes -r   c                s   ˆ j |  d S )Nr‰   )r1  )rR   )rQ   rT   rU   r   ä  r!  z)HighPage.load_theme_cfg.<locals>.<lambda>)rÆ   )r:  r    r,   r  ZCurrentThemery   ÚGetSectionListÚsortrH  r   rG  r0  r5  rI  rF  r&  r1  r‚   rA  Úpaint_theme_sampleÚset_highlight_target)rQ   Úcurrent_optionÚ	item_listZtheme_namesrT   )rQ   rU   r  µ  s2    

zHighPage.load_theme_cfgc             G   sŽ   d}| j  ¡ }||krXt ddd¡|kr<t ddd|d ¡ t ddd|¡ d| jd< n*t ddd|¡ t dddd	¡ d	| jd< |  ¡  d S )
N)zIDLE ClassiczIDLE NewrÝ   rQ  rµ   r   Úname2zNew theme, see HelprV   r;   )r3  ry   r,   r  rr   r  rL  rV  )rQ   r  Z
old_themesr¶   rT   rT   rU   r2  é  s    

z!HighPage.var_changed_builtin_namec             G   s.   | j  ¡ }|dkr*t ddd|¡ |  ¡  d S )Nz- no custom themes -rÝ   rQ  rµ   )r5  ry   rr   r  rV  )rQ   r  r¶   rT   rT   rU   r4  ü  s    
z HighPage.var_changed_custom_namec             G   s4   | j  ¡ }t ddd|¡ |r(|  ¡  n|  ¡  d S )NrÝ   rQ  r´   )r:  ry   rr   r  r2  r4  )rQ   r  r¶   rT   rT   rU   r9    s
    

z!HighPage.var_changed_theme_sourcec             G   s   |   ¡  d S )N)Úon_new_color_set)rQ   r  rT   rT   rU   r7    s    zHighPage.var_changed_colorc             G   s   |   ¡  d S )N)rW  )rQ   r  rT   rT   rU   r;    s    z%HighPage.var_changed_highlight_targetc             C   s\   | j  ¡ r,d| jd< d| jd< | j d¡ n,d| jd< | j d¡ d| jd< | j d¡ d S )Nr  r0  r/  )r/  )z	!disabled)r:  ry   rH  rI  rK  r0  rG  )rQ   rT   rT   rU   rF    s    




zHighPage.set_theme_typec             C   sŠ   | j  ¡ }| j | jd d¡}tj| d| |d\}}|r†||kr†| j ¡ rzd}|  |¡}|sbd S |  	|¡ | j
 |¡ n| j
 |¡ d S )Nr	  Ú
backgroundzPick new color for : )rG   rJ   Zinitialcolorz_Your changes will be saved as a new Custom Theme. Enter a name for your new Custom Theme below.)r,  ry   r	  Úlookupr?  ÚtkColorChooserZaskcolorr:  Úget_new_theme_nameÚ
create_newr8  r    )rQ   ÚtargetZ
prev_colorZ	rgbTupletZcolor_stringÚmessageÚ	new_themerT   rT   rU   r@  8  s    



zHighPage.get_colorc             C   s~   | j  ¡ }| jjd|d | j ¡ r(dnd}| j| j ¡  d }| jj|f||iŽ | j	 ¡ }|d | }t
 d|||¡ d S )Nzframe_color_set.TFrame)r\  Ú
foregroundr\  r   ú-rR  )r8  ry   r	  rI   r6  r1  r,  rØ   Ú
tag_configr5  rr   r  )rQ   Z	new_colorÚplaneZsample_elementÚthemeZtheme_elementrT   rT   rU   r[  ^  s    

zHighPage.on_new_color_setc             C   s,   t  dd¡t  dd¡ }t| d||ƒj}|S )NrS  rR  r´   zNew Custom Theme)r,   rT  r1   Úresult)rQ   rb  Ú
used_namesrc  rT   rT   rU   r_  i  s
    
zHighPage.get_new_theme_namec             C   s   |   d¡}|r|  |¡ d S )NzNew Theme Name:)r_  r`  )rQ   Únew_theme_namerT   rT   rU   rE  q  s    
zHighPage.save_as_new_themec             C   s¬   | j  ¡ rd}| j ¡ }nd}| j ¡ }t ||¡}|td krftd | }x|D ]}|| ||< qRW |  ||¡ t dd¡}| 	¡  | j
 ||¡ | j  d¡ |  ¡  d S )Nr´   rS  rR  r   )r:  ry   r3  r5  r,   ZGetThemeDictrr   Úsave_newrT  rU  rI  r   r    rF  )rQ   rk  Z
theme_typeÚ
theme_namerc  Ztheme_changesrP  Zcustom_theme_listrT   rT   rU   r`  |  s     


zHighPage.create_newc             C   sd   | j  ¡ dkr4| j d¡ | j d¡ | j d¡ n$| j d¡ | j d¡ | j d¡ |  ¡  d S )Nr  )r/  r‰   )z	!disabled)r,  ry   rC  r0  rD  r6  r    Úset_color_sample)rQ   rT   rT   rU   rW  ¤  s    zHighPage.set_highlight_targetc             G   s   |   ¡  d S )N)rn  )rQ   ÚargsrT   rT   rU   rB  À  s    z!HighPage.set_color_sample_bindingc             C   sH   | j | j ¡  d }| j ¡ r"dnd}| j ||¡}| jjd|d d S )Nr   rd  r\  zframe_color_set.TFrame)r\  )r1  r,  ry   r6  rØ   Ztag_cgetr	  rI   )rQ   rN  rg  r8  rT   rT   rU   rn  È  s    zHighPage.set_color_samplec             C   sÒ   | j  ¡ r| j ¡ }n
| j ¡ }x¤| jD ]š}| j| d }t ||¡}|dkrbt |d¡d |d< |td kr²td | }|d |kr–||d  |d< |d |kr²||d  |d< | jj	|f|Ž q(W |  
¡  d S )	Nr   r  r  r\  rR  z-foregroundrd  z-background)r:  ry   r3  r5  r1  r,   ZGetHighlightrr   rØ   rf  rn  )rQ   rh  Zelement_titlerP  ZcolorsZ
theme_dictrT   rT   rU   rV  Ú  s"    

zHighPage.paint_theme_samplec             C   s>   t jd  |¡ x(|D ] }|| }t jd  |||¡ qW d S )NrR  )r,   r•   Ú
AddSectionrÐ   )rQ   rm  rh  rP  r¶   rT   rT   rU   rl    s    
zHighPage.save_newc             O   s   t j||ŽS )N)r+   Úaskyesno)rQ   ro  ÚkwargsrT   rT   rU   rq    s    zHighPage.askyesnoc             C   sÞ   | j  ¡ }d}| jd|| | ds&d S | j ¡  t d|¡ t dd¡}| 	¡  |sp| j
 d¡ | j |d¡ n| j ||d ¡ | j tjd	  d
d¡¡ | j tjd	  d
d¡¡ t ¡  | j ¡  | j ¡  |  ¡  d S )Nz.Are you sure you wish to delete the theme %r ?zDelete Theme)rG   rR  rS  )r/  z- no custom themes -r   rÝ   rQ  r´   rµ   )r5  ry   rq  r  rq   rr   Údelete_sectionr,   rT  rU  rG  r0  rI  r   r:  r    r“   r¹   r3  rs   rt   ru   rF  )rQ   rm  ÚdelmsgrY  rT   rT   rU   rJ    s&    



zHighPage.delete_custom)rÔ   rÕ   rÖ   rF   r
  r  r2  r4  r9  r7  r;  rF  r@  r[  r_  rE  r`  rW  rB  rn  rV  rl  rq  rJ  r×   rT   rT   )r|   rU   r\   ®  s.      4&((r\   c                   s    e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZdd „ Zd!d"„ Z‡  ZS )#r_   c                s(   t ƒ  |¡ |j| _|  ¡  |  ¡  d S )N)r{   rF   rÜ   r  Úcreate_page_keysÚload_key_cfg)rQ   rÜ   )r|   rT   rU   rF   C  s    zKeysPage.__init__c                s"  t  t| ƒ| j¡| _t  t| ƒ| j¡| _t  t| ƒ| j¡| _	t  t| ƒ| j
¡| _t| dtdd}t| dtdd‰ t|ƒ}t|dd}t|ƒ}t|td}t|ttd| _| j d	| j¡ | jj|d
< | jj|d
< |j| jd< |j| jd< t|d| jdd| _‡ fdd„tdƒD ƒ}t|d | j	d| jdd| _ t|d | j	d| jdd| _!t"|d | jd d d| _#t"|d | jd d d| _$t|d d| j%d| _&t|d d| j'd| _(t|d dd| _)|j*t+ddt,t-d ˆ j*t+ddt-d | jj*t+t.ddd |j*t/ddt,t-d |j0ddd  |j1ddd  |j2dddt3d! | jj2ddt4d" |j2ddt5d" |j2ddt6d" | j j2ddt3t5 d" | j!j2ddt3t5 d" | j#j2ddt4d" | j$j2ddt4d" | j)j2ddt4ddd# | j&j*t/t.d$dd% | j(j*t/t.d$dd% |d j*t7t-d$d& |d j*t7t.d$dd' d S )(Nrh   z Custom Key Bindings )r?   rß   rV   z	 Key Set zAction - Key(s))rV   )rã   )rj   rà   z<ButtonRelease-1>ri   r¡   ZxscrollcommandzGet New Keys for Selectionr/  )rV   ri   r0  c                s   g | ]}t ˆ d dd‘qS )rh   r   )re   r?   )r    )r«   Úi)Úframe_key_setsrT   rU   r­   ¼  s   z-KeysPage.create_page_keys.<locals>.<listcomp>r   r‰   zUse a Built-in Key Set)rÂ   r¶   ri   rV   zUse a Custom Key Set)ri   zDelete Custom Key Set)rV   ri   zSave as New Custom Key Set)r?   r>   )rX   rk   rå   rY   rZ   )rX   rk   rå   rZ   )rX   rZ   rk   rå   )rŠ   )r   rŒ   Z
columnspanrŽ   )r   rŒ   rŽ   )r   rŒ   rŽ   rk   rå   T)rX   rZ   rY   rk   )rX   rZ   rY   )rX   rZ   rY   rå   )8rO   rb   r   r2  r3  r4  r5  r   Úvar_changed_keyset_sourceÚkeyset_sourceÚvar_changed_keybindingÚ
keybindingr!   r   r    r%   r)   r   r   r
   Úbindingslistr   Úon_bindingslist_selectrŸ   Zxviewr    r"   Úget_new_keysÚbutton_new_keysr>  r(   Úset_keys_typeZbuiltin_keyset_onÚcustom_keyset_onr/   rH  rI  Údelete_custom_keysÚbutton_delete_custom_keysÚsave_as_new_key_setZbutton_save_custom_keysÚkeys_messagerc   r   r	   r   r   r   r›   rš   r£   r   r   r   r   r   )rQ   rM  Zframe_targetZtarget_titleZscroll_target_yZscroll_target_xZframesrT   )rx  rU   ru  I  s„    R
zKeysPage.create_page_keysc          	   C   sü   | j  tjdddddd¡ t ¡ }| j  ¡ r–t dd¡}| ¡  | j 	||¡ t dd¡}| ¡  |s‚| j
 d	¡ | j d
¡ qÞ| j 	||d ¡ nHt dd¡}| ¡  | j 	||¡ t dd¡}| ¡  | j 	|t ¡ ¡ |  ¡  t ¡ }|  |¡ d S )NrÝ   ÚKeysr´   r±   r‰   )r³   r´   r‚   rS  )r/  z- no custom keys -r   )rz  r    r,   r  ZCurrentKeysry   rT  rU  rH  r   r‚  r0  r5  rI  Údefault_keysr  Úload_keys_list)rQ   rX  rY  Úkeyset_namerT   rT   rU   rv  é  s,    

zKeysPage.load_key_cfgc             G   s   d}| j  ¡ }||krXt ddd¡|kr<t ddd|d ¡ t ddd|¡ d| jd< n*t ddd|¡ t dddd	¡ d	| jd< |  |¡ d S )
N)zIDLE Classic WindowszIDLE Classic UnixzIDLE Classic MaczIDLE Classic OSXrÝ   r‡  rµ   r   rZ  zNew key set, see HelprV   r;   )r3  ry   r,   r  rr   r  r†  r‰  )rQ   r  Zold_keysr¶   rT   rT   rU   r2    s    

z!KeysPage.var_changed_builtin_namec             G   s0   | j  ¡ }|dkr,t ddd|¡ |  |¡ d S )Nz- no custom keys -rÝ   r‡  rµ   )r5  ry   rr   r  r‰  )rQ   r  r¶   rT   rT   rU   r4    s    
z KeysPage.var_changed_custom_namec             G   s4   | j  ¡ }t ddd|¡ |r(|  ¡  n|  ¡  d S )NrÝ   r‡  r´   )rz  ry   rr   r  r2  r4  )rQ   r  r¶   rT   rT   rU   ry  #  s
    

z"KeysPage.var_changed_keyset_sourcec             G   sj   | j  ¡ }| j ¡ }| j t¡ ¡ d }t |¡rDt 	d|||¡ n"t 
|¡}|d }t 	d|||¡ d S )Nr   r‚   Z_cfgBindingsrˆ   )r|  ry   r5  r}  r   Úsplitr,   ZIsCoreBindingrr   r  ZGetExtnNameForEvent)rQ   r  r¶   Zkey_setrÀ   r©   Zext_keybind_sectionrT   rT   rU   r{  ,  s    



zKeysPage.var_changed_keybindingc             C   s\   | j  ¡ r,d| jd< d| jd< | j d¡ n,d| jd< | j d¡ d| jd< | j d¡ d S )Nr  r0  r/  )r/  )z	!disabled)rz  ry   rH  rI  r„  r0  r‚  )rQ   rT   rT   rU   r  8  s    




zKeysPage.set_keys_typec             C   sJ  | j  t¡}| j  |¡}| ¡ d }| j ¡ r:| j ¡ }n
| j ¡ }t 	¡ }|t
d kr‚t
d | }x|D ]}||  ¡ ||< qjW t| ¡ ƒ}t| d||ƒj}	|	r.| j ¡ ræd}
|  |
¡}|sÜ| j  |¡ | j  |¡ d S |  |¡ | j  |¡ | j  ||d |	 ¡ | j  |¡ | j  |¡ | j |	¡ n| j  |¡ | j  |¡ d S )Nr   r‚   zGet New KeyszcYour changes will be saved as a new Custom Key Set. Enter a name for your new Custom Key Set below.z - )r}  rü   r   ry   r‹  rz  r3  r5  r,   ZGetCurrentKeySetrr   r&  Úvaluesr.   ri  Úget_new_keys_namerþ   rÿ   Úcreate_new_key_setÚdeleterî   r|  r    )rQ   Ú
list_indexÚbindingÚ	bind_nameZcurrent_key_set_nameZcurrent_bindingsÚkey_set_changesrÀ   Zcurrent_key_sequencesÚnew_keysrb  Ú
new_keysetrT   rT   rU   r  D  s<    	





zKeysPage.get_new_keysc             C   s,   t  dd¡t  dd¡ }t| d||ƒj}|S )NrS  r‚   r´   zNew Custom Key Set)r,   rT  r1   ri  )rQ   rb  rj  r•  rT   rT   rU   r  p  s
    
zKeysPage.get_new_keys_namec             C   s   |   d¡}|r|  |¡ d S )NzNew Key Set Name:)r  rŽ  )rQ   Znew_keys_namerT   rT   rU   r…  x  s    
zKeysPage.save_as_new_key_setc             C   s   | j  d¡ d S )N)z	!disabled)r€  r0  )rQ   rÀ   rT   rT   rU   r~  ~  s    zKeysPage.on_bindingslist_selectc       
      C   sÖ   | j  ¡ r| j ¡ }n
| j ¡ }t |¡}i }x.|D ]&}|dd… }d || ¡}|||< q4W |td krtd | }x|D ]}|| ||< q|W |  ||¡ t 	dd¡}	|	 
¡  | j |	|¡ | j  d¡ |  ¡  d S )Nrh   éþÿÿÿr$  r‚   rS  r   )rz  ry   r3  r5  r,   ZGetCoreKeysÚjoinrr   Úsave_new_key_setrT  rU  rI  r   r    r  )
rQ   Znew_key_set_nameZprev_key_set_nameZ	prev_keysr”  rÀ   Z
event_namer‘  r“  Zcustom_key_listrT   rT   rU   rŽ  ‚  s&    




zKeysPage.create_new_key_setc             C   sà   d}| j  ¡ rd}| j  t¡}t |¡}t| ¡ ƒ}| ¡  | j  	dt
¡ xh|D ]`}d || ¡}|dd… }|td krš|td | krštd | | }| j  t
|d | ¡ qPW |rÜ| j  |¡ | j  |¡ | j  |¡ d S )	NFTr   r$  rh   r–  r‚   z - )r}  r¾   rü   r   r,   Z	GetKeySetr&  r‚   rU  r  r   r—  rr   rî   rý   rþ   rÿ   )rQ   rŠ  Zreselectr  ÚkeysetZ
bind_namesr’  rÆ   rT   rT   rU   r‰     s&    


zKeysPage.load_keys_listc             C   s>   t jd  | ¡ x(|D ] }|| }t jd  | ||¡ qW d S )Nr‚   )r,   r•   rp  rÐ   )rŠ  r™  rÀ   r¶   rT   rT   rU   r˜  º  s    
zKeysPage.save_new_key_setc             O   s   t j||ŽS )N)r+   rq  )rQ   ro  rr  rT   rT   rU   rq  Ê  s    zKeysPage.askyesnoc             C   sæ   | j  ¡ }d}| jd|| | ds&d S | j ¡  t d|¡ t dd¡}| 	¡  |sp| j
 d¡ | j |d¡ n| j ||d ¡ | j tjd	  d
d¡¡ | j tjd	  d
d¡pºt ¡ ¡ t ¡  | j ¡  | j ¡  |  ¡  d S )Nz0Are you sure you wish to delete the key set %r ?zDelete Key Set)rG   r‚   rS  )r/  z- no custom keys -r   rÝ   r‡  r´   rµ   )r5  ry   rq  r  rq   rr   rs  r,   rT  rU  r‚  r0  rI  r   rz  r    r“   r¹   r3  rˆ  rs   rt   ru   r  )rQ   rŠ  rt  rY  rT   rT   rU   rƒ  Î  s*    





zKeysPage.delete_custom_keys)rÔ   rÕ   rÖ   rF   ru  rv  r2  r4  ry  r{  r  r  r  r…  r~  rŽ  r‰  Ústaticmethodr˜  rq  rƒ  r×   rT   rT   )r|   rU   r_   A  s$    !	,r_   c                   sd   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Z‡  ZS )r`   c                s(   t ƒ  |¡ |  ¡  |  ¡  |  ¡  d S )N)r{   rF   Úinit_validatorsÚcreate_page_generalÚload_general_cfg)rQ   rÜ   )r|   rT   rU   rF   ó  s    zGenPage.__init__c                s*   t  d¡‰ ‡ fdd„}|  |¡df| _d S )Nz[0-9]*c                s   ˆ   | ¡d k	S )N)Ú	fullmatch)rñ   )Údigits_or_empty_rerT   rU   Úis_digits_or_emptyü  s    z3GenPage.init_validators.<locals>.is_digits_or_emptyz%P)ÚreÚcompiler—   Údigits_only)rQ   r   rT   )rŸ  rU   r›  ú  s    
zGenPage.init_validatorsc              C   s´  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  t| ƒd¡| _t  t| ƒd¡| _t  t| ƒd¡| _t| dtdd}t| dtdd}t| dtdd}t| dtdd}t|dd}t|dd}t|| jddd| _t|| jddd| _t|dd}t|dd}t|dd}	t|| jd| jdd | _t|d!d}
t|| jd| jdd | _t|dd}t|d"d}t|| jdd#| _t|dd}t|d$d}t|d%| j	| jdd&| _t|dd}t|d'd}t || j
d(d)d*d(ƒ| _!t|dd}t|d+d}t|| jd%d,| _"t|d-| jd.| _#t|dd}t|d/d}t|| jdd0d| _$t|| jdd1d| _%t|dd}t|d2d}t|| jd3| jdd | _&t|dd}t|d4d}t|| jdd#| _'t|dd}t|d5d}t|| jd| jdd | _(t|dd}t|d6d}t|d3| j| jdd&| _)t|ƒ}t|ƒ}t*|d7d8t+d9| _,t-|ƒ}| j,j.|d:< |j/| j,d;< | j, 0d<| j1¡ t2|d=d>d?| j3d@| _4t2|dAd?| j5dB| _6t2|dCd>d?| j7d@| _8|j9t:d7d7t;t<dD |j9t:d7d7t;t<dD |j9t:d7d7t;t<dD |j9t:d7d7t;t<dD |j9t:d7dt=dE |j9t>t?d7d7dF | jj9t@t?d7d7dF | jj9t@t?d7d7dF |j9t:d7dt=dE |j9t>t?d7d7dF | jj9t@tAdGd7dF |
j9t@tAd7dH | jj9t@tAdGd7dF |	j9t@tAd7dH |j9t:d7dt=dE |j9t>t?d7d7dF | jj9t>d7d7dI |j9t:d7dt=dE |j9t>t?d7d7dF | jj9t:dGd7dI |j9t:d7dt=dE |j9t>t?d7d7dF | j!j9t:dGd7dI |j9t:d7dt=dE |j9t>t?d7dJ | j#j9t@tAdKd7dF | j"j9t:t?dKd7dF |j9t:d7dt=dE |j9t>t?d7d7dF | j%j9t@t?d7d7dF | j$j9t@t?d7d7dF |j9t:d7dt=dE |j9t>t?d7d7dF | j&j9t:dGd7dI |j9t:d7dt=dE |j9t>t?d7d7dF | j'j9t>d7d7dI |j9t:d7dt=dE |j9t>t?d7d7dF | j(j9t:d7d7dI |j9t:d7dt=dE |j9t>t?d7d7dF | j)j9t:d7d7dI |j9t@d7d7tBdE |j9t:d7d7t;t<dD |j9t@t?tBdL | j,j9t>tAt;t<dM | j4j9t:t?d7dH | j6j9t:t?dN | j8j9t:t?d7dH d S )ON)rÝ   ÚGeneralzeditor-on-startup)rÝ   rï   rE   )rÝ   rï   rD   )rÝ   rï   zcursor-blink)rˆ   r4   Ú	popupwait)rˆ   r6   r	  )rˆ   r6   zflash-delay)rˆ   r6   Úbell)rÝ   ÚPyShellzauto-squeeze-min-lines)rÝ   r¤  Úautosave)rˆ   r7   z	max-width)rÝ   rï   zline-numbers-default)rˆ   r5   Úmaxlinesrh   z Window Preferences)r?   rß   rV   z Editor Preferencesz Shell Preferencesz Additional Help Sources r   )r?   z
At Startup)rV   r‰   zOpen Edit Window)rÂ   r¶   rV   zOpen Shell Windowz$Initial Window Size  (in characters)ZWidthrg   rÆ   )rÇ   rE   rÉ   rÈ   ZHeightzCursor Blink)rÂ   rE   z%Completions Popup Wait (milliseconds)rf   )rE   rÇ   rÉ   rÈ   zParen Match StyleZ
expressionÚopenerZparensz;Time Match Displayed (milliseconds)
(0 is until next input))rÇ   rE   zBell on Mismatch)rV   rÂ   zAt Start of Run (F5)  zPrompt to Savez	No PromptzFormat Paragraph Max Widthr  z Show line numbers in new windowszMax Context Lines :zAuto-Squeeze Min. Lines:r>   T)rD   rj   rà   ri   r¡   z<ButtonRelease-1>ZEditr/  rÁ   )rV   r0  rE   ri   ZAdd)rV   rE   ri   ZRemove)rX   rk   rå   rY   rZ   )rX   rk   rå   rZ   )rX   ræ   rk   rå   r‘   )rX   ræ   rå   )rX   rk   rå   )rX   ræ   rk   rÊ   )rX   ræ   rZ   )rX   ræ   rY   rZ   )rX   ræ   )CrO   rb   r   Ústartup_editr   Ú	win_widthÚ
win_heightr   Úcursor_blinkÚautocomplete_waitÚparen_styleÚflash_delayÚ
paren_bellÚauto_squeeze_min_linesr¨  Úformat_widthÚline_numbers_defaultÚcontext_linesr!   r   r    r%   r(   Zstartup_editor_onZstartup_shell_onr$   r£  Zwin_width_intZwin_height_intr#   Zcursor_blink_boolZauto_wait_intr&   Zparen_style_typeZparen_flash_timeZbell_onZsave_ask_onZsave_auto_onZformat_width_intZline_numbers_default_boolZcontext_intZauto_squeeze_min_lines_intr   r
   Úhelplistr)   rŸ   r    r   Úhelp_source_selectedr"   Úhelplist_item_editÚbutton_helplist_editÚhelplist_item_addZbutton_helplist_addÚhelplist_item_removeÚbutton_helplist_removerc   r   r	   r   r   r   r   r   r   r   ) rQ   Zframe_windowZframe_editorZframe_shellZ
frame_helpZ	frame_runZstartup_titleZframe_win_sizeZwin_size_titleZwin_width_titleZwin_height_titleZframe_cursor_blinkZcursor_blink_titleZframe_autocompleteZauto_wait_titleZframe_paren1Zparen_style_titleZframe_paren2Zparen_time_titleZ
frame_saveZrun_save_titleZframe_formatZformat_width_titleZframe_line_numbers_defaultZline_numbers_default_titleZframe_contextZcontext_titleZframe_auto_squeeze_min_linesZauto_squeeze_min_lines_titleZframe_helplistZframe_helplist_buttonsZscroll_helplistrT   rT   rU   rœ    sd   H









zGenPage.create_page_generalc          	   C   s”  | j  tjddddd¡ | j tjddddd¡ | j tjddd	dd¡ | j tjddd
dd¡ | j tjddddd¡ | j t ddd¡¡ | j	 tjddddd¡ | j
 t ddd¡¡ | j tjdddddd¡ | j tjddddd¡ | j tjddddd¡ | j tjddddd¡ | j tjddddd¡ t ¡ | _| j dd¡ x"| jD ]}| j t|d ¡ qlW |  ¡  d S )NrÝ   r¤  zeditor-on-startupr±   )r³   rï   rE   r²   rD   zcursor-blinkrˆ   r4   r¥  r6   r	  zflash-delayr¦  r¨  r   )r´   r³   r7   z	max-widthzline-numbers-defaultr5   r©  r§  zauto-squeeze-min-linesrw   )r«  r    r,   r  r¬  r­  r®  r¯  r°  r±  r²  r¨  r´  rµ  r¶  r³  ZGetAllExtraHelpSourcesListÚuser_helplistr·  r  rî   r   Úset_add_delete_state)rQ   Z	help_itemrT   rT   rU   r  '  s>    













zGenPage.load_general_cfgc             C   s   |   ¡  d S )N)r¿  )rQ   rÀ   rT   rT   rU   r¸  P  s    zGenPage.help_source_selectedc             C   sh   | j  ¡ dk r(| j d¡ | j d¡ n<| j  ¡ rL| j d¡ | j d¡ n| j d¡ | j d¡ d S )Nr‰   )r/  )z	!disabled)r·  Úsizerº  r0  r½  r¾   )rQ   rT   rT   rU   r¿  T  s    
zGenPage.set_add_delete_statec             C   s:   t | dƒj}|r6| j |¡ | j t|d ¡ |  ¡  d S )NzNew Help Sourcer   )r2   ri  r¾  r½   r·  rî   r   Úupdate_help_changes)rQ   Úhelp_sourcerT   rT   rU   r»  a  s
    zGenPage.helplist_item_addc             C   sx   | j  t¡}| j| }t| d|d |d dj}|rt||krt|| j|< | j  |¡ | j  ||d ¡ |  ¡  |  	¡  d S )NzEdit Help Sourcer   r‰   )ZmenuitemÚfilepath)
r·  rü   r   r¾  r2   ri  r  rî   rÁ  r¿  )rQ   Ú
item_indexrÂ  Znew_help_sourcerT   rT   rU   r¹  m  s    

zGenPage.helplist_item_editc             C   s4   | j  t¡}| j|= | j  |¡ |  ¡  |  ¡  d S )N)r·  rü   r   r¾  r  rÁ  r¿  )rQ   rÄ  rT   rT   rU   r¼    s
    zGenPage.helplist_item_removec             C   sZ   i t d d< xHtdt| jƒd ƒD ]0}t  ddt|ƒd | j|d  d d… ¡¡ q"W d S )NrÝ   Z	HelpFilesr‰   ú;rh   )rr   r>  r<  r¾  r  r¼   r—  )rQ   ZnumrT   rT   rU   rÁ  Œ  s
    
zGenPage.update_help_changes)rÔ   rÕ   rÖ   rF   r›  rœ  r  r¸  r¿  r»  r¹  r¼  rÁ  r×   rT   rT   )r|   rU   r`   ñ  s     ()r`   c               @   s@   e Zd Zdd„ Zdd„ Zdd„ Zedd„ ƒZd	d
„ Zdd„ Z	dS )ÚVarTracec             C   s   g | _ g | _d S )N)ÚuntracedÚtraced)rQ   rT   rT   rU   rF   ˜  s    	zVarTrace.__init__c             C   s   | j  ¡  | j ¡  d S )N)rÇ  rv   rÈ  )rQ   rT   rT   rU   rv   ¤  s    
zVarTrace.clearc             C   s*   t |tƒr|  ||¡}| j ||f¡ |S )N)Ú
isinstanceÚtupleÚmake_callbackrÇ  r½   )rQ   r·   ÚcallbackrT   rT   rU   rb   ª  s    
zVarTrace.addc                s   ‡ ‡fdd„}|S )Nc                 s   t jˆ ˆ ¡ fžŽ  d S )N)rr   r  ry   )r  )r¿   r·   rT   rU   Údefault_callback¾  s    z0VarTrace.make_callback.<locals>.default_callbackrT   )r·   r¿   rÍ  rT   )r¿   r·   rU   rË  »  s    zVarTrace.make_callbackc             C   s:   x4| j r4| j  ¡ \}}| d|¡ | j ||f¡ qW d S )NÚwrite)rÇ  ÚpopZ	trace_addrÈ  r½   )rQ   r·   rÌ  rT   rT   rU   rP   Ã  s    zVarTrace.attachc             C   sF   x@| j r@| j  ¡ \}}| d| ¡ d d ¡ | j ||f¡ qW d S )NrÎ  r   r‰   )rÈ  rÏ  Ztrace_removeZ
trace_inforÇ  r½   )rQ   r·   rÌ  rT   rT   rU   ÚdetachÊ  s    zVarTrace.detachN)
rÔ   rÕ   rÖ   rF   rv   rb   rš  rË  rP   rÐ  rT   rT   rT   rU   rÆ  •  s   rÆ  a7  When 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".
)z
Fonts/TabsrW   r‡  r¤  c             C   s.   | sdS yt | ƒ dS  tk
r(   dS X d S )NTF)r²   r»   )rñ   rT   rT   rU   r˜   	  s    r˜   c               @   s   e Zd Zdd„ ZdS )rË   c                sÐ   t j| |f|ž|Ž t| td}|jtttd t| dd|j	dd‰ ˆ jt
ttd |jˆ jd ˆ  d¡ ˆ  d¡ t ˆ ƒ | _‰ˆ jddˆtd‰‡ ‡fd	d
„}ˆ d|¡ ‡ ‡‡fdd„}ˆ  d|¡ d S )N)rã   )rZ   rX   rY   r   éð   )r?   r  r¡   rE   )rX   rZ   rY   )ri   )Zwindowræ   c                s$   ˆ  ¡ ˆ ¡ f}ˆ jd| d d S )Nz	0 0 %s %s)Zscrollregion)Úwinfo_reqwidthZwinfo_reqheightr¿   )rÀ   rÀ  )ÚcanvasrÌ   rT   rU   Ú_configure_interior8	  s    z;VerticalScrolledFrame.__init__.<locals>._configure_interiorz<Configure>c                s&   ˆ  ¡ ˆ  ¡ kr"ˆ jˆˆ  ¡ d d S )N)rE   )rÒ  Zwinfo_widthZitemconfigure)rÀ   )rÓ  rÌ   Úinterior_idrT   rU   Ú_configure_canvas>	  s    z9VerticalScrolledFrame.__init__.<locals>._configure_canvas)r    rF   r)   r   rc   r   r   r
   r   r    r   r   r	   r¿   rŸ   Zxview_movetoZyview_movetorÌ   Zcreate_windowr   r   )rQ   rG   ro  ÚkwZ
vscrollbarrÔ  rÖ  rT   )rÓ  rÌ   rÕ  rU   rF   #	  s     

zVerticalScrolledFrame.__init__N)rÔ   rÕ   rÖ   rF   rT   rT   rT   rU   rË   	  s   rË   Ú__main__)rÝ   z#idlelib.idle_test.test_configdialogrh   F)Ú	verbosityÚexit)Úrun)_r¡  Ztkinterr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ztkinter.ttkr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Ztkinter.colorchooserZcolorchooserr^  Ztkinter.fontr  rû   r+   Zidlelib.configr,   r-   Zidlelib.config_keyr.   Zidlelib.dynoptionr/   Zidlelibr0   Zidlelib.queryr1   r2   Zidlelib.textviewr3   Zidlelib.autocompleter4   Zidlelib.codecontextr5   Zidlelib.parenmatchr6   Zidlelib.formatr7   Zidlelib.squeezerr8   r9   rr   r…   r:   rz   r^   r\   r_   r`   rÆ  rO   r€   r   r˜   rË   rÔ   ZunittestrÝ   Zidlelib.idle_test.htestrÛ  rT   rT   rT   rU   Ú<module>   sn   €4    S        3   '=+
