
    .hhW                       S SK r S SKJrJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S SK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-  S SKJ.r.  S SK/J0r1  S SKJ2r2  S SK3J4r4J5r5  S SK6J7r7  S SK8J9r9  S S	K:J;r;  S S
K<J=r=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrD  S SKEJFrF  S SKGJHrH  S SKIJJrJ  S SK?JKrK  \5" 5       rL\B\D\F\H\J4rM " S S\5      rNSqO " S S\!5      rP " S S\!5      rQ " S S\!5      rR " S S\!5      rS " S S\!5      rT " S S \!5      rU " S! S"\"5      rV " S# S$5      rW\W" 5       rXS%rYS&S'S(S)S*S+.rZS, r[ " S- S.\!5      r\\]S/:X  a  S S0K^J_r_  \_" S1S2S3S49  S S5K`Jara  \a" \N5        gg)6    N)ToplevelListboxCanvas	StringVar
BooleanVarIntVarTRUEFALSETOPBOTTOMRIGHTLEFTSOLIDGROOVENONEBOTHXYWEEWNSNSEWNW
HORIZONTALVERTICALANCHORACTIVEENDTclError)Frame
LabelFrameButtonCheckbuttonEntryLabel
OptionMenuNotebookRadiobutton	ScrollbarStyleSpinboxCombobox)colorchooser)
messagebox)idleConfConfigChanges)GetKeysWindow)DynOptionMenu)macosx)SectionName
HelpSource)	view_text)AutoComplete)CodeContext)
ParenMatch)FormatParagraph)Squeezer)ScrollableTextFramec                   l   ^  \ rS rSrSSSS.S jjrS rS rS rS rS	 r	U 4S
 jr
S rS rS rSrU =r$ )ConfigDialog-   F)_htest_utestc                   [         R                  " X5        Xl        U(       a  0 Ul        U(       d  U R	                  5         U R                  U=(       d    S5        UR                  5       S-   nUR                  5       U(       d  SOS-   nU R                  SU SU 35        U R                  5         U R                  [        [        S9  U R                  U5        U R                  SU R                  5        U R                  R                   R#                  5         [$        R'                  5         U(       d1  U R)                  5         U R+                  5         U R-                  5         g g )NzIDLE Preferences         +heightwidthWM_DELETE_WINDOW)r   __init__parentinstance_dictwithdrawtitlewinfo_rootxwinfo_rootygeometrycreate_widgets	resizabler
   	transientprotocolcancelfontpagefontlist	focus_settracersattachgrab_setwm_deiconifywait_window)selfrM   rP   rA   rB   xys          =/opt/python-3.13.8/usr/lib/python3.13/idlelib/configdialog.pyrL   ConfigDialog.__init__1   s
    	$'#%F MMO

5../ 2% fB#>!AaSk" 	e51v($++6((* 	MMO     c                 L   [        U SS9=U l        nU R                  R                  SS9  [        U5      =U l        n[        U5      U l        [        X R                  5      U l        [        X R                  5      U l
        [        X R                  5      U l        [        U5      U l        [        U5      U l        UR#                  U R                  SS9  UR#                  U R                  SS9  UR#                  U R                  SS9  UR#                  U R                  S	S9  UR#                  U R                   S
S9  UR#                  U R                  SS9  UR%                  5         UR'                  [(        [*        [,        S9  U R/                  5       R'                  [0        S9  g )N   paddingnwes)stickyz Fonts text
Highlightsz Keys z	 Windows z
 Shell/Ed 
Extensionssideexpandfillrr   )r!   framegridr(   noteExtPageextpageHighPagehighpageFontPagerY   KeysPagekeyspageWinPagewinpageShedPageshedpageaddenable_traversalpackr   r	   r   create_action_buttonsr   )ra   rv   rx   s      rd   rT   ConfigDialog.create_widgets`   s:   $ #433
U

v&#E?*	Dt} ||4 }}5 ||4t} Y/\2X.K0\2L1		s4d	3""$))v)6rf   c                    [         R                  " 5       (       a  0 nOSS0n[        U R                  SS9n[        USS9n0 U l        SU R
                  4SU R                  4SU R                  4SU R                  44 HF  u  pE[        U4XE[        S	.UD6U R                  U'   U R                  U   R                  [        S
S9  MH     [        USSS9R                  [        S9  UR                  [        S9  U$ )Nrj   )         ri   OkApplyCancelHelp)rn   command	takefocusrh   )rr   padxr   )rI   borderwidthru   )r4   isAquaTkr!   rv   buttonsokapplyrX   helpr#   r
   r   r   r   r   )ra   padding_argsouterbuttons_frametxtcmds         rd   r   "ConfigDialog.create_action_buttons   s    $ ?? L%v.Ldjj!,eQ/477Odjj!t{{#TYY	!HC
 !'} !83!&!8*6!8DLLLL""1"5! 	eA1-222<'rf   c                 D    U R                  5         U R                  5         g N)r   destroyra   s    rd   r   ConfigDialog.ok   s    

rf   c                     U R                  5         [        R                  5         U R                  R	                  5         U R                  5         g r   )deactivate_current_configchangessave_allrz   save_all_changed_extensionsactivate_config_changesr   s    rd   r   ConfigDialog.apply   s6    &&(002$$&rf   c                 L    [         R                  5         U R                  5         g r   )r   clearr   r   s    rd   rX   ConfigDialog.cancel   s     	rf   c                    > U R                   R                  R                  SS5      qU R	                  5         [
        TU ]  5         g )N1.0end)rY   font_samplegetfont_sample_textgrab_releasesuperr   )ra   	__class__s    rd   r   ConfigDialog.destroy   s6    ==4488Frf   c           	          U R                   R                  U R                   R                  5       SS9R                  5       n[	        U S[
        [        R                  US5      -   S9  g )Nrn   )optionzHelp for IDLE preferences )rP   contents)rx   tabselectstripr7   help_common
help_pagesr   )ra   pages     rd   r   ConfigDialog.help   sQ     yy}}TYY--/}?EEG$9&z~~dB'??	Arf   c                 ^    U R                   R                   H  nUR                  5         M     g r   )rM   rN   RemoveKeybindings)ra   instances     rd   r   &ConfigDialog.deactivate_current_config   s"    11H&&( 2rf   c                 8   U R                   R                   Hc  nUR                  5         UR                  5         UR	                  5         UR                  5         UR                  5         UR                  5         Me     [         H  nUR                  5         M     g r   )
rM   rN   ResetColorizer	ResetFontset_notabs_indentwidthApplyKeybindingsreset_help_menu_entriesupdate_cursor_blinkreloadablesreload)ra   r   klasss      rd   r   $ConfigDialog.activate_config_changes   su     11H##% ++-%%',,.((* 2 !ELLN !rf   )
r   rz   rY   rv   r|   r   rx   rM   r   r   )r   )__name__
__module____qualname____firstlineno__rL   rT   r   r   r   rX   r   r   r   r   __static_attributes____classcell__r   s   @rd   r?   r?   -   sG    -5 -^$7L&P
'
A)
 rf   r?   u^  <ASCII/Latin1>
AaBbCcDdEeFfGgHhIiJj
1234567890#:+=(){}[]
¢£¥§©«®¶½ĞÀÁÂÃÄÅÇÐØß

<IPA,Greek,Cyrillic>
ɐɕɘɞɟɤɫɮɰɷɻʁʃʆʎʞʢʫʭʯ
ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκ
БбДдЖжПпФфЧчЪъЭэѠѤѬӜ

<Hebrew, Arabic>
אבגדהוזחטיךכלםמןנסעף
ابجدهوزحطي٠١٢٣٤٥٦٧٨٩

<Devanagari, Tamil>
०१२३४५६७८९अआइईउऊएऐओऔ
௦௧௨௩௪௫௬௭௮௯அஇஉஎ

<East Asian>
〇一二三四五六七八九
汉字漢字人木火土金水
가냐더려모뵤수유즈치
あいうえおアイウエオ
c                   J   ^  \ rS rSrU 4S jrS rS rS rS rS	S jr	Sr
U =r$ )
r}   i  c                    > [         TU ]  U5        UR                  U l        U R                  5         U R	                  5         g r   )r   rL   highlight_samplecreate_page_fontload_font_cfg)ra   masterr|   r   s      rd   rL   FontPage.__init__  s6      ( 9 9rf   c           	         [         R                  [        U 5      U R                  5      U l        [         R                  [        U 5      U R                  5      U l        [         R                  [        U 5      U R                  5      U l        [        U S[        SS9n[        U S[        SS9n[        U5      n[        U5      n[        U[        SS9n[        USS[        S	9U l        U R                  R!                  S
U R"                  5        U R                  R!                  SU R"                  5        U R                  R!                  SU R"                  5        [%        U5      nUR'                  U R                  R(                  S9  U R                  R'                  UR*                  S9  [        USS9n[-        X@R
                  S 5      U l        [1        X@R                  SSSS9U l        [5        U5      nUR6                  U l        U R8                  R'                  [:        SSS9  U R8                  R=                  [>        [@        5        U RC                  SSS9  U RE                  SSS9  URG                  SSSSS9  URG                  SSSSSSS9  URI                  [J        SS[L        S9  URI                  [J        SS[L        S9  URI                  [J        [N        S9  U R                  RI                  [        [P        [L        S9  URI                  [        [R        S9  URI                  [        [N        S9  U R.                  RI                  [        [N        S9  U R2                  RI                  [        [N        S S!9  URI                  [P        [T        S"9  g )#Nr   z Shell/Editor Font r   reliefrn   z Font Sample (Editable) zFont Face :)justifyrn      TrI   r   exportselection<ButtonRelease-1>z<KeyRelease-Up>z<KeyRelease-Down>r   )yscrollcommandzSize :rm      r   Bold)variableonvalueoffvaluern   )wraprJ   rI   weightrh   )rowcolumnr   padyr   nsew)r   r   rowspanr   r   rl   rr   r   r   rt   rr   anchorrq   )rr   rt   rD   rr   r   r   )rs   rt   )+r\   r   r   var_changed_font	font_name	font_sizer   	font_boldr"   r   r!   r&   r   r   r
   rZ   bindon_fontlist_selectr*   configyviewsetr3   sizelistr$   bold_toggler=   rn   r   r   insertr   r   columnconfigurerowconfigurerw   r   r   r   r   r	   r   r   )	ra   
frame_fontframe_sampleframe_font_nameframe_font_paramfont_name_titlescroll_fontfont_size_titlefont_sample_frames	            rd   r   FontPage.create_page_font!  s   L !Yt_d6K6KL Yt_d6K6KL Z%5t7L7LM  !F%:<
!$Af'AC  
+ ,MC*.G.0G0GH,d.E.EF.0G0GH04==#6#67KOO< 0x@%&6M& >>AF4 0=,11T1=%56 	Qq)!A&Aaaa8a111!' 	 	) 	#AAA>3QQQ?#a0T:d+$q1Q/4;d6rf   c                 >   [         R                  " U SS5      nUS   R                  5       nUS   nUS   S:H  n[        [	        [
        R                  " U 5      5      5      nU H#  nU R                  R                  [        U5        M%     U R                  R	                  U5        U Vs/ s H  owR                  5       PM     nn UR                  U5      n	U R                  R                  U	5        U R                  R                  U	5        U R                  R                  U	5        U R                  R                  U	5        U R"                  R%                  SU5        U R&                  R	                  U5        U R)                  5         g s  snf ! [          a     NYf = f)NmainEditorWindowr   r   r   bold)78910111213141618202225293440)r0   GetFontlowersortedr  tkfontfamiliesrZ   r  r   r   indexsee
select_setselect_anchoractivate
ValueErrorr  SetMenur   set_samples)
ra   configured_fontr   r   r   fontsfontslc_fontscurrent_font_indexs
             rd   r   FontPage.load_font_cfgz  s\    #**4H#A&,,.	#A&	$Q'/	 s6??4012DMM  d+ 9%',-u!GGIu-	!)	!:MM01MM$$%78MM''(:;MM""#56 	 O'	) 	9% .  		s   )F
A=F 
FFc                 P   U R                   R                  5       n[        R                  SSSU5        U R                  R                  5       n[        R                  SSSU5        U R
                  R                  5       n[        R                  SSSU5        U R                  5         g )Nr  r  r6  z	font-sizez	font-bold)r   r   r   
add_optionr   r   r3  ra   paramsvalues      rd   r   FontPage.var_changed_font  s     ""$6>65A""$6>;F""$6>;Frf   c                     U R                   R                  UR                  R                  S:X  a  [        O[
        5      nU R                  R                  UR                  5       5        g )N
KeyRelease)	rZ   r   typenamer   r   r   r  r(  )ra   eventr6  s      rd   r  FontPage.on_fontlist_select  sE     }}  **//\9vG4::<(rf   c                 &   U R                   R                  5       nU R                  R                  5       (       a  [        R                  O[        R
                  nX R                  R                  5       U4nX@R                  S'   X@R                  S'   g )Nr6  )	r   r   r   r*  BOLDNORMALr   r   r   )ra   rE  r   font_weightnew_fonts        rd   r3  FontPage.set_samples  sj     NN&&(	%)^^%7%7%9%9fkkv}}~~113[A#+ (0f%rf   )r  r   r   r   r   rZ   r   r  r   )r   r   r   r   rL   r   r   r   r  r3  r   r   r   s   @rd   r}   r}     s)    W7r D)1 1rf   r}   c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rSrU =r$ )r{   i  c                    > [         TU ]  U5        X l        UR                  5       U l        [        U5      U l        U R                  5         U R                  5         g r   )	r   rL   rz   winfo_toplevelcdr+   stylecreate_page_highlightload_theme_cfgra   r   rz   r   s      rd   rL   HighPage.__init__  sH     '')6]
""$rf   c           
        ^  0 SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _T l         [        R                  [        T 5      T R                  5      T l        [        R                  [        T 5      T R                  5      T l        [        T 5      T l	        [        R                  [        T 5      T R                  5      T l        [        R                  [        T 5      T R                  5      T l        [        R                  [        T 5      T R                  5      T l        [!        T S!["        S"S#9n[!        T S!["        S$S#9n[%        U[&        S%S&9nUR(                  =nT l        UR-                  S'S(S%S%[.        S)[0        S*9  UR3                  S+S, 5        UR3                  S-S. 5        S/nU H  u  pgUR5                  [6        Xg5        M     [9        UR;                  S0[6        5      R=                  5       5      n[?        S%U5       H2  n	UR5                  U	 S13U	[9        [A        U5      5       S23 S33S 5        M4     T R                    H,  n
U
4U 4S4 jjnURC                  T R                   U
   S5U5        M.     S6US7'   T RD                  R-                  S8S%S9S:9  [G        US8S;9T l$        [G        U5      n[K        T RH                  S<T RL                  S=9T l'        [Q        T RH                  T R                  S S)S>9T l)        [U        UT R                  S%S?T RV                  S@9T l,        [U        UT R                  S)SAT RV                  S@9T l-        T R                  R]                  S%5        [K        USBT R^                  S=9T l0        [c        USCSD9n[U        UT R                  S%T Rd                  SESF9T l3        [U        UT R                  S)T Rd                  SGSF9T l4        [Q        UT R
                  S S SH9T l5        [Q        UT R                  S S SH9T l6        [K        USIT Rn                  S=9T l8        [c        US!SJ9T l9        URu                  [v        SKSK[x        [z        SL9  URu                  [|        SKSK[~        SM9  T RH                  Ru                  [|        SKSK[~        SM9  URu                  [|        SKS)SN9  URu                  [|        SKSK[x        [z        SL9  T RN                  Ru                  [|        [x        [~        SOSPSQ9  T RR                  Ru                  [|        [x        [~        SOSRSQ9  T RX                  Ru                  [v        [        SS9  T RZ                  Ru                  [        [        SS9  T R`                  Ru                  [        [~        SKSKST9  URu                  [|        [        SKSKSU9  T Rf                  Ru                  [|        [        SKSV9  T Rh                  Ru                  [|        [        SKS!SU9  T Rj                  Ru                  [|        [~        SKSKST9  T Rl                  Ru                  [|        [~        [        SKSKSW9  T Rp                  Ru                  [|        [~        SKSKST9  T Rr                  Ru                  [|        [~        SKSX9  g )YNzNormal Code or TextnormalzCode ContextcontextzPython KeywordskeywordzPython Definitions
definitionzPython BuiltinsbuiltinzPython CommentscommentzPython StringsstringzSelected Texthilitez
Found TexthitCursorcursorzEditor BreakpointbreakzShell Promptconsolez
Error TexterrorzShell User OutputstdoutzShell User ExceptionstderrzLine Number
linenumberr   z Custom Highlighting r   z Highlighting Theme r   )r   r   )courier   r   hand2r   )r6  ra  rJ   rI   r   highlightthicknessr   z<Double-Button-1>c                     gNrb   es    rd   <lambda>0HighPage.create_page_highlight.<locals>.<lambda>o  s    rf   z<B1-Motion>c                     grm  rn  ro  s    rd   rq  rr  p  s    7rf   )")z# Click selects item.r\  
rW  )zcode context sectionrX  rt  )z| cursorra  rt  )defrY  ) rW  )funcrZ  )z(param):
  rW  )z"Return None."r]  )z

  var0 = rW  )z'string'r]  )z

  var1 = rW  )z
'selected'r^  )z

  var2 = rW  )z'found'r_  )z

  var3 = rW  )listr[  )(rW  )NonerY  )z)
rW  )z  breakpoint("line")rb  )z

rW  z>>>rc  )z	 3.14**2
rW  )z9.8596re  rt  r|  )z pri rW  )nrd  )zt(
rW  )SyntaxErrorrf  rt  r   z.0drw  c                 <   > TR                   R                  U5        g r   )highlight_targetr  )rE  elemra   s     rd   tem+HighPage.create_page_highlight.<locals>.tem  s    %%))$/rf   z<ButtonPress-1>disabledstateframe_color_set.TFramesolid)r   r   )rQ  zChoose Color for :rn   r   )rk  
Foreground)r   r?  rn   r   
BackgroundzSave as New Custom Themez	Select : rm   za Built-in Themer   r?  r   rn   za Custom Themer   zDelete Custom Themer   rh   rr   r   r   rs   rt   r   rr   r   r         )rr   rs   rt   r   r   r   r   rr   rt   r   r   rr   r   r   r   r   )rr   rt   r   r   r   )rr   rt   r   )Dtheme_elementsr\   r   r   var_changed_builtin_namebuiltin_namevar_changed_custom_namecustom_namer   fg_bg_togglevar_changed_colorcolorvar_changed_theme_sourcetheme_sourcevar_changed_highlight_targetr  r"   r   r=   r   rn   r   	configurer
   r   r   r  r   lenr   
splitlinesrangestrtag_bindrQ  r!   frame_color_setr#   	get_colorbutton_set_colorr3   
targetlistr)   set_color_sample_bindingfg_onbg_onr  save_as_new_themebutton_save_customr&   set_theme_typebuiltin_theme_oncustom_theme_onbuiltinlist
customlistdelete_custombutton_delete_customtheme_messager   r   r	   r   r   r   r   r   r   r   )ra   frame_customframe_themesample_framern   string_tagsr]  tagn_lineslinenoelementr  frame_fg_bg_toggletheme_type_titles   `             rd   rR  HighPage.create_page_highlight  sh   j!8 I y	
 !, y y h X % h   I '    #H!" <#& $KK$!>!>@";;$!=!=?&t,[[$!7!79
#KK4 $"?"?A '$!B!B!D
 "$Af'>@ 1V&<> +U;'3'8'88t$(!AD 	 	B 			%'89		-!239$ 'KFKKV) 'dhhuc*5578Aw'FKK6("!3s7|#4"5Q!67q9$& ( **G ' 0 MM''02CSJ	 + #W

51$+ 	 	-$\9QR"<0 &$$+?!( ($$d&;&;T#$& !"T->->a!4+H+HJ
 !"T->->a!4+H+HJ
 	a "(#=..#0 !;? +d&7&7q++2D!F  +d&7&7q++2B D )T..dD'T--tTC$*"7**%,! #;A> 	t!!DtLc:!!s!CSqq9qqD 	 	B""Dqqq"Q#dK

T!,

U1-$$&qqq$I3qqqA""AA">!!s111!E3QQQ?#AaaaH!!&&Caaa&HSqq9rf   c           
      .   U R                   R                  [        R                  " SSSSSS95        [        R                  " 5       nU R                   R                  5       (       a  [        R                  " SS5      nUR                  5         U R                  R                  X!5        [        R                  " SS5      nUR                  5         U(       d7  U R                  R                  S	5        U R                  R                  S
5        OU R                  R                  X"S   5        O[        R                  " SS5      nUR                  5         U R                  R                  X!5        [        R                  " SS5      nUR                  5         U R                  R                  X"S   5        U R                  5         [        U R                   5      nU R"                  R                  X3S   5        U R%                  5         U R'                  5         g )Nr  Themedefaultboolr   rC  r  	highlightuserr  - no custom themes -r   )r  r  r0   	GetOptionCurrentThemer   GetSectionListsortr  r2  r  r  r  r  r  ry  r  r  paint_theme_sampleset_highlight_target)ra   current_option	item_listtheme_namess       rd   rS  HighPage.load_theme_cfg  s   * 	h00D 	E "..0  "" //	;GINN$$Y? //DINN$$**=9  $$%;<''	Q<@ //DINNOO##I> //	;GINN$$Y!=4../^<!!!#rf   c                    SnU R                   R                  5       nX2;  a_  [        R                  " SSS5      U;  a  [        R                  SSSUS   5        [        R                  SSSU5        SU R                  S'   O?[        R                  SSSU5        [        R                  SSSS	5        S	U R                  S'   U R                  5         g )
N)zIDLE ClassiczIDLE Newr  r  rD  r   name2zNew theme, see Helprn   r   )r  r   r0   r  r   r<  r  r  )ra   r>  
old_themesr?  s       rd   r  !HighPage.var_changed_builtin_name  s     2
!!%%'"!!&'6:*L""67FJqMJvw?)>Dv&vw>vw<)+Dv&!rf   c                     U R                   R                  5       nUS:w  a)  [        R                  SSSU5        U R	                  5         g g )Nr  r  r  rD  )r  r   r   r<  r  r=  s      rd   r   HighPage.var_changed_custom_name  sF       $$&**vw>##% +rf   c                     U R                   R                  5       n[        R                  SSSU5        U(       a  U R	                  5         g U R                  5         g )Nr  r  r  )r  r   r   r<  r  r  r=  s      rd   r  !HighPage.var_changed_theme_source  sG     !!%%'67Iu=))+((*rf   c                 $    U R                  5         g r   )on_new_color_setra   r>  s     rd   r  HighPage.var_changed_color*  s    rf   c                 $    U R                  5         g r   )r  r  s     rd   r  %HighPage.var_changed_highlight_target.      !!#rf   c                 ^   U R                   R                  5       (       a:  SU R                  S'   SU R                  S'   U R                  R                  S5        g SU R                  S'   U R                  R                  S5        SU R                  S'   U R                  R                  S5        g NrW  r  r  r  z	!disabled)r  r   r  r  r  r  r  r   s    rd   r  HighPage.set_theme_type2  s    $   ""(0DW%'1DOOG$%%++M:(2DW%  &&~6'/DOOG$%%++N;rf   c                    U R                   R                  5       nU R                  R                  U R                  S   S5      n[
        R                  " U SU-   US9u  p4U(       a  XB:w  a  U R                  R                  5       (       aH  SnU R                  U5      nU(       d  g U R                  U5        U R                  R                  U5        g U R                  R                  U5        g g g )NrQ  
backgroundzPick new color for : )rM   rP   initialcolorz_Your changes will be saved as a new Custom Theme. Enter a name for your new Custom Theme below.)r  r   rQ  lookupr  r.   askcolorr  get_new_theme_name
create_newr  r  )ra   target
prev_color	rgbTupletcolor_stringmessage	new_themes          rd   r  HighPage.get_colorN  s    $ &&**,ZZ&&t';';G'D'35
"."7"7#:6#A'#)	 \7  $$&&K 33G<	 OOI.JJNN<0

|, 8<rf   c                    U R                   R                  5       nU R                  R                  SUS9  U R                  R                  5       (       a  SOSnU R
                  U R                  R                  5          nU R                  R                  " U40 X!0D6  U R                  R                  5       nUS-   U-   n[        R                  SXEU5        g )Nr  r  
foregroundr  -r  )r  r   rQ  r  r  r  r  r   
tag_configr  r   r<  )ra   	new_colorplanesample_elementthemetheme_elements         rd   r  HighPage.on_new_color_sett  s    JJNN$	

5)L $ 1 1 5 5 7 7\,,T-B-B-F-F-HI((NE;MN  $$&&,u4;iHrf   c                     [         R                  " SS5      [         R                  " SS5      -   n[        U SX5      R                  nU$ )Nr  r  r  zNew Custom Themer0   r  r5   result)ra   r  
used_namesr  s       rd   r  HighPage.get_new_theme_name  sJ    --fkB''	;?@
('??Ev 	rf   c                 X    U R                  S5      nU(       a  U R                  U5        g g )NzNew Theme Name:)r  r  )ra   new_theme_names     rd   r  HighPage.save_as_new_theme  s)     001BCOON+ rf   c                 ,   U R                   R                  5       (       a  SnU R                  R                  5       nOSnU R                  R                  5       n[        R
                  " X#5      nU[        S   ;   a  [        S   U   nU H	  nXV   XF'   M     U R                  X5        [        R                  " SS5      nUR                  5         U R                  R                  Xq5        U R                   R                  S5        U R                  5         g )Nr  r  r  r   )r  r   r  r  r0   GetThemeDictr   save_newr  r  r  r2  r  r  )ra   r  
theme_type
theme_namer  theme_changesr  custom_theme_lists           rd   r  HighPage.create_new  s    &   """J**..0JJ))--/J))*A	--#K0<M(%2%;	" ) 	n0$33FKH  1Ba rf   c                    U R                   R                  5       S:X  aR  U R                  R                  S5        U R                  R                  S5        U R
                  R                  S5        OQU R                  R                  S5        U R                  R                  S5        U R
                  R                  S5        U R                  5         g )Nr`  r  r   r  )r  r   r  r  r  r  r  set_color_sampler   s    rd   r  HighPage.set_highlight_target  s    $   $$&(2JJ]+JJ]+!!!$JJ^,JJ^,!!!$rf   c                 $    U R                  5         g r   )r  )ra   argss     rd   r  !HighPage.set_color_sample_binding  s     	rf   c                    U R                   U R                  R                  5          nU R                  R                  5       (       a  SOSnU R                  R                  X5      nU R                  R                  SUS9  g )Nr  r  r  r  )r  r  r   r  r   tag_cgetrQ  r  )ra   r  r  r  s       rd   r  HighPage.set_color_sample  sl     !!$"7"7";";"=> $ 1 1 5 5 7 7\%%..s:

5%Hrf   c                 :   U R                   R                  5       (       a  U R                  R                  5       nOU R                  R                  5       nU R                   H  nU R                  U   n[
        R                  " X5      nUS:X  a  [
        R                  " US5      S   US'   U[        S   ;   a2  [        S   U   nUS-   U;   a
  XSS-      US'   US-   U;   a
  XSS-      US'   U R                  R                  " U40 UD6  M     U R                  5         g )Nra  rW  r  r  z-foregroundr  z-background)r  r   r  r  r  r0   GetHighlightr   r   r  r  )ra   r  element_titler  colors
theme_dicts         rd   r  HighPage.paint_theme_sample  s   (   ""%%))+E$$((*E!00M))-8G**5:F("'/'<'<x())5(7|$ ,,$[1%8
]*j8+56M+NF<(]*j8+56M+NF<(!!,,W?? 1 	rf   c                     [         R                  S   R                  U5        U H*  nX#   n[         R                  S   R                  XU5        M,     g )Nr  r0   userCfg
AddSection	SetOption)ra   r  r  r  r?  s        rd   r
  HighPage.save_new  sI     	%00<GNE[)33JO rf   c                 .    [         R                  " U0 UD6$ r   r/   askyesnora   r  kwargss      rd   r'  HighPage.askyesno#      ""D3F33rf   c                 v   U R                   R                  5       nSnU R                  SX!-  U S9(       d  g U R                  R	                  5         [
        R                  SU5        [        R                  " SS5      nUR                  5         U(       d8  U R                  R                  S5        U R                  R                  US5        OU R                  R                  X3S   5        U R                  R                  [        R                   S	   R#                  S
S5      5        U R$                  R                  [        R                   S	   R#                  S
S5      5        [
        R'                  5         U R(                  R+                  5         U R                  R-                  5         U R/                  5         g )Nz.Are you sure you wish to delete the theme %r ?zDelete ThemerM   r  r  r  r  r   r  r  r  rD  )r  r   r'  rP  r   r   delete_sectionr0   r  r  r  r  r  r2  r  r  
defaultCfgGetr  r   rz   r   r   r  )ra   r  delmsgr  s       rd   r  HighPage.delete_custom'  sJ   , %%))+
A}}!4T  C))+{J7++FK@	  &&}5OO##I/EFOO##I|<h11&9==gyQRh11&9==gvNO002'')rf   )r  r  r  r  r  r  r  rP  r  r  r  r  rz   r  r  r  r   r  rQ  r  r  r  r  )r   r   r   r   rL   rR  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r'  r  r   r   r   s   @rd   r{   r{     sz    }:~1$f"&	&+ $<8$-L	I	,&P 8 I$& P	P4- -rf   r{   c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS r\S 5       rS rS rSrU =r$ )r~   iW  c                    > [         TU ]  U5        X l        UR                  5       U l        U R                  5         U R                  5         g r   )r   rL   rz   rO  rP  create_page_keysload_key_cfgrT  s      rd   rL   KeysPage.__init__Y  s=     '')rf   c           	      	   [         R                  [        U 5      U R                  5      U l        [         R                  [        U 5      U R
                  5      U l        [         R                  [        U 5      U R                  5      U l	        [         R                  [        U 5      U R                  5      U l        [        U S[        SS9n[        U S[        SS9n[        U5      n[        USS9n[!        U5      n[!        U["        S9n[%        U[&        [&        S9U l        U R(                  R+                  S	U R,                  5        U R(                  R.                  US
'   U R(                  R0                  US
'   UR2                  U R(                  S'   UR2                  U R(                  S'   [5        USU R6                  SS9U l        [;        S5       Vs/ s H  n[        USSS9PM     nn[=        US   U R                  SU R>                  SS9U l         [=        US   U R                  SU R>                  SS9U l!        [E        US   U R                  S S S9U l#        [E        US   U R                  S S S9U l$        [5        US   SU RJ                  S9U l&        [5        US   SU RN                  S9U l(        [        US   SS9U l)        URU                  [V        SS[X        [Z        S9  URU                  [V        SS[Z        S9  U R8                  RU                  [V        [\        SSS9  URU                  [^        SS[X        [Z        S9  URa                  SSS9  URc                  SSS9  URe                  SSS[f        S 9  U R(                  Re                  SS[h        S!9  URe                  SS[j        S!9  URe                  SS[l        S!9  U R@                  Re                  SS[f        [j        -   S!9  U RB                  Re                  SS[f        [j        -   S!9  U RF                  Re                  SS[h        S!9  U RH                  Re                  SS[h        S!9  U RR                  Re                  SS[h        SSS"9  U RL                  RU                  [^        [\        S#SS$9  U RP                  RU                  [^        [\        S#SS$9  US   RU                  [n        [Z        S#S%9  US   RU                  [n        [\        S#SS&9  g s  snf )'Nr   z Custom Key Bindings r   z	 Key Set zAction - Key(s)rm   orient)r   r   r   r   r   xscrollcommandzGet New Keys for Selectionr  )rn   r   r  r   )rj   r   r   zUse a Built-in Key Setr  zUse a Custom Key Setr   zDelete Custom Key Setr  zSave as New Custom Key Setr  rh   r  r   r  r   )r   r   
columnspanrl   r   r   rl   )r   r   rl   r   r   T)rr   rt   rs   r   rr   rt   rs   )rr   rt   rs   r   )8r\   r   r   r  r  r  r  r   var_changed_keyset_sourcekeyset_sourcevar_changed_keybinding
keybindingr"   r   r!   r&   r*   r   r   r
   bindingslistr   on_bindingslist_selectr  xviewr  r#   get_new_keysbutton_new_keysr  r)   set_keys_typebuiltin_keyset_oncustom_keyset_onr3   r  r  delete_custom_keysbutton_delete_custom_keyssave_as_new_key_setbutton_save_custom_keyskeys_messager   r   r	   r   r   r   r  r	  rw   r   r   r   r   r   )	ra   r  frame_key_setsframe_targettarget_titlescroll_target_yscroll_target_xiframess	            rd   r5  KeysPage.create_page_keys`  s   d $KK$!>!>@";;$!=!=?$[[4 $"@"@B!++$!<!<>
 "!F,. $!FF \*\0AB#L1#LD#uF2#::	<%)%6%6%<%<	"%)%6%6%<%<	".=.A.A*+.=.A.A*+%#?)) =
 !8%#a qA# 	 %!,q	D$6$6a**1I"K !,q	D$6$6a**1G!I )q	4,,dDB'q	4++T4A)/q	 7//*1& (.q	 <00(2$ "&); 	vAAdNaadC!!vAAA!Ft!!DtL$$Qq$1!!!A!.aaB1Qt<1R81R8##!AbD#A""q1R4"@!Ad;1T:1Qt!!L&&++AdQR+S$$))t!Dq)Qq	Cd48q	Ca1=W%s   S*c           
         U R                   R                  [        R                  " SSSSSS95        [        R                  " 5       nU R                   R                  5       (       a  [        R                  " SS5      nUR                  5         U R                  R                  X!5        [        R                  " SS5      nUR                  5         U(       d7  U R                  R                  S	5        U R                  R                  S
5        OU R                  R                  X"S   5        O[        R                  " SS5      nUR                  5         U R                  R                  X!5        [        R                  " SS5      nUR                  5         U R                  R                  U[        R                  " 5       5        U R                  5         [        R                  " 5       nU R!                  U5        g )Nr  Keysr  r  r   r  keysr  r  - no custom keys -r   )r@  r  r0   r  CurrentKeysr   r  r  r  r2  rJ  r  r  r  default_keysrH  load_keys_list)ra   r  r  keyset_names       rd   r6  KeysPage.load_key_cfg   sv    	x11	 C 	D "--/!!## //	6BINN$$Y? //?INN%%++M:  $$%9:''	Q<@ //?INNOO##I> //	6BINN$$Y0E0E0GH**,K(rf   c                    SnU R                   R                  5       nX2;  a_  [        R                  " SSS5      U;  a  [        R                  SSSUS   5        [        R                  SSSU5        SU R                  S'   O?[        R                  SSSU5        [        R                  SSSS	5        S	U R                  S'   U R                  U5        g )
N)zIDLE Classic WindowszIDLE Classic UnixzIDLE Classic MaczIDLE Classic OSXr  rY  rD  r   r  zNew key set, see Helprn   r   )r  r   r0   r  r   r<  rO  r^  )ra   r>  old_keysr?  s       rd   r  !KeysPage.var_changed_builtin_name  s    
 !!%%' !!&&&9I""6668A;Gvvw>(?Df%vvvu=vvw;(*Df%E"rf   c                     U R                   R                  5       nUS:w  a*  [        R                  SSSU5        U R	                  U5        g g )Nr[  r  rY  rD  )r  r   r   r<  r^  r=  s      rd   r   KeysPage.var_changed_custom_name3  sF      $$&((vvvu=& )rf   c                     U R                   R                  5       n[        R                  SSSU5        U(       a  U R	                  5         g U R                  5         g )Nr  rY  r  )r@  r   r   r<  r  r  r=  s      rd   r?  "KeysPage.var_changed_keyset_source:  sE    ""&&(669e<))+((*rf   c                    U R                   R                  5       nU R                  R                  5       nU R                  R                  [        5      R                  5       S   n[        R                  " U5      (       a  [        R                  SX4U5        g [        R                  " U5      nUS-   n[        R                  SXdU5        g )Nr   rZ  _cfgBindings
extensions)rB  r   r  rC  r   splitr0   IsCoreBindingr   r<  GetExtnNameForEvent)ra   r>  r?  key_setrE  ext_nameext_keybind_sections          rd   rA  KeysPage.var_changed_keybindingC  s    ##%""&&(!!%%f-335a8!!%((vwu=33E:H"*^";|-@Orf   c                 ^   U R                   R                  5       (       a:  SU R                  S'   SU R                  S'   U R                  R                  S5        g SU R                  S'   U R                  R                  S5        SU R                  S'   U R                  R                  S5        g r  )r@  r   r  r  rL  r  rJ  r   s    rd   rH  KeysPage.set_keys_typeO  s    !!##(0DW%'1DOOG$**00?(2DW%!!''7'/DOOG$**00@rf   c                    U R                   R                  [        5      nU R                   R                  U5      nUR	                  5       S   nU R
                  R                  5       (       a  U R                  R                  5       nOU R                  R                  5       n[        R                  " 5       nU[        S   ;   a)  [        S   U   nU H  nXg   R	                  5       XW'   M     [        UR                  5       5      n[        U SUU5      R                  n	U	(       Ga  U R
                  R                  5       (       ab  Sn
U R                  U
5      nU(       d7  U R                   R!                  U5        U R                   R#                  U5        g U R%                  U5        U R                   R'                  U5        U R                   R)                  XS-   U	-   5        U R                   R!                  U5        U R                   R#                  U5        U R*                  R-                  U	5        g U R                   R!                  U5        U R                   R#                  U5        g )Nr   rZ  zGet New KeyszcYour changes will be saved as a new Custom Key Set. Enter a name for your new Custom Key Set below. - )rC  r,  r   r   rk  r@  r  r  r0   GetCurrentKeySetr   ry  valuesr2   r  get_new_keys_namer.  r/  create_new_key_setdeleter  rB  r  )ra   
list_indexbinding	bind_namecurrent_key_set_namecurrent_bindingskey_set_changesrE  current_key_sequencesnew_keysr  
new_keysets               rd   rF  KeysPage.get_new_keys[  s    &&,,V4
##''
3MMOA&	!!###'#4#4#8#8#: #'#3#3#7#7#9 #44676?2%fo.BCO(*9*@*F*F*H ' ) $%5%<%<%> ? ~y%''-v 	!!%%''N!33G<
!%%00<%%33J?++J7$$Z0$$Z51IJ((4++J7OO)((4++J7rf   c                     [         R                  " SS5      [         R                  " SS5      -   n[        U SX5      R                  nU$ )Nr  rZ  r  zNew Custom Key Setr  )ra   r  r  r  s       rd   rx  KeysPage.get_new_keys_name  sJ    --ff=''	6:;
 *GAAG 	rf   c                 X    U R                  S5      nU(       a  U R                  U5        g g )NzNew Key Set Name:)rx  ry  )ra   new_keys_names     rd   rM  KeysPage.save_as_new_key_set  s)    ../BC##M2 rf   c                 :    U R                   R                  S5        g )Nr  )rG  r  ra   rE  s     rd   rD  KeysPage.on_bindingslist_select  s    "">2rf   c                 r   U R                   R                  5       (       a  U R                  R                  5       nOU R                  R                  5       n[        R
                  " U5      n0 nU H  nUSS nSR                  X5   5      nXtU'   M!     U[        S   ;   a  [        S   U   nU H	  nX   XE'   M     U R                  X5        [        R                  " SS5      n	U	R                  5         U R                  R                  X5        U R                   R                  S5        U R                  5         g )Nr   rw  rZ  r  r   )r@  r   r  r  r0   GetCoreKeysjoinr   save_new_key_setr  r  r  r2  r  rH  )
ra   new_key_set_nameprev_key_set_name	prev_keysr  rE  
event_namer|  r  custom_key_lists
             rd   ry  KeysPage.create_new_key_set  s    !!## $ 1 1 5 5 7 $ 0 0 4 4 6(():;	EqJhhy/0G#*Z  
 /%fo.?@O("1"8 ) 	.9"11&&ABq!rf   c                    SnU R                   R                  5       (       a!  SnU R                   R                  [        5      n[        R
                  " U5      n[        U5      nUR                  5         U R                   R                  S[        5        U Hm  nSR                  XF   5      nUSS nU[        S   ;   a  U[        S   U   ;   a  [        S   U   U   nU R                   R                  [        US-   U-   5        Mo     U(       aR  U R                   R                  W5        U R                   R                  U5        U R                   R                  U5        g g )	NFTr   rw  r   r  rZ  ru  )rC  curselectionr,  r   r0   	GetKeySetry  r  rz  r   r  r   r  r-  r.  r/  )ra   r_  reselectr{  keyset
bind_namesr}  keys           rd   r^  KeysPage.load_keys_list  s-   
 ))++H**008J##K0&\
  C(#I((6,-C!!BIgfo- <<!&/+6yAC$$S)E/#*=> $ !!*-((4++J7 rf   c                     [         R                  S   R                  U 5        U H*  nX   n[         R                  S   R                  XU5        M,     g )NrZ  r   )r_  r  rE  r?  s       rd   r  KeysPage.save_new_key_set  sI     	 ++K8EMEV$..{5I rf   c                 .    [         R                  " U0 UD6$ r   r&  r(  s      rd   r'  KeysPage.askyesno  r+  rf   c                    U R                   R                  5       nSnU R                  SX!-  U S9(       d  g U R                  R	                  5         [
        R                  SU5        [        R                  " SS5      nUR                  5         U(       d8  U R                  R                  S5        U R                  R                  US5        OU R                  R                  X3S   5        U R                  R                  [        R                   S	   R#                  S
S5      5        U R$                  R                  [        R                   S	   R#                  S
S5      =(       d    [        R&                  " 5       5        [
        R)                  5         U R*                  R-                  5         U R                  R/                  5         U R1                  5         g )Nz0Are you sure you wish to delete the key set %r ?zDelete Key Setr-  rZ  r  r  r[  r   r  rY  r  rD  )r  r   r'  rP  r   r   r.  r0   r  r  rJ  r  r  r2  r@  r  r/  r0  r  r]  r   rz   r   r   rH  )ra   r_  r1  r  s       rd   rK  KeysPage.delete_custom_keys  s`    &&**,C}} 6#7  F))+v{3++FF;	!!''6OO##I/CDOO##I|<x226: #FI 6	8h11&9==ffM 9!)!6!6!8	: 	002'')rf   )rC  rI  r  r  rL  rG  rN  rP  rJ  r  r  rz   rB  rO  r@  )r   r   r   r   rL   r5  r6  r  r  r?  rA  rH  rF  rx  rM  rD  ry  r^  staticmethodr  r'  rK  r   r   r   s   @rd   r~   r~   W  ss    ^>@)>#('+
P
A*8X33<86 J J4   rf   r~   c                   :   ^  \ rS rSrU 4S jrS rS rS rSrU =r	$ )r   i	  c                    > [         TU ]  U5        U R                  5         U R                  5         U R	                  5         g r   )r   rL   init_validatorscreate_page_windowsload_windows_cfgra   r   r   s     rd   rL   WinPage.__init__  s4       "rf   c                 n   ^ [         R                  " S5      mU4S jnU R                  U5      S4U l        g )N[0-9]*c                 *   > TR                  U 5      S L$ r   	fullmatchr7  digits_or_empty_res    rd   is_digits_or_empty3WinPage.init_validators.<locals>.is_digits_or_empty      %//2$>>rf   %Precompileregisterdigits_onlyra   r  r  s     @rd   r  WinPage.init_validators  0    ZZ	2	? !MM*<=tErf   c                    [         R                  [        U 5      S5      U l        [         R                  [	        U 5      S5      U l        [         R                  [	        U 5      S5      U l        [         R                  [	        U 5      S5      U l        [         R                  [        U 5      S5      U l	        [         R                  [	        U 5      S5      U l
        [         R                  [	        U 5      S5      U l        [         R                  [	        U 5      S5      U l        [         R                  [        U 5      S	5      U l        [         R                  [	        U 5      S
5      U l        [        U S[         SS9n[#        USS9n[%        USS9n['        X R                  SSS9U l        ['        X R                  SSS9U l        [#        USS9n[%        USS9n[%        USS9n[-        X@R
                  SU R.                  SS9U l        [%        USS9n[-        X@R                  SU R.                  SS9U l        [#        USS9n[%        USS9n	 [5        XR                  SSSU R.                  SS9U l        [%        US"S9n
[A        US#U R                  S$9U l!        [#        USS9n[%        US%S9n[-        XR                  S&U R.                  SS9U l"        [#        USS9n[%        US'S9n[G        XR                  S(S)S*S(5      U l$        [#        USS9n[%        US+S9n[-        XR                  S&U R.                  SS9U l%        [A        US,U R                  S$9U l&        [#        USS9n[%        US-S9n[-        UU R                  S.U R.                  SS9U l'        URQ                  [R        S/S/[T        [V        S09  URQ                  [R        S/S[X        S19  URQ                  [Z        [\        S/S/S29  U R*                  RQ                  [^        [\        S/S/S29  U R(                  RQ                  [^        [\        S/S/S29  URQ                  [R        S/S[X        S19  URQ                  [Z        [\        S/S/S29  U R2                  RQ                  [^        [`        SS/S29  URQ                  [^        [`        S/S39  U R0                  RQ                  [^        [`        SS/S29  URQ                  [^        [`        S/S39  URQ                  [R        S/S[X        S19  U	RQ                  [Z        [\        S/S49  U R6                  RQ                  [Z        [\        SS49  U RB                  RQ                  [^        [`        S5S/S29  URQ                  [R        S/S[X        S19  URQ                  [Z        [\        S/S/S29  U RD                  RQ                  [R        SS/S69  URQ                  [R        S/S[X        S19  URQ                  [Z        [\        S/S/S29  U RH                  RQ                  [R        SS/S69  URQ                  [R        S/S[X        S19  URQ                  [Z        [\        S/S49  U RL                  RQ                  [^        [`        S5S/S29  U RJ                  RQ                  [R        [\        S5S/S29  URQ                  [R        S/S[X        S19  URQ                  [Z        [\        S/S/S29  U RN                  RQ                  [R        SS/S69  g ! [8         a2    [;        XR                  S[=        [?        SS 5      5      SS!9U l         GNf = f)7N)r  Generaleditor-on-startup)r  r  rJ   )r  r  rI   )r  Indent
num-spaces)r  r  cursor-blink)rj  r8   	popupwait)rj  r:   rQ  )rj  r:   flash-delay)rj  r:   bell)rj  r;   	max-widthr   z Window Preferencesr   r   r  z
At Startuprm   r   zOpen Edit Windowr   r?  rn   zOpen Shell Windowz$Initial Window Size  (in characters)Widthr   r  textvariablerJ   validatecommandvalidateHeightzIndent spaces (4 is standard)
   )r  from_torJ   r  r  readonly   )r  r  rw  rJ   zCursor BlinkzCursor blink)rn   r   z%Completions Popup Wait (milliseconds)r   zParen Match Style
expressionopenerparensz;Time Match Displayed (milliseconds)
(0 is until next input)zBell on MismatchzFormat Paragraph Max Widthr  rh   r  r   r  rr   r   r   r   r   r  )1r\   r   r   startup_editr   	win_width
win_heightindent_spacesr   cursor_blinkautocomplete_waitparen_styleflash_delay
paren_bellformat_widthr"   r   r!   r&   r)   startup_editor_onstartup_shell_onr%   r  win_width_intwin_height_intr,   indent_chooserr    r-   ry  r  r$   cursor_blink_boolauto_wait_intr'   paren_style_typeparen_flash_timebell_onformat_width_intr   r   r	   r   r   r   r   r   r   )ra   frame_window	frame_runstartup_titleframe_win_sizewin_size_titlewin_width_titlewin_height_titleframe_cursorindent_titlecursor_blink_titleframe_autocompleteauto_wait_titleframe_paren1paren_style_titleframe_paren2paren_time_titleframe_formatformat_width_titles                      rd   r  WinPage.create_page_windows  s   R $KKtFH $!BD!++$!CE$[[$!AC#KK4 "JL!($!L"N";;$!FH";;$!LN!++4 "FH#KK$!OQ "$Af'<> ,A6	il;!,$5$5Q'") !,$5$5Q(!* |;%KMW="^^1 $ 0 05
 !h?#__A $ 0 05

 \q9\"AC	I") /A/A!$($4$4u#FD #<nE!,\6:6G6G"I #<Q@ 2%LN""1G1G)9)9EK \q9!,5HI *..,!0 \q9  $<= !&+;+;1 $ 0 05!B ##5Q\q9"<(DF %4+<+<A $ 0 05! 	s4dKCaaa8QQQ?""aaa"H##qqq#I111=aaa@  eABQ G5;U12AF%:s;tAA6  d12 >##qr#JSqqqA$qqqASr:s;DC"""1"=s;4:uQRa@""ABQ"Gs;T!!!D"""1"=O  	I"* /A/A$T%"+->a#ID	Is   '[ 8[?>[?c           	         U R                   R                  [        R                  " SSSSS95        U R                  R                  [        R                  " SSSSS95        U R
                  R                  [        R                  " SSS	SS95        U R                  R                  [        R                  " SS
SSS95        U R                  R                  [        R                  " SSSSS95        U R                  R                  [        R                  " SSSSS95        U R                  R                  [        R                  " SSS5      5        U R                  R                  [        R                  " SSSSS95        U R                  R                  [        R                  " SSS5      5        U R                  R                  [        R                  " SSSSS95        g )Nr  r  r  r  rC  r  rJ   intrI   r  r  r  rj  r8   r  r:   rQ  r  r  r;   r  )r  r  r0   r  r  r  r  r  r  r  r  r  r  r   s    rd   r  WinPage.load_windows_cfg  s   h00	#6VE 	F8--e= 	>H..u> 	?x11,U < 	=h00VE 	F""8#5#5nk$G 	HX//lG5 	6X//lMG 	HH..lF4 	5h00/5J 	Krf   )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   rL   r  r  r  r   r   r   s   @rd   r   r   	  s!     Fh>TK Krf   r   c                   :   ^  \ rS rSrU 4S jrS rS rS rSrU =r	$ )r   i  c                    > [         TU ]  U5        U R                  5         U R                  5         U R	                  5         g r   )r   rL   r  create_page_shedload_shelled_cfgr  s     rd   rL   ShedPage.__init__  s4     rf   c                 n   ^ [         R                  " S5      mU4S jnU R                  U5      S4U l        g )Nr  c                 *   > TR                  U 5      S L$ r   r  r  s    rd   r  4ShedPage.init_validators.<locals>.is_digits_or_empty  r  rf   r  r  r  s     @rd   r  ShedPage.init_validators  r  rf   c                    [         R                  [        U 5      S5      U l        [         R                  [	        U 5      S5      U l        [         R                  [        U 5      S5      U l        [         R                  [        U 5      S5      U l        [        U S[        SS9n[        U S[        SS9n[        US	S
9n[        USS9n[        USU R                  U R                  SS9U l        [        US	S
9n[        USS9n[!        XPR
                  S	SS9U l        [!        XPR
                  SSS9U l        [        US	S
9n[        USS9n['        UU R                  SS9U l        [        US	S
9n	[        U	SS9n
[        XR                  SU R                  SS9U l        UR-                  [.        SS[0        S9  [        U 5      R-                  5         UR-                  [.        SS[0        S9  UR-                  [.        SS	[2        S9  UR-                  [4        [6        SSS9  U R                  R-                  [.        SSS9  UR-                  [.        SS	[2        S9  UR-                  [4        [6        SSS9  U R$                  R-                  [8        [6        SSS9  U R"                  R-                  [8        [6        SSS9  UR-                  [.        SS	[2        S9  UR-                  [4        [6        SSS9  U R(                  R-                  [4        SSS9  U	R-                  [.        SS	[2        S9  U
R-                  [4        [6        SSS9  U R*                  R-                  [.        SSS9  g )N)r  PyShellauto-squeeze-min-lines)r  r  autosave)r  r  line-numbers-default)rj  r9   maxlinesr   z Shell Preferencesr   z Editor Preferencesr   r  zAuto-Squeeze Min. Lines:rm   r  r  )rJ   r  r  r  zAt Start of Run (F5)  zPrompt to Saver  r   z	No Promptz Show line numbers in new windows)r   rJ   zMax Context Lines :r   r  rh   r   r  r  )r\   r   r   auto_squeeze_min_linesr   r  r   line_numbers_defaultcontext_linesr"   r   r!   r&   r%   r  auto_squeeze_min_lines_intr)   save_ask_onsave_auto_onr$   line_numbers_default_boolcontext_intr   r   r   r   r   r   r   )ra   frame_shellframe_editorframe_auto_squeeze_min_linesauto_squeeze_min_lines_title
frame_saverun_save_titleframe_line_numbers_defaultline_numbers_default_titleframe_contextcontext_titles              rd   r	  ShedPage.create_page_shed  s0   > '.kk$!N'P#  t=?$+KK4 @%B! %[[$!JL !1V&:<!$Af'<> (-[a'H$',-I2L(N$*/,A!88 $ 0 05+
' <Q7
z0HI&]]!%' (]]! " &+<Q%G"%*&-O&Q")4*22*&
 l:m2GH ,>,>a $ 0 05
 	c=ds>$))s)K$))tAAA)N'',,#AA,FSqqq9aaa@E!!!D5C"''Sqqq'I"''T!!!'L&&++AA+F!!!<QQQ?3QQ7rf   c           
         U R                   R                  [        R                  " SSSSS95        U R                  R                  [        R                  " SSSSS	S
95        U R
                  R                  [        R                  " SSSS	S95        U R                  R                  [        R                  " SSSSS95        g )Nr  r  r  r  r  r  r  r   r  )r  rC  r  r  rj  r9   r  )r  r  r0   r  r  r  r  r   s    rd   r
  ShedPage.load_shelled_cfgS  s    ##''(:(:	#;%)I 	J 	(,,	:qvG 	H!!%%h&8&8(>V'M 	Nx11mZe E 	Frf   )
r  r  r  r  r  r  r  r  r  r  )
r   r   r   r   rL   r  r	  r
  r   r   r   s   @rd   r   r     s!     Ff8P
F 
Frf   r   c                   L   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	rU =r$ )
ry   i`  c                    > [         TU ]  U5        [        R                  S   U l        [        R
                  S   U l        U R                  [        5      U l        U R                  5         U R                  5         g )Nrj  )r   rL   r0   r/  ext_defaultCfgr!  ext_userCfgr  is_intload_extensionscreate_page_extensionsr  s     rd   rL   ExtPage.__init__a  s^     &11,?#++L9mmF+##%rf   c                 D   [        U 5      U l        [        U S[        SS9n[	        U S[        SS9U l        UR                  SSS9  UR                  SSS9  [        XR                  SS	9U l	        U R                  R                  S
U R                  5        [        XR                  R                  S9nUR                  U R                  l        [        USSS9U l        U R                  R#                  SSSS9  UR#                  SSSS9  U R                   R#                  SSSSS/S9  UR%                  SS9  0 U l        S U l        X l        U R                  U l        Sn[/        U R0                  5       H  nU R3                  U5        US-   U-   S-   nM!     U R                  R                  U5        U R                  R5                  S5        U R                  S 5        UR#                  SSSS9  [7        U 5      R#                  SSS9  U R
                  R#                  SSSS9  g )Nr   z Feature Extensions r   z Help Menu Extensions r   r   r   browse)listvariable
selectmodez<<ListboxSelect>>r      )rJ   rI   nwsr   r   rl   nsr   r  )r   r   rl   r   ri   r   {z} r=  )r   r   sew)r   extension_namesr"   r   	HelpFrame
frame_helpr	  r  r   extension_listr   extension_selectedr*   r  r  r   details_framerw   r  config_framecurrent_extension
outerframetabbed_page_setr)  rj  create_extension_frameselection_setr&   )ra   	frame_extscroll	ext_namesro  s        rd   r1  ExtPage.create_page_extensionsi  s   0  )t6$:<	#Da$<> 	q+!!!A!.%i>R>R19;  !4d6M6MN9.A.A.G.GH+1::*'	SI  q ?1!D1qab!WMB'!%#22 	t/H''1!C(2T9I 0 	  +))!,% 	1Qv6dQq)1U;rf   c           
      $   0 U l         [        R                  " SS9 H  n/ U R                   U'   M     U R                    GH  n[        U R                  R                  U5      5      nU Vs/ s H  nUR                  S5      (       d  M  UPM     nnU H  nUR                  U5        M     XB-   nU H  nU R                  R                  XSS9n SSS.U   nSn U R                  R                  XUSUS	9n[        U 5      n	U	R                  [        U5      5        U R                   U   R!                  UUUUU	S
.5        M     GM     g s  snf ! [         a&     [        U5      nSn N! [         a    UnS n  Nf = ff = f! [         a    Un Nf = f)NF)active_onlyenableT)raw)TrueFalser  r  )rC  rP  r  )rD  rC  r  r?  var)rj  r0   GetExtensionsr)  r-  GetOptionList
startswithremover0  KeyErrorr  r1  r.  r   r  r  append)
ra   ro  opt_listopt_nameenablesdef_strdef_objopt_typer?  rS  s
             rd   r0  ExtPage.load_extensions  s    ..5AH(*DOOH% B Hd11??IJH 19 9H"--h7  G 9#) $)H$--11  2 6	(&*E:7CG%H$ ,,00$X4$+ 1 -E
  oE
#)00(:B=D;@9<	23 4- % (9   (("%g,#(% (")#'(	( " $#E$sH   *EE
EF 
E=E''E9	5E=8E9	9E= FFc                    U R                   R                  5       nU(       a  U R                   R                  U5      nUb  X R                  :w  aX  U R                  (       aG  U R                  R                  SS9  U R                  U R                     R                  5         S U l        U(       a>  U R                  R                  US9  U R                  U   R                  SSSS9  X l        g g )Nr   rm   r   r   r9  )	r@  r  r   rD  rB  r  rC  grid_forgetrw   )ra   rE  newsels      rd   rA  ExtPage.extension_selected  s    $$113((,,V4F>V'='==%%""))r)2!!$"8"89EEG)-&%%6%2f%**!6*J%+" rf   c           	         [        U R                  SSS9nX R                  U'   UR                  n[	        U R
                  U   5       H  u  pE[        X5S   S9nUR                  US[        S9  US   nUS   S	:X  a"  [        X7S
SSS9R                  US[        SS9  MV  US   S:X  a.  [        X7SU R                  S4SS9R                  US[        SS9  M  [        X7SS9R                  US[        SS9  M     g )Nr7  rH   rD  rm   r   r=  rS  rC  r  rQ  rR  r  )r   r   r   rJ   r      )r   r   rl   r   r  r  r  r  )r  r  r  rJ   r   )r  rJ   )VerticalScrolledFramerB  rC  interior	enumeraterj  r&   rw   r   r$   r   r%   r/  r   )ra   ro  f
entry_arear   optlabelrS  s           rd   rG  ExtPage.create_extension_frame  s    !$"4"4SL&'(#ZZ
!$//(";<HC*v;7EJJ3qJ4e*C6{f$J$*WA"ds1QQdGV%jU'+{{D&9Qt!D j" Qt!D# =$ 	rf   c                 
   US   nUS   nUS   R                  5       R                  5       =(       d    UnUS   R                  U5        XT:X  a  U R                  R	                  X5      $ U R                  R                  XU5      $ )NrD  r  rS  )r   r   r  r.  RemoveOptionr#  )ra   sectionrl  rD  r  r?  s         rd   set_extension_valueExtPage.set_extension_value  s|     6{i.E
 &&(3GE
u ##00??))'??rf   c                     SnU R                    H5  nU R                   U   nU H  nU R                  X$5      (       d  M  SnM     M7     U(       a  U R                  R                  5         g g )NFT)rj  rr  r.  Save)ra   has_changesro  optionsrl  s        rd   r   #ExtPage.save_all_changed_extensions  sa     Hooh/G++H::"&K  (
 !!# rf   )rC  rD  rB  r-  r.  r@  r=  rj  r?  r/  rE  rF  )r   r   r   r   rL   r1  r0  rA  rG  rr  r   r   r   r   s   @rd   ry   ry   `  s.    &=<~,4\,4@"$ $rf   ry   c                   X   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rSrU =r$ )r>  i#  c                 h   > [         TU ]  " U40 UD6  U R                  5         U R                  5         g r   )r   rL   create_frame_helpload_helplist)ra   r   cfgr   s      rd   rL   HelpFrame.__init__%  s-    '3' rf   c                    [        U 5      n[        USS[        S9U l        [	        U5      nU R                  R
                  US'   UR                  U R                  S'   U R                  R                  SU R                  5        [        U 5      n[        USSS	U R                  S
9U l        [        USS	U R                  S9U l        [        USSS	U R                  S
9U l        UR!                  ["        SS[$        [&        S9  U R                  R!                  ["        [(        [$        [&        S9  UR!                  [*        [,        [.        S9  UR!                  [*        SS[.        S9  U R                  R!                  [0        [,        SS9  U R                  R!                  [0        [,        S9  U R                  R!                  [0        [,        SS9  g )Nrh   Tr   r   r   r   Editr  r  )rn   r  rJ   r   Add)rn   rJ   r   Remover  )rr   r   rs   rt   )rr   r   rt   r   r  r   )r!   r   r
   helplistr*   r  r  r   help_source_selectedr#   helplist_item_editbutton_helplist_edithelplist_item_addbutton_helplist_addhelplist_item_removebutton_helplist_remover   r   r	   r   r   r   r   r   r   )ra   frame_helplistscroll_helplistframe_buttonss       rd   r{  HelpFrame.create_frame_help*  s   * tqD %' $N3%)]]%8%8	"*9*=*=&'.0I0IJd$*F*!8!8%:! $*E!7!7$9  '-HJ!:!:'<#
 	AAdNQt$G%:AAA>!!&&C&B  %%3q%9##((c!!(Drf   c                 $    U R                  5         g r   )set_add_delete_stater  s     rd   r  HelpFrame.help_source_selected\  r  rf   c                    U R                   R                  5       S:  a7  U R                  R                  S5        U R                  R                  S5        g U R                   R                  5       (       a7  U R                  R                  S5        U R                  R                  S5        g U R                  R                  S5        U R                  R                  S5        g )Nr   r  r  )r  sizer  r  r  r  r   s    rd   r  HelpFrame.set_add_delete_state`  s    ==!#%%++M:''--m<}}))++))//?++11.A))//>++11-@rf   c                     [        U S5      R                  nU(       aO  U R                  R                  U5        U R                  R                  [        US   5        U R                  5         g g )NzNew Help Sourcer   )r6   r  user_helplistrY  r  r  r   update_help_changes)ra   help_sources     rd   r  HelpFrame.helplist_item_addm  sW     !'89@@%%k2MM  k!n5$$& rf   c                    U R                   R                  [        5      nU R                  U   n[	        U SUS   US   S9R
                  nU(       an  X2:w  ah  X0R                  U'   U R                   R                  U5        U R                   R                  XS   5        U R                  5         U R                  5         g g g )NzEdit Help Sourcer   r   )menuitemfilepath)
r  r,  r   r  r6   r  rz  r  r  r  )ra   
item_indexr  new_help_sources       rd   r  HelpFrame.helplist_item_edity  s     ]]((0
((4$($Q$Q &	 	
 =-<z*MM  ,MM  Q-?@$$&%%'  >?rf   c                     U R                   R                  [        5      nU R                  U	 U R                   R	                  U5        U R                  5         U R                  5         g r   )r  r,  r   r  rz  r  r  )ra   r  s     rd   r  HelpFrame.helplist_item_remove  sP    
 ]]((0
z*Z(  "!!#rf   c                     0 [         S   S'   [        S[        U R                  5      S-   5       HF  n[         R	                  SS[        U5      SR                  U R                  US-
     S S 5      5        MH     g )Nr  	HelpFilesr   ;r   )r   r  r  r  r<  r  r  )ra   nums     rd   r  HelpFrame.update_help_changes  sl    ')$C 2 23a78CKSHHT//A6r:;= 9rf   c                     [         R                  " 5       U l        U R                  R	                  SS5        U R                   H&  nU R                  R                  [        US   5        M(     U R                  5         g )Nr   r   )r0   GetAllExtraHelpSourcesListr  r  rz  r  r   r  )ra   	help_items     rd   r|  HelpFrame.load_helplist  s[    %@@BQ&++IMM  il3 ,!!#rf   )r  r  r  r  r  )r   r   r   r   rL   r{  r  r  r  r  r  r  r|  r   r   r   s   @rd   r>  r>  #  s8    
0Ed$A
'((	$=$ $rf   r>  c                   B    \ rS rSrS rS rS r\S 5       rS r	S r
Srg	)
VarTracei  c                      / U l         / U l        g r   )untracedtracedr   s    rd   rL   VarTrace.__init__  s     rf   c                 l    U R                   R                  5         U R                  R                  5         g r   )r  r   r  r   s    rd   r   VarTrace.clear  s$     	rf   c                     [        U[        5      (       a  U R                  X5      nU R                  R	                  X45        U$ r   )
isinstancetuplemake_callbackr  rY  ra   rS  callbacks      rd   r   VarTrace.add  s:     h&&))#8Hc_-
rf   c                    ^ ^ UU 4S jnU$ )Nc                  R   > [         R                  " / TQTR                  5       P76   g r   )r   r<  r   )r>  r  rS  s    rd   default_callback0VarTrace.make_callback.<locals>.default_callback  s    22	2rf   rn  )rS  r  r  s   `` rd   r  VarTrace.make_callback  s    	3  rf   c                     U R                   (       a^  U R                   R                  5       u  pUR                  SU5        U R                  R	                  X45        U R                   (       a  M]  g g )Nwrite)r  pop	trace_addr  rY  r  s      rd   r]   VarTrace.attach  sJ    mm MM--/MCMM'8,KK/ mmmrf   c                 
   U R                   (       ar  U R                   R                  5       u  pUR                  SUR                  5       S   S   5        U R                  R                  X45        U R                   (       a  Mq  g g )Nr  r   r   )r  r  trace_remove
trace_infor  rY  r  s      rd   detachVarTrace.detach  s[    kk KKOO-MCWcnn&6q&9!&<=MM  #1 kkkrf   )r  r  N)r   r   r   r   rL   r   r   r  r  r]   r  r   rn  rf   rd   r  r    s/    
"    02rf   r  a7  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. [Cancel] only cancels changes made since the last save.
u  
Font sample: This shows what a selection of Basic Multilingual Plane
unicode characters look like for the current font selection.  If the
selected font does not define a character, Tk attempts to find another
font that does.  Substitute glyphs depend on what is available on a
particular system and will not necessarily have the same size as the
font selected.  Line contains 20 characters up to Devanagari, 14 for
Tamil, and 10 for East Asia.

Hebrew and Arabic letters should display right to left, starting with
alef, א and ا.  Arabic digits display left to right.  The
Devanagari and Tamil lines start with digits.  The East Asian lines
are Chinese digits, Chinese Hanzi, Korean Hangul, and Japanese
Hiragana and Katakana.

You can edit the font sample. Changes remain until IDLE is closed.
z
Highlighting:
The IDLE Dark color theme is new in October 2015.  It can only
be used with older IDLE releases if it is saved as a custom
theme, with a different name.
z
Keys:
The IDLE Modern Unix key set is new in June 2016.  It can only
be used with older IDLE releases if it is saved as a custom
key set, with a different name.
a_  
General:

AutoComplete: Popupwait is milliseconds to wait after key char, without
cursor movement, before popping up completion box.  Key char is '.' after
identifier or a '/' (or '\' on Windows) within a string.

FormatParagraph: Max-width is max chars in lines after re-formatting.
Use with paragraphs in both strings and comment blocks.

ParenMatch: Style indicates what is highlighted when closer is entered:
'opener' - opener '({[' corresponding to closer; 'parens' - both chars;
'expression' (default) - also everything in between.  Flash-delay is how
long to highlight if cursor is not moved (0 means forever).

CodeContext: Maxlines is the maximum number of code context lines to
display when Code Context is turned on for an editor window.

Shell Preferences: Auto-Squeeze Min. Lines is the minimum number of lines
of output to automatically "squeeze".
a  
ZzDummy: This extension is provided as an example for how to create and
use an extension.  Enable indicates whether the extension is active or
not; likewise enable_editor and enable_shell indicate which windows it
will be active on.  For this extension, z-text is the text that will be
inserted at or removed from the beginning of the lines of selected text,
or the current line if no selection.
)z
Fonts/Tabsro   rY  r  rp   c                 L    U (       d  g [        U 5        g! [         a     gf = f)NTF)r  r1  )r7  s    rd   r/  r/  -	  s)    A s    
##c                       \ rS rSrS rSrg)rg  i8	  c                 (  ^^^	 [         R                  " X/UQ70 UD6  [        U [        S9nUR	                  [
        [        [        S9  [        U SSUR                  SS9mTR	                  [        [        [        S9  UR                  TR                  S9  TR                  S5        TR!                  S5        [        T5      =U l        mTR%                  SST[&        S9m	UU4S	 jnTR)                  S
U5        UUU	4S jnTR)                  S
U5        g )Nr9  )rt   rr   rs   r      )r   rk  r   rJ   r>  r   )windowr   c                 j   > TR                  5       TR                  5       4nTR                  SU-  S9  g )Nz	0 0 %s %s)scrollregion)winfo_reqwidthwinfo_reqheightr  )rE  r  canvasrh  s     rd   _configure_interior;VerticalScrolledFrame.__init__.<locals>._configure_interiorT	  s2    ++-x/G/G/IJDMM{T'9M:rf   z<Configure>c                    > TR                  5       TR                  5       :w  a  TR                  TTR                  5       S9  g g )N)rJ   )r  winfo_widthitemconfigure)rE  r  rh  interior_ids    rd   _configure_canvas9VerticalScrolledFrame.__init__.<locals>._configure_canvasZ	  s?    &&(F,>,>,@@$$[8J8J8L$M Arf   )r!   rL   r*   r   r   r   r   r
   r   r  r   r   r	   r  r  xview_movetoyview_movetorh  create_windowr   r   )
ra   rM   r  kw
vscrollbarr  r  r  rh  r  s
          @@@rd   rL   VerticalScrolledFrame.__init__?	  s    t1d1b1 tH5
QU59!'1~~SBD6&,,/ 	AA $)=0**1a*L	; 	m%89	N 	M#45rf   )rh  N)r   r   r   r   rL   r   rn  rf   rd   rg  rg  8	  s    !rf   rg  __main__)r  z#idlelib.idle_test.test_configdialogr   F)	verbosityexit)run)br  tkinterr   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    tkinter.ttkr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   tkinter.fontr6  r*  r/   idlelib.configr0   r1   idlelib.config_keyr2   idlelib.dynoptionr3   idlelibr4   idlelib.queryr5   r6   idlelib.textviewr7   idlelib.autocompleter8   idlelib.codecontextr9   idlelib.parenmatchr:   idlelib.formatr;   idlelib.squeezerr<   r=   r   r   r?   r   r}   r{   r~   r   r   ry   r>  r  r\   r   r   r/  rg  r   unittestr  idlelib.idle_test.htestr  rn  rf   rd   <module>r     s   
J J J J J J J J
, , , , !   2 , +  1 & - + ) * % 0
/[*o{8 {^E <g1u g1TQ
u Q
hou odOKe OKdBFu BFJ@$e @$FC$
 C$L:2 :2z *"*g;
|(E (V z	.!%H+ rf   