m &UIc@sdZdkTdkZdkZdkZdkZdkZdklZdk l Z dk l Z dk lZdklZdklZd efd YZed jo?eZeed d ddihe_eindS(sIDLE Configuration Dialog: support user customization of IDLE by GUI Customize font faces, sizes, and colorization attributes. Set indentation defaults. Customize keybindings. Colorization and keybindings can be saved as user defined sets. Select startup options including shell/editor and default window size. Define additional help sources. Note that tab width in IDLE is currently fixed at eight due to Tk issues. Refer to comment in EditorWindow autoindent code for details. (t*N(sidleConf(s DynOptionMenu(s TabPageSet(s GetKeysDialog(sGetCfgSectionNameDialog(sGetHelpSourceDialogt ConfigDialogcBstZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0e1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLRS(Js' configuration dialog for idle cCsUti|||idd|id|id|idfhdd0<d d1<d d2<dd3<dd4<dd5<dd6<dd7<dd8<d!d9<d$d:<d'd;<d*d<<|_|i |i |i d-t d.t |i ||i|id/|i||_|ii|i|i|idS(=Nt borderwidthis+%d+%diis Normal Texttnormalt00sPython Keywordstkeywordt01sPython Definitionst definitiont02sPython Builtinstbuiltint03sPython Commentstcommentt04sPython Stringststringt05s Selected Textthilitet06s Found Textthitt07tCursortcursort08s Error Textterrort09sShell Normal Texttconsolet10sShell Stdout Texttstdoutt11sShell Stderr Texttstderrt12theighttwidthtWM_DELETE_WINDOW(RR(RR(RR(R R (R R (sstringR(RR(RR(RR(serrorR(RR(sstdoutR(sstderrR(tToplevelt__init__tselftparentt configuretgeometryt winfo_rootxt winfo_rootyt themeElementstResetChangedItemst CreateWidgetst resizabletFALSEt transienttgrab_settprotocoltCancelttabPagest focus_sett LoadConfigstAttachVarCallbackst wait_window(R#R$ttitle((t1/data/zmath/lib/python2.4/idlelib/configDialog.pyR"s+~        cCst|dddddg|_|iit|}t|ddd|id t|_ t|dd d|i d t|_ t|dd d|i d t|_ t|dd d|id t|_|i|i|i|i|i id tdddd|i id tdddd|i id tdddd|iid tdddd|id t|iid tdtdtdS(Nt pageNamess Fonts/Tabst HighlightingtKeystGeneralttexttHelptcommandt takefocustOktApplyR1tsidetpadxitpadytexpandtfill(t TabPageSetR#R2t ChangePagetFrametframeActionButtonstButtonR>R-t buttonHelpRAtbuttonOkRBt buttonApplyR1t buttonCanceltCreatePageFontTabtCreatePageHighlighttCreatePageKeystCreatePageGeneraltpacktRIGHTtLEFTtBOTTOMtTOPtTRUEtBOTH(R#RK((R8R+As,          c Csnt||_t||_t||_t||_t||_t i |d1|_ |i i dd} t| dddt}t| dddt}t|d d }t|}t|} t|d td d } t|d ddtdt|_|iid|it|}|i d|ii!|ii d|i"t| d d}t$| |idd|i&|_'t(| d|iddddd dd|i&}t|dt*dd} t| d dd td|i |_,t|d d} t|}t|}t|d d}t1|d|iddd d }t1|d|iddd d!}t|d d"}t|d td d#}t6|d|id$d%d&dd'dd(d)|_7|i8d*td+dd,dd-t9d.t:|i8d*td+dd,dd.t;|i8d*t<d/t=d+dd,d|i8d*t<d+dd,dd.t>| i8d*t<d+dd,dd.t>| i8d*t<d/t=|ii8d*td-t9d.t>|i8d*td.t;|i8d*td/t=|i'i8d*td/t=|i8d*td/t=d+d0| i8d*t<d+dd,dd-t9d.t:|i,i8d-t9d.t:| i8d*t<d/t=d+dd,d|i8d*t<d+dd.t>|i8d*t<d+dd,dd.t:|i8d*t<d/t=d+dd,d|i8d*t<d/t=d+d|i8d*t<d/t=d+d|i8d*t<d/t=d+dd,d|i8d*t<d/t=d+d|i7i8d*t<d+dd.t>| S(2Ntcourieri Rs Fonts/TabstpageRitreliefR=sSet Base Editor FonttjustifysFont :RiR@texportselectionsR?tyscrollcommandsSize :tvariabletonvalueitoffvalueitBolds,AaBbCcDdEe FfGgHhIiJjK 1234567890 #:+=(){}[]tfontsSet Indentation DefaultssChoose indentation type :tvaluesTab key inserts spacessTab key inserts tabssChoose indentation size :s indent widthtorientt horizontalt tickintervaltfrom_ttoiRCRDRERFRGtanchori(R\i snormal(?t StringVarR#tfontSizet BooleanVartfontBoldtfontNametIntVartspaceNumtindentBySpacesttkFonttFontteditFontR2tpagestframeRJtGROOVEt frameFontt frameIndenttLabeltlabelFontTitlet frameFontNametframeFontParamRWtlabelFontNameTitletListboxR-t listFontNametbindtOnListFontButtonReleaset Scrollbart scrollFonttconfigtyviewtsettlabelFontSizeTitlet DynOptionMenutNonet SetFontSampletoptMenuFontSizet Checkbuttont checkFontBoldtSOLIDtframeFontSampletlabelFontSampletlabelIndentTitletframeIndentTypetframeIndentSizetlabelIndentTypeTitlet RadiobuttontradioUseSpacest radioUseTabstlabelIndentSizeTitletlabelSpaceNumTitletScalet scaleSpaceNumRURZR[tYRYtWtX(R#RR}RRRRRRRzRRRRR|RRRRR((R8RQZs     !      !(""""(""""c Cs&t||_t||_t||_t||_t||_t||_t||_ |i i dd}t |dddt}t |dddt}t|dtddddd d fd d d ddddtdddt |_|i}|idd|iddddfddfddfddfddfd dfd!d"fd#dfd$dfd%d&fd'dfd(d&fd)dfd*d+fd,dfd-d.fd/dfd0d1fd2dfd3d1fd4dfd5d6fd dfd7d fd8dfd9d:fd dfd;d;fd dfd<d<fddff}x)|D]!} |it| d| dqNWx;|iiD]*}|i|i|dd=|d>qW|i d?t!t |dtdd|_"t |} t$|d@dA}t&|i"d@dBdC|i'dd} t)|i"|i t*dd|_+t,| dD|idEdd@dFdC|i-|_.t,| dD|idEdd@dGdC|i-|_/|ii0dt&|d@dHdC|i1} t$|d@dI} t$|d@dJ}t,|dD|idEddC|i5d@dK|_6t,|dD|idEddC|i5d@dL|_7t)||it*dCt*|_8t)||it*dCt*|_9t&|d@dMdC|i:|_;|i<dNt=dOdPdQddRt>dSt?|i<dNt=dOdPdQddSt@|i<dNtAdTtBdOdPdQdP|i"i<dNtAdOdPdQdPdRt>dStC| i<dNtAdOdPdQd|ii<dNtAdOdPdQdPdRt>dSt?| i<dNtAdRt>dStCdOdUdQdV|i+i<dNtAdRt>dStCdOdUdQdW|i.i<dNt=dTtD|i/i<dNtEdTtB| i<dNtFdStCdOdPdQdP| i<dNtAdTtBdOdPdQdP|i<dNtAdTtBdOdPdQdP|i6i<dNtAdTtBdOdP|i7i<dNtAdTtBdOdPdQd|i8i<dNtAdStCdOdPdQdP|i9i<dNtAdStCdTtBdOdPdQdP|i;i<dNtAdStCdOdPdQdP|SdS(XNR:R]RiR^iRfR\i tRthand2RiRi R@thighlightthicknessitwrapscCsdS(Ntbreak((te((R8tss cCsdS(NR((R((R8Rss#you can click hereR s Rs#to choose itemstdefRt tfuncRs(param):s s """string"""R s var0 = s'string's var1 = s 'selected'Rs var2 = s'found'Rs var3 = tlistR t(Rs) s error Rscursor |s tshellRRRscCs|iiii|S(N(teventtwidgettwinfo_toplevelthighlightTargetRtelem(RR((R8RststateR=sSet Custom HighlightingsChoose Colour for :R?RbRgt Foregroundt BackgroundsSave as New Custom ThemesSelect a Highlighting Themes Select : sa Built-in Themesa Custom ThemesDelete Custom ThemeRCRDiRERFRGRmiii(GRnR#t builtinThemet customThemeRptfgHilitetcolourRrtthemeIsBuiltinRR2RyRzRJR{t frameCustomt frameThemetTextRR-tNONEttextHighlightSampleR=Rt textAndTagsttxTatinserttENDR)tkeystelementttag_bindRtDISABLEDtframeColourSett frameFgBgR~tlabelCustomTitleRLt GetColourtbuttonSetColourRRtoptMenuHighlightTargetRtSetColourSampleBindingtradioFgtradioBgRtSaveAsNewThemetbuttonSaveCustomThemetlabelThemeTitletlabelTypeTitlet SetThemeTypetradioThemeBuiltintradioThemeCustomtoptMenuThemeBuiltintoptMenuThemeCustomtDeleteCustomThemetbuttonDeleteCustomThemeRURWRZR[RRYRRtERVRX(R#RR=RzRRRRRRRRRR((R8RRs!     (""+! (+"""%%+%c Cst||_t||_t||_t||_t||_|ii dd}t |dddt }t |dddt } t |}t|dd}t|dd} t|}t|d t}t|d td t|_|iid |i|id |ii|id |ii|iid|i|iid|it |ddd |i!dt"|_#t |ddd |i$}t| dd}t| dd} t(| d|iddd |i)dd|_*t(| d|iddd |i)dd|_+t,| |idd d|_.t,| |idd d|_/t | ddd |i0|_1|i2dt3ddddd t4d!t5| i2dt3ddddd!t6|i2dt7d"t8dddd|i2dt9d!t:dddd|i#i2dt9d!t:dddd|i2dt3ddddd t4d!t5|i;dd#d|i<dd#d| i=d$dd%dd&dd't8|ii=d$dd%dd't>|i=d$dd%dd't?|i=d$dd%dd't@|i2dt7d"t8dddd| i2dt7d"t8dddd|i*i2dt7d"t8dd|i+i2dt7d"t8dddd|i.i2dt7d!t:dddd|i/i2dt7d!t:d"t8dddd|i1i2dt7d!t:dddd|S((NR;R]RiR^R=sSet Custom Key BindingssAction - Key(s)RhR@R`sR?RatxscrollcommandsGet New Keys for SelectionRsSave as New Custom Key SetsSelect a Key Sets Select : RbRgisa Built-in Key Setisa Custom Key SetsDelete Custom Key SetRCRDiRERFRGRmtweighttrowtcolumnt columnspantsticky(ARnR#t bindingTargett builtinKeyst customKeysRptkeysAreBuiltint keyBindingR2RyRzRJR{Rt frameKeySetst frameTargetR~RtlabelTargetTitleRt scrollTargetYt HORIZONTALt scrollTargetXRR-t listBindingsRtKeyBindingSelectedRRtxviewRRLt GetNewKeysRt buttonNewKeystSaveAsNewKeySettbuttonSaveCustomKeystlabelKeysTitleRRt SetKeysTypetradioKeysBuiltintradioKeysCustomRRtoptMenuKeysBuiltintoptMenuKeysCustomtDeleteCustomKeystbuttonDeleteCustomKeysRURWRZR[RRYRRXRtcolumnconfiguret rowconfiguretgridtNSEWtNStEW( R#RRzRRRRRRRRR((R8RS sp     ("""%("""%%+%c Csit||_t||_t||_t||_t||_t||_t ||_ t||_ |i i dd}t|dddt}t|dddt}t|dddt}t|dddt}t|dddt}t|dddt}t|dd}t|dd}t|d |id d d |idd }t|d |id dd |idd}t|dd}t|dd}t|d |id dd |idd}t|d |id d d |idd} t|ddd}t|dd}t$|d|idd} t|dd}t$|d|idd} t|ddd} t$|d|idd}t|dd}t|d |id ddd} t|d |id d dd!}t|d |id d"dd#}t|}t|}t|dd$}t1|}t3|d%d&d't4d(t4|_5|i6d |i5i7|i5i6d)|i8|i5i9d*|i:t;|dd+d,t<dd-d |i=|_>t;|dd.dd-d |i?|_@t;|dd/d,t<dd-d |iA|_B|iCd0tDd1d&d2d&d3tE|iCd0tDd1d&d2d&d3tE|iCd0tDd1d&d2d&d3tE|iCd0tDd1d&d2d&d3tE|iCd0tDd1d&d2d&d3tE|iCd0tDd1d&d2d&d4tFd3tG|iCd0tDd5tHd1d&d2d&|iCd0tId5tHd1d&d2d&|iCd0tJd5tHd1d&d2d&|iCd0tJd5tHd1d&d2d&|iCd0tDd5tHd1d&d2d&|iCd0tId5tHd1d&d2d&| iCd0tJd5tHd1d&d2d&|iCd0tJd5tHd1d&d2d&|iCd0tId5tHd1d&d2d&| iCd0tJd5tKd1d6d2d&|iCd0tJd5tKd2d&| iCd0tJd5tKd1d6d2d&|iCd0tJd5tKd2d&| iCd0tId5tHd1d&d2d&|iCd0tJd5tKd1d6d2d&|iCd0tId5tHd1d&d2d&|iCd0tJd5tKd2d&|iCd0tJd5tKd2d&| iCd0tJd5tKd2d&|iCd0tJd1d&d2d&d3tL|iCd0tDd1d&d2d&d4tFd3tG|iCd0tDd5tH|iCd0tJd5tHd3tL|i5iCd0tId5tKd4tFd3tG|i>iCd0tDd5tHd2d&|i@iCd0tDd5tH|iBiCd0tDd5tHd2d&|S(7NR<R]RiR^R=sStartup Preferencess At StartupRbRgiR?sOpen Edit WindowisOpen Shell WindowsAutosave PreferencesAt Start of Run (F5) sPrompt to Saves No PromptsInitial Window Sizes (in characters)tWidtht textvariableRitHeightsParagraph reformats width (in characters)sDefault Source EncodingtlocalesLocale-definedsutf-8sUTF-8tnoneRsAdditional Help Sources:RiR@R`RastEditRitAddtRemoveRCRDRERGRFRmi (MRnR#twinWidtht winHeightt paraWidthRst startupEdittautoSavetencodingRptuserHelpBrowsert helpBrowserR2RyRzRJR{tframeRunt frameSavet frameWinSizet frameParaSizet frameEncodingt frameHelpR~t labelRunTitletlabelRunChoiceTitleRRtradioStartupEdittradioStartupShelltlabelSaveTitletlabelRunSaveTitlet radioSaveAskt radioSaveAutotlabelWinSizeTitletlabelWinWidthTitletEntryt entryWinWidthtlabelWinHeightTitletentryWinHeighttlabelParaWidthTitletentryParaWidthtlabelEncodingTitletradioEncLocalet radioEncUTF8t radioEncNonet frameHelpListtframeHelpListButtonstlabelHelpListTitleRtscrollHelpListRR-tlistHelpRRRRtHelpSourceSelectedRLRtHelpListItemEdittbuttonHelpListEdittHelpListItemAddtbuttonHelpListAddtHelpListItemRemovetbuttonHelpListRemoveRURYRRZR[RRWRVRR(R#R RzRR.RR"RRR)R'R-R*R#R2R+R1R,R(R%R/R3RR0RR!RR$RRR((R8RTPs          """""("""""""""""""""(%cCs|iid|i|iid|i|iid|i|iid|i |i id|i |i id|i |iid|i|iid|i|iid|i|iid|i|iid|i|iid|i|iid|i|iid|i|iid|i|i id|i!|i"id|i#|i$id|i%|i&id|i'|i(id|i)dS(Ntw(*R#Rottrace_variabletVarChanged_fontSizeRrtVarChanged_fontNameRqtVarChanged_fontBoldRttVarChanged_spaceNumRutVarChanged_indentBySpacesRtVarChanged_colourRtVarChanged_builtinThemeRtVarChanged_customThemeRtVarChanged_themeIsBuiltinRtVarChanged_highlightTargetRtVarChanged_keyBindingRtVarChanged_builtinKeysRtVarChanged_customKeysRtVarChanged_keysAreBuiltinRtVarChanged_winWidthRtVarChanged_winHeightRtVarChanged_paraWidthRtVarChanged_startupEditRtVarChanged_autoSaveRtVarChanged_encoding(R#((R8R5s(cGs)|ii}|iddd|dS(Ntmaint EditorWindows font-size(R#RotgetRgtAddChangedItem(R#tparamsRg((R8R>scGs)|ii}|iddd|dS(NRRRSRf(R#RrRTRgRU(R#RVRg((R8R?scGs)|ii}|iddd|dS(NRRRSs font-bold(R#RqRTRgRU(R#RVRg((R8R@scGs)|ii}|iddd|dS(NRRtIndents use-spaces(R#RuRTRgRU(R#RVRg((R8RBscGs)|ii}|iddd|dS(NRRRWs num-spaces(R#RtRTRgRU(R#RVRg((R8RAscGs|idS(N(R#tOnNewColourSet(R#RV((R8RCscGs3|ii}|iddd||idS(NRRtThemetname(R#RRTRgRUtPaintThemeSample(R#RVRg((R8RDscGsD|ii}|djo$|iddd||indS(Ns- no custom themes -RRRYRZ(R#RRTRgRUR[(R#RVRg((R8REs cGsH|ii}|iddd||o|in |idS(NRRRYtdefault(R#RRTRgRURDRE(R#RVRg((R8RF s cGs|idS(N(R#tSetHighlightTarget(R#RV((R8RGscGs|ii}|ii}|iitid}t i |o|i d|||n0t i |}|d}|i d|||dS(NiRt _cfgBindingst extensions(R#RRTRgRtkeySetRtANCHORtsplitRtidleConft IsCoreBindingRUtGetExtnNameForEventtextNametextKeybindSection(R#RVRgRgR`RfR((R8RHs cGs6|ii}|iddd||i|dS(NRRR;RZ(R#RRTRgRUt LoadKeysList(R#RVRg((R8RI"scGsG|ii}|djo'|iddd||i|ndS(Ns- no custom keys -RRR;RZ(R#RRTRgRURh(R#RVRg((R8RJ's cGsH|ii}|iddd||o|in |idS(NRRR;R\(R#RRTRgRURIRJ(R#RVRg((R8RK-s cGs)|ii}|iddd|dS(NRRRSR(R#RRTRgRU(R#RVRg((R8RL5scGs)|ii}|iddd|dS(NRRRSR(R#RRTRgRU(R#RVRg((R8RM9scGs)|ii}|iddd|dS(NRRtFormatParagrapht paragraph(R#RRTRgRU(R#RVRg((R8RN=scGs)|ii}|iddd|dS(NRRR<seditor-on-startup(R#RRTRgRU(R#RVRg((R8ROAscGs)|ii}|iddd|dS(NRRR<tautosave(R#RRTRgRU(R#RVRg((R8RPEscGs)|ii}|iddd|dS(NRRRSR(R#RRTRgRU(R#RVRg((R8RQIscCs1hdh<dh<dh<dh<|_dS(NRRt highlightRR_(R#t changedItems(R#((R8R*MscCsQt|}|i|i|ph|i||      cCs>tiddtidd}t|d||i}|S(NtuserRR\sNew Custom Key Set(RcRut usedNamestGetCfgSectionNameDialogR#RRR(R#RRR((R8Rs" cCs+|id}|o|i|ndS(NsNew Key Set Name:(R#Rt newKeysNameR(R#R((R8RscCs|iidtdS(NR(R#RRR}(R#R((R8Rsc Cs9|iio|ii}n|ii}ti|} h}x>| i D]0}|dd!}t i| |}|||tiddtidd}t|d||i}|S(NRRlR\sNew Custom Theme(RcRuRRR#RRR(R#RRR((R8R6s" cCs+|id}|o|i|ndS(NsNew Theme Name:(R#Rt newThemeNameR(R#R((R8R=scCs|iiod}|ii}nd}|ii}ti||}||i di jo:|i d|}x&|i D]}||||}|i|||}|i||||o t }qqWqAW|oti|iq!q!Wx%ddgD]}ti|iqW|idS(s3Save configuration changes to the user config file.RRRRRlN(RcRRR#RmRRttFalsetcfgTypeHasChangesRqRtTrueRrRgRR*(R#RtRRgRrRq((R8tSaveAllChangedConfigss*   cCsO|iii}x6|D].}|i|i|i|i qWdS(N( R#R$t instance_dictRt winInstancestinstancetResetColorizert ResetFonttResetKeybindingstreset_help_menu_entries(R#RR((R8tActivateConfigChangess   cCs|idS(N(R#tdestroy(R#((R8R1scCs|i|idS(N(R#RBR(R#((R8RAs cCs|i|idS(N(R#RR(R#((R8RBs cCsdS(N((R#((R8R>s(Mt__name__t __module__t__doc__R"R+RQRRRSRTR5R>R?R@RBRARCRDRERFRGRHRIRJRKRLRMRNRORPRQR*RUR|RRRRRRRRhRRRRXRRRRRRR]RRR[R5RR8R6R:RRRRRRR R4RRRRRR1RARBR>(((R8Rs  &  V [ E ~                       $                     !          t__main__R=tDialogR?cCs ttdS(NtSettings(Rtroot(((R8Rs(RtTkinterRRRvR tcopyt configHandlerRctdynOptionMenuWidgetRttabpageRHtkeybindingDialogRtconfigSectionNameDialogRtconfigHelpSourceEditRR!RRtTkR#RLRURtmainloop( R RvRRRcRRRR%R#RRHR((R8t? s(