B ÄΜ}ýŽã@sZddlZddlmZmZmZmZmZmZmZm Z m Z m Z m 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+ddl,m-Z.ddl/m0Z1ddlm2Z2ddl3m4Z4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;dd lZ>dd l?m@Z@dd lAmBZBdd lCmDZDdd lEmFZFddlGmHZHddlImJZJddl?mKZKe5ƒZLeBeDeFeHeJfZMGdd„deƒZNdaOGdd„de!ƒZPGdd„de!ƒZQGdd„de!ƒZRGdd„de!ƒZSGdd„dƒZTeTƒZUdZVdd d!d"d#œZWd$d%„ZXGd&d'„d'e!ƒZYeZd(krVdd)l[m\Z\e\d*d+d,d-dd.l]m^Z^e^eNƒdS)/é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)ÚScrollableTextFramecsžeZdZd$dddœdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z‡fdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zd d!„Zd"d#„Z‡ZS)%Ú ConfigDialogÚF)Ú_htestÚ_utestcCsÚt ||¡||_|ri|_|s(| ¡|jdd| |p>d¡| ¡d}| ¡|s\dnd}|  d|›d|›¡|  ¡|j t t d|  |¡| d |j¡|jj ¡t ¡|sÖ| ¡| ¡| ¡dS) Né)Ú borderwidthzIDLE Preferencesééé–ú+)ÚheightÚwidthZWM_DELETE_WINDOW)rÚ__init__ÚparentÚ instance_dictZwithdrawÚ configureÚtitleZ winfo_rootxZ winfo_rootyZgeometryÚcreate_widgetsZ resizabler Z transientZprotocolÚcancelÚfontpageÚfontlistZ focus_setÚtracersÚattachZgrab_setZ wm_deiconifyZ wait_window)ÚselfrGrJr<r=ÚxÚy©rTú7/opt/alt/python37/lib/python3.7/idlelib/configdialog.pyrF0s*     zConfigDialog.__init__cCsÀt|ƒ|_}t|ƒ|_t||jƒ|_t|ƒ|_t|ƒ|_ |  ¡|_ |j |jdd|j |jdd|j |jdd|j |j dd|j |j dd|  ¡|jtttd| ¡jtddS) Nz Fonts/Tabs)ÚtextÚ Highlightsz Keys z General Z Extensions)ÚsideÚexpandÚfill)rX)r'ÚnoteÚHighPageÚhighpageÚFontPagerMÚKeysPageZkeyspageÚGenPageZgenpageÚcreate_page_extensionsZextpageÚaddZenable_traversalÚpackr r rÚcreate_action_buttonsr )rQr[rTrTrUrK`s    zConfigDialog.create_widgetscCs¾t ¡ri}nddi}t|dd}t|dd}i|_xbd|jfd|jfd|jfd|jffD]:\}}t|f||t d œ|—Ž|j|<|j|j t d d qZWt|dd d j t d|j t d|S)NÚpadding)ééé)reZOkZApplyZCancelZHelp)rVÚcommandÚ takefocusr>)rXÚpadxr)rDr?)rX)r0ZisAquaTkr ZbuttonsÚokÚapplyrLÚhelpr"r rcrr r )rQZ padding_argsZouterZ buttons_frameZtxtÚcmdrTrTrUrds"    z"ConfigDialog.create_action_buttonscCs| ¡| ¡dS)N)rmÚdestroy)rQrTrTrUrl§szConfigDialog.okcCs$| ¡t ¡| ¡| ¡dS)N)Údeactivate_current_configÚchangesÚsave_allÚsave_all_changed_extensionsÚactivate_config_changes)rQrTrTrUrm±szConfigDialog.applycCst ¡| ¡dS)N)rrÚclearrp)rQrTrTrUrL¾szConfigDialog.cancelcs&|jj dd¡a| ¡tƒ ¡dS)Nz1.0Úend)rMÚ font_sampleÚgetÚfont_sample_textZ grab_releaseÚsuperrp)rQ)Ú __class__rTrUrpÇszConfigDialog.destroycCs8|jj|j ¡dd ¡}t|dtt |d¡ddS)NrV)ÚoptionzHelp for IDLE preferencesr;)rJÚcontents)r[ZtabZselectÚstripr3Ú help_commonÚ help_pagesry)rQZpagerTrTrUrnÍszConfigDialog.helpcCs&|jj ¡}x|D] }| ¡qWdS)N)rGrHÚkeysZRemoveKeybindings)rQÚ win_instancesÚinstancerTrTrUrqÙs  z&ConfigDialog.deactivate_current_configcCsd|jj ¡}x<|D]4}| ¡| ¡| ¡| ¡| ¡| ¡qWxt D] }|  ¡qPWdS)N) rGrHr‚ZResetColorizerZ ResetFontZset_notabs_indentwidthZApplyKeybindingsZreset_help_menu_entriesZupdate_cursor_blinkÚ reloadablesÚreload)rQrƒr„ÚklassrTrTrUruäs    z$ConfigDialog.activate_config_changescCsh|j}t|jƒ}tjd|_tjd|_| t ¡|_ |  ¡t |ƒ|_ |j ddd|jdddt||j dd|_|j d|j¡t||jjd }|j|j_t|d d d |_|jjddd d |jdddd |jjdddddgd|jddi|_d|_||_|j|_d}x.t|j ƒD] }| !|¡|d|d}qW|j  |¡|j "d¡| d¡|S)NÚ extensionsré)ÚweightrhZbrowse)Z listvariableZ selectmodez<>)riéú)rErDZnws)ÚcolumnÚrowÚstickyÚnsÚnsewé )rŒrrŽrk)rer;Ú{z} )#rGr r[r,Ú defaultCfgÚext_defaultCfgÚuserCfgÚ ext_userCfgÚregisterÚis_intÚload_extensionsrZextension_namesÚ rowconfigureÚcolumnconfigurerÚextension_listÚbindÚextension_selectedr)ÚyviewÚsetÚyscrollcommandr!Ú details_frameÚgridrIÚ config_frameÚcurrent_extensionZ outerframeZtabbed_page_setÚsortedrˆÚcreate_extension_frameZ selection_set)rQrGÚframeZscrollZ ext_namesÚext_namerTrTrUraõs>            z#ConfigDialog.create_page_extensionsc Cs^i|_xtjddD]}g|j|<qWx0|jD]$}t|j |¡ƒ}dd„|Dƒ}x|D]}| |¡qZW||}xà|D]Ø}|jj||dd}ydddœ|}d}WnBtk rèyt |ƒ}d }Wnt k râ|}d}YnXYnXy|j j|||d|d }Wnt k r|}YnXt |ƒ} |   t|ƒ¡|j| ||||| d œ¡qzWq0WdS) NF)Z active_onlycSsg|]}| d¡r|‘qS)Zenable)Ú startswith)Ú.0Úopt_namerTrTrUú >sz0ConfigDialog.load_extensions..T)Úraw)ÚTrueÚFalseÚboolÚint)Útyper®Údefault)Únamer³r´ÚvalueÚvar)rˆr,Z GetExtensionsr¦r”Z GetOptionListÚremoveÚGetÚKeyErrorr²Ú ValueErrorr–rr ÚstrÚappend) rQr©Zopt_listZenablesr¬Zdef_strZdef_objZopt_typer¶r·rTrTrUr™3sF      zConfigDialog.load_extensionscCsˆ|j ¡}|r|j |¡}|dks,||jkrV|jrV|jjdd|j|j ¡d|_|r„|jj|d|j|jdddd||_dS)Nr;)rVrr)rŒrrŽ) rœÚ curselectionryr¥r¢Úconfigr¤Z grid_forgetr£)rQÚeventZnewselrTrTrUržas  zConfigDialog.extension_selectedcCsæt|jddd}||j|<|j}xÀt|j|ƒD]®\}}t||dd}|j|dtd|d}|dd krŽt ||d d d d j|dt ddq0|ddkrÂt ||d|j dfddj|dt ddq0t ||ddj|dt ddq0WdS)Nr‹)rDrErµ)rVr)rrŒrŽr·r³r±r¯r°é)ÚvariableÚonvalueÚoffvaluerEr‰é)rrŒrŽrkr²Úkeyz%Pr‘)Ú textvariableÚvalidateÚvalidatecommandrEé)rÇrE)ÚVerticalScrolledFramer¢r¤ÚinteriorÚ enumeraterˆr%r£rr#rr$r˜r)rQr©ÚfZ entry_arearÚoptZlabelr·rTrTrUr§ps$    z#ConfigDialog.create_extension_framecCsX|d}|d}|d ¡ ¡p"|}|d |¡||krH|j ||¡S|j |||¡S)Nrµr´r·)ryrr r–Z RemoveOptionÚ SetOption)rQÚsectionrÏrµr´r¶rTrTrUÚset_extension_valueŠsz ConfigDialog.set_extension_valuecCsNd}x6|jD],}|j|}x|D]}| ||¡r d}q Wq W|rJ|j ¡dS)NFT)rˆrÒr–ZSave)rQZ has_changesr©ÚoptionsrÏrTrTrUrt›s      z(ConfigDialog.save_all_changed_extensions)r;)Ú__name__Ú __module__Ú __qualname__rFrKrdrlrmrLrprnrqrurar™ržr§rÒrtÚ __classcell__rTrT)r|rUr:,s 0(     >.r:u^ AaBbCcDdEeFfGgHhIiJj 1234567890#:+=(){}[] ¢£¥§©«®¶½ĞÀÃÂÃÄÅÇÃØß ÉɕɘɞɟɤɫɮɰɷɻÊʃʆʎʞʢʫʭʯ ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκ БбДдЖжПпФфЧчЪъЭÑѠѤѬӜ ×בגדהוזחטיךכל×מןנסעף ابجدهوزحطي٠١٢٣٤٥٦٧٨٩ ०१२३४५६७८९अआइईउऊà¤à¤à¤“औ ௦௧௨௩௪௫௬௭௮௯அஇஉஎ ã€‡ä¸€äºŒä¸‰å››äº”å…­ä¸ƒå…«ä¹ æ±‰å­—æ¼¢å­—äººæœ¨ç«åœŸé‡‘æ°´ ê°€ëƒë”려모뵤수유즈치 ã‚ã„ã†ãˆãŠã‚¢ã‚¤ã‚¦ã‚¨ã‚ª csVeZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Zdd„Z dd„Z ‡Z S)r^cs0tƒ |¡|j|_| ¡| ¡| ¡dS)N)r{rFÚhighlight_sampleÚcreate_page_font_tabÚ load_font_cfgÚ load_tab_cfg)rQÚmasterr])r|rTrUrFÞs  zFontPage.__init__c Csœt t|ƒ|j¡|_t t|ƒ|j¡|_t t|ƒ|j¡|_t t|ƒd¡|_ t |dt dd}t |dt dd}t |dt dd}t |ƒ}t |ƒ}t |tdd}t|d d td |_|j d |j¡|j d |j¡|j d|j¡t|ƒ}|j|jjd|jj|jdt |dd}t||jdƒ|_t||jdddd|_t|ƒ} | j|_|jjtddd|j  t!t"¡t |tdd} t#||j ddddd|_$|j%ddd|j&ddd|j'ddddd|j'dddddd d!|j'ddddd"d#|j(t)ddt*d$|j(t)ddt*d$|j(t)t+d%|jj(tt,t*d&|j(tt-d'|j(tt+d%|jj(tt+d%|jj(tt+d(d)| j(t,t.d*| j(t)t+dd)|j$j(t)dt*d+dS),N)ÚmainÚIndentz num-spacesrhz Shell/Editor Font )r?ÚreliefrVz Font Sample (Editable) z Indentation Width z Font Face :)ZjustifyrVrÊT)rDrjÚexportselectionzzz)ri)r¡zSize :)rVr‰rZBold)rÂrÃrÄrV)ÚwraprErDzPython Standard: 4 Spaces!Z horizontalé)rÂÚorientZ tickintervalZfrom_Úto)rŠr>)rrŒrkÚpadyrgr)rrŒZrowspanrkrårŽZew)rrŒrkrårŽ)rXrkrårZ)rXÚanchor)rXrYrZ)rXrZr@)rXrærk)rYrZ)rXrkrZ)/rOrbrÚvar_changed_fontÚ font_nameÚ font_sizerÚ font_boldrÚ space_numr!rr r%rrr rNrÚon_fontlist_selectr)r¿rŸr r/Úsizelistr#Z bold_toggler9rVrxrÚinsertrrzrZ indent_scaler›ršr£rcr rrr rr) rQZ frame_fontZ frame_sampleZ frame_indentZframe_font_nameZframe_font_paramZfont_name_titleZ scroll_fontZfont_size_titleZfont_sample_frameZ indent_titlerTrTrUrÙåsn.   zFontPage.create_page_font_tabc Csðt |dd¡}|d ¡}|d}|ddk}ttt |¡ƒƒ}x|D]}|j t |¡qFW|j  |¡dd„|Dƒ}y>|  |¡}|j  |¡|j  |¡|j |¡|j |¡Wntk rÈYnX|j d |¡|j |¡| ¡dS) NrÝÚ EditorWindowrr‰rhZboldcSsg|] }| ¡‘qSrT)Úlower)r«ÚsrTrTrUr­fsz*FontPage.load_font_cfg..)Ú7Ú8Ú9Ú10Ú11Ú12Ú13Ú14Ú16Z18Z20Z22Z25Z29Z34Z40)r,ZGetFontrðr¦r ÚtkFontZfamiliesrNrîrrèÚindexÚseeÚ select_setÚ select_anchorZactivater»ríÚSetMenurêÚ set_samples) rQZconfigured_fontrèrérêZfontsÚfontZlc_fontsZcurrent_font_indexrTrTrUrÚUs*         zFontPage.load_font_cfgcGsZ|j ¡}t ddd|¡|j ¡}t ddd|¡|j ¡}t ddd|¡| ¡dS)NrÝrïrz font-sizez font-bold)rèryrrÚ add_optionrérêr)rQÚparamsr¶rTrTrUrçws   zFontPage.var_changed_fontcCs0|j |jjdkrtnt¡}|j | ¡¡dS)NZ KeyRelease) rNryr³rµrrrèr rð)rQrÀrrTrTrUrì†szFontPage.on_fontlist_selectNcCsH|j ¡}|j ¡rtjntj}||j ¡|f}||jd<||jd<dS)Nr) rèryrêrûZBOLDZNORMALrérxrØ)rQrÀrèZ font_weightZnew_fontrTrTrUrs   zFontPage.set_samplescCs$tjdddddd}|j |¡dS)NrÝrÞz num-spacesér²)r´r³)r,Ú GetOptionrër )rQrërTrTrUrÛszFontPage.load_tab_cfgcGs|j ¡}t ddd|¡dS)NrÝrÞz num-spaces)rëryrrr)rQrr¶rTrTrUÚvar_changed_space_num¨s zFontPage.var_changed_space_num)N) rÔrÕrÖrFrÙrÚrçrìrrÛrr×rTrT)r|rUr^Üs p"  r^cs¼eZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Z‡ZS)+r\cs2tƒ |¡|j|_t|ƒ|_| ¡| ¡dS)N)r{rFrÜÚcdr*ÚstyleÚcreate_page_highlightÚload_theme_cfg)rQrÜ)r|rTrUrF°s   zHighPage.__init__cs2ddddddddd d d d d ddddœˆ_t tˆƒˆj¡ˆ_t tˆƒˆj¡ˆ_tˆƒˆ_ t tˆƒˆj ¡ˆ_ t tˆƒˆj ¡ˆ_ t tˆƒˆj¡ˆ_tˆdtdd}tˆdtdd}t|tdd}|j}ˆ_|jddddtdtd| ddd„¡| dd d„¡d!}x |D]\}}| t||¡qWt| d"t¡ ¡ƒ}x>td|ƒD]0} | | ›d#| tt |ƒƒ›d$›d%d&¡qNWx8ˆjD].} | f‡fd'd(„ } | !ˆj| dd)| ¡qŠWd*|d+<ˆj"jd,dd-d.t#|d,d/ˆ_$t#|ƒ} t%ˆj$d0ˆj&d1ˆ_'t(ˆj$ˆjddd2ˆ_)t*| ˆj dd3ˆj+d4ˆ_,t*| ˆj dd5ˆj+d4ˆ_-ˆj  .d¡t%|d6ˆj/d1ˆ_0t1|d7d8} t*|ˆj dˆj2d9d:ˆ_3t*|ˆj dˆj2d;d:ˆ_4t(|ˆjddd<ˆ_5t(|ˆjddd<ˆ_6t%|d=ˆj7d1ˆ_8t1|dd>ˆ_9|j:t;d?d?td?d?t?dAˆj$j:t>d?d?t?dA| j:t>d?ddB|j:t>d?d?ttttBd?d?dIˆj3j:t>tBd?dJˆj4j:t>tBd?ddIˆj5j:t>t?d?d?dHˆj6j:t>t?tBd?d?dKˆj8j:t>t?d?d?dHˆj9j:t>t?d?dLdS)MN)ÚnormalZ00)ÚcontextZ01)ÚkeywordZ02)Ú definitionZ03)ÚbuiltinZ04)ÚcommentZ05)ÚstringZ06)ÚhiliteZ07)ÚhitZ08)ÚcursorZ09)Úbreakrõ)Úconsolerö)Úerrorr÷)Ústdoutrø)Ústderrrù)Ú linenumberrú)zNormal Code or Textz Code ContextzPython KeywordszPython DefinitionszPython BuiltinszPython CommentszPython Stringsz Selected Textz Found TextÚCursorzEditor Breakpointz Shell Promptz Error TextzShell User OutputzShell User Exceptionz Line Numberrhz Custom Highlighting )r?rßrVz Highlighting Theme r‰)rßr?)Zcourieré r;Zhand2r)rrrErDrjÚhighlightthicknessrázcSsdS)NrrT)ÚerTrTrUÚXóz0HighPage.create_page_highlight..z cSsdS)NrrT)rrTrTrUr Yr!)")z# Click selects item.r)Ú r )zcode 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 )z9.8596r)r"r )z>>>r)z pri r )Únr)zt( r )Ú SyntaxErrorr)r"r z1.0z.0Údr$rcsˆj |¡dS)N)Úhighlight_targetr )rÀÚelem)rQrTrUÚtemtsz+HighPage.create_page_highlight..temzÚdisabledÚstatezframe_color_set.TFrameZsolid)r?rß)r zChoose Color for :)rVri)rZ Foreground)rÂr¶rVriZ BackgroundzSave as New Custom Themez Select : )rVza Built-in Theme)rÂr¶rirVza Custom Theme)rizDelete Custom Theme)r?r>)rXrkrårYrZ)rXrkrårZ)rXrkrårÁr)rXrYrZrkrårg)rXræ)rXrZrkrå)rXrærkrå)rXrærk)rXrZrærkrå)rXrZrå)DÚtheme_elementsrOrbrÚ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!rr9rrVrØrIr rrrîrÚlenryÚ splitlinesÚranger¼Ztag_bindr r Úframe_color_setr"Ú get_colorZbutton_set_colorr/Ú 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_messagercrr rr rrr rr )rQÚ frame_customZ frame_themeZ sample_framerVZ string_tagsrÚtagZn_linesÚlinenoÚelementr.Zframe_fg_bg_toggleZtheme_type_titlerT)rQrUr ·sÒv                zHighPage.create_page_highlightc s.ˆj tjdddddd¡t ¡}ˆj ¡r–t dd¡}| ¡ˆj  ||¡t dd¡}| ¡|s‚ˆj   d ¡ˆj  d ¡qÞˆj   ||d ¡nHt dd¡}| ¡ˆj   ||¡t dd¡}| ¡ˆj  ||d ¡ˆ ¡tˆj ¡ƒ}|j‡fd d „dˆj  ||d ¡ˆ ¡ˆ ¡dS)NrÝÚThemer´r±r‰)r³r´Ú highlightÚuser)r/z- no custom themes -rcsˆj|dS)Nr‰)r1)rR)rQrTrUr är!z)HighPage.load_theme_cfg..)rÆ)r:r r,rZ CurrentThemeryÚGetSectionListÚsortrHrrGr0r5rIrFr&r1r‚rAÚpaint_theme_sampleÚset_highlight_target)rQÚcurrent_optionÚ item_listZ theme_namesrT)rQrUr µs2       zHighPage.load_theme_cfgcGsŽd}|j ¡}||krXt ddd¡|krtjd |¡x(|D] }||}tjd |||¡qWdS)NrR)r,r•Ú AddSectionrÐ)rQrmrhrPr¶rTrTrUrls zHighPage.save_newcOs tj||ŽS)N)r+Úaskyesno)rQroÚkwargsrTrTrUrq szHighPage.askyesnocCsÞ|j ¡}d}|jd|||ds&dS|j ¡t d|¡t dd¡}|  ¡|sp|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)rGrRrS)r/z- no custom themes -rrÝrQr´rµ)r5ryrqrrqrrÚdelete_sectionr,rTrUrGr0rIrr:r r“r¹r3rsrtrurF)rQrmÚdelmsgrYrTrTrUrJs&       zHighPage.delete_custom)rÔrÕrÖrFr r r2r4r9r7r;rFr@r[r_rEr`rWrBrnrVrlrqrJr×rTrT)r|rUr\®s. 4  &  (( r\cs eZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zedd„ƒZdd „Zd!d"„Z‡ZS)#r_cs(tƒ |¡|j|_| ¡| ¡dS)N)r{rFrÜrÚcreate_page_keysÚ load_key_cfg)rQrÜ)r|rTrUrFCs 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)(Nrhz Custom Key Bindings )r?rßrVz Key Set zAction - Key(s))rV)rã)rjràzrir¡ZxscrollcommandzGet New Keys for Selectionr/)rVrir0csg|]}tˆddd‘qS)rhr)rer?)r )r«Úi)Úframe_key_setsrTrUr­¼sz-KeysPage.create_page_keys..rr‰zUse a Built-in Key Set)rÂr¶rirVzUse a Custom Key Set)rizDelete Custom Key Set)rVrizSave as New Custom Key Set)r?r>)rXrkrårYrZ)rXrkrårZ)rXrZrkrå)rŠ)rrŒZ columnspanrŽ)rrŒrŽ)rrŒrŽrkråT)rXrZrYrk)rXrZrY)rXrZrYrå)8rOrbrr2r3r4r5rÚ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_keysr>r(Ú set_keys_typeZbuiltin_keyset_onÚcustom_keyset_onr/rHrIÚdelete_custom_keysÚbutton_delete_custom_keysÚsave_as_new_key_setZbutton_save_custom_keysÚ keys_messagercr r rrrr›ršr£rrrrr )rQrMZ frame_targetZ target_titleZscroll_target_yZscroll_target_xZframesrT)rxrUruIs„R            zKeysPage.create_page_keysc Csü|j tjdddddd¡t ¡}|j ¡r–t dd¡}| ¡|j  ||¡t dd¡}| ¡|s‚|j   d ¡|j  d ¡qÞ|j   ||d ¡nHt dd¡}| ¡|j   ||¡t dd¡}| ¡|j  |t ¡¡| ¡t ¡}| |¡dS) NrÝÚKeysr´r±r‰)r³r´r‚rS)r/z- no custom keys -r)rzr r,rZ CurrentKeysryrTrUrHrr‚r0r5rIÚ default_keysrÚload_keys_list)rQrXrYÚ keyset_namerTrTrUrvés,       zKeysPage.load_key_cfgcGsd}|j ¡}||krXt ddd¡|krtjd |¡x(|D] }||}tjd |||¡qWdS)Nr‚)r,r•rprÐ)rŠr™rÀr¶rTrTrUr˜ºs  zKeysPage.save_new_key_setcOs tj||ŽS)N)r+rq)rQrorrrTrTrUrqÊszKeysPage.askyesnocCsæ|j ¡}d}|jd|||ds&dS|j ¡t d|¡t dd¡}|  ¡|sp|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 Set)rGr‚rS)r/z- no custom keys -rrÝr‡r´rµ)r5ryrqrrqrrrsr,rTrUr‚r0rIrrzr r“r¹r3rˆrsrtrur)rQrŠrtrYrTrTrUrƒÎs*         zKeysPage.delete_custom_keys)rÔrÕrÖrFrurvr2r4ryr{rrrr…r~rŽr‰Ú staticmethodr˜rqrƒr×rTrT)r|rUr_As$ !   , r_csdeZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z ‡Z S)r`cs(tƒ |¡| ¡| ¡| ¡dS)N)r{rFÚinit_validatorsÚcreate_page_generalÚload_general_cfg)rQrÜ)r|rTrUrFós zGenPage.__init__cs*t d¡‰‡fdd„}| |¡df|_dS)Nz[0-9]*csˆ |¡dk S)N)Ú fullmatch)rñ)Údigits_or_empty_rerTrUÚis_digits_or_emptyüsz3GenPage.init_validators..is_digits_or_emptyz%P)ÚreÚcompiler—Ú digits_only)rQr rT)rŸrUr›ús  zGenPage.init_validatorsc Cs´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|dtdd}t|dtdd}t|dtdd}t|dtdd}t|dd}t|dd}t||jddd|_t||jddd|_t|dd}t|dd}t|dd} t||jd|jdd |_t|d!d} t||jd|jdd |_t|dd} t| d"d} t| |jdd#|_t|dd} t| d$d}t| d%|j |jdd&|_t|dd}t|d'd}t ||j d(d)d*d(ƒ|_!t|dd}t|d+d}t||j d%d,|_"t|d-|j d.|_#t|dd}t|d/d}t||jdd0d|_$t||jdd1d|_%t|dd}t|d2d}t||jd3|jdd |_&t|dd}t|d4d}t||jdd#|_'t|dd}t|d5d}t||jd|jdd |_(t|dd}t|d6d}t|d3|j |jdd&|_)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;tt?d7d7dF|jj9t@t?d7d7dF|jj9t@t?d7d7dF|j9t:d7dt=dE|j9t>t?d7d7dF|jj9t@tAdGd7dF| j9t@tAd7dH|jj9t@tAdGd7dF| j9t@tAd7dH| j9t:d7dt=dE| j9t>t?d7d7dF|jj9t>d7d7dI| j9t:d7dt=dE|j9t>t?d7d7dF|jj9t:dGd7dI|j9t:d7dt=dE|j9t>t?d7d7dF|j!j9t:dGd7dI|j9t:d7dt=dE|j9t>t?d7dJ|j#j9t@tAdKd7dF|j"j9t:t?dKd7dF|j9t:d7dt=dE|j9t>t?d7d7dF|j%j9t@t?d7d7dF|j$j9t@t?d7d7dF|j9t:d7dt=dE|j9t>t?d7d7dF|j&j9t:dGd7dI|j9t:d7dt=dE|j9t>t?d7d7dF|j'j9t>d7d7dI|j9t:d7dt=dE|j9t>t?d7d7dF|j(j9t:d7d7dI|j9t:d7dt=dE|j9t>t?d7d7dF|j)j9t:d7d7dI|j9t@d7d7tBdE|j9t:d7d7t;ttAt;tT)rDrjràrir¡zZEditr/rÁ)rVr0rEriZAdd)rVrEriZRemove)rXrkrårYrZ)rXrkrårZ)rXrærkrår‘)rXrærå)rXrkrå)rXrærkrÊ)rXrærZ)rXrærYrZ)rXræ)CrOrbrÚ 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!rr r%r(Zstartup_editor_onZstartup_shell_onr$r£Z win_width_intZwin_height_intr#Zcursor_blink_boolZ auto_wait_intr&Zparen_style_typeZparen_flash_timeZbell_onZ save_ask_onZ save_auto_onZformat_width_intZline_numbers_default_boolZ context_intZauto_squeeze_min_lines_intrr Úhelplistr)rŸr rÚhelp_source_selectedr"Úhelplist_item_editÚbutton_helplist_editÚhelplist_item_addZbutton_helplist_addÚhelplist_item_removeÚbutton_helplist_removercr r rrrrr rr) rQZ frame_windowZ frame_editorZ frame_shellZ frame_helpZ frame_runZ startup_titleZframe_win_sizeZwin_size_titleZwin_width_titleZwin_height_titleZframe_cursor_blinkZcursor_blink_titleZframe_autocompleteZauto_wait_titleZ frame_paren1Zparen_style_titleZ frame_paren2Zparen_time_titleZ frame_saveZrun_save_titleZ frame_formatZformat_width_titleZframe_line_numbers_defaultZline_numbers_default_titleZ frame_contextZ context_titleZframe_auto_squeeze_min_linesZauto_squeeze_min_lines_titleZframe_helplistZframe_helplist_buttonsZscroll_helplistrTrTrUrœsdH                               zGenPage.create_page_generalc Cs”|j tjddddd¡|j tjddddd¡|j tjddd dd¡|j tjddd dd¡|j tjd d d dd¡|j t d dd¡¡|j  tjd dddd¡|j  t d dd¡¡|j  tjdddddd¡|j  tjd dddd¡|j  tjddddd¡|j tjd dddd¡|j tjddddd¡t ¡|_|j dd¡x"|jD]}|j t|d¡qlW| ¡dS)NrÝr¤zeditor-on-startupr±)r³rïrEr²rDz cursor-blinkrˆr4r¥r6r z flash-delayr¦r¨r)r´r³r7z max-widthzline-numbers-defaultr5r©r§zauto-squeeze-min-linesrw)r«r r,rr¬r­r®r¯r°r±r²r¨r´rµr¶r³ZGetAllExtraHelpSourcesListÚ user_helplistr·rrîrÚset_add_delete_state)rQZ help_itemrTrTrUr's>                 zGenPage.load_general_cfgcCs | ¡dS)N)r¿)rQrÀrTrTrUr¸PszGenPage.help_source_selectedcCsh|j ¡dkr(|j d¡|j d¡n<|j ¡rL|j d¡|j d¡n|j d¡|j d¡dS)Nr‰)r/)z !disabled)r·Úsizerºr0r½r¾)rQrTrTrUr¿Ts    zGenPage.set_add_delete_statecCs:t|dƒj}|r6|j |¡|j t|d¡| ¡dS)NzNew Help Sourcer)r2rir¾r½r·rîrÚupdate_help_changes)rQÚ help_sourcerTrTrUr»as   zGenPage.helplist_item_addcCsx|j t¡}|j|}t|d|d|ddj}|rt||krt||j|<|j |¡|j ||d¡| ¡|  ¡dS)NzEdit Help Sourcerr‰)ZmenuitemÚfilepath) r·rürr¾r2rirrîrÁr¿)rQÚ item_indexrÂZnew_help_sourcerTrTrUr¹ms     zGenPage.helplist_item_editcCs4|j t¡}|j|=|j |¡| ¡| ¡dS)N)r·rürr¾rrÁr¿)rQrÄrTrTrUr¼s   zGenPage.helplist_item_removec CsZitdd<xHtdt|jƒdƒD]0}t ddt|ƒd |j|ddd…¡¡q"WdS)NrÝZ HelpFilesr‰ú;rh)rrr>r<r¾rr¼r—)rQZnumrTrTrUrÁŒs   zGenPage.update_help_changes)rÔrÕrÖrFr›rœrr¸r¿r»r¹r¼rÁr×rTrT)r|rUr`ñs ()   r`c@s@eZdZdd„Zdd„Zdd„Zedd„ƒZd d „Zd d „Z d S)ÚVarTracecCsg|_g|_dS)N)ÚuntracedÚtraced)rQrTrTrUrF˜s zVarTrace.__init__cCs|j ¡|j ¡dS)N)rÇrvrÈ)rQrTrTrUrv¤s zVarTrace.clearcCs*t|tƒr| ||¡}|j ||f¡|S)N)Ú isinstanceÚtupleÚ make_callbackrÇr½)rQr·ÚcallbackrTrTrUrbªs  z VarTrace.addcs‡‡fdd„}|S)Ncstjˆˆ ¡fžŽdS)N)rrrry)r)r¿r·rTrUÚdefault_callback¾sz0VarTrace.make_callback..default_callbackrT)r·r¿rÍrT)r¿r·rUrË»szVarTrace.make_callbackcCs:x4|jr4|j ¡\}}| d|¡|j ||f¡qWdS)NÚwrite)rÇÚpopZ trace_addrÈr½)rQr·rÌrTrTrUrPÃs zVarTrace.attachcCsFx@|jr@|j ¡\}}| d| ¡dd¡|j ||f¡qWdS)NrÎrr‰)rÈrÏZ trace_removeZ trace_inforÇr½)rQr·rÌrTrTrUÚdetachÊszVarTrace.detachN) rÔrÕrÖrFrvrbršrËrPrÐrTrTrTrUrÆ•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". )z Fonts/TabsrWr‡r¤cCs.|sdSy t|ƒdStk r(dSXdS)NTF)r²r»)rñrTrTrUr˜ sr˜c@seZdZdd„ZdS)rËcsÐtj||f|ž|Žt|td}|jtttdt|dd|j dd‰ˆjt t t d|j ˆjdˆ d¡ˆ d¡tˆƒ|_‰ˆjddˆtd‰‡‡fd d „}ˆ d |¡‡‡‡fd d „}ˆ d |¡dS)N)rã)rZrXrYréð)r?rr¡rE)rXrZrY)ri)Zwindowræcs$ˆ ¡ˆ ¡f}ˆjd|ddS)Nz 0 0 %s %s)Z scrollregion)Úwinfo_reqwidthZwinfo_reqheightr¿)rÀrÀ)ÚcanvasrÌrTrUÚ_configure_interior8 sz;VerticalScrolledFrame.__init__.._configure_interiorz cs&ˆ ¡ˆ ¡kr"ˆjˆˆ ¡ddS)N)rE)rÒZ winfo_widthZ itemconfigure)rÀ)rÓrÌÚ interior_idrTrUÚ_configure_canvas> sz9VerticalScrolledFrame.__init__.._configure_canvas)r rFr)rrcrr r rr rrr r¿rŸZ xview_movetoZ yview_movetorÌZ create_windowrr)rQrGroÚkwZ vscrollbarrÔrÖrT)rÓrÌrÕrUrF# s       zVerticalScrolledFrame.__init__N)rÔrÕrÖrFrTrTrTrUrË srËÚ__main__)rÝz#idlelib.idle_test.test_configdialogrhF)Ú verbosityÚexit)Úrun)_r¡Ztkinterrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrZ tkinter.ttkr r!r"r#r$r%r&r'r(r)r*Ztkinter.colorchooserZ colorchooserr^Z tkinter.fontrrûr+Zidlelib.configr,r-Zidlelib.config_keyr.Zidlelib.dynoptionr/Zidlelibr0Z idlelib.queryr1r2Zidlelib.textviewr3Zidlelib.autocompleter4Zidlelib.codecontextr5Zidlelib.parenmatchr6Zidlelib.formatr7Zidlelib.squeezerr8r9rrr…r:rzr^r\r_r`rÆrOr€rr˜rËrÔZunittestrÝZidlelib.idle_test.htestrÛrTrTrTrUÚ sn€4             S3'= +