m
fIc           @   s   d  Z  d k Td k Z d k Z d k Z d k Z d k Z d k l Z d k	 l
 Z
 d k l Z d k l Z d k l Z d k l Z d	 e f d
     YZ e d j o? e   Z e e d d d d   i   h  e _ e i   n d S(   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 comment in EditorWindow autoindent code for details.

(   t   *N(   s   idleConf(   s   DynOptionMenu(   s
   TabPageSet(   s   GetKeysDialog(   s   GetCfgSectionNameDialog(   s   GetHelpSourceDialogt   ConfigDialogc           B   s  t  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 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   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, d+   Z- d,   Z. d-   Z/ d.   Z0 e1 d/  Z2 d0   Z3 d1   Z4 d2   Z5 d3   Z6 d4   Z7 d5   Z8 d6   Z9 d7   Z: d8   Z; d9   Z< d:   Z= d;   Z> d<   Z? d=   Z@ d>   ZA d?   ZB d@   ZC dA   ZD dB   ZE dC   ZF dD   ZG dE   ZH dF   ZI dG   ZJ dH   ZK dI   ZL RS(J   s'   
    configuration dialog for idle
    c         C   sU  t  i |  |  |  i d d  |  i d | i   d | i   d f  h  d d0 <d	 d1 <d d2 <d d3 <d d4 <d d5 <d d6 <d d7 <d d8 <d! d9 <d$ d: <d' d; <d* d< <|  _ |  i	   |  i
   |  i d- t d. t  |  i |  |  i   |  i d/ |  i  | |  _ |  i i   |  i   |  i   |  i   d  S(=   Nt   borderwidthi   s   +%d+%di   i   s   Normal Textt   normalt   00s   Python Keywordst   keywordt   01s   Python Definitionst
   definitiont   02s   Python Builtinst   builtint   03s   Python Commentst   commentt   04s   Python Stringst   stringt   05s   Selected Textt   hilitet   06s
   Found Textt   hitt   07t   Cursort   cursort   08s
   Error Textt   errort   09s   Shell Normal Textt   consolet   10s   Shell Stdout Textt   stdoutt   11s   Shell Stderr Textt   stderrt   12t   heightt   widtht   WM_DELETE_WINDOW(   R   R   (   R   R   (   R   R   (   R	   R
   (   R   R   (   s   stringR   (   R   R   (   R   R   (   R   R   (   s   errorR   (   R   R   (   s   stdoutR   (   s   stderrR   (   t   Toplevelt   __init__t   selft   parentt	   configuret   geometryt   winfo_rootxt   winfo_rootyt   themeElementst   ResetChangedItemst   CreateWidgetst	   resizablet   FALSEt	   transientt   grab_sett   protocolt   Cancelt   tabPagest	   focus_sett   LoadConfigst   AttachVarCallbackst   wait_window(   R#   R$   t   title(    (    t1   /mit/python/lib/python2.4/idlelib/configDialog.pyR"      s    +~


	

c         C   s  t  |  d d d d d g |  _ |  i i   t |   } t | d d d |  i d	 t |  _	 t | d d
 d |  i
 d	 t |  _ t | d d d |  i d	 t |  _ t | d d d |  i d	 t |  _ |  i   |  i   |  i   |  i   |  i	 i d t d d d d  |  i i d t d d d d  |  i i d t d d d d  |  i i d t d d d d  | i d t  |  i i d t d t d t  d  S(   Nt	   pageNamess
   Fonts/Tabst   Highlightingt   Keyst   Generalt   textt   Helpt   commandt	   takefocust   Okt   ApplyR1   t   sidet   padxi   t   padyt   expandt   fill(   t
   TabPageSetR#   R2   t
   ChangePaget   Framet   frameActionButtonst   ButtonR>   R-   t
   buttonHelpRA   t   buttonOkRB   t   buttonApplyR1   t   buttonCancelt   CreatePageFontTabt   CreatePageHighlightt   CreatePageKeyst   CreatePageGeneralt   packt   RIGHTt   LEFTt   BOTTOMt   TOPt   TRUEt   BOTH(   R#   RK   (    (    R8   R+   A   s,    



c         C   sn  t  |   |  _ t |   |  _ t  |   |  _ t |   |  _ t |   |  _ t	 i
 |  d1  |  _ |  i i d d }	 t |	 d d d t } t |	 d d d t } t | d	 d
 } t |  } t |  } t | d t d	 d } t | d d d t d t |  _ |  i i d |  i  t |  } | i  d |  i i!  |  i i  d | i"  t | d	 d } t$ | |  i d  d |  i& |  _' t( | d |  i d d d d d	 d d |  i& } t | d t* d d }
 t |
 d	 d d t d |  i |  _, t | d	 d } t |  } t |  } t | d	 d } t1 | d |  i d d d	 d  } t1 | d |  i d d d	 d! } t | d	 d" } t | d t d	 d# } t6 | d |  i d$ d% d& d d' d d( d) |  _7 | i8 d* t d+ d d, d d- t9 d. t:  | i8 d* t d+ d d, d d. t;  | i8 d* t< d/ t= d+ d d, d  | i8 d* t< d+ d d, d d. t>  | i8 d* t< d+ d d, d d. t>  | i8 d* t< d/ t=  |  i i8 d* t d- t9 d. t>  | i8 d* t d. t;  | i8 d* t d/ t=  |  i' i8 d* t d/ t=  | i8 d* t d/ t= d+ d0  |
 i8 d* t< d+ d d, d d- t9 d. t:  |  i, i8 d- t9 d. t:  | i8 d* t< d/ t= d+ d d, d  | i8 d* t< d+ d d. t>  | i8 d* t< d+ d d, d d. t:  | i8 d* t< d/ t= d+ d d, d  | i8 d* t< d/ t= d+ d  | i8 d* t< d/ t= d+ d  | i8 d* t< d/ t= d+ d d, d  | i8 d* t< d/ t= d+ d  |  i7 i8 d* t< d+ d d. t>  |	 S(2   Nt   courieri
   R   s
   Fonts/Tabst   pageR   i   t   reliefR=   s   Set Base Editor Fontt   justifys   Font :R   i   R@   t   exportselections   <ButtonRelease-1>R?   t   yscrollcommands   Size :t   variablet   onvaluei   t   offvaluei    t   Bolds,   AaBbCcDdEe
FfGgHhIiJjK
1234567890
#:+=(){}[]t   fonts   Set Indentation Defaultss   Choose indentation type :t   values   Tab key inserts spacess   Tab key inserts tabss   Choose indentation size :s   indent widtht   orientt
   horizontalt   tickintervalt   from_t   toi   RC   RD   RE   RF   RG   t   anchori   (   R\   i
   s   normal(?   t	   StringVarR#   t   fontSizet
   BooleanVart   fontBoldt   fontNamet   IntVart   spaceNumt   indentBySpacest   tkFontt   Fontt   editFontR2   t   pagest   frameRJ   t   GROOVEt	   frameFontt   frameIndentt   Labelt   labelFontTitlet   frameFontNamet   frameFontParamRW   t   labelFontNameTitlet   ListboxR-   t   listFontNamet   bindt   OnListFontButtonReleaset	   Scrollbart
   scrollFontt   configt   yviewt   sett   labelFontSizeTitlet   DynOptionMenut   Nonet   SetFontSamplet   optMenuFontSizet   Checkbuttont   checkFontBoldt   SOLIDt   frameFontSamplet   labelFontSamplet   labelIndentTitlet   frameIndentTypet   frameIndentSizet   labelIndentTypeTitlet   Radiobuttont   radioUseSpacest   radioUseTabst   labelIndentSizeTitlet   labelSpaceNumTitlet   Scalet   scaleSpaceNumRU   RZ   R[   t   YRY   t   Wt   X(   R#   R   R}   R   R   R   R   R   R   Rz   R   R   R   R   R|   R   R   R   R   R   (    (    R8   RQ   Z   s    !!(""""(""""c          C   s&  t  |   |  _ t  |   |  _ t |   |  _ t  |   |  _ t  |   |  _ t |   |  _ t  |   |  _	 |  i
 i d d } t | d d d t } t | d d d t } t | d t d d d d d	 d
 f d d d d d d d t d d d t 	|  _ |  i } | i d d    | i d d    d d f d d f d d f d d f d d f d  d f d! d" f d# d f d$ d f d% d& f d' d f d( d& f d) d f d* d+ f d, d f d- d. f d/ d f d0 d1 f d2 d f d3 d1 f d4 d f d5 d6 f d  d f d7 d f d8 d f d9 d: f d  d f d; d; f d  d f d< d< f d d f f } x) | D]! } | i t | d | d  qNWx; |  i i   D]* } | i |  i | d d= | d>   qW| i  d? t!  t | d t d d |  _" t |  } t$ | d@ dA } t& |  i" d@ dB dC |  i' d d }
 t) |  i" |  i	 t* d d |  _+ t, | dD |  i dE d d@ dF dC |  i- |  _. t, | dD |  i dE d d@ dG dC |  i- |  _/ |  i i0 d  t& | d@ dH dC |  i1 } t$ | d@ dI }	 t$ | d@ dJ } t, | dD |  i dE d dC |  i5 d@ dK |  _6 t, | dD |  i dE d dC |  i5 d@ dL |  _7 t) | |  i t* dC t* |  _8 t) | |  i t* dC t* |  _9 t& | d@ dM dC |  i: |  _; | i< dN t= dO dP dQ d dR t> dS t?  | i< dN t= dO dP dQ d dS t@  | i< dN tA dT tB dO dP dQ dP  |  i" i< dN tA dO dP dQ dP dR t> dS tC  | i< dN tA dO dP dQ d  |  i i< dN tA dO dP dQ dP dR t> dS t?  |
 i< dN tA dR t> dS tC dO dU dQ dV  |  i+ i< dN tA dR t> dS tC dO dU dQ dW  |  i. i< dN t= dT tD  |  i/ i< dN tE dT tB  | i< dN tF dS tC dO dP dQ dP  |	 i< dN tA dT tB dO dP dQ dP  | i< dN tA dT tB dO dP dQ dP  |  i6 i< dN tA dT tB dO dP  |  i7 i< dN tA dT tB dO dP dQ d  |  i8 i< dN tA dS tC dO dP dQ dP  |  i9 i< dN tA dS tC dT tB dO dP dQ dP  |  i; i< dN tA dS tC dO dP dQ dP  | Sd  S(X   NR:   R]   R   i   R^   i   Rf   R\   i   t    R   t   hand2R   i   R   i
   R@   t   highlightthicknessi    t   wraps   <Double-Button-1>c         C   s   d S(   Nt   break(    (   t   e(    (    R8   t   <lambda>   s    s   <B1-Motion>c         C   s   d S(   NR   (    (   R   (    (    R8   R      s    s   #you can click hereR   s   
R   s   #to choose itemst   defR   t    t   funcR   s   (param):s   
  s   """string"""R   s
   
  var0 = s   'string's
   
  var1 = s
   'selected'R   s
   
  var2 = s   'found'R   s
   
  var3 = t   listR	   t   (R   s   )

s    error R   s   cursor |s   
 t   shellR   R   R   s   <ButtonPress-1>c         C   s   |  i i   i i |  S(   N(   t   eventt   widgett   winfo_toplevelt   highlightTargetR   t   elem(   R   R   (    (    R8   R      s    t   stateR=   s   Set Custom Highlightings   Choose Colour for :R?   Rb   Rg   t
   Foregroundt
   Backgrounds   Save as New Custom Themes   Select a Highlighting Themes	   Select : s   a Built-in Themes   a Custom Themes   Delete Custom ThemeRC   RD   i   RE   RF   RG   Rm   i   i   i   (G   Rn   R#   t   builtinThemet   customThemeRp   t   fgHilitet   colourRr   t   themeIsBuiltinR   R2   Ry   Rz   RJ   R{   t   frameCustomt
   frameThemet   TextR   R-   t   NONEt   textHighlightSampleR=   R   t   textAndTagst   txTat   insertt   ENDR)   t   keyst   elementt   tag_bindR   t   DISABLEDt   frameColourSett	   frameFgBgR~   t   labelCustomTitleRL   t	   GetColourt   buttonSetColourR   R   t   optMenuHighlightTargetR   t   SetColourSampleBindingt   radioFgt   radioBgR   t   SaveAsNewThemet   buttonSaveCustomThemet   labelThemeTitlet   labelTypeTitlet   SetThemeTypet   radioThemeBuiltint   radioThemeCustomt   optMenuThemeBuiltint   optMenuThemeCustomt   DeleteCustomThemet   buttonDeleteCustomThemeRU   RW   RZ   R[   R   RY   R   R   t   ERV   RX   (   R#   R   R=   Rz   R   R   R   R   R   R   R   R   R   R   (    (    R8   RR      s    !	   	(""+!
(+"""%%+%c         C   s  t  |   |  _ t  |   |  _ t  |   |  _ t |   |  _ t  |   |  _ |  i i	 d d } t | d d d t } t | d d d t } t |  } t | d d } t | d d }	 t |  } t | d	 t } t | d
 t d t |  _ |  i i d |  i  | i d |  i i  | i d |  i i  |  i i d | i  |  i i d | i  t  | d d d |  i! d t" |  _# t  | d d d |  i$ } t | d d } t | d d }
 t( | d |  i d d d |  i) d d |  _* t( | d |  i d d d |  i) d d |  _+ t, | |  i d  d d  |  _. t, | |  i d  d d  |  _/ t  | d d d |  i0 |  _1 | i2 d t3 d d d d d  t4 d! t5  | i2 d t3 d d d d d! t6  | i2 d t7 d" t8 d d d d  | i2 d t9 d! t: d d d d  |  i# i2 d t9 d! t: d d d d  | i2 d t3 d d d d d  t4 d! t5  | i; d d# d | i< d d# d |	 i= d$ d d% d d& d d' t8  |  i i= d$ d d% d d' t>  | i= d$ d d% d d' t?  | i= d$ d d% d d' t@  | i2 d t7 d" t8 d d d d  |
 i2 d t7 d" t8 d d d d  |  i* i2 d t7 d" t8 d d  |  i+ i2 d t7 d" t8 d d d d  |  i. i2 d t7 d! t: d d d d  |  i/ i2 d t7 d! t: d" t8 d d d d  |  i1 i2 d t7 d! t: d d d d  | S((   NR;   R]   R   i   R^   R=   s   Set Custom Key Bindingss   Action - Key(s)Rh   R@   R`   s   <ButtonRelease-1>R?   Ra   t   xscrollcommands   Get New Keys for SelectionR   s   Save as New Custom Key Sets   Select a Key Sets	   Select : Rb   Rg   i   s   a Built-in Key Seti    s   a Custom Key Sets   Delete Custom Key SetRC   RD   i   RE   RF   RG   Rm   t   weightt   rowt   columnt
   columnspant   sticky(A   Rn   R#   t   bindingTargett   builtinKeyst
   customKeysRp   t   keysAreBuiltint
   keyBindingR2   Ry   Rz   RJ   R{   R   t   frameKeySetst   frameTargetR~   R   t   labelTargetTitleR   t   scrollTargetYt
   HORIZONTALt   scrollTargetXR   R-   t   listBindingsR   t   KeyBindingSelectedR   R   t   xviewR   RL   t
   GetNewKeysR   t   buttonNewKeyst   SaveAsNewKeySett   buttonSaveCustomKeyst   labelKeysTitleR   R   t   SetKeysTypet   radioKeysBuiltint   radioKeysCustomR   R   t   optMenuKeysBuiltint   optMenuKeysCustomt   DeleteCustomKeyst   buttonDeleteCustomKeysRU   RW   RZ   R[   R   RY   R   RX   R   t   columnconfiguret   rowconfiguret   gridt   NSEWt   NSt   EW(   R#   R   Rz   R   R   R   R   R   R   R   R   R   (    (    R8   RS     sp    ("""%("""%%+%c         C   si  t  |   |  _ t  |   |  _ t  |   |  _ t |   |  _ t |   |  _ t  |   |  _ t	 |   |  _
 t  |   |  _ |  i i d d } t | d d d t } t | d d d t } t | d d d t } t | d d d t } t | d d d t } t | d d d t } t | d d } t | d d } t | d	 |  i d
 d d |  i d d } t | d	 |  i d
 d d |  i d d } t | d d } t | d d } t | d	 |  i d
 d d |  i d d } t | d	 |  i d
 d d |  i d d } t | d d d } t | d d } t$ | d |  i d d }
 t | d d } t$ | d |  i d d }	 t | d d d } t$ | d |  i d d } t | d d } t | d	 |  i d
 d d d } t | d	 |  i d
 d  d d! } t | d	 |  i d
 d" d d# } t |  } t |  } t | d d$ } t1 |  } t3 | d% d& d' t4 d( t4 |  _5 | i6 d |  i5 i7  |  i5 i6 d) | i8  |  i5 i9 d* |  i:  t; | d d+ d, t< d d- d |  i= |  _> t; | d d. d d- d |  i? |  _@ t; | d d/ d, t< d d- d |  iA |  _B | iC d0 tD d1 d& d2 d& d3 tE  | iC d0 tD d1 d& d2 d& d3 tE  | iC d0 tD d1 d& d2 d& d3 tE  | iC d0 tD d1 d& d2 d& d3 tE  | iC d0 tD d1 d& d2 d& d3 tE  | iC d0 tD d1 d& d2 d& d4 tF d3 tG  | iC d0 tD d5 tH d1 d& d2 d&  | iC d0 tI d5 tH d1 d& d2 d&  | iC d0 tJ d5 tH d1 d& d2 d&  | iC d0 tJ d5 tH d1 d& d2 d&  | iC d0 tD d5 tH d1 d& d2 d&  | iC d0 tI d5 tH d1 d& d2 d&  | iC d0 tJ d5 tH d1 d& d2 d&  | iC d0 tJ d5 tH d1 d& d2 d&  | iC d0 tI d5 tH d1 d& d2 d&  |	 iC d0 tJ d5 tK d1 d6 d2 d&  | iC d0 tJ d5 tK d2 d&  |
 iC d0 tJ d5 tK d1 d6 d2 d&  | iC d0 tJ d5 tK d2 d&  | iC d0 tI d5 tH d1 d& d2 d&  | iC d0 tJ d5 tK d1 d6 d2 d&  | iC d0 tI d5 tH d1 d& d2 d&  | iC d0 tJ d5 tK d2 d&  | iC d0 tJ d5 tK d2 d&  | iC d0 tJ d5 tK d2 d&  | iC d0 tJ d1 d& d2 d& d3 tL  | iC d0 tD d1 d& d2 d& d4 tF d3 tG  | iC d0 tD d5 tH  | iC d0 tJ d5 tH d3 tL  |  i5 iC d0 tI d5 tK d4 tF d3 tG  |  i> iC d0 tD d5 tH d2 d&  |  i@ iC d0 tD d5 tH  |  iB iC d0 tD d5 tH d2 d&  | S(7   NR<   R]   R   i   R^   R=   s   Startup Preferencess
   At StartupRb   Rg   i   R?   s   Open Edit Windowi    s   Open Shell Windows   Autosave Preferences   At Start of Run (F5)  s   Prompt to Saves	   No Prompts   Initial Window Sizes     (in characters)t   Widtht   textvariableR   i   t   Heights   Paragraph reformats    width (in characters)s   Default Source Encodingt   locales   Locale-defineds   utf-8s   UTF-8t   noneR   s   Additional Help Sources:R   i   R@   R`   Ra   s   <ButtonRelease-1>t   EditR   i   t   Addt   RemoveRC   RD   RE   RG   RF   Rm   i
   (M   Rn   R#   t   winWidtht	   winHeightt	   paraWidthRs   t   startupEditt   autoSavet   encodingRp   t   userHelpBrowsert   helpBrowserR2   Ry   Rz   RJ   R{   t   frameRunt	   frameSavet   frameWinSizet   frameParaSizet   frameEncodingt	   frameHelpR~   t   labelRunTitlet   labelRunChoiceTitleR   R   t   radioStartupEditt   radioStartupShellt   labelSaveTitlet   labelRunSaveTitlet   radioSaveAskt   radioSaveAutot   labelWinSizeTitlet   labelWinWidthTitlet   Entryt   entryWinWidtht   labelWinHeightTitlet   entryWinHeightt   labelParaWidthTitlet   entryParaWidtht   labelEncodingTitlet   radioEncLocalet   radioEncUTF8t   radioEncNonet   frameHelpListt   frameHelpListButtonst   labelHelpListTitleR   t   scrollHelpListR   R-   t   listHelpR   R   R   R   t   HelpSourceSelectedRL   R   t   HelpListItemEditt   buttonHelpListEditt   HelpListItemAddt   buttonHelpListAddt   HelpListItemRemovet   buttonHelpListRemoveRU   RY   R   RZ   R[   R   RW   RV   R   R   (   R#   R   Rz   R  R.  R  R"  R  R  R)  R'  R-  R*  R#  R2  R+  R1  R,  R(  R%  R/  R3  R  R0  R  R!  R  R$  R  R  R  (    (    R8   RT   P  s    
"""""("""""""""""""""(%c         C   s  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i	  |  i
 i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i i d |  i  |  i  i d |  i!  |  i" i d |  i#  |  i$ i d |  i%  |  i& i d |  i'  |  i( i d |  i)  d  S(   Nt   w(*   R#   Ro   t   trace_variablet   VarChanged_fontSizeRr   t   VarChanged_fontNameRq   t   VarChanged_fontBoldRt   t   VarChanged_spaceNumRu   t   VarChanged_indentBySpacesR   t   VarChanged_colourR   t   VarChanged_builtinThemeR   t   VarChanged_customThemeR   t   VarChanged_themeIsBuiltinR   t   VarChanged_highlightTargetR   t   VarChanged_keyBindingR   t   VarChanged_builtinKeysR   t   VarChanged_customKeysR   t   VarChanged_keysAreBuiltinR  t   VarChanged_winWidthR  t   VarChanged_winHeightR  t   VarChanged_paraWidthR  t   VarChanged_startupEditR  t   VarChanged_autoSaveR  t   VarChanged_encoding(   R#   (    (    R8   R5     s(    c         G   s)   |  i i   } |  i d d d |  d  S(   Nt   maint   EditorWindows	   font-size(   R#   Ro   t   getRg   t   AddChangedItem(   R#   t   paramsRg   (    (    R8   R>    s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  RS  Rf   (   R#   Rr   RT  Rg   RU  (   R#   RV  Rg   (    (    R8   R?    s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  RS  s	   font-bold(   R#   Rq   RT  Rg   RU  (   R#   RV  Rg   (    (    R8   R@    s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  t   Indents
   use-spaces(   R#   Ru   RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RB    s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  RW  s
   num-spaces(   R#   Rt   RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RA    s    c         G   s   |  i   d  S(   N(   R#   t   OnNewColourSet(   R#   RV  (    (    R8   RC    s    c         G   s3   |  i i   } |  i d d d |  |  i   d  S(   NRR  t   Themet   name(   R#   R   RT  Rg   RU  t   PaintThemeSample(   R#   RV  Rg   (    (    R8   RD     s    c         G   sD   |  i i   } | d j o$ |  i d d d |  |  i   n d  S(   Ns   - no custom themes -RR  RY  RZ  (   R#   R   RT  Rg   RU  R[  (   R#   RV  Rg   (    (    R8   RE    s    c         G   sH   |  i i   } |  i d d d |  | o |  i   n |  i   d  S(   NRR  RY  t   default(   R#   R   RT  Rg   RU  RD  RE  (   R#   RV  Rg   (    (    R8   RF    s
    c         G   s   |  i   d  S(   N(   R#   t   SetHighlightTarget(   R#   RV  (    (    R8   RG    s    c         G   s   |  i i   } |  i i   } |  i i t  i   d } t
 i |  o |  i d | | |  n0 t
 i |  } | d } |  i d | | |  d  S(   Ni    R   t   _cfgBindingst
   extensions(   R#   R   RT  Rg   R   t   keySetR   t   ANCHORt   splitR   t   idleConft   IsCoreBindingRU  t   GetExtnNameForEventt   extNamet   extKeybindSection(   R#   RV  Rg  Rg   R`  Rf  R   (    (    R8   RH    s    
c         G   s6   |  i i   } |  i d d d |  |  i |  d  S(   NRR  R;   RZ  (   R#   R   RT  Rg   RU  t   LoadKeysList(   R#   RV  Rg   (    (    R8   RI  "  s    c         G   sG   |  i i   } | d j o' |  i d d d |  |  i |  n d  S(   Ns   - no custom keys -RR  R;   RZ  (   R#   R   RT  Rg   RU  Rh  (   R#   RV  Rg   (    (    R8   RJ  '  s    c         G   sH   |  i i   } |  i d d d |  | o |  i   n |  i   d  S(   NRR  R;   R\  (   R#   R   RT  Rg   RU  RI  RJ  (   R#   RV  Rg   (    (    R8   RK  -  s
    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  RS  R   (   R#   R  RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RL  5  s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  RS  R   (   R#   R  RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RM  9  s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  t   FormatParagrapht	   paragraph(   R#   R  RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RN  =  s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  R<   s   editor-on-startup(   R#   R  RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RO  A  s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  R<   t   autosave(   R#   R  RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RP  E  s    c         G   s)   |  i i   } |  i d d d |  d  S(   NRR  RS  R  (   R#   R  RT  Rg   RU  (   R#   RV  Rg   (    (    R8   RQ  I  s    c         C   s1   h  d h  <d h  <d h  <d h  <|  _ d  S(   NRR  t	   highlightR   R_  (   R#   t   changedItems(   R#   (    (    R8   R*   M  s    c         C   sQ   t  |  } |  i | i |  p h  |  i | | <n | |  i | | | <d  S(   N(   t   strRg   R#   Rm  t   typet   has_keyt   sectiont   item(   R#   Ro  Rq  Rr  Rg   (    (    R8   RU  U  s    c         C   s   h  d h  <d h  <d h  <d h  <} x | i   D] } t i d |  } xh | D]` } h  | | | <t i | i |  } x3 | D]+ } t i | i | |  | | | | <q WqV Wq7 W| S(   NRR  Rl  R   R_  R\  (   t   dItemsR   t
   configTypeRc  t   GetSectionListt   sectionsRq  t
   defaultCfgt   GetOptionListt   optionst   optiont   Get(   R#   Rz  Rs  Ry  Rt  Rv  Rq  (    (    R8   t   GetDefaultItems[  s    *   1c         C   s   |  i i   o= |  i i d t  |  i i d t  |  i i d t  nM |  i i d t  |  i	 i d t  |  i i d t  |  i i d t  d  S(   NR   (
   R#   R   RT  R   R   t   NORMALR   R   R   R   (   R#   (    (    R8   R   g  s    c         C   s   |  i i   o= |  i i d t  |  i i d t  |  i i d t  nM |  i i d t  |  i	 i d t  |  i i d t  |  i i d t  d  S(   NR   (
   R#   R   RT  R   R   R}  R   R   R   R   (   R#   (    (    R8   R   r  s    c         C   s  |  i i t  } |  i i |  } | i   d } |  i	 i   o |  i
 i   }
 n |  i i   }
 t i   } |
 |  i d i   j o@ |  i d |
 } x, | i   D] } | | i   | | <q Wn | i   } t |  d | |  i } | o |  i	 i   oY d d } |  i |  }	 |	 p( |  i i |  |  i i |  d  Sq`|  i |	  n |  i i |  |  i i  | | d |  |  i i |  |  i i |  |  i! i" |  n! |  i i |  |  i i |  d  S(   Ni    R   s   Get New Keyss4   Your changes will be saved as a new Custom Key Set. s/   Enter a name for your new Custom Key Set below.s    - (#   R#   R   t   indexRa  t	   listIndexRT  t   bindingRb  t   bindNameR   R   t   currentKeySetNameR   Rc  t   GetCurrentKeySett   currentBindingsRm  R   t   keySetChangesR   t   valuest   currentKeySequencest   GetKeysDialogt   resultt   newKeyst   messaget   GetNewKeysNamet	   newKeySett
   select_sett   select_anchort   CreateNewKeySett   deleteR   R   R   (   R#   R  R  R  R  R  R   R  R  R  R  R  (    (    R8   R   }  s>     
c         C   s>   t  i d d  t  i d d  } t |  d | |  i } | S(   Nt   userR   R\  s   New Custom Key Set(   Rc  Ru  t	   usedNamest   GetCfgSectionNameDialogR#   R  R  R  (   R#   R  R  R  (    (    R8   R    s    "	c         C   s+   |  i d  } | o |  i |  n d  S(   Ns   New Key Set Name:(   R#   R  t   newKeysNameR  (   R#   R  (    (    R8   R     s    c         C   s   |  i i d t  d  S(   NR   (   R#   R   R   R}  (   R#   R   (    (    R8   R     s    c   
      C   s9  |  i i   o |  i i   } n |  i i   } t i |  }	 h  } x> |	 i
   D]0 } | d d !} t i |	 |  } | | | <qT W| |  i d i
   j o: |  i d | } x& | i
   D] } | | | | <q Wn |  i | |  t i d d  } | i   |  i i | |  |  i i d  |  i   d  S(   Ni   iR   R  i    (   R#   R   RT  R   t   prevKeySetNameR   Rc  t   GetCoreKeyst   prevKeysR  R   R   t	   eventNameR   t   joinR  Rm  R  t   SaveNewKeySett   newKeySetNameRu  t   customKeyListt   sortR   t   SetMenuR   R   (
   R#   R  R  R  R  R  R  R  R   R  (    (    R8   R    s*      
c   	      C   sP  d } d } |  i i   o d } |  i i t  } n t i	 |  } | i   } | i   |  i i d t  x | D] } t i | |  } | d d !} | |  i d i   j o; | |  i d | i   j o |  i d | | } q n |  i i t | d |  qw W| o4 |  i i |  |  i i |  |  i i |  n d  S(   Ni    i   i   iR   s    - (   t   reselectR  R#   R   t   curselectionR~  Ra  R  Rc  t	   GetKeySett
   keySetNameR`  R   t	   bindNamesR  R  R   R  R   R  t   keyRm  R   t   seeR  R  (	   R#   R  R  R  R`  R  R  R  R  (    (    R8   Rh    s*    
 c         C   sH  |  i i   } t i d d d | d |  p d  Sn t i d i |  |  i	 d i
 |  o |  i	 d | =n t i d i   t i d d  } | i   | p* |  i i d t  |  i i | d  n |  i i | | d	  |  i i t i d
 i d d   |  i i t i d
 i d d   |  i   |  i   d  S(   Ns   Delete Key Sets   Are you sure you wish s   to delete the key set %r ?R$   R   R  R   s   - no custom keys -i    RR  R;   R\  RZ  (   R#   R   RT  R  t   tkMessageBoxt   askyesnoRc  t   userCfgt   remove_sectionRm  Rp  t   SaveRu  t   itemListR  R   R   R   R   R  R   R   Rw  R{  R   RB   R   (   R#   R  R  (    (    R8   R     s$    
##
c         C   sK  |  i i   } t i d d d | f d |  p d  Sn t i d i |  |  i	 d i
 |  o |  i	 d | =n t i d i   t i d d  } | i   | p* |  i i d t  |  i i | d  n |  i i | | d	  |  i i t i d
 i d d   |  i i t i d
 i d d   |  i   |  i   d  S(   Ns   Delete Themes   Are you sure you wish s   to delete the theme %r ?R$   Rl  R  R   s   - no custom themes -i    RR  RY  R\  RZ  (   R#   R   RT  t	   themeNameR  R  Rc  R  R  Rm  Rp  R  Ru  R  R  R   R   R   R   R  R   R   Rw  R{  R   RB   R   (   R#   R  R  (    (    R8   R     s$    
##
c         C   s   |  i i   } |  i i d  } t i d |  d d | d |  \ } } | oz | | j om |  i i   oI d d } |  i |  } | p d  Sq |  i |  |  i i |  q |  i i |  n d  S(   Nt   bgR$   R7   s   Pick new colour for : t   initialcolors2   Your changes will be saved as a new Custom Theme. s-   Enter a name for your new Custom Theme below.(   R#   R   RT  t   targetR   t   cgett
   prevColourt   tkColorChoosert   askcolort	   rgbTuplett   colourStringR   R  t   GetNewThemeNamet   newThemet   CreateNewThemeR   R   (   R#   R  R  R  R  R  R  (    (    R8   R     s    
c         C   s   |  i i   } |  i i d |  |  i i   o
 d } n d } |  i |  i	 i   d } |  i i | h  | | < |  i i   } | d | } |  i d | | |  d  S(   NR  t
   foregroundt
   backgroundi    t   -Rl  (   R#   R   RT  t	   newColourR   R   R   t   planeR)   R   t   sampleElementR   t
   tag_configR   t   themet   themeElementRU  (   R#   R  R  R  R  R  (    (    R8   RX  +  s     
c         C   s>   t  i d d  t  i d d  } t |  d | |  i } | S(   NR  Rl  R\  s   New Custom Theme(   Rc  Ru  R  R  R#   R  R  R  (   R#   R  R  R  (    (    R8   R  6  s    "	c         C   s+   |  i d  } | o |  i |  n d  S(   Ns   New Theme Name:(   R#   R  t   newThemeNameR  (   R#   R  (    (    R8   R   =  s    c         C   s  |  i i   o d } |  i i   } n d } |  i i   } t i | |  } | |  i
 d i   j o: |  i
 d | } x& | i   D] } | | | | <q Wn |  i | |  t i d d  } | i   |  i i | |  |  i i d  |  i   d  S(   NR\  R  Rl  i    (   R#   R   RT  t	   themeTypeR   R  R   Rc  t   GetThemeDictR  Rm  R   t   themeChangesR   t   SaveNewThemeR  Ru  t   customThemeListR  R   R  R   R   (   R#   R  R  R  R  R   R  R  (    (    R8   R  B  s"     
c         C   s6   |  i i t  } |  i i | i    |  i   d  S(   N(	   R#   R   RT  Ra  Rf   Rr   R   t   lowerR   (   R#   R   Rf   (    (    R8   R   Z  s    c         C   sa   |  i i   } |  i i   o t i } n
 t i } |  i i	 d |  i
 i   d | d |  d  S(   Nt   sizeR   t   family(   R#   Rr   RT  Rq   Rv   t   BOLDt
   fontWeightR}  Rx   R   Ro   (   R#   R   R  Rr   (    (    R8   R   _  s    	c         C   s   |  i i   d j o: |  i i d t  |  i i d t  |  i i d  n7 |  i i d t	  |  i i d t	  |  i i d  |  i
   d  S(   NR   R   i   (   R#   R   RT  R   R   R   R   R   R   R}  t   SetColourSample(   R#   (    (    R8   R]  h  s    c         G   s   |  i   d  S(   N(   R#   R  (   R#   t   args(    (    R8   R   s  s    c         C   sf   |  i |  i i   d } |  i i   o
 d } n d } |  i i | |  } |  i
 i d |  d  S(   Ni    R  R  R  (   R#   R)   R   RT  t   tagR   R  R   t   tag_cgetR   R   R   (   R#   R  R   R  (    (    R8   R  v  s     
c         C   s@  |  i i   o |  i i   } n |  i i   } x |  i i   D] } |  i | d } t
 i | |  } | d j o  t
 i | d d d | d <n | |  i d i   j oi |  i d | } | i | d  o | | d | d	 <n | i | d
  o | | d
 | d <qn |  i i | |  qB W|  i   d  S(   Ni    R   R   t   fgBgR  R  Rl  s   -foregroundR  s   -background(   R#   R   RT  R   R  R   R)   R   t   elementTitleR   Rc  t   GetHighlightt   coloursRm  t	   themeDictRp  R   R  R  (   R#   R   R  R  R  R  (    (    R8   R[  ~  s$     	c         C   s   |  i   d  S(   N(   R#   t   SetHelpListButtonStates(   R#   R   (    (    R8   R5    s    c         C   s   |  i i   d j  o* |  i i d t  |  i i d t  na |  i i   o* |  i i d t  |  i i d t  n' |  i i d t  |  i i d t  d  S(   Ni   R   (	   R#   R4  R  R7  R   R   R;  R  R}  (   R#   (    (    R8   R    s    c         C   sj   t  |  d  i } | oC |  i i | d | d f  |  i i t | d  |  i	   n |  i
   d  S(   Ns   New Help Sourcei    i   (   t   GetHelpSourceDialogR#   R  t
   helpSourcet   userHelpListt   appendR4  R   R   t   UpdateUserHelpChangedItemsR  (   R#   R  (    (    R8   R8    s    c         C   s   |  i i t  } |  i | } t |  d d | d d | d i } | p | | j o d  Sn | |  i | <|  i i
 |  |  i i | | d  |  i   |  i   d  S(   Ns   Edit Help Sourcet   menuItemi    t   filePathi   (   R#   R4  R~  Ra  t	   itemIndexR  R  R  R  t   newHelpSourceR  R   R  R  (   R#   R  R  R  (    (    R8   R6    s    	
c         C   sD   |  i i t  } |  i | =|  i i |  |  i   |  i   d  S(   N(	   R#   R4  R~  Ra  R  R  R  R  R  (   R#   R  (    (    R8   R:    s
    

c      	   C   ss   h  |  i d d <x[ t d t |  i  d  D]= } |  i d d t |  t i	 |  i | d d  d   q. Wd S(   s<   Clear and rebuild the HelpFiles section in self.changedItemsRR  t	   HelpFilesi   i   t   ;N(
   R#   Rm  t   ranget   lenR  t   numRU  Rn  R   R  (   R#   R  (    (    R8   R    s      c   
      C   sX  t  t i |    } | i   x! | D] }	 |  i i t	 |	  q& Wt
 i d d d d d } | i   } |  i i |  g  } | D] } | | i   q ~ } | | j oC | i |  } |  i i |  |  i i |  |  i i |  n t
 i d d d d d } |  i i d |  |  i i t
 i d d d d d d d  |  i   d  S(   NRR  RS  Rf   R\  R\   s	   font-sizeR   t   7t   8t   9R   R   t   13t   14t   16t   18t   20t   22s	   font-boldi    Ro  t   bool(   R  R  R  s   10s   11s   12R  R  R  R  R  R  (   R   Rv   t   familiesR#   t   fontsR  Rf   R   R   R   Rc  t	   GetOptiont   configuredFontR  t   lc_configuredFontRr   R   t   _[1]t   st   lc_fontsR~  t   currentFontIndexR  R  R  Ro   R   R  Rq   R   (
   R#   R  Ro   R  R  R  R  R  R  Rf   (    (    R8   t   LoadFontCfg  s,    
 'c         C   sf   t  i d d d d d d d } |  i i |  t  i d d d d d	 d d
 } |  i i |  d  S(   NRR  RW  s
   use-spacesR\  i   Ro  R  s
   num-spacesi   t   int(   Rc  R  t   spaceIndentR#   Ru   R   Rt   (   R#   Rt   R  (    (    R8   t
   LoadTabCfg  s    c      	   C   s  |  i i t i d d d d d d d  t i   } |  i i   o t i d d  } | i
   |  i i | |  t i d d  } | i
   | p' |  i i d	 t  |  i i d
  q=|  i i | | d  nc t i d d  } | i
   |  i i | |  t i d d  } | i
   |  i i | | d  |  i   |  i i   } | i
 |  i  |  i i | | d  |  i   |  i   d  S(   NRR  RY  R\  Ro  R  i   Rl  R  R   s   - no custom themes -i    (   R#   R   R   Rc  R  t   CurrentThemet   currentOptionRT  Ru  R  R  R   R  R   R   R   R   R   R   R)   R   t
   themeNamest$   _ConfigDialog__ThemeNameIndexCompareR   R[  R]  (   R#   R  R  R  (    (    R8   t   LoadThemeCfg  s2    





c         C   s^   |  i | d |  i | d j  o d Sn0 |  i | d |  i | d j o d Sn d Sd  S(   Ni   ii    (   R#   R)   t   at   b(   R#   R  R  (    (    R8   t   __ThemeNameIndexCompare  s
    # # c      	   C   sd  |  i i t i d d d d d d d  t i   } |  i i   o t i d d  } | i
   |  i i | |  t i d d  } | i
   | p' |  i i d	 t  |  i i d
  q=|  i i | | d  nc t i d d  } | i
   |  i i | |  t i d d  } | i
   |  i i | | d  |  i   t i   } |  i |  d  S(   NRR  R;   R\  Ro  R  i   R   R  R   s   - no custom keys -i    (   R#   R   R   Rc  R  t   CurrentKeysR  RT  Ru  R  R  R   R  R   R   R   R   R   R   R  Rh  (   R#   R  R  R  (    (    R8   t
   LoadKeyCfg  s,    




c      	   C   s   |  i i t i d d d d d d d  |  i i t i d d d d d	 d d  |  i i t i d d
 d   |  i i t i d d
 d   |  i i t i d d d   |  i	 i t i d d
 d d d  t i
   |  _ x( |  i D] } |  i i t | d	  q W|  i   d  S(   NRR  R<   s   editor-on-startupR\  i   Ro  R  Rk  i    RS  R   R   Ri  Rj  R  R
  (   R#   R  R   Rc  R  R  R  R  R  R  t   GetAllExtraHelpSourcesListR  t   helpItemR4  R   R   R  (   R#   R  (    (    R8   t   LoadGeneralCfg7  s    
 c         C   s6   |  i   |  i   |  i   |  i   |  i   d S(   s   
        load configuration from default and user config files and populate
        the widgets on the config dialog pages.
        N(   R#   R  R  R  R  R	  (   R#   (    (    R8   R4   Q  s     



c         C   sn   t  i d i |  p t  i d i |  n x8 | i   D]* } | | } t  i d i	 | | |  q< Wd S(   s   
        save a newly created core key set.
        keySetName - string, the name of the new key set
        keySet - dictionary containing the new key set
        R   N(
   Rc  R  t   has_sectionR  t   add_sectionR`  R   R   Rg   t	   SetOption(   R#   R  R`  Rg   R   (    (    R8   R  `  s      
c         C   sn   t  i d i |  p t  i d i |  n x8 | i   D]* } | | } t  i d i	 | | |  q< Wd S(   s   
        save a newly created theme.
        themeName - string, the name of the new theme
        theme - dictionary containing the new theme
        Rl  N(
   Rc  R  R
  R  R  R  R   R   Rg   R  (   R#   R  R  Rg   R   (    (    R8   R  l  s      
c         C   ss   t  i | i | |  o? t  i | i | |  | j o t  i | i	 | |  SqY n t  i | i
 | | |  S(   N(   Rc  Rw  Rt  t
   has_optionRq  Rr  R{  Rg   R  t   RemoveOptionR  (   R#   Rt  Rq  Rr  Rg   (    (    R8   t   SetUserValuex  s     c         C   s&  t  i d i   x |  i i   D] } t } x |  i | i   D] } | d j o t  i d i
 d  t } n xW |  i | | i   D]> } |  i | | | } |  i | | | |  o
 t } q q WqA W| o t  i | i   q! q! Wx% d d g D] } t  i | i   q W|  i   d S(   s3   Save configuration changes to the user config file.RR  R  R   Rl  N(   Rc  R  R  R#   Rm  R   Rt  t   Falset   cfgTypeHasChangesRq  R  t   TrueRr  Rg   R  R*   (   R#   Rt  R  Rg   Rr  Rq  (    (    R8   t   SaveAllChangedConfigs  s*       
  c         C   sO   |  i i i   } x6 | D]. } | i   | i   | i   | i	   q Wd  S(   N(
   R#   R$   t   instance_dictR   t   winInstancest   instancet   ResetColorizert	   ResetFontt   ResetKeybindingst   reset_help_menu_entries(   R#   R  R  (    (    R8   t   ActivateConfigChanges  s     


c         C   s   |  i   d  S(   N(   R#   t   destroy(   R#   (    (    R8   R1     s    c         C   s   |  i   |  i   d  S(   N(   R#   RB   R  (   R#   (    (    R8   RA     s    
c         C   s   |  i   |  i   d  S(   N(   R#   R  R  (   R#   (    (    R8   RB     s    
c         C   s   d  S(   N(    (   R#   (    (    R8   R>     s    (M   t   __name__t
   __module__t   __doc__R"   R+   RQ   RR   RS   RT   R5   R>  R?  R@  RB  RA  RC  RD  RE  RF  RG  RH  RI  RJ  RK  RL  RM  RN  RO  RP  RQ  R*   RU  R|  R   R   R   R  R   R   R  Rh  R   R   R   RX  R  R   R  R   R   R   R]  R   R  R[  R5  R  R8  R6  R:  R  R  R  R  R   R  R	  R4   R  R  R  R  R  R1   RA   RB   R>   (    (    (    R8   R      s    	&		V	[	E	~																											$																											!												t   __main__R=   t   DialogR?   c           C   s   t  t d  S(   Nt   Settings(   R   t   root(    (    (    R8   R     s    (   R  t   TkinterR  R  Rv   R   t   copyt   configHandlerRc  t   dynOptionMenuWidgetR   t   tabpageRH   t   keybindingDialogR  t   configSectionNameDialogR  t   configHelpSourceEditR  R!   R   R  t   TkR#  RL   RU   R  t   mainloop(   R   Rv   R  R  Rc  R   R  R   R%  R#  R  RH   R  (    (    R8   t   ?   s(       		