
    .hh;                        S SK r S SKrS SK7  S SKJrJr  S SKJr  S SKJ	r	  S SK
r
S SKJr  \ R                  S:X  a  S SKJr  \" 5         \R"                  R%                  \R"                  R'                  \5      5      r\ R                  S	:H  rS
rSrSrSrSrSr/ SQrSrSr/ SQr S r!S\4S\4S\
R                  44r" " S S\#5      r$S r%\&S:X  a  \%" 5         gg)    N)*)ColorDelegatorcolor_config)
Percolator)	view_text)__doc__win32)fix_win_hidpidarwin               )Arial   bold)zLucida Console
   normal   d   )   	   r      r                     c                      [         R                  " [        5       V s/ s H+  n U R                  S5      (       d  M  U S   S:w  d  M&  U S S PM-     sn $ s  sn f )Nz.pyr   _)oslistdirdemo_direndswith)entrys    </opt/python-3.13.8/usr/lib/python3.13/turtledemo/__main__.pygetExampleEntriesr*   u   sT    $&JJx$8 7$85NN5! &+Ah#o E#2J$8 7 7 7s   AA	AzTurtledemo helpzAbout turtledemozAbout turtle modulec                       \ rS rSrSS jrS rS rS rS rSS jr	SS	 jr
S
 rSS jrS rS rS rS rS rS rS rS rS rSrg)
DemoWindow   Nc           
         [        5       =U l        =n[        l        UR	                  S5        UR                  SU R                  5        [        (       aR  SS KnUR                  SSSSSR                  [        R                  " 5       5      SS/UR                  UR                  S	9  UR                  SS
S9  UR                  SS
S9  UR                  S
SS
S9  UR                  SSS
S9  UR                  SSS
S9  [!        U["        SS9U l        U R$                  R'                  U R)                  U R$                  5      SSS9  U R$                  R'                  U R+                  U R$                  5      SSS9  U R$                  R'                  U R-                  U R$                  5      SSS9  U R$                  US'   [/        U[0        S[2        SS9nUR5                  U R7                  U5      5        UR5                  U R9                  U5      5        UR;                  SSSS9  [=        US
SSSS[>        S9U l         [        (       aa  [C        US [D        S!U RF                  S"9U l$        [C        US#[D        S!U RJ                  S"9U l&        [C        US$[D        S!U RN                  S"9U l(        Oc[C        US [D        S%S&U RF                  S'9U l$        [C        US#[D        S%S&U RJ                  S'9U l&        [C        US$[D        S%S&U RN                  S'9U l(        U R@                  R;                  S
SSS(S)9  U RH                  R;                  S
S
S*S+9  U RL                  R;                  S
SS*S+9  U RP                  R;                  S
SS*S+9  [S        U RT                  5      RW                  [Y        5       5        S,U l-        S,U l.        U(       a  U R_                  U5        U Ra                  [b        [b        [b        S-S.5        [d        U l3        g )/NzPython turtle-graphics examplesWM_DELETE_WINDOWr   	osascriptz-ez tell application "System Events"z>set frontmost of the first process whose unix id is {} to truezend tell)stderrstdoutr   )weightZ   )minsizer3   r   r   )reliefborderwidthExamples)menulabel	underlineFontsizeHelpr9   r   z#ddd)orient	sashwidth
sashreliefbgr   news)row
columnspanstickyz --- z#ddf)r      r   )heighttextrA   fontr7   r6   z START z#00cc22)rH   rI   fgcommandz STOP z CLEAR whitez#fed)rH   rI   rJ   disabledforegroundrK   )r   r   )rC   columnrE   padxew)rC   rN   rE   FzChoose example from menublack)4Tkrootturtle_roottitlewm_protocol_destroyr   
subprocessrunformatr$   getpidDEVNULLgrid_rowconfiguregrid_columnconfigureMenuRAISEDmBaradd_cascademakeLoadDemoMenumakeFontMenumakeHelpMenuPanedWindow
HORIZONTALSOLIDaddmakeTextFramemakeGraphFramegridLabelRIDGE
output_lblButtonbtnfont	startDemo	start_btnstopItstop_btnclearCanvas	clear_btnr   rH   insertfilterr   dirtyexitflagloadfile	configGUIDISABLEDSTARTUPstate)selffilenamerS   rY   panes        r)   __init__DemoWindow.__init__   s   *,$.	.D6<

45+T]];6 NN#@ 66<fRYY[6Ij &--%--  	0 	q+!!!A!.!!!R!:!!!R!:!!!R!:f!<			4#8#8#C$.! 	 	=		4#4#4TYY#?$.! 	 	=		4#4#4TYY#?$*a 	 	9yyV4
a&+8##D)*$$T*+		aAf	5ag&%<!',. 6#Dyw'0$..JDN"4hW&/FDM#Dyw'0D<L<LNDN $Dyw'.V,0NN<DN #4hW&-F+/;;8DM $Dyw'.6.2.>.>@DN 	1V%H!D9q48!D9499**>+;<
MM(#x817	<
    c                 L   U R                   R                  5       nU R                   R                  5       nU R                   R                  SU R                  U-
  -  U R                  -  5        U R                   R                  SU R                  U-
  -  U R                  -  5        g )Ng      ?)canvaswinfo_widthwinfo_heightxview_moveto	canvwidthyview_moveto
canvheight)r   eventcwidthcheights       r)   onResizeDemoWindow.onResize   sx    ((*++**,  dnnV&;!<T^^!KL  doog&=!>t!NOr   c                    [        U5      =U l        n[        USSSSS9=U l        n[	        U5        [        USS9=U l        nUR                  US'   UR                  [        [        S	9  [        US
[        S9=U l        nUR                  US'   UR                  [        [        S	9  UR                   US'   UR                   US'   [#        [$        5      US'   [&        (       a  SOSnUR)                  SU-  U R*                  5        UR)                  SU-  U R*                  5        UR)                  SU-  U R,                  5        UR)                  SU-  U R,                  5        UR/                  SU R0                  5        UR/                  SU R,                  5        UR/                  SU R*                  5        UR                  [2        [4        SS9  U$ )NrH   r   none-   )namerO   wrapwidthvbar)r   rK   )sidefillhbar)r   r>   yscrollcommandxscrollcommandrI   CommandControlz
<%s-minus>z<%s-underscore>z
<%s-equal>z	<%s-plus>z<Control-MouseWheel>z<Control-Button-4>z<Control-Button-5>r   )r   r   expand)Frame
text_frameTextrH   r   	Scrollbarr   yviewpackRIGHTYrh   r   xviewBOTTOMXsettupletxtfontr   bind_alldecrease_sizeincrease_sizebindupdate_mousewheelLEFTBOTH)r   rS   r   rH   r   r   shortcuts          r)   rk   DemoWindow.makeTextFrame   s   ',T{2*
a%+27 	7	DT$Zf==	D**Y		u1	%$ZfZPP	D**Y		vA	&!%!%W~V &9IlX-t/A/AB'(2D4F4FGlX-t/A/ABkH,d.@.@A		($*@*@A		&(:(:;		&(:(:;		t$q	1r   c                    U[         R                  l        SU l        SU l        [         R
                  " USSU R                  U R                  5      =[         R                  l        =U l        nUR                  5         UR                  R                  SU R                  5        SUR                  S'   [         R                  " 5       =U l        n[         R                  R                  X25        U/[         R                   l        U$ )Ni  i   iX  z<Configure>r   r7   )rT   _ScreenrU   r   r   ScrolledCanvas_canvasr   adjustScrolls_rootwindowr   r   ScreenscreenTurtleScreenr   	RawTurtlescreens)r   rS   r   r   s       r)   rl   DemoWindow.makeGraphFrame   s    
  $8>8M8Mc39A 	A 	Avt}}=()}%%}}.f$$V4$*8 r   c                 r    U[         S'   [        [         5      U R                  S'   SU-  U R                  S'   g )Nr   rI   zFont size %drH   )r   r   rH   rp   )r   sizes     r)   set_txtsizeDemoWindow.set_txtsize  s0    
!'N		&"04"7r   c                 V    U R                  [        [        S   S-
  [        5      5        gNr   break)r   maxr   MINIMUM_FONT_SIZEr   dummys     r)   r   DemoWindow.decrease_size	  #    WQZ!^->?@r   c                 V    U R                  [        [        S   S-   [        5      5        gr   )r   minr   MAXIMUM_FONT_SIZEr   s     r)   r   DemoWindow.increase_size  r   r   c                 z    UR                   S:  [        (       + :X  a  U R                  5       $ U R                  5       $ )Nr   )deltar   r   r   )r   r   s     r)   r   DemoWindow.update_mousewheel  s4     KK!OV,%%''%%''r   c                    [         (       aL  U R                  R                  US9  U R                  R                  US9  U R                  R                  US9  OrU R                  R                  UU[
        :X  a  SOSS9  U R                  R                  UU[
        :X  a  SOSS9  U R                  R                  UU[
        :X  a  SOSS9  U R                  R                  XES9  g )N)r   z#d00z#fca)r   rA   )rH   rJ   )r   rt   configrv   rx   NORMALrp   )r   startstopcleartxtcolors         r)   r}   DemoWindow.configGUI  s    6NN!!!.MM  t ,NN!!!.NN!!/4VF " LMM  t.2fnF& ! JNN!!/4VF " LC2r   c                 r   ^  [        USS9n[        5        H  nU4U 4S jjnUR                  USUS9  M     U$ )Nr   tearoffc                 (   > TR                  U 5        g N)r|   )r(   r   s    r)   load)DemoWindow.makeLoadDemoMenu.<locals>.load+  s    e$r   r   r:   r;   rK   )r`   r*   add_command)r   masterr9   r(   r   s   `    r)   rd   DemoWindow.makeLoadDemoMenu'  s@    FA&&(E  %5AtD ) r   c                 H  ^  [        USS9nUR                  ST R                  [        (       a  SOS S3S9  UR                  ST R                  [        (       a  SOS S	3S9  UR                  5         [         H&  nU4U 4S
 jjnUR                  [        U5      SUS9  M(     U$ )Nr   r   Decreaser   Ctrlz+-)r:   rK   acceleratorIncreasez+=c                 (   > TR                  U 5        g r   )r   )r   r   s    r)   resize'DemoWindow.makeFontMenu.<locals>.resize9  s      &r   r   )r`   r   r   r   r   add_separator
font_sizesstr)r   r   r9   r   r   s   `    r)   re   DemoWindow.makeFontMenu0  s    FA&z43E3E5;V	'H%K 	 	Mz43E3E5;V	'H%K 	 	MD  '3t96J  r   c                 j   ^  [        USS9n[         H  u  p4X44U 4S jjnUR                  X5S9  M     U$ )Nr   r   c                 2   > [        TR                  X5        g r   )r   rS   )
help_label	help_filer   s     r)   show%DemoWindow.makeHelpMenu.<locals>.showB  s    $))Z;r   )r:   rK   )r`   help_entriesr   )r   r   r9   r   r   r   s   `     r)   rf   DemoWindow.makeHelpMenu>  s<    FA&%1!J * <:< &2 r   c                 j    U R                   (       a"  U R                  R                  5         SU l         g g NF)rz   r   r   r   s    r)   refreshCanvasDemoWindow.refreshCanvasG  s%    ::KKDJ r   c                 6   U R                  5         S[        R                  l        SU-   n[	        U5        [
        R                  U   U l        [        U R                  R                  S5       nUR                  5       nS S S 5        U R                  R                  SS5        U R                  R                  SW5        U R                  R                  US-   5        U R!                  ["        [$        [$        SS5        [&        U l        g ! , (       d  f       N= f)	NFzturtledemo.rz1.0endz# - a Python turtle graphics examplezPress start buttonred)rw   rT   r   _RUNNING
__import__sysmodulesmoduleopen__file__readrH   deleteinsertrS   rV   r}   r   r~   READYr   )r   r   modnamefcharss        r)   r|   DemoWindow.loadfileL  s    ',$(*7kk'*$++&&,FFHE -		&		&		#HHIvx+U	4
 -,s   .D


Dc                    U R                  5         SU l        S[        R                  l        U R                  [        [        [        SS5        U R                  R                  5         U R                  R                  S5        [        U l         U R                  R                  5       nUS:X  a  [        U l        O[         U l         U R                  [         :X  a!  U R                  [        [        [        U5        g U R                  [        :X  a)  SU l        U R                  [        [        [        SS5        g g ! [        R"                   a    U R$                  c   g [         U l        Sn Nf = f)	NTzdemo running...rQ   standard	EVENTLOOPzstopped!zuse mouse/keys or STOPr
  )r  rz   rT   r   r  r}   r~   r   r   r   modeRUNNINGr   r  mainEVENTDRIVENDONE
TerminatorrS   r{   )r   results     r)   rs   DemoWindow.startDemo[  s   
'+$x('	3$

	 [[%%'F$(
!
 ::NN68V!#ZZ;& DMNN8VX3U< '    	 yy DJF		 s   +D: ;D: :!E-E-,E-c                     U R                  5         U R                  R                  S5        U R                  R	                  SS9  U R                  [        [        [        5        g )Nall )cursor)r  r   _deleter   r   r}   r   r~   r  s    r)   rw   DemoWindow.clearCanvasx  sE    E""%vx2r   c                     U R                   (       a8  U R                  5         SU l         U R                  [        [        [        SS5        S[
        R                  l        g )NFzSTOPPED!r
  )r{   rw   r}   r   r~   rT   r   r  r  s    r)   ru   DemoWindow.stopIt~  sA    ==!DMNN68X%u.',$r   c                 p    S[         R                  l        U R                  R	                  5         S U l        g r  )rT   r   r  rS   destroyr  s    r)   rX   DemoWindow._destroy  s'    ',$			r   )r   r   r   rx   rz   r{   r   rb   r  rp   rS   r   rt   r   rv   rH   r   r   r   )r'  blue)__name__
__module____qualname____firstlineno__r   r   rk   rl   r   r   r   r   r}   rd   re   rf   r  r|   rs   rw   ru   rX   __static_attributes__ r   r)   r,   r,      s_    IXP8(8
(3
<:3-r   r,   c                  L    [        5       n U R                  R                  5         g r   )r,   rS   mainloop)demos    r)   r  r    s    <DIIr   __main__)'r  r$   tkinteridlelib.colorizerr   r   idlelib.percolatorr   idlelib.textviewr   rT   
turtledemor   about_turtledemoplatformidlelib.utilr
   pathdirnameabspathr  r&   r   r   r  r  r!  r   rr   r   r   r   r   r*   r   objectr,   r  r1  r6  r   r)   <module>rG     s   p  	  : ) &  2<<7*O77??277??845		!
	


*  7
7
  )*FNN+I IX zF r   