
Wm                 @   sP  d  d l  Td  d l j Z d  d l j Z d  d l j Z	 d  d l
 m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z d  d
 l m Z Gd d   d e  Z d Z d d i Z d d   Z Gd d   d e  Z  e! d k rLd  d l" Z" e" j# d d d d d d  d l$ m% Z% e% e  d S)    )*N)idleConf)DynOptionMenu)GetKeysDialog)GetCfgSectionNameDialog)GetHelpSourceDialog)TabbedPageSet)	view_text)macosxSupportc               @   s  e  Z d  Z d d d 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 d- d.   Z d/ d0   Z d1 d2   Z d3 d4   Z d5 d6   Z d7 d8   Z d9 d:   Z d; d<   Z d= d>   Z  d? d@   Z! dA dB   Z" dC dD   Z# dE dF   Z$ dG dH   Z% dI dJ   Z& dK dL   Z' dM dN   Z( dO dP   Z) dQ dR   Z* dS dT   Z+ dU dV   Z, dW dX   Z- dY dZ   Z. d[ d\ d]  Z/ d^ d_   Z0 d` da   Z1 db dc   Z2 dd de   Z3 df dg   Z4 dh di   Z5 dj dk   Z6 dl dm   Z7 dn do   Z8 dp dq   Z9 dr ds   Z: dt du   Z; dv dw   Z< dx dy   Z= dz d{   Z> d| d}   Z? d~ d   Z@ d d   ZA d d   ZB d d   ZC d d   ZD d d   ZE d d   ZF d d   ZG d d   ZH d d   ZI d d   ZJ d d   ZK d d   ZL d d   ZM d d   ZN d d   ZO d[ S)ConfigDialog Fc             C   s|  t  j |  |  | |  _ | r( i  | _ |  j   |  j d d  |  j | pQ d  |  j d | j   d | j	   | s d n d f  d d5 d d6 d d7 d d8 d d9 d d: d d; d d< d  d= d# d> d& d? d) d@ d, dA d/ dB i |  _
 |  j   |  j   |  j d2 t d3 t  |  j |  |  j   |  j d4 |  j  |  j j   |  j   |  j   | sx|  j   |  j   d  S)CNborderwidth   zIDLE Preferencesz+%d+%d         zNormal Textnormal00zPython Keywordskeyword01zPython Definitions
definition02zPython Builtinsbuiltin03zPython Commentscomment04zPython Stringsstring05zSelected Texthilite06z
Found Texthit07Cursorcursor08zEditor Breakpointbreak09zShell Normal Textconsole10zShell Error Texterror11zShell Stdout Textstdout12zShell Stderr Textstderr13heightwidthZWM_DELETE_WINDOW)r   r   )zkeywordr   )r   r   )r   r   )r   r   )zstringr   )r   r   )r    r!   )zcursorr$   )zbreakr&   )r'   r(   )zerrorr*   )zstdoutr,   )zstderrr.   )Toplevel__init__parentinstance_dictZwm_withdraw	configuretitleZgeometryZwinfo_rootxZwinfo_rootythemeElementsResetChangedItemsCreateWidgetsZ	resizableFALSEZ	transientZgrab_setprotocolCanceltabPagesZ	focus_setLoadConfigsAttachVarCallbacksZwm_deiconifyZwait_window)selfr3   r6   Z_htestZ_utest rA   A/afs/.cs/s/python-3.5.2/amd64_rhel6/lib/python3.5/configDialog.pyr2      sH    		
!





zConfigDialog.__init__c             C   s   t  |  d d d d d d g |  _ |  j j d t d t d	 t  |  j   |  j   |  j   |  j	   |  j
   |  j   j d t  d  S)
NZ
page_namesz
Fonts/TabsHighlightingKeysGeneral
Extensionssideexpandfill)r   r=   packTOPTRUEBOTHCreatePageFontTabCreatePageHighlightCreatePageKeysCreatePageGeneralCreatePageExtensionscreate_action_buttonsBOTTOM)r@   rA   rA   rB   r9   Q   s    	




zConfigDialog.CreateWidgetsc          
   C   s   t  j   r i  } n d d d d i } t |  d d } t | d d } xu d |  j f d |  j f d |  j f d	 |  j f f D]= \ } } t | d
 | d | d t | j	 d t
 d d  q Wt | d d d d j	 d t  | j	 d t  | S)Npadx   pady      OkApplyr<   Helptextcommand	takefocusrG   r   r/   r   r   )r
   ZisAquaTkFramerZ   r[   r<   r\   Buttonr:   rJ   LEFTrK   rT   )r@   ZpaddingArgsZouterZbuttonsZtxtcmdrA   rA   rB   rS   ]   s    	"z"ConfigDialog.create_action_buttonsc             C   s  |  j  } t |  |  _ t |  |  _ t |  |  _ t |  |  _ t j	 | d+  |  _
 |  j j d j } t | d d d t d d	 } t | d d d t d d
 } t |  } t |  } t | d t d d } t | d d d t d t |  _ |  j j d |  j  t |  } | j d |  j j  |  j j d | j  t | d d }	 t | |  j d  d |  j |  _ t | d |  j d d d d d d d |  j }
 t | d t  d d } t | d t d |  j
 d d |  _! t |  } t | d t d d } t" | d |  j d d d  d d! d d" d# |  _# | j$ d$ t d% d d& d d' t% 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) t*  |  j j$ d$ t d' t% d( t)  | j$ d$ t d( t'  |	 j$ d$ t d) t*  |  j j$ d$ t d) t*  |
 j$ d$ t d) t* d% d*  | j$ d$ t( d% d d& d d' 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% d d( t)  | S),Ncourier
   r   z
Fonts/Tabsr   rY   reliefr]   z Base Editor Font z Indentation Width ZjustifyzFont Face :r/   r   r_   exportselectionz<ButtonRelease-1>r^   yscrollcommandzSize :variableonvalue   offvaluer   ZBoldfontz,AaBbCcDdEe
FfGgHhIiJjK
1234567890
#:+=(){}[]zPython Standard: 4 Spaces!orientZ
horizontalZtickintervalZfrom_Zto   rG   rU   rW   rH   rI   anchorr   )rd   re   znormal)+r3   	StringVarfontSize
BooleanVarfontBoldfontNameIntVarspaceNumtkFontZFontZeditFontr=   pagesframe
LabelFrameGROOVEr`   Labelrb   Listboxr:   listFontNamebindOnListFontButtonRelease	Scrollbarconfigyviewsetr   SetFontSampleoptMenuFontSizeCheckbuttonSOLIDlabelFontSampleZScaleZscaleSpaceNumrJ   rL   rM   YrK   XW)r@   r3   rz   Z	frameFontZframeIndentZframeFontNameZframeFontParamZlabelFontNameTitleZ
scrollFontZlabelFontSizeTitleZcheckFontBoldZframeFontSampleZframeIndentSizeZlabelSpaceNumTitlerA   rA   rB   rN   r   sn    			("""(zConfigDialog.CreatePageFontTabc          !   C   s  |  j  } t |  |  _ t |  |  _ t |  |  _ t |  |  _ t |  |  _ t |  |  _ t |  |  _	 |  j
 j d j } t | d d d t d d } t | d d d t d d } t | d t d d d	 d\ d d d d d d d t d d d t 	|  _ |  j } | j d d d    | j d d d    d} } x) | D]! } | j t | d | d  qHWx> |  j D]3 } | dB dC  }	 | j |  j | d dD |	  qwW| j dE t  t | d t d d |  _ t |  }
 t |  j d dF dG |  j d d } t |  j |  j	 d  d d |  _  t! |
 dH |  j dI d d dJ dG |  j" |  _# t! |
 dH |  j dI d d dK dG |  j" |  _$ |  j j% d  t | d dL dG |  j& } t' | d dM } t! | dH |  j dI d dG |  j( d dN |  _) t! | dH |  j dI d dG |  j( d dO |  _* t | |  j d  dG d  |  _+ t | |  j d  dG d  |  _, t | d dP dG |  j- |  _. t' | dQ d |  _/ | j0 dR t1 dS dT dU dT dV t2 dW t3  | j0 dR t1 dS dT dU dT dW t4  |  j j0 dR t5 dS dT dU dT dV t2 dW t6  |
 j0 dR t5 dS dT dU d  |  j j0 dR t5 dS dT dU dT dV t2 dW t3  | j0 dR t5 dV t2 dW t6 dS dX dU dY  |  j  j0 dR t5 dV t2 dW t6 dS dX dU dZ  |  j# j0 dR t1 d[ t7  |  j$ j0 dR t8 d[ t9  | j0 dR t: dW t6 dS dT dU dT  | j0 dR t5 d[ t9 dS dT dU dT  |  j) j0 dR t5 d[ t9 dS dT  |  j* j0 dR t5 d[ t9 dS dT dU d  |  j+ j0 dR t5 dW t6 dS dT dU dT  |  j, j0 dR t5 dW t6 d[ t9 dS dT dU dT  |  j. j0 dR t5 dW t6 dS dT dU dT  |  j/ j0 dR t5 dW t6 dU dT  | S)~NrC   r   rY   rf   r]   z Custom Highlighting z Highlighting Theme rk   rm   rd      r   r#   Zhand2r0      r/      r_   highlightthicknessr   wrapz<Double-Button-1>c             S   s   d S)Nr%   rA   )erA   rA   rB   <lambda>   s    z2ConfigDialog.CreatePageHighlight.<locals>.<lambda>z<B1-Motion>c             S   s   d S)Nr%   rA   )r   rA   rA   rB   r      s    #you can click herer   
r   #to choose itemsdefr    funcr   (param):
  """string"""r   

  var0 = 'string'

  var1 = 
'selected'r   

  var2 = 'found'r    

  var3 = listr   (None)
  breakpoint("line")r%   

 error r)   cursor |
 shellr'   r+   r-   c             S   s   |  j  j   j j |  d  S)N)ZwidgetZwinfo_toplevelhighlightTargetr   )eventelemrA   rA   rB   tem   s    z-ConfigDialog.CreatePageHighlight.<locals>.temz<ButtonPress-1>statezChoose Colour for :r^   ri   valueZ
ForegroundZ
BackgroundzSave as New Custom Themez	Select : za Built-in Themeza Custom ThemezDelete Custom ThemebdrG   rU   r   rW   rH   rI         rX   rp   )zcourierr   r   r   commentr   normalr   r   r   r   zdefkeywordr   r   zfuncz
definitionr   r   r   stringr   r   r   r   r   r   r   zhiliter   r   r   zhitr   r   zlistzbuiltinr   r   zNoner   r   r   r   zbreakr   r   r   zerrorr   r   r   r#   r   r   zshellzconsoler   r   stdoutr   r   r   stderrr   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   r   r   r   r   r   );r3   rq   builtinThemecustomThemers   fgHilitecolourru   themeIsBuiltinr   r=   ry   rz   r{   r|   ZTextr   r:   NONEtextHighlightSampler   insertENDr7   Ztag_bindr   DISABLEDr`   frameColourSetra   	GetColourr   optMenuHighlightTargetRadiobuttonSetColourSampleBindingradioFgradioBgr   SaveAsNewThemer}   SetThemeTypeZradioThemeBuiltinradioThemeCustomoptMenuThemeBuiltinoptMenuThemeCustomDeleteCustomThemebuttonDeleteCustomThemenew_custom_themerJ   rb   rL   rM   r   rK   r   ERIGHTr   rT   )r@   r3   rz   frameCustomZ
frameThemer]   ZtextAndTagsZtxTaelementr   Z	frameFgBgZbuttonSetColourZbuttonSaveCustomThemeZlabelTypeTitlerA   rA   rB   rO      s    				               ("+(""%%+%z ConfigDialog.CreatePageHighlightc       
         s  |  j  } t |  |  _ t |  |  _ t |  |  _ t |  |  _ t |  |  _ |  j j	 d j
 } t | d d d t d d } t | d d d t d d   t |  } t | d d } t |  } t | d	 t } t | d
 t d t |  _ |  j j d |  j  | j d |  j j  | j d |  j j  |  j j d | j  |  j j d | j  t | d d d |  j d t |  _   f d d   t d  D } t | d d |  j d d d |  j  d d |  _! t | d d |  j d d d |  j  d d |  _" t# | d |  j d  d d  |  _$ t# | d |  j d  d d  |  _% t | d d d d |  j& |  _' t | d d d d |  j( }	 | j) d t* d d d d d  t+ d! t,    j) d t* d d d d d! t,  |  j j) d t* d! t- d d d d  | j) d t. d d d d d  t+ d! t,  | j/ d d" d | j0 d d" d | j1 d# d d$ d d% d d& t2  |  j j1 d# d d$ d d& t3  | j1 d# d d$ d d& t4  | j1 d# d d$ d d& t5  |  j! j1 d# d d$ d d& t2 t4  |  j" j1 d# d d$ d d& t2 t4  |  j$ j1 d# d d$ d d& t3  |  j% j1 d# d d$ d d& t3  |  j' j) d t. d! t- d  d' d d  |	 j) d t. d! t- d  d' d d  | d j) d t6 d! t, d  d'  | d j) d t6 d! t- d  d' d d  | S)(NrD   r   rY   rf   r]   z Custom Key Bindings z	 Key Set zAction - Key(s)rn   r_   rg   z<ButtonRelease-1>r^   rh   ZxscrollcommandzGet New Keys for Selectionr   c          
      s.   g  |  ]$ } t    d  d d d d d  q S)rU   rY   rW   r   r   )r`   ).0i)frameKeySetsrA   rB   
<listcomp>F  s   	z/ConfigDialog.CreatePageKeys.<locals>.<listcomp>r   ri   r   rk   zUse a Built-in Key SetzUse a Custom Key SetzDelete Custom Key SetzSave as New Custom Key SetrG   rU   r   rW   rH   rI   weightrowcolumnZ
columnspanstickyT)7r3   rq   ZbindingTargetbuiltinKeys
customKeysrs   keysAreBuiltin
keyBindingr=   ry   rz   r{   r|   r`   r}   r   Z
HORIZONTALr~   r:   listBindingsr   KeyBindingSelectedr   r   Zxviewr   ra   
GetNewKeysr   buttonNewKeysranger   SetKeysTypeZradioKeysBuiltinradioKeysCustomr   optMenuKeysBuiltinoptMenuKeysCustomDeleteCustomKeysbuttonDeleteCustomKeysSaveAsNewKeySetrJ   rT   rL   rM   r   rb   columnconfigurerowconfiguregridr   NSEWZNSZEWrK   )
r@   r3   rz   r   ZframeTargetZlabelTargetTitleZscrollTargetYZscrollTargetXZframesZbuttonSaveCustomKeysrA   )r   rB   rP   %  s~    		("%("##%" &zConfigDialog.CreatePageKeysc             C   s  |  j  } t |  |  _ t |  |  _ t |  |  _ t |  |  _ t |  |  _ t |  |  _	 t |  |  _
 |  j j d j } t | d d d t d d } t | d d d t d d } t | d d d t } t | d d d t d d } t | d d	 } t | d
 |  j d d d |  j d d } t | d
 |  j d d d |  j d d }	 t | d d }
 t | d
 |  j d d d |  j d d } t | d
 |  j d d d |  j d d } t | d d } t | d d } t | d |  j d d } t | d d } t | d |  j d d } t |  } t |  } t |  } t | d d d t d t |  _ | j d |  j j  |  j j d | j  |  j j d |  j  t | d d  d! t d d" d |  j  |  _! t | d d# d d" d |  j" |  _# t | d d$ d! t d d" 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) d( t*  | j& d% t+ d* t, d& d d' d  |	 j& d% t- d* t, d& d d' d  | j& d% t- d* t, d& d d' d  |
 j& d% t+ d* t, d& d d' d  | j& d% t- d* t, d& d d' d  | j& d% t- d* t, d& d d' d  | j& d% t+ d* t, d& d d' d  | j& d% t- d* t. d& d+ d' d  | j& d% t- d* t. d' d  | j& d% t- d* t. d& d+ d' d  | j& d% t- d* t. d' d  | j& d% t- d& d d' d d( t/  | j& d% t' d& d d' d d) t) d( t*  | j& d% t- d* t, d( t/  |  j j& d% t+ d* t. d) t) d( t*  |  j! j& d% t' d* t, d' d  |  j# j& d% t' d* t,  |  j% j& d% t' d* t, d' d  | S),NrE   r   rY   rf   r]   z Startup Preferences z Autosave Preferences z Additional Help Sources z
At Startupri   r   rk   r^   zOpen Edit Windowr   zOpen Shell WindowzAt Start of Run (F5)  zPrompt to Savez	No Promptz$Initial Window Size  (in characters)ZWidthtextvariabler0   rX   ZHeightr/   r   r_   rg   rh   z<ButtonRelease-1>ZEditr   r   ZAddZRemoverG   rU   rW   rI   rH   rp   re   )0r3   rq   winWidth	winHeightrv   startupEditautoSaveencodingrs   ZuserHelpBrowserZhelpBrowserr=   ry   rz   r{   r|   r`   r}   r   r  Entryr   r~   r:   listHelpr   r   r   r   HelpSourceSelectedra   r   HelpListItemEditbuttonHelpListEditHelpListItemAddZbuttonHelpListAddHelpListItemRemovebuttonHelpListRemoverJ   rK   r   rL   rM   rb   r   r   r   r   )r@   r3   rz   ZframeRunZ	frameSaveZframeWinSizeZ	frameHelpZlabelRunChoiceTitleZradioStartupEditZradioStartupShellZlabelRunSaveTitleZradioSaveAskZradioSaveAutoZlabelWinSizeTitleZlabelWinWidthTitleZentryWinWidthZlabelWinHeightTitleZentryWinHeightZframeHelpListZframeHelpListButtonsZscrollHelpListrA   rA   rB   rQ   r  s    				"""(""""""""""(%zConfigDialog.CreatePageGeneralc             C   s  |  j  j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j	 j d |  j
  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j  |  j j d |  j   |  j! j d |  j"  d  S)Nw)#rr   Ztrace_variableVarChanged_fontru   rt   rw   VarChanged_spaceNumr   VarChanged_colourr   VarChanged_builtinThemer   VarChanged_customThemer   VarChanged_themeIsBuiltinr   VarChanged_highlightTargetr  VarChanged_keyBindingr  VarChanged_builtinKeysr  VarChanged_customKeysr  VarChanged_keysAreBuiltinr  VarChanged_winWidthr  VarChanged_winHeightr  VarChanged_startupEditr  VarChanged_autoSaver  VarChanged_encoding)r@   rA   rA   rB   r?     s$    zConfigDialog.AttachVarCallbacksc             C   s   x |  j  |  j |  j |  j |  j |  j |  j |  j |  j |  j	 |  j
 |  j |  j |  j |  j |  j |  j |  j f D]$ } | j d | j   d d  qs Wd  S)Nr$  r   rk   )rr   ru   rt   rw   r   r   r   r   r   r  r  r  r  r  r  r  r  r  Ztrace_vdeleteZtrace_vinfo)r@   varrA   rA   rB   remove_var_callbacks  s    z!ConfigDialog.remove_var_callbacksc             G   ss   |  j  j   } |  j d d d |  |  j j   } |  j d d d |  |  j j   } |  j d d d |  d  S)NmainEditorWindowrm   z	font-sizez	font-bold)ru   getAddChangedItemrr   rt   )r@   paramsr   rA   rA   rB   r%    s    zConfigDialog.VarChanged_fontc             G   s)   |  j  j   } |  j d d d |  d  S)Nr7  Indentz
num-spaces)rw   r9  r:  )r@   r;  r   rA   rA   rB   r&    s    z ConfigDialog.VarChanged_spaceNumc             G   s   |  j    d  S)N)OnNewColourSet)r@   r;  rA   rA   rB   r'    s    zConfigDialog.VarChanged_colourc             G   s   |  j  j   } | d k r~ t j d d d  d k rL |  j d d d d  |  j d d d |  |  j j d d	 d
 d  nE |  j d d d |  |  j d d d d  |  j j d d d
 d  |  j   d  S)Nz	IDLE Darkr7  ThemenamezIDLE NewzIDLE ClassicZname2r]   zNew theme, see HelpZfgz#500000r   Zblack)r   r9  r   	GetOptionr:  r   r   PaintThemeSample)r@   r;  r   rA   rA   rB   r(    s    
z$ConfigDialog.VarChanged_builtinThemec             G   s?   |  j  j   } | d k r; |  j d d d |  |  j   d  S)Nz- no custom themes -r7  r>  r?  )r   r9  r:  rA  )r@   r;  r   rA   rA   rB   r)    s    z#ConfigDialog.VarChanged_customThemec             G   sF   |  j  j   } |  j d d d |  | r8 |  j   n
 |  j   d  S)Nr7  r>  default)r   r9  r:  r(  r)  )r@   r;  r   rA   rA   rB   r*    s
    z&ConfigDialog.VarChanged_themeIsBuiltinc             G   s   |  j    d  S)N)SetHighlightTarget)r@   r;  rA   rA   rB   r+     s    z'ConfigDialog.VarChanged_highlightTargetc             G   s   |  j  j   } |  j j   } |  j j t  j   d } t j |  rb |  j d | | |  n/ t j	 |  } | d } |  j d | | |  d  S)Nr   keysZ_cfgBindings
extensions)
r  r9  r  r  ANCHORsplitr   ZIsCoreBindingr:  ZGetExtnNameForEvent)r@   r;  r   keySetr   ZextNameZextKeybindSectionrA   rA   rB   r,  #  s    
z"ConfigDialog.VarChanged_keyBindingc             G   s6   |  j  j   } |  j d d d |  |  j |  d  S)Nr7  rD   r?  )r  r9  r:  LoadKeysList)r@   r;  r   rA   rA   rB   r-  /  s    z#ConfigDialog.VarChanged_builtinKeysc             G   sB   |  j  j   } | d k r> |  j d d d |  |  j |  d  S)Nz- no custom keys -r7  rD   r?  )r  r9  r:  rI  )r@   r;  r   rA   rA   rB   r.  4  s    z"ConfigDialog.VarChanged_customKeysc             G   sF   |  j  j   } |  j d d d |  | r8 |  j   n
 |  j   d  S)Nr7  rD   rB  )r  r9  r:  r-  r.  )r@   r;  r   rA   rA   rB   r/  :  s
    z&ConfigDialog.VarChanged_keysAreBuiltinc             G   s)   |  j  j   } |  j d d d |  d  S)Nr7  r8  r0   )r  r9  r:  )r@   r;  r   rA   rA   rB   r0  B  s    z ConfigDialog.VarChanged_winWidthc             G   s)   |  j  j   } |  j d d d |  d  S)Nr7  r8  r/   )r  r9  r:  )r@   r;  r   rA   rA   rB   r1  F  s    z!ConfigDialog.VarChanged_winHeightc             G   s)   |  j  j   } |  j d d d |  d  S)Nr7  rE   zeditor-on-startup)r  r9  r:  )r@   r;  r   rA   rA   rB   r2  J  s    z#ConfigDialog.VarChanged_startupEditc             G   s)   |  j  j   } |  j d d d |  d  S)Nr7  rE   autosave)r  r9  r:  )r@   r;  r   rA   rA   rB   r3  N  s    z ConfigDialog.VarChanged_autoSavec             G   s)   |  j  j   } |  j d d d |  d  S)Nr7  r8  r  )r  r9  r:  )r@   r;  r   rA   rA   rB   r4  R  s    z ConfigDialog.VarChanged_encodingc             C   s%   d i  d i  d i  d i  i |  _  d  S)Nr7  	highlightrD  rE  )changedItems)r@   rA   rA   rB   r8   V  s    zConfigDialog.ResetChangedItemsc             C   sI   t  |  } | |  j | k r0 i  |  j | | <| |  j | | | <d  S)N)strrL  )r@   typsectionitemr   rA   rA   rB   r:  _  s    zConfigDialog.AddChangedItemc             C   s   d i  d i  d i  d i  i } x | D] } t  j d |  } xh | D]` } i  | | | <t  j | j |  } x3 | D]+ } t  j | j | |  | | | | <qu WqD Wq% W| S)Nr7  rK  rD  rE  rB  )r   GetSectionList
defaultCfgGetOptionListGet)r@   ZdItems
configTypeZsectionsrO  optionsoptionrA   rA   rB   GetDefaultItemse  s    1zConfigDialog.GetDefaultItemsc             C   s   |  j  j   rK |  j j d t  |  j j d t  |  j j d t  nL |  j j d t  |  j j d t  |  j j d t  |  j j d t  d  S)Nr   )	r   r9  r   r   NORMALr   r   r   r   )r@   rA   rA   rB   r   q  s    zConfigDialog.SetThemeTypec             C   s   |  j  j   rK |  j j d t  |  j j d t  |  j j d t  nL |  j j d t  |  j j d t  |  j j d t  |  j j d t  d  S)Nr   )	r  r9  r  r   rY  r  r   r  r  )r@   rA   rA   rB   r  |  s    zConfigDialog.SetKeysTypec             C   s  |  j  j t  } |  j  j |  } | j   d } |  j j   rU |  j j   } n |  j j   } t j	   } | |  j
 d k r |  j
 d | } x" | D] } | | j   | | <q Wt | j    } t |  d | |  j }	 |	 r|  j j   rDd }
 |  j |
  } | s7|  j  j |  |  j  j |  d  S|  j |  |  j  j |  |  j  j | | d |	  |  j  j |  |  j  j |  |  j j |	  n  |  j  j |  |  j  j |  d  S)Nr   rD  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  indexrF  r9  rG  r  r  r  r   ZGetCurrentKeySetrL  r   valuesr   resultGetNewKeysName
select_setselect_anchorCreateNewKeySetdeleter   r  r   )r@   	listIndexbindingbindNameZcurrentKeySetNameZcurrentBindingskeySetChangesr   ZcurrentKeySequencesnewKeysmessage	newKeySetrA   rA   rB   r    s<    zConfigDialog.GetNewKeysc             C   s>   t  j d d  t  j d d  } t |  d | |  j } | S)NuserrD  rB  zNew Custom Key Set)r   rQ  r   r\  )r@   rg  	usedNamesrh  rA   rA   rB   r]    s
    zConfigDialog.GetNewKeysNamec             C   s&   |  j  d  } | r" |  j |  d  S)NzNew Key Set Name:)r]  r`  )r@   ZnewKeysNamerA   rA   rB   r    s    zConfigDialog.SaveAsNewKeySetc             C   s   |  j  j d t  d  S)Nr   )r	  r   rY  )r@   r   rA   rA   rB   r    s    zConfigDialog.KeyBindingSelectedc       
      C   s#  |  j  j   r! |  j j   } n |  j j   } t j |  } i  } x; | D]3 } | d d  } d j | |  } | | | <qL W| |  j d k r |  j d | } x | D] } | | | | <q W|  j | |  t j	 d d  }	 |	 j
   |  j j |	 |  |  j  j d  |  j   d  S)NrY   r   rD  ri  r   )r  r9  r  r  r   ZGetCoreKeysjoinrL  SaveNewKeySetrQ  sortr  SetMenur   r  )
r@   ZnewKeySetNameZprevKeySetNameZprevKeysrf  r   Z	eventNamerc  re  ZcustomKeyListrA   rA   rB   r`    s&    
zConfigDialog.CreateNewKeySetc       	      C   s9  d } d } |  j  j   r3 d } |  j  j t  } t j |  } t | j    } | j   |  j  j	 d t
  x | D] } d j | |  } | d d  } | |  j d k r | |  j d | k r |  j d | | } |  j  j t
 | d |  qx W| r5|  j  j |  |  j  j |  |  j  j |  d  S)Nr   rk   r   rY   rD  z - rk  )r  curselectionrZ  rF  r   Z	GetKeySetr   rD  rn  ra  r   rl  rL  r   seer^  r_  )	r@   
keySetNameZreselectrh  rb  rH  Z	bindNamesrd  keyrA   rA   rB   rI    s(    
zConfigDialog.LoadKeysListc             C   s;  |  j  j   } d } t j d | | d |  s5 d  St j d j |  | |  j d k rj |  j d | =t j d j   t j	 d d  } | j
   | s |  j j d t  |  j j | d  n |  j j | | d  |  j j t j d	 j d
 d   |  j j t j d	 j d
 d   |  j   |  j   d  S)Nz0Are you sure you wish to delete the key set %r ?zDelete Key Setr3   rD  ri  r   z- no custom keys -r   r7  rD   rB  r?  )r  r9  tkMessageBoxaskyesnor   userCfgremove_sectionrL  SaverQ  rn  r  r   r   r  ro  r  r   rR  rT  r  r[   r  )r@   rr  delmsgitemListrA   rA   rB   r    s&    
##
zConfigDialog.DeleteCustomKeysc             C   s;  |  j  j   } d } t j d | | d |  s5 d  St j d j |  | |  j d k rj |  j d | =t j d j   t j	 d d  } | j
   | s |  j j d t  |  j j | d  n |  j j | | d  |  j j t j d	 j d
 d   |  j j t j d	 j d
 d   |  j   |  j   d  S)Nz.Are you sure you wish to delete the theme %r ?zDelete Themer3   rK  ri  r   z- no custom themes -r   r7  r>  rB  r?  )r   r9  rt  ru  r   rv  rw  rL  rx  rQ  rn  r   r   r   r   ro  r   r   rR  rT  r   r[   r   )r@   	themeNamery  rz  rA   rA   rB   r     s&    
##
zConfigDialog.DeleteCustomThemec             C   s   |  j  j   } |  j j d  } t j d |  d d | d |  \ } } | r | | k r |  j j   r d } |  j |  } | s d  S|  j |  |  j	 j
 |  n |  j	 j
 |  d  S)Nbgr3   r6   zPick new colour for : Zinitialcolorz_Your changes will be saved as a new Custom Theme. Enter a name for your new Custom Theme below.)r   r9  r   ZcgettkColorChooserZaskcolorr   GetNewThemeNameCreateNewThemer   r   )r@   targetZ
prevColourZ	rgbTupletZcolourStringrg  newThemerA   rA   rB   r   "  s    	zConfigDialog.GetColourc             C   s   |  j  j   } |  j j d |  |  j j   r7 d n d } |  j |  j j   d } |  j j | | | i  |  j	 j   } | d | } |  j
 d | | |  d  S)Nr|  
foreground
backgroundr   -rK  )r   r9  r   r   r   r7   r   r   
tag_configr   r:  )r@   Z	newColourplaneZsampleElementthemeZthemeElementrA   rA   rB   r=  6  s    zConfigDialog.OnNewColourSetc             C   s>   t  j d d  t  j d d  } t |  d | |  j } | S)Nri  rK  rB  zNew Custom Theme)r   rQ  r   r\  )r@   rg  rj  r  rA   rA   rB   r~  @  s
    zConfigDialog.GetNewThemeNamec             C   s&   |  j  d  } | r" |  j |  d  S)NzNew Theme Name:)r~  r  )r@   newThemeNamerA   rA   rB   r   G  s    zConfigDialog.SaveAsNewThemec             C   s   |  j  j   r' d } |  j j   } n d } |  j j   } t j | |  } | |  j d k r |  j d | } x | D] } | | | | <qy W|  j | |  t j d d  } | j	   |  j
 j | |  |  j  j d  |  j   d  S)NrB  ri  rK  r   )r   r9  r   r   r   ZGetThemeDictrL  SaveNewThemerQ  rn  r   ro  r   r   )r@   r  Z	themeTyper{  r  ZthemeChangesr   ZcustomThemeListrA   rA   rB   r  L  s     
zConfigDialog.CreateNewThemec             C   s6   |  j  j t  } |  j j | j    |  j   d  S)N)r   r9  rF  ru   r   lowerr   )r@   r   rm   rA   rA   rB   r   d  s    z$ConfigDialog.OnListFontButtonReleaseNc             C   sr   |  j  j   } |  j j   r' t j n t j } | |  j j   | f } |  j j d |  |  j	 j
 d |  d  S)Nrm   )ru   r9  rt   rx   ZBOLDrY  rr   r   r   r   r5   )r@   r   ru   Z
fontWeightZnewFontrA   rA   rB   r   i  s
    !zConfigDialog.SetFontSamplec             C   s   |  j  j   d k rN |  j j d t  |  j j d t  |  j j d  n6 |  j j d t  |  j j d t  |  j j d  |  j	   d  S)Nr"   r   rk   )
r   r9  r   r   r   r   r   r   rY  SetColourSample)r@   rA   rA   rB   rC  p  s    zConfigDialog.SetHighlightTargetc             G   s   |  j    d  S)N)r  )r@   argsrA   rA   rB   r   {  s    z#ConfigDialog.SetColourSampleBindingc             C   sa   |  j  |  j j   d } |  j j   r/ d n d } |  j j | |  } |  j j d |  d  S)Nr   r  r  r|  )r7   r   r9  r   r   Ztag_cgetr   r   )r@   tagr  r   rA   rA   rB   r  ~  s    zConfigDialog.SetColourSamplec             C   s  |  j  j   r! |  j j   } n |  j j   } x |  j D] } |  j | d } t j | |  } | d k r t j | d d d | d <| |  j d k r |  j d | } | d | k r | | d | d	 <| d
 | k r | | d
 | d <|  j j	 | |  q: W|  j
   d  S)Nr   r#   r   ZfgBgr|  r  rK  z-foregroundr  z-background)r   r9  r   r   r7   r   ZGetHighlightrL  r   r  r  )r@   r  ZelementTitler   ZcoloursZ	themeDictrA   rA   rB   rA    s"    zConfigDialog.PaintThemeSamplec             C   s   |  j    d  S)N)SetHelpListButtonStates)r@   r   rA   rA   rB   r    s    zConfigDialog.HelpSourceSelectedc             C   s   |  j  j   d k  r> |  j j d t  |  j j d t  n^ |  j  j   rv |  j j d t  |  j j d t  n& |  j j d t  |  j j d t  d  S)Nrk   r   )r  sizer   r   r   r#  rp  rY  )r@   rA   rA   rB   r    s    z$ConfigDialog.SetHelpListButtonStatesc             C   se   t  |  d  j } | rW |  j j | d | d f  |  j j t | d  |  j   |  j   d  S)NzNew Help Sourcer   rk   )	r   r\  userHelpListappendr  r   r   UpdateUserHelpChangedItemsr  )r@   
helpSourcerA   rA   rB   r!    s    
zConfigDialog.HelpListItemAddc             C   s   |  j  j t  } |  j | } t |  d d | d d | d j } | sX | | k r\ d  S| |  j | <|  j  j |  |  j  j | | d  |  j   |  j	   d  S)NzEdit Help SourceZmenuItemr   ZfilePathrk   )
r  rZ  rF  r  r   r\  ra  r   r  r  )r@   	itemIndexr  ZnewHelpSourcerA   rA   rB   r    s    
zConfigDialog.HelpListItemEditc             C   sD   |  j  j t  } |  j | =|  j  j |  |  j   |  j   d  S)N)r  rZ  rF  r  ra  r  r  )r@   r  rA   rA   rB   r"    s
    

zConfigDialog.HelpListItemRemovec          	   C   sv   i  |  j  d d <x^ t d t |  j  d  D]@ } |  j d d t |  d j |  j | d d  d    q. Wd  S)Nr7  	HelpFilesrk   ;rY   )rL  r
  lenr  r:  rM  rl  )r@   numrA   rA   rB   r    s
    #z'ConfigDialog.UpdateUserHelpChangedItemsc       	      C   s.  t  t j |    } | j   x! | D] } |  j j t |  q& Wt j |  d d  } | d j	   } | d } | d d k } |  j
 j |  d d   | D } yC | j |  } |  j j |  |  j j |  |  j j |  Wn t k
 r Yn X|  j j d |  |  j j |  |  j   d  S)Nr7  r8  r   rk   rY   Zboldc             S   s   g  |  ] } | j     q SrA   )r  )r   srA   rA   rB   r     s   	 z,ConfigDialog.LoadFontCfg.<locals>.<listcomp>789r(   r*   r,   r.   1416182022)r  r  r  z10z11z12z13r  r  r  r  r  )r   rx   familiesrn  r   r   r   r   ZGetFontr  ru   r   rZ  rq  r^  r_  
ValueErrorr   ro  rt   r   )	r@   Zfontsrm   ZconfiguredFontru   rr   rt   Zlc_fontsZcurrentFontIndexrA   rA   rB   LoadFontCfg  s*    

	
zConfigDialog.LoadFontCfgc             C   s5   t  j d d d d d d d } |  j j |  d  S)Nr7  r<  z
num-spacesrB  r   typeint)r   r@  rw   r   )r@   rw   rA   rA   rB   
LoadTabCfg  s    zConfigDialog.LoadTabCfgc          	      s    j  j t j d d d d d d d  t j   }   j  j   r t j d d  } | j     j j	 | |  t j d d  } | j   | s   j
 j d	 t    j j d
  q9  j j	 | | d  nb t j d d  } | j     j j	 | |  t j d d  } | j     j j	 | | d    j   t   j j    } | j d   f d d      j j	 | | d    j     j   d  S)Nr7  r>  rB  r  boolrk   rK  ri  r   z- no custom themes -r   rs  c                s     j  |  d S)Nrk   )r7   )x)r@   rA   rB   r     s    z+ConfigDialog.LoadThemeCfg.<locals>.<lambda>)r   r   r   r@  ZCurrentThemer9  rQ  rn  r   ro  r   r   r   r   r   r   r   r7   rD  r   rA  rC  )r@   currentOptionrz  Z
themeNamesrA   )r@   rB   LoadThemeCfg  s2    





zConfigDialog.LoadThemeCfgc          	   C   s`  |  j  j t j d d d d d d d  t j   } |  j  j   r t j d d  } | j   |  j j	 | |  t j d d  } | j   | s |  j
 j d	 t  |  j j d
  q9|  j j	 | | d  nb t j d d  } | j   |  j j	 | |  t j d d  } | j   |  j j	 | | d  |  j   t j   } |  j |  d  S)Nr7  rD   rB  r  r  rk   rD  ri  r   z- no custom keys -r   )r  r   r   r@  ZCurrentKeysr9  rQ  rn  r  ro  r  r   r   r  r  r  rI  )r@   r  rz  rr  rA   rA   rB   
LoadKeyCfg  s,    




zConfigDialog.LoadKeyCfgc          	   C   s  |  j  j t j d d d d d d d  |  j j t j d d d d d	 d d  |  j j t j d d
 d d d  |  j j t j d d
 d d d  |  j j t j d d
 d d d  t j   |  _	 x( |  j	 D] } |  j
 j t | d	  q W|  j   d  S)Nr7  rE   zeditor-on-startuprB  rk   r  r  rJ  r   r8  r0   r  r/   r  Znone)r  r   r   r@  r  r  r  r  ZGetAllExtraHelpSourcesListr  r  r   r   r  )r@   ZhelpItemrA   rA   rB   LoadGeneralCfg.  s    zConfigDialog.LoadGeneralCfgc             C   s6   |  j    |  j   |  j   |  j   |  j   d  S)N)r  r  r  r  r  )r@   rA   rA   rB   r>   C  s
    



zConfigDialog.LoadConfigsc             C   sc   t  j d j |  s* t  j d j |  x2 | D]* } | | } t  j d j | | |  q1 Wd  S)NrD  )r   rv  has_sectionadd_section	SetOption)r@   rr  rH  r   r   rA   rA   rB   rm  S  s
    
zConfigDialog.SaveNewKeySetc             C   sc   t  j d j |  s* t  j d j |  x2 | D]* } | | } t  j d j | | |  q1 Wd  S)NrK  )r   rv  r  r  r  )r@   r{  r  r   r   rA   rA   rB   r  _  s
    
zConfigDialog.SaveNewThemec             C   si   t  j | j | |  rO t  j | j | |  | k rO t  j | j | |  St  j | j | | |  S)N)r   rR  Z
has_optionrT  rv  RemoveOptionr  )r@   rU  rO  rP  r   rA   rA   rB   SetUserValuek  s    zConfigDialog.SetUserValuec             C   s  t  j d j   x |  j D] } d } x |  j | D]{ } | d k ra t  j d j d  d } xL |  j | | D]9 } |  j | | | } |  j | | | |  rs d } qs Wq5 W| r t  j | j   q Wx% d d g D] } t  j | j   q W|  j   |  j   d  S)Nr7  Fr  TrD  rK  )r   rv  rx  rL  rw  r  r8   save_all_changed_extensions)r@   rU  ZcfgTypeHasChangesrO  rP  r   rA   rA   rB   SaveAllChangedConfigss  s"    
z"ConfigDialog.SaveAllChangedConfigsc             C   s1   |  j  j j   } x | D] } | j   q Wd  S)N)r3   r4   rD  ZRemoveKeybindings)r@   winInstancesinstancerA   rA   rB   DeactivateCurrentConfig  s    z$ConfigDialog.DeactivateCurrentConfigc             C   sY   |  j  j j   } x@ | D]8 } | j   | j   | j   | j   | j   q Wd  S)N)r3   r4   rD  ZResetColorizerZ	ResetFontZset_notabs_indentwidthZApplyKeybindingsZreset_help_menu_entries)r@   r  r  rA   rA   rB   ActivateConfigChanges  s    



z"ConfigDialog.ActivateConfigChangesc             C   s   |  j    d  S)N)destroy)r@   rA   rA   rB   r<     s    zConfigDialog.Cancelc             C   s   |  j    |  j   d  S)N)r[   r  )r@   rA   rA   rB   rZ     s    
zConfigDialog.Okc             C   s"   |  j    |  j   |  j   d  S)N)r  r  r  )r@   rA   rA   rB   r[     s    

zConfigDialog.Applyc          	   C   s6   |  j  j } t |  d d d t t j | d  d  S)Nr6   zHelp for IDLE preferencesr]   r   )r=   Z_current_pager	   help_common
help_pagesr9  )r@   ZpagerA   rA   rB   r\     s    zConfigDialog.Helpc          
   C   s  |  j  } |  j j d j } t j d |  _ t j d |  _ |  j	 t
  |  _
 |  j   t |   |  _ | j d d d | j d d d t | d |  j d d	 |  _ |  j j d
 |  j  t | d |  j j } | j |  j _ t | d d d d |  _ |  j j d d d d d d  | j d d d d d d  |  j j d d d d d d d d d g  | j d d d d  i  |  _ d  |  _ |  |  _ |  j |  _ d } x6 t  |  j!  D]% } |  j" |  | d | d } qW|  j j |  |  j j# d  |  j d   d  S)NrF   rE  r   r   rk   rY   ZlistvariableZ
selectmodeZbrowsez<<ListboxSelect>>r^   r0      r/   r   r   r  ZnwsnsnsewrU   re   rW   r   {z} )$r3   r=   ry   rz   r   rR  ext_defaultCfgrv  ext_userCfgregisteris_intload_extensionsrq   Zextension_namesr  r  r~   extension_listr   extension_selectedr   r   r   rh   r{   details_framer  r5   config_framecurrent_extensionZ
outerframeZtabbed_page_setsortedrE  create_extension_frameZselection_set)r@   r3   rz   ZscrollZ	ext_namesext_namerA   rA   rB   rR     s<    	
+			z!ConfigDialog.CreatePageExtensionsc       
   #   C   s  i  |  _  x' t j d d  D] } g  |  j  | <q Wx|  j  D]} t |  j j |   } d d   | D } x | D] } | j |  qu W| | } x,| D]$} |  j j | | d d } y  d d d d i | } d	 } WnI t k
 r)y t	 |  } d
 } Wn t
 k
 r$| } d  } Yn XYn Xy+ |  j j | | d | d d d | } Wn t
 k
 ro| } Yn Xt |   }	 |	 j t |   |  j  | j d | d | d | d | d |	 i  q Wq= Wd  S)NZactive_onlyFc             S   s%   g  |  ] } | j  d   r |  q S)enable)
startswith)r   opt_namerA   rA   rB   r     s   	 z0ConfigDialog.load_extensions.<locals>.<listcomp>rawTTrueFalser  r  r  rB  r?  r   r5  )rE  r   ZGetExtensionsr  r  rS  removerT  KeyErrorr  r  r  rq   r   rM  r  )
r@   r  Zopt_listZenablesr  Zdef_strZdef_objZopt_typer   r5  rA   rA   rB   r    sF    	
	

	zConfigDialog.load_extensionsc             C   s   |  j  j   } | r' |  j  j |  } | d  k sB | |  j k r{ |  j r{ |  j j d d  |  j |  j j   d  |  _ | r |  j j d |  |  j | j d d d d d d  | |  _ d  S)Nr]   r   r   r   r   r  r  )	r  rp  r9  r  r  r   r  Zgrid_forgetr  )r@   r   ZnewselrA   rA   rB   r    s    		#zConfigDialog.extension_selectedc             C   s~  t  |  j d d d d } | |  j | <| j } xFt |  j |  D]1\ } } t | d | d } | j d | d d d	 t  | d
 } | d d k r t	 | d | d | d d d d d t
 d d d d j d | d d d	 t d d  qE | d d k rHt | d | d d d |  j d f j d | d d d	 t d d  qE t | d | j d | d d d	 t d d  qE Wd  S)Nr/   r  r0   r]   r?  r   r   r   r  r5  r  r  r  ri   rj   r  rl   r  ZindicatoronZselectcolorr   r   rk   rU      r  Zvalidaters  Zvalidatecommandz%P)VerticalScrolledFramer  r  interior	enumeraterE  r}   r  NWr   r:   r   r  r  r  )r@   r  fZ
entry_arear   optZlabelr5  rA   rA   rB   r    s&    	 
z#ConfigDialog.create_extension_framec             C   sv   | d } | d } | d j    j   p- | } | d j |  | | k r` |  j j | |  S|  j j | | |  S)Nr?  rB  r5  )r9  stripr   r  r  r  )r@   rO  r  r?  rB  r   rA   rA   rB   set_extension_value5  s    

z ConfigDialog.set_extension_valuec             C   sg   d } xG |  j  D]< } |  j  | } x& | D] } |  j | |  r* d } q* Wq W| rc |  j j   d  S)NFT)rE  r  r  rx  )r@   Zhas_changesr  rV  r  rA   rA   rB   r  A  s    z(ConfigDialog.save_all_changed_extensions)P__name__
__module____qualname__r2   r9   rS   rN   rO   rP   rQ   r?   r6  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r8   r:  rX  r   r  r  r]  r  r  r`  rI  r  r   r   r=  r~  r   r  r   r   rC  r   r  rA  r  r  r!  r  r"  r  r  r  r  r  r  r>   rm  r  r  r  r  r  r<   rZ   r[   r\   rR   r  r  r  r  r  rA   rA   rA   rB   r      s   5DoM`	$
!
5-r   ah  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. Some do not take affect until IDLE is restarted.
[Cancel] only cancels changes made since the last save.
rC   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.
c             C   s9   |  s
 d Sy t  |   d SWn t k
 r4 d SYn Xd  S)NTF)r  r  )r  rA   rA   rB   r  _  s    
r  c               @   s   e  Z d  Z d d   Z d S)r  c          
      s6  t  j |  | | |  t |  d t } | j d t d t d t  t |  d d d d d | j	 d	 d
     j d t
 d t d t  | j d   j    j d    j d  t     |  _    j d d d  d t     f d d   }  j d |      f d d   }   j d |  d  S)Nrn   rI   rG   rH   r   r   r   rh   r0      r^   Zwindowrp   c                s0    j     j   f }   j d d |  d  S)NZscrollregionz	0 0 %s %s)winfo_reqwidthZwinfo_reqheightr   )r   r  )canvasr  rA   rB   _configure_interior  s    z;VerticalScrolledFrame.__init__.<locals>._configure_interiorz<Configure>c                s5    j      j   k r1   j  d   j   d  S)Nr0   )r  Zwinfo_widthZitemconfigure)r   )r  r  interior_idrA   rB   _configure_canvas  s    z9VerticalScrolledFrame.__init__.<locals>._configure_canvas)r`   r2   r   ZVERTICALrJ   r   r   r:   ZCanvasr   rb   rM   rL   r   r   Zxview_movetoZyview_movetor  Zcreate_windowr  r   )r@   r3   r  kwZ
vscrollbarr  r  rA   )r  r  r  rB   r2   q  s     zVerticalScrolledFrame.__init__N)r  r  r  r2   rA   rA   rA   rB   r  j  s   r  __main__z#idlelib.idle_test.test_configdialog	verbosityrY   exitF)run)&tkinterZtkinter.messageboxZ
messageboxrt  Ztkinter.colorchooserZcolorchooserr}  Ztkinter.fontrm   rx   Zidlelib.configHandlerr   Zidlelib.dynOptionMenuWidgetr   Zidlelib.keybindingDialogr   Zidlelib.configSectionNameDialogr   Zidlelib.configHelpSourceEditr   Zidlelib.tabbedpagesr   Zidlelib.textViewr	   Zidlelibr
   r1   r   r  r  r  r`   r  r  Zunittestr7  Zidlelib.idle_test.htestr  rA   rA   rA   rB   <module>   s8   
     ?	+