AlkantarClanX12

Your IP : 3.136.19.124


Current Path : /opt/alt/python27/lib64/python2.7/idlelib/
Upload File :
Current File : //opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyc

�
^
bc@sNdZddlTddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZddl
mZdd	lmZdd
lmZddlmZdefd
��YZdZidd6Zd�Zdefd��YZedkrJddlZejdddde�ddl m!Z!e!e�ndS(s�IDLE 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 comments in EditorWindow autoindent code for details.

i����(t*N(tidleConf(t
DynOptionMenu(t
GetKeysDialog(tGetCfgSectionNameDialog(tGetHelpSourceDialog(t
TabbedPageSet(t	view_text(t
macosxSupporttConfigDialogcBs�eZdeed�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,�Z.dNd-�Z0d.�Z1d/�Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9�Z<d:�Z=d;�Z>d<�Z?d=�Z@d>�ZAd?�ZBd@�ZCdA�ZDdB�ZEdC�ZFdD�ZGdE�ZHdF�ZIdG�ZJdH�ZKdI�ZLdJ�ZMdK�ZNdL�ZOdM�ZPRS(OtcCs�tj||�||_|r+i|_n|j�|jdd�|j|pTd�|jd|j�d|j	�|s�dndf�id6d
6d7d
6d8d6d9d6d:d6d;d6d<d6d=d6d>d"6d?d%6d@d(6dAd+6dBd.6dCd16|_
|j�|j�|j
d2td3t�|j|�|j�|jd4|j�|jj�|j�|j�|s�|j�|j�nd5S(Ds�
        _htest - bool, change box location when running htest
        _utest - bool, don't wait_window when running unittest
        tborderwidthisIDLE Preferencess+%d+%diii�tnormalt00sNormal Texttkeywordt01sPython Keywordst
definitiont02sPython Definitionstbuiltint03sPython Builtinstcommentt04sPython Commentststringt05sPython Stringsthilitet06s
Selected Textthitt07s
Found Texttcursort08tCursortbreakt09sEditor Breakpointtconsolet10sShell Normal Textterrort11sShell Error Texttstdoutt12sShell Stdout Texttstderrt13sShell Stderr TexttheighttwidthtWM_DELETE_WINDOWN(RR
(RR(RR(RR(RR(RR(RR(RR(RR(RR (R!R"(R#R$(R%R&(R'R((tToplevelt__init__tparentt
instance_dicttwm_withdrawt	configurettitletgeometrytwinfo_rootxtwinfo_rootyt
themeElementstResetChangedItemst
CreateWidgetst	resizabletFALSEt	transienttgrab_settprotocoltCancelttabPagest	focus_settLoadConfigstAttachVarCallbackstwm_deiconifytwait_window(tselfR.R2t_htestt_utest((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR-sJ	
!








cCs�t|ddddddg�|_|jjdtdtd	t�|j�|j�|j�|j	�|j
�|j�jdt�dS(
Nt
page_namess
Fonts/TabstHighlightingtKeystGeneralt
Extensionstsidetexpandtfill(
RR?tpacktTOPtTRUEtBOTHtCreatePageFontTabtCreatePageHighlighttCreatePageKeystCreatePageGeneraltCreatePageExtensionstcreate_action_buttonstBOTTOM(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR8Os	




c
Cs�tj�ri}nidd6dd6}t|dd�}t|dd�}xud|jfd|jfd|jfd	|jffD]=\}}t|d
|d|dt|�j	d
t
dd�q�Wt|dddd�j	d
t�|j	d
t�|S(NitpadxitpadyitOktApplyR>tHelpttexttcommandt	takefocusRMiR)Ri(
RtisAquaTktFrameR]R^R>R_tButtonR:RPtLEFTRQRZ(REtpaddingArgstoutertbuttonsttxttcmd((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRY[s	"cCs�|j}t|�|_t|�|_t|�|_t|�|_tj	|d+�|_
|jjdj
}t|dddtdd	�}t|dddtdd
�}t|�}t|�}t|dtdd�}t|d
ddtdt�|_|jjd|j�t|�}|jd|jj�|jjd|j�t|dd�}	t||jdd|j�|_t |d|jddddddd|j�}
t|dt!dd�}t|dtd|j
dd�|_"t|�}t|dtdd�}
t#|d|jddd dd!dd"d#�|_$|j%d$td%dd&dd't&d(t'�|j%d$td%dd&dd(t(�|j%d$t)d%dd&dd(t*�|j%d$t)d%dd&dd(t*�|j%d$t)d)t+�|jj%d$td't&d(t*�|j%d$td(t(�|	j%d$td)t+�|jj%d$td)t+�|
j%d$td)t+d%d*�|j%d$t)d%dd&dd't&d(t'�|j"j%d't&d(t'�|j%d$t)d(t*�|
j%d$t)d)t+d%d�|j$j%d$t)d%dd(t*�|S(,Ntcourieri
Rs
Fonts/TabsRitreliefR`s Base Editor Font s Indentation Width tjustifysFont Face :R)iRbtexportselections<ButtonRelease-1>RatyscrollcommandsSize :tvariabletonvalueitoffvalueitBoldtfonts,AaBbCcDdEe
FfGgHhIiJjK
1234567890
#:+=(){}[]sPython Standard: 4 Spaces!torientt
horizontalttickintervaltfrom_ttoiRMR[R\RNROtanchori(Rli
R(,R.t	StringVartfontSizet
BooleanVartfontBoldtfontNametIntVartspaceNumttkFonttFontteditFontR?tpagestframet
LabelFrametGROOVERdtLabelRftListboxR:tlistFontNametbindtOnListFontButtonReleaset	ScrollbartconfigtyviewtsetRtNonet
SetFontSampletoptMenuFontSizetCheckbuttontSOLIDtlabelFontSampletScalet
scaleSpaceNumRPRRRStYRQtXtW(RER.R�t	frameFonttframeIndentt
frameFontNametframeFontParamtlabelFontNameTitlet
scrollFonttlabelFontSizeTitlet
checkFontBoldtframeFontSampletframeIndentSizetlabelSpaceNumTitle((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRTpsn		
	("""(c!CsB|j}t|�|_t|�|_t|�|_t|�|_t|�|_t|�|_t|�|_	|j
jdj}t
|dddtdd�}t
|dddtdd�}t|dtddd	dZd
ddddddtdddt�	|_|j}|jdd��|jdd��d[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzf }x)|D]!}|jt|d|d�q�Wx;|jD]0}|dA�}	|j|j|ddB|	�q�W|jdCt�t|dtdd�|_t|�}
t|jddDdE|jdd�}t|j|j	ddd�|_!t"|
dF|jdGdddHdE|j#�|_$t"|
dF|jdGdddIdE|j#�|_%|jj&d�t|ddJdE|j'�}t(|ddK�}
t"|dF|jdGddE|j)ddL�|_*t"|dF|jdGddE|j)ddM�|_+t||jddEd�|_,t||jddEd�|_-t|ddNdE|j.�|_/t(|dOd�|_0|j1dPt2dQdRdSdRdTt3dUt4�|j1dPt2dQdRdSdRdUt5�|jj1dPt6dQdRdSdRdTt3dUt7�|
j1dPt6dQdRdSd�|jj1dPt6dQdRdSdRdTt3dUt4�|j1dPt6dTt3dUt7dQdVdSdW�|j!j1dPt6dTt3dUt7dQdVdSdX�|j$j1dPt2dYt8�|j%j1dPt9dYt:�|j1dPt;dUt7dQdRdSdR�|
j1dPt6dYt:dQdRdSdR�|j*j1dPt6dYt:dQdR�|j+j1dPt6dYt:dQdRdSd�|j,j1dPt6dUt7dQdRdSdR�|j-j1dPt6dUt7dYt:dQdRdSdR�|j/j1dPt6dUt7dQdRdSdR�|j0j1dPt6dUt7dSdR�|S({NRIRiRmR`s Custom Highlighting s Highlighting Theme iRuRliR
Rthand2R*iR)iRbthighlightthicknessitwraps<Double-Button-1>cSsdS(NR((te((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyt<lambda>�R
s<B1-Motion>cSsdS(NR((R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��R
s#you can click hereRs
Rs#to choose itemstdefRt tfuncRs(param):
  s"""string"""Rs

  var0 = s'string's

  var1 = s
'selected'Rs

  var2 = s'found'Rs

  var3 = tlistRt(R�s)
s  breakpoint("line")Rs

s error R#scursor |s
 tshellR!R%R'cSs|jj�jj|�dS(N(twidgettwinfo_toplevelthighlightTargetR�(teventtelem((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyttem�ss<ButtonPress-1>tstatesChoose Colour for :RaRqtvaluet
Foregroundt
BackgroundsSave as New Custom Themes	Select : sa Built-in Themesa Custom ThemesDelete Custom ThemetbdRMR[iR\RNROiiiR{(RliR
(s#you can click hereR(s
R(s#to choose itemsR(s
R(R�R(R�R(R�R(s(param):
  R(s"""string"""R(s

  var0 = R(s'string'R(s

  var1 = R(s
'selected'R(s

  var2 = R(s'found'R(s

  var3 = R(R�R(R�R(R�R(s)
R(s  breakpoint("line")R(s

R(s error R#(R�R(scursor |R(s
 R(R�R!(R�R(R%R%(R�R(R'R'(s
R(<R.R|tbuiltinThemetcustomThemeR~tfgHilitetcolourR�tthemeIsBuiltinR�R?R�R�R�R�tTextR�R:tNONEttextHighlightSampleR�tinserttENDR6ttag_bindR�tDISABLEDRdtframeColourSetRet	GetColourRR�toptMenuHighlightTargettRadiobuttontSetColourSampleBindingtradioFgtradioBgR�tSaveAsNewThemeR�tSetThemeTypetradioThemeBuiltintradioThemeCustomtoptMenuThemeBuiltintoptMenuThemeCustomtDeleteCustomThemetbuttonDeleteCustomThemetnew_custom_themeRPRfRRRSR�RQR�tEtRIGHTR�RZ(RER.R�tframeCustomt
frameThemeR`ttextAndTagsttxTatelementR�t	frameFgBgtbuttonSetColourtbuttonSaveCustomThemetlabelTypeTitle((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRU�s�				
("+(""%%+%cCs�|j}t|�|_t|�|_t|�|_t|�|_t|�|_|jj	dj
}t|dddtdd�}t|dddtdd�}t
|�}t|dd�}t|�}t|d	t�}t|d
tdt�|_|jjd|j�|jd
|jj�|jd
|jj�|jjd|j�|jjd|j�t|ddd
|jdt�|_gtd�D]$}	t
|dddddd�^q�}
t|
dd|jddd
|j dd�|_!t|
dd|jddd
|j dd�|_"t#|
d|jdd
d�|_%t#|
d|jdd
d�|_&t|
dddd
|j'�|_(t|
dddd
|j)�}|j*dt+dddddt,dt-�|j*dt+dddddt-�|jj*dt+dt.dddd�|j*dt/dddddt,dt-�|j0dd d�|j1dd d�|j2d!dd"dd#dd$t3�|jj2d!dd"dd$t4�|j2d!dd"dd$t5�|j2d!dd"dd$t6�|j!j2d!dd"dd$t3t5�|j"j2d!dd"dd$t3t5�|j%j2d!dd"dd$t4�|j&j2d!dd"dd$t4�|j(j*dt/dt.dt7dd�|j*dt/dt.dt7dd�|
dj*dt8dt-dt7�|
dj*dt8dt.dt7dd�|S(%NRJRiRmR`s Custom Key Bindings s	 Key Set sAction - Key(s)RvRbRos<ButtonRelease-1>RaRptxscrollcommandsGet New Keys for SelectionR�R[R\iRqR�isUse a Built-in Key SetsUse a Custom Key SetsDelete Custom Key SetsSave as New Custom Key SetRMiRNROtweighttrowtcolumnt
columnspantsticky(9R.R|t
bindingTargettbuiltinKeyst
customKeysR~tkeysAreBuiltint
keyBindingR?R�R�R�R�RdR�R�t
HORIZONTALR�R:tlistBindingsR�tKeyBindingSelectedR�R�txviewR�Ret
GetNewKeysR�t
buttonNewKeystrangeR�tSetKeysTypetradioKeysBuiltintradioKeysCustomRR�toptMenuKeysBuiltintoptMenuKeysCustomtDeleteCustomKeystbuttonDeleteCustomKeystSaveAsNewKeySetRPRZRRRSR�RftcolumnconfiguretrowconfiguretgridR�tNSEWtNStEWtTrueRQ(RER.R�R�tframeKeySetstframeTargettlabelTargetTitlet
scrollTargetYt
scrollTargetXtitframestbuttonSaveCustomKeys((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRV#s~		4("%("##%" &cCs1|j}t|�|_t|�|_t|�|_t|�|_t|�|_t|�|_	t|�|_
|jjdj
}t|dddtdd�}t|dddtdd�}t|dddt�}t|dddt�}t|dddtdd�}t|dd	�}t|d
|jddd
|jdd�}	t|d
|jddd
|jdd�}
t|dd�}t|d
|jddd
|jdd�}t|d
|jddd
|jdd�}
t|dd�}t|dd�}t|d|jdd�}t|dd�}t|d|jdd�}t|dd�}t|d
|jdddd�}t|d
|jdddd�}t|d
|jdddd �}t|�}t|�}t|�}t|d!d"d#td$t�|_|jd
|jj�|jjd%|j�|jjd&|j�t|dd'd(tdd)d
|j �|_!t|dd*dd)d
|j"�|_#t|dd+d(tdd)d
|j$�|_%|j&d,t'd-d"d.d"d/t(�|j&d,t'd-d"d.d"d/t(�|j&d,t'd-d"d.d"d/t(�|j&d,t'd-d"d.d"d/t(�|j&d,t'd-d"d.d"d0t)d/t*�|j&d,t+d1t,d-d"d.d"�|
j&d,t-d1t,d-d"d.d"�|	j&d,t-d1t,d-d"d.d"�|j&d,t+d1t,d-d"d.d"�|
j&d,t-d1t,d-d"d.d"�|j&d,t-d1t,d-d"d.d"�|j&d,t+d1t,d-d"d.d"�|j&d,t-d1t.d-d2d.d"�|j&d,t-d1t.d.d"�|j&d,t-d1t.d-d2d.d"�|j&d,t-d1t.d.d"�|j&d,t+d1t,d-d"d.d"�|j&d,t-d1t.d.d"�|j&d,t-d1t.d.d"�|j&d,t-d1t.d.d"�|j&d,t-d-d"d.d"d/t/�|j&d,t'd-d"d.d"d0t)d/t*�|j&d,t-d1t,d/t/�|jj&d,t+d1t.d0t)d/t*�|j!j&d,t'd1t,d.d"�|j#j&d,t'd1t,�|j%j&d,t'd1t,d.d"�|S(3NRKRiRmR`s Startup Preferences s Autosave Preferences s Additional Help Sources s
At StartupRqR�iRasOpen Edit WindowisOpen Shell WindowsAt Start of Run (F5)  sPrompt to Saves	No Prompts$Initial Window Size  (in characters)tWidthttextvariableR*itHeightsDefault Source EncodingtlocalesLocale-definedsutf-8sUTF-8tnoneR�R)iRbRoRps<ButtonRelease-1>tEditR�itAddtRemoveRMR[R\RORNR{i
(0R.R|twinWidtht	winHeightR�tstartupEdittautoSavetencodingR~tuserHelpBrowserthelpBrowserR?R�R�R�R�RdR�R�R�tEntryR�R�R:tlistHelpR�R�R�R�tHelpSourceSelectedReR�tHelpListItemEdittbuttonHelpListEdittHelpListItemAddtbuttonHelpListAddtHelpListItemRemovetbuttonHelpListRemoveRPRQR�RRRSRfR�R�R�R�(RER.R�tframeRunt	frameSavetframeWinSizet
frameEncodingt	frameHelptlabelRunChoiceTitletradioStartupEdittradioStartupShelltlabelRunSaveTitletradioSaveAskt
radioSaveAutotlabelWinSizeTitletlabelWinWidthTitlet
entryWinWidthtlabelWinHeightTitletentryWinHeighttlabelEncodingTitletradioEncLocaletradioEncUTF8tradioEncNonet
frameHelpListtframeHelpListButtonstscrollHelpList((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRWps�				""""("""""""""""(%cCs�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|j	jd|j
�|jjd|j�|j
jd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j �|j!jd|j"�dS(Ntw(#R}ttrace_variabletVarChanged_fontR�RR�tVarChanged_spaceNumR�tVarChanged_colourR�tVarChanged_builtinThemeR�tVarChanged_customThemeR�tVarChanged_themeIsBuiltinR�tVarChanged_highlightTargetR�tVarChanged_keyBindingR�tVarChanged_builtinKeysR�tVarChanged_customKeysR�tVarChanged_keysAreBuiltinRtVarChanged_winWidthRtVarChanged_winHeightRtVarChanged_startupEditRtVarChanged_autoSaveRtVarChanged_encoding(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRB�s$cCs�x�|j|j|j|j|j|j|j|j|j|j	|j
|j|j|j
|j|j|j|jfD]$}|jd|j�dd�qsWdS(NR>ii(R}R�RR�R�R�R�R�R�R�R�R�R�RRRRRt
trace_vdeletettrace_vinfo(REtvar((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytremove_var_callbacks�scGss|jj�}|jddd|�|jj�}|jddd|�|jj�}|jddd|�dS(s�When one font attribute changes, save them all, as they are
        not independent from each other. In particular, when we are
        overriding the default font, we need to write out everything.
        tmaintEditorWindowRus	font-sizes	font-boldN(R�tgettAddChangedItemR}R(REtparamsR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR@scGs)|jj�}|jddd|�dS(NRTtIndents
num-spaces(R�RVRW(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRA
scGs|j�dS(N(tOnNewColourSet(RERX((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRBscGs�|jj�}|dkr�tjddd�dkrO|jdddd�n|jddd|�|jjdd	d
d�nE|jddd|�|jdddd�|jjddd
d
�|j�dS(Ns	IDLE DarkRTtThemetnamesIDLE NewsIDLE Classictname2R`sNew theme, see Helptfgs#500000R
tblack(R�RVRt	GetOptionRWR�R�tPaintThemeSample(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRCs
cGsB|jj�}|dkr>|jddd|�|j�ndS(Ns- no custom themes -RTR[R\(R�RVRWRa(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRD"scGsF|jj�}|jddd|�|r8|j�n
|j�dS(NRTR[tdefault(R�RVRWRCRD(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRE(s

cGs|j�dS(N(tSetHighlightTarget(RERX((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRF0scGs�|jj�}|jj�}|jjt�j�d}tj|�rb|jd|||�n/tj	|�}|d}|jd|||�dS(Nitkeyst_cfgBindingst
extensions(
R�RVR�R�tANCHORtsplitRt
IsCoreBindingRWtGetExtnNameForEvent(RERXR�tkeySetR�textNametextKeybindSection((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRG3s
cGs6|jj�}|jddd|�|j|�dS(NRTRJR\(R�RVRWtLoadKeysList(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRH?scGsE|jj�}|dkrA|jddd|�|j|�ndS(Ns- no custom keys -RTRJR\(R�RVRWRn(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRIDscGsF|jj�}|jddd|�|r8|j�n
|j�dS(NRTRJRb(R�RVRWRHRI(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRJJs

cGs)|jj�}|jddd|�dS(NRTRUR*(RRVRW(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRKRscGs)|jj�}|jddd|�dS(NRTRUR)(RRVRW(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRLVscGs)|jj�}|jddd|�dS(NRTRKseditor-on-startup(RRVRW(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRMZscGs)|jj�}|jddd|�dS(NRTRKtautosave(RRVRW(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRN^scGs)|jj�}|jddd|�dS(NRTRUR(RRVRW(RERXR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRObscCs)iid6id6id6id6|_dS(NRTt	highlightRdRf(tchangedItems(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR7fscCsLt|�}||j|kr3i|j||<n||j|||<dS(N(tstrRq(REttyptsectiontitemR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRWoscCs�iid6id6id6id6}x�|D]�}tjd|�}xh|D]`}i|||<tj|j|�}x3|D]+}tj|j||�||||<qyWqHWq)W|S(NRTRpRdRfRb(RtGetSectionListt
defaultCfgt
GetOptionListtGet(REtdItemst
configTypetsectionsRttoptionstoption((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytGetDefaultItemsus"


1cCs�|jj�rK|jjdt�|jjdt�|jjdt�nL|jjdt�|jjdt�|jjdt�|jjdt�dS(NR�(	R�RVR�R�tNORMALR�R�R�R�(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��scCs�|jj�rK|jjdt�|jjdt�|jjdt�nL|jjdt�|jjdt�|jjdt�|jjdt�dS(NR�(	R�RVR�R�R�R�R�R�R�(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��scCs�|jjt�}|jj|�}|j�d}|jj�rU|jj�}n|jj�}tj	�}||j
dkr�|j
d|}x%|D]}||j�||<q�Wn|j�}t|d||�j
}	|	r�|jj�rDd}
|j|
�}|s4|jj|�|jj|�dS|j|�n|jj|�|jj||d|	�|jj|�|jj|�|jj|	�n |jj|�|jj|�dS(NiRdsGet New KeysscYour changes will be saved as a new Custom Key Set. Enter a name for your new Custom Key Set below.s - (R�tindexRgRVRhR�R�R�RtGetCurrentKeySetRqtvaluesRtresulttGetNewKeysNamet
select_sett
select_anchortCreateNewKeySettdeleteR�R�R�(REt	listIndextbindingtbindNametcurrentKeySetNametcurrentBindingst
keySetChangesR�tcurrentKeySequencestnewKeystmessaget	newKeySet((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s<
cCs>tjdd�tjdd�}t|d||�j}|S(NtuserRdRbsNew Custom Key Set(RRvRR�(RER�t	usedNamesR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s
cCs)|jd�}|r%|j|�ndS(NsNew Key Set Name:(R�R�(REtnewKeysName((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��scCs|jjdt�dS(NR�(R�R�R�(RER�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��sc
Cs#|jj�r!|jj�}n|jj�}tj|�}i}x8|D]0}|dd!}dj||�}|||<qLW||jdkr�|jd|}x|D]}||||<q�Wn|j||�tj	dd�}	|	j
�|jj|	|�|jj
d�|j�dS(Nii����R�RdR�i(R�RVR�R�RtGetCoreKeystjoinRqt
SaveNewKeySetRvtsortR�tSetMenuR�R�(
REt
newKeySetNametprevKeySetNametprevKeysR�R�t	eventNameR�R�t
customKeyList((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s&



c	Cs<d}d}|jj�r6d}|jjt�}ntj|�}|j�}|j�|jjdt	�x�|D]�}dj
||�}|dd!}||jdkr�||jd|kr�|jd||}q�n|jjt	|d|�quW|r8|jj
|�|jj|�|jj|�ndS(NiiR�ii����Rds - (R�tcurselectionR�RgRt	GetKeySetRdR�R�R�R�RqR�tseeR�R�(	REt
keySetNametreselectR�R�Rkt	bindNamesR�tkey((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRn�s(


cCsR|jj�}d}tjd||d|�s5dS|j�tjdj|�||jdkrw|jd|=ntjdj	�tj
dd�}|j�|s�|jj
dt�|jj|d�n|jj||d�|jjtjd	jd
d��|jjtjd	jd
d��|j�|j�|j�dS(
Ns0Are you sure you wish to delete the key set %r ?sDelete Key SetR.RdR�R�s- no custom keys -iRTRJRbR\(R�RVttkMessageBoxtaskyesnotDeactivateCurrentConfigRtuserCfgtremove_sectionRqtSaveRvR�R�R�R�R�R�R�R�RwRyR�tSaveAllChangedConfigstActivateConfigChangesR�(RER�tdelmsgtitemList((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s*

##

cCsR|jj�}d}tjd||d|�s5dS|j�tjdj|�||jdkrw|jd|=ntjdj	�tj
dd�}|j�|s�|jj
dt�|jj|d�n|jj||d�|jjtjd	jd
d��|jjtjd	jd
d��|j�|j�|j�dS(
Ns.Are you sure you wish to delete the theme %r ?sDelete ThemeR.RpR�R�s- no custom themes -iRTR[RbR\(R�RVR�R�R�RR�R�RqR�RvR�R�R�R�R�R�R�R�RwRyR�R�R�R�(REt	themeNameR�R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�s*

##

cCs�|jj�}|jjd�}tjd|dd|d|�\}}|r�||kr�|jj�r�d}|j|�}|s�dS|j|�|j	j
|�q�|j	j
|�ndS(NtbgR.R2sPick new colour for : tinitialcolors_Your changes will be saved as a new Custom Theme. Enter a name for your new Custom Theme below.(R�RVR�tcgetttkColorChoosertaskcolorR�tGetNewThemeNametCreateNewThemeR�R�(REttargett
prevColourt	rgbTuplettcolourStringR�tnewTheme((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�6s	
cCs�|jj�}|jjd|�|jj�r7dnd}|j|jj�d}|jj|i||6�|j	j�}|d|}|j
d|||�dS(NR�t
foregroundt
backgroundit-Rp(R�RVR�R�R�R6R�R�t
tag_configR�RW(REt	newColourtplanet
sampleElementtthemetthemeElement((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRZJscCs>tjdd�tjdd�}t|d||�j}|S(NR�RpRbsNew Custom Theme(RRvRR�(RER�R�R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�Ts
cCs)|jd�}|r%|j|�ndS(NsNew Theme Name:(R�R�(REtnewThemeName((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�[scCs�|jj�r'd}|jj�}nd}|jj�}tj||�}||jdkr�|jd|}x|D]}||||<qyWn|j||�tjdd�}|j	�|j
j||�|jjd�|j
�dS(NRbR�Rpi(R�RVR�R�RtGetThemeDictRqtSaveNewThemeRvR�R�R�R�R�(RER�t	themeTypeR�R�tthemeChangesR�tcustomThemeList((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�`s 

cCs6|jjt�}|jj|j��|j�dS(N(R�RVRgR�R�tlowerR�(RER�Ru((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�xscCsr|jj�}|jj�r'tjntj}||jj�|f}|jjd|�|j	j
d|�dS(NRu(R�RVRR�tBOLDR�R}R�R�R�R1(RER�R�t
fontWeighttnewFont((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�}s
!cCs�|jj�dkrN|jjdt�|jjdt�|jjd�n6|jjdt�|jjdt�|jjd�|j	�dS(NRR�i(
R�RVR�R�R�R�R�R�R�tSetColourSample(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRc�scGs|j�dS(N(R�(REtargs((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��scCsa|j|jj�d}|jj�r/dnd}|jj||�}|jjd|�dS(NiR�R�R�(R6R�RVR�R�ttag_cgetR�R�(REttagR�R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��scCs$|jj�r!|jj�}n|jj�}x�|jD]�}|j|d}tj||�}|dkr�tj|ddd�|d<n||jdkr�|jd|}|d|kr�||d|d	<n|d
|kr�||d
|d<q�n|jj	||�q:W|j
�dS(NiRRtfgBgR�R�Rps-foregroundR�s-background(R�RVR�R�R6RtGetHighlightRqR�R�R�(RER�telementTitleR�tcolourst	themeDict((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRa�s"cCs|j�dS(N(tSetHelpListButtonStates(RER�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR �scCs�|jj�dkr>|jjdt�|jjdt�n^|jj�rv|jjdt�|jjdt�n&|jjdt�|jjdt�dS(NiR�(RtsizeR"R�R�R&R�R�(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��scCsht|d�j}|rZ|jj|d|df�|jjt|d�|j�n|j�dS(NsNew Help Sourceii(	RR�tuserHelpListtappendRR�R�tUpdateUserHelpChangedItemsR�(REt
helpSource((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR#�s
cCs�|jjt�}|j|}t|dd|dd|d�j}|sX||kr\dS||j|<|jj|�|jj||d�|j�|j	�dS(NsEdit Help SourcetmenuItemitfilePathi(
RR�RgR�RR�R�R�R�R�(REt	itemIndexR�t
newHelpSource((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR!�s


cCsD|jjt�}|j|=|jj|�|j�|j�dS(N(RR�RgR�R�R�R�(RER�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR%�s


c	Cspi|jdd<xXtdt|j�d�D]:}|jddt|�dj|j|dd ��q.WdS(s<Clear and rebuild the HelpFiles section in self.changedItemsRTt	HelpFilesit;iN(RqR�tlenR�RWRrR�(REtnum((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s
#c
Cs9ttj|��}|j�x!|D]}|jjt|�q&Wtj|dd�}|dj	�}|d}|ddk}|j
j|�g|D]}|j	�^q�}yC|j|�}	|jj
|	�|jj|	�|jj|	�Wntk
rnX|jjd|�|jj|�|j�dS(NRTRUiiitboldt7t8t9R"R$R&R(t14t16t18t20t22t25t29t34t40(R�R�R�R"R$R&R(R�R�R�R�R�R�R�R�R�(R�R�tfamiliesR�R�R�R�RtGetFontR�R�R�R�R�R�R�t
ValueErrorR�R�RR�(
REtfontsRutconfiguredFontR�R}Rtstlc_fontstcurrentFontIndex((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytLoadFontCfg�s,



	
cCs5tjddddddd�}|jj|�dS(NRTRYs
num-spacesRbittypetint(RR`R�R�(RER�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyt
LoadTabCfg�sc	s��jjtjddddddd��tj�}�jj�r�tjdd�}|j��jj	||�tjdd�}|j�|s��j
jd	t��j
jd
�q9�jj	||d�nbtjdd�}|j��jj	||�tjdd�}|j��jj	||d��j��jj�}|jd�fd
���jj	||d��j��j�dS(NRTR[RbR�tbooliRpR�R�s- no custom themes -iR�cs�j|dS(Ni(R6(tx(RE(s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR� R
(R�R�RR`tCurrentThemeRVRvR�R�R�R�R�R�R�R�R�R6RdR�RaRc(REt
currentOptionR�t
themeNames((REs9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytLoadThemeCfgs2





c	Cs`|jjtjddddddd��tj�}|jj�r�tjdd�}|j�|jj	||�tjdd�}|j�|s�|j
jd	t�|j
jd
�q9|jj	||d�nbtjdd�}|j�|jj	||�tjdd�}|j�|jj	||d�|j�tj�}|j|�dS(NRTRJRbR�RiRdR�R�s- no custom keys -i(R�R�RR`tCurrentKeysRVRvR�R�R�R�R�R�R�R�R�Rn(RERR�R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyt
LoadKeyCfg%s,




c	Cs
|jjtjddddddd��|jjtjddddd	dd��|jjtjdd
ddd��|jjtjdd
d
dd��|jjtjdd
ddd��tj�|_	x(|j	D]}|j
jt|d	�q�W|j
�dS(NRTRKseditor-on-startupRbiR�RRoiRUR*RR)RR(RR�RR`RRRRtGetAllExtraHelpSourcesListR�RR�R�R�(REthelpItem((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytLoadGeneralCfgCscCs6|j�|j�|j�|j�|j�dS(s�
        load configuration from default and user config files and populate
        the widgets on the config dialog pages.
        N(R�RRR	R(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRAXs




cCsftjdj|�s-tjdj|�nx2|D]*}||}tjdj|||�q4WdS(s�
        save a newly created core key set.
        keySetName - string, the name of the new key set
        keySet - dictionary containing the new key set
        RdN(RR�thas_sectiontadd_sectiont	SetOption(RER�RkR�R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�hs


cCsftjdj|�s-tjdj|�nx2|D]*}||}tjdj|||�q4WdS(s�
        save a newly created theme.
        themeName - string, the name of the new theme
        theme - dictionary containing the new theme
        RpN(RR�R
RR(RER�R�R�R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR�ts


cCsltj|j||�rRtj|j||�|krRtj|j||�Sntj|j|||�S(N(RRwt
has_optionRyR�tRemoveOptionR(RER{RtRuR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytSetUserValue�scCstjdj�x�|jD]�}t}x�|j|D]�}|dkrdtjdjd�t}nxO|j||D]<}|j|||}|j||||�rvt}qvqvWq5W|rtj|j�qqWx%ddgD]}tj|j�q�W|j�|j	�dS(s3Save configuration changes to the user config file.RTR�RdRpN(
RR�R�RqtFalseR�RRR7tsave_all_changed_extensions(RER{tcfgTypeHasChangesRtRuR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s"	
cCs+|jj}x|D]}|j�qWdS(N(R.R/tRemoveKeybindings(REtwinInstancestinstance((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s
cCsY|jjj�}x@|D]8}|j�|j�|j�|j�|j�qWdS(s'Dynamically apply configuration changesN(R.R/RdtResetColorizert	ResetFonttset_notabs_indentwidthtApplyKeybindingstreset_help_menu_entries(RERR((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR��s




cCs|j�|j�dS(N(tgrab_releasetdestroy(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR>�s
cCs"|j�|j�|j�dS(N(R^RR(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR]�s

cCs"|j�|j�|j�dS(N(R�R�R�(RE((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR^�s

c	Cs6|jj}t|dddttj|d��dS(NR2sHelp for IDLE preferencesR`R
(R?t
_current_pageRthelp_commont
help_pagesRV(REtpage((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR_�sc
Cs|j}|jjdj}tjd|_tjd|_|j	t
�|_
|j�t|�|_
|jddd�|jddd�t|d|j
dd	�|_|jjd
|j�t|d|jj�}|j|j_t|dd
dd
�|_|jjdddddd�|jdddddd�|jjdddddddddg�|jdddd�i|_d|_||_|j|_ d}x6t!|j"�D]%}|j#|�|d|d}q�W|j
j|�|jj$d�|jd�dS(sPart of the config dialog used for configuring IDLE extensions.

        This code is generic - it works for any and all IDLE extensions.

        IDLE extensions save their configuration options using idleConf.
        This code reads the current configuration using idleConf, supplies a
        GUI interface to change the configuration values, and saves the
        changes using idleConf.

        Not all changes take effect immediately - some may require restarting IDLE.
        This depends on each extension's implementation.

        All values are treated as text, and it is up to the user to supply
        reasonable values. The only exception to this are the 'enable*' options,
        which are boolean, and can be toggled with a True/False button.
        RLRfiR�iitlistvariablet
selectmodetbrowses<<ListboxSelect>>RaR*i�R)R�R�R�tnwstnstnsewR[i
R\R
t{s} N(%R.R?R�R�RRwtext_defaultCfgR�text_userCfgtregistertis_inttload_extensionsR|textension_namesRRR�textension_listR�textension_selectedR�R�R�RpR�t
details_frameRR1tconfig_frameR�tcurrent_extensiont
outerframettabbed_page_settsortedRftcreate_extension_framet
selection_set(RER.R�tscrollt	ext_namestext_name((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRX�s<	
+			
c
Cs�i|_x'tjdt�D]}g|j|<qWx�|jD]�}t|jj|��}g|D]}|jd�rb|^qb}x|D]}|j|�q�W||}x0|D](}|jj	||dt
�}y"it
d6td6|}d}WnGtk
r>yt|�}d}Wq?t
k
r:|}d
}q?XnXy+|jj	||d|dt
d	|�}Wnt
k
r�|}nXt|�}	|	jt|��|j|ji|d
6|d6|d	6|d6|	d6�q�Wq=Wd
S(sAFill self.extensions with data from the default and user configs.tactive_onlytenabletrawRRRRR�RbR\R�RRN(RfRt
GetExtensionsRR8R+Rxt
startswithtremoveRyRtKeyErrorRR�R�R,R|R�RrR�(
RER=topt_listtopt_nametenablestdef_strtdef_objtopt_typeR�RR((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR/�sH	



	



	


cCs�|jj�}|r*|jj|�}n|dksE||jkr�|jr�|jjdd�|j|jj�d|_q�n|r�|jjd|�|j|j	dddddd�||_ndS(NR`R
R�iR�R�R)(
R1R�RVR�R5R3R�R4tgrid_forgetR(RER�tnewsel((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR2$s	#cCs~t|jdddd�}||j|<|j}xFt|j|�D]1\}}t|d|d�}|jd|ddd	t�|d
}|ddkr�t	|d
|d|dddddt
dddd�jd|ddd	tdd�qE|ddkrHt|d
|ddd|j
df�jd|ddd	tdd�qEt|d
|�jd|ddd	tdd�qEWdS( s=Create a frame holding the widgets to configure one extensionR)i�R*R`R\R�R�iR�RRR�RRRqRrRRsRtindicatorontselectcolorR
iiR[iRtvalidateR�tvalidatecommands%PN(tVerticalScrolledFrameR3R4tinteriort	enumerateRfR�RtNWR�R:R�RR.R(RER=tft
entry_areaR�topttlabelRR((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR92s&
	 
cCsv|d}|d}|dj�j�p-|}|dj|�||kr`|jj||�S|jj|||�S(NR\RbRR(RVtstripR�R,RR(RERtRWR\RbR�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pytset_extension_valueLs

cCsmt}xJ|jD]?}|j|}x)|D]!}|j||�r*t}q*q*WqW|ri|jj�ndS(s3Save configuration changes to the user config file.N(RRfRZRR,R�(REthas_changesR=R}RW((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRXs

N(Qt__name__t
__module__RR-R8RYRTRURVRWRBRSR@RARBRCRDRERFRGRHRIRJRKRLRMRNROR7RWRR�R�R�R�R�R�R�RnR�R�R�RZR�R�R�R�R�R�RcR�R�RaR R�R#R!R%R�R�RRR	RRAR�R�RR�R�R�R>R]R^R_RXR/R2R9RZR(((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR	s�5			D	o	M	s		
																							$									
																	!									
					5	-			shWhen 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. Some do not take affect until IDLE is restarted.
[Cancel] only cancels changes made since the last save.
s�
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.
RIcCs5|s
tSyt|�tSWntk
r0tSXdS(s(Return 's is blank or represents an int'N(RRR�R(R�((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR.vs

RQcBseZdZd�ZRS(s�A pure Tkinter vertically scrollable frame.

    * Use the 'interior' attribute to place widgets inside the scrollable frame
    * Construct and pack/place/grid normally
    * This frame only allows vertical scrolling
    c
s0tj||||�t|dt�}|jdtdtdt�t|ddddd|j	d	d
���jdt
dtdt�|j
d�j��jd��jd�t��|_��jddd�d
t����fd�}�jd|����fd�}�jd|�dS(NRvRORMRNR�iR�RpR*i�RatwindowR{cs0�j��j�f}�jdd|�dS(Ntscrollregions	0 0 %s %s(twinfo_reqwidthtwinfo_reqheightR�(R�R�(tcanvasRR(s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyt_configure_interior�ss<Configure>cs8�j��j�kr4�j�d�j��ndS(NR*(R`twinfo_widtht
itemconfigure(R�(RbRRtinterior_id(s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyt_configure_canvas�s(RdR-R�tVERTICALRPR�R�R:tCanvasR�RfRSRRR�R�txview_movetotyview_movetoRRt
create_windowRTR�(RER.R�tkwt
vscrollbarRcRg((RbRRRfs9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyR-�s 

(R\R]t__doc__R-(((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyRQ�st__main__s#idlelib.idle_test.test_configdialogt	verbosityitexit(trun("RotTkinterR�R�R�tidlelib.configHandlerRtidlelib.dynOptionMenuWidgetRtidlelib.keybindingDialogRtidlelib.configSectionNameDialogRtidlelib.configHelpSourceEditRtidlelib.tabbedpagesRtidlelib.textViewRtidlelibRR,R	R!R"R.RdRQR\tunittestRTRtidlelib.idle_test.htestRs(((s9/opt/alt/python27/lib64/python2.7/idlelib/configDialog.pyt<module>s6
$�����X
	+