python (3.12.0)

(root)/
lib/
python3.12/
idlelib/
__pycache__/
tree.cpython-312.opt-1.pyc

̑e?ddlZddlddlmZmZddlmZddlmZdZ		ejjejje
e	Zejj!ereZ	n'ejj!e	sede	de	fd	Zdd
ZGddZGd
dZGddeZGddZdZedk(r ddlmZedddddlmZeeyy#e$re	ZYwxYw)N)*)Frame	Scrollbar)idleConf)
zoomheightIconszcan't find icon directory ()cLt}ddl}|jtjj	|j|d}|j
g}dx}}|D]}tjjtjj|d}t||}	|j|	t||	dd}
|
j||t||	}
|
j|dz||dz}|d
k\s|dz}d}||_
y)z'Utility to display the available icons.rNz*.gif)filemasterraised)imagebdrelief)rowcolumn)text
)Tkglobospathjoinescapesortsplitextbasename
PhotoImageappendLabelgridimages)icondirrootrlistr$rrrnamerlabels           @/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/idlelib/tree.py	listiconsr+%s
4D99RWW\\$++g"6@ADIIK
FC&ww 0 0 67:T2

ed%Ah?

s6
*d&

s1uV
,!R<a%CFDKctj|jdkDtj|jdk(i}||j
rdnd}||jn|}|jt|dy)a6Handle scrollwheel event.

    For wheel up, event.delta = 120*n on Windows, -1*n on darwin,
    where n can be > 1 if one scrolls fast.  Flicking the wheel
    generates up to maybe 20 events with n up to 10 or more 1.
    Macs use wheel down (delta = 1*n) to scroll up, so positive
    delta means to scroll up on both systems.

    X-11 sends Control-Button-4,5 events instead.

    The widget parameter is needed so browser label bindings can pass
    the underlying canvas.

    This function depends on widget.yview to not be overridden by
    a subclass.
    runitsbreak)		EventType
MouseWheeldeltaButtonPressnumtypewidgetyviewSCROLL)eventr9upliness    r*wheel_eventr?;sd"

a


a
1BUZZ.BaE#^U\\F
LL(r,ceZdZdZdZdZddZddZdZdZ	dd	Z
dd
ZddZdZ
d
ZdZdZdZdZddZddZddZddZy)TreeNodec||_||_||_d|_d|_g|_dx|_|_i|_y)N	collapsedF)	canvasparentitemstateselectedchildrenxy
iconimages)selfrDrErFs    r*__init__zTreeNode.__init__VsA	 


r,c|jddD]-}|jj||j/d|_yN)rIremovedestroyrE)rMcs  r*rRzTreeNode.destroy`s>q!	AMM  #
IIK	r,c.	|j|S#t$rYnwxYwtjj	|\}}|xsd}tjjt||z}t|j|}||j|<|S)Nz.gif)rr)	rLKeyErrorrrrrICONDIRr rD)rMr(rextfullnamers      r*geticonimagezTreeNode.geticonimagefs	??4((		GG$$T*	cmV77<<4$++H= %s	Nc|jry|jd|_|jj|j|j|j
y)NT)rHdeselectallrDdeleteimage_iddrawicondrawtextrMr<s  r*selectzTreeNode.selectrsG==
4==)



r,c|jsyd|_|jj|j|j	|jy)NF)rHrDr\r]r^r_r`s  r*deselectzTreeNode.deselect{s;}}
4==)



r,cr|jr|jjy|jyrP)rEr[deselecttreerMs r*r[zTreeNode.deselectalls%;;KK##%r,c~|jr|j|jD]}|jyrP)rHrcrIre)rMchilds  r*rezTreeNode.deselecttrees1==MMO]]	!E 	!r,c|jdk(r|jn|j|jj	y)Nexpandedr2)rGcollapseexpandrF
OnDoubleClickr`s  r*flipz
TreeNode.flips3::#MMOKKM		!r,c|jjsy|jdk7r(d|_|j|j	yy)Nrj)rF
_IsExpandablerGupdateviewr`s  r*rlzTreeNode.expands?yy&&(::##DJKKMIIK$r,cR|jdk7rd|_|jyy)NrC)rGrqr`s  r*rkzTreeNode.collapses#::$$DJKKM%r,c|jdz
}|jjdz}||z
}|jjd}|jj	}|jj|}||kr||kry|jj|jd\}}}	}
||k\r||kr	||z|z
}n|}t
||
z}|jj|y)Nrrscrollregion)rKlastvisiblechildrDcanvasywinfo_height_getintsfloatyview_moveto)rMtopbottomheightvisible_topvisible_heightvisible_bottomx0y0x1y1fractions            r*rrz
TreeNode.viewsffqj&&(**R/#kk))!,113,,^<#&N":--dkk..IJBB+&N":V|n4HH?R'  *r,cv|jr,|jdk(r|jdjS|S)Nrj)rIrGrwrfs r*rwzTreeNode.lastvisiblechilds1==TZZ:5==$5577Kr,c|jr|jjy|jd}d|jd<|jj|jjt|jdd|jj
t\}}}}|jjdd||f||jd<y)Ncursorwatchrr)rv)rErqrDr\ALLdrawbbox	configure)rM	oldcursorrrrrs      r*rqzTreeNode.updates;;KK H-I$+DKK!KK KKs#IIaO![[--c2NBBKK!!1b"~!>$-DKK!r,cd}||c|_|_|j|j|jdk7r||zS|j
s`|jj}|s|dzS|D]:}|j|j||}|j
j|<|dz}||z}d}	|j
D]}|}	|jj|dz|dz||dzd|j||}|jjs[|jdk(rd	}
|j}nd
}
|j}|j!|
}|jj#|dz|	dz|}
|jj%|
d||jj%|
d
d|jj|dz|dz|dz|	dzd}
|jj'|
|S)Nrjrur	rgray50)fill	minusnodeplusnode)r<1>
<Double-1>cyrP)rJs r*<lambda>zTreeNode.draw.<locals>.<lambda>r,r)rJrKr^r_rGrIrF_GetSubList	__class__rDr!create_linerrprkrlrYcreate_imagetag_bind	tag_lower)rMrJrKdysublistrFrhcxcycylasticonnamecallbackrids              r*rz
TreeNode.draws
A



::#r6M}}ii++-Gt
,t{{D$?

$$U+
,rT
V]]	GEFKK##AaCAr2a4h#GB#Bzz'');;*,*H$~~H)H$||H))(3[[--ac6!85-I$$R9$$R~F	G [[
$
$QqS!B$!VAX%	
b!	r,c|jr;|jjxs|jjxsd}n|jjxsd}|j	|}|j
j
|j|jd|}||_	|j
j|d|j|j
j|d|jy)N
openfolderfoldernw)anchorrrr)
rHrFGetSelectedIconNameGetIconNamerYrDrrJrKr]rrarn)rM	imagenamerrs    r*r^zTreeNode.drawicons==668&..0&%
		--/;8I!!),
[[
%
%dffdffT
%
O
R4Rtyy9r,cvjdzdz
}jdz
}jj}|rjj||d|}jj
|djjj
|djjj|\}}}}t|dd	z}jjxsd
}		jj	jt#j$}
j&r0jj)t#j*|
dn/jj)t#j*|
djj-||dj}jj/dj0jj/djjj/dfdjj/dfdjj/dfd|_y#t$rYrwxYw#t$r#t!j|	ddd
_YwxYw)Nrr
r.r)rrrrrz	<no text>rr)rrpadxpadyhilitenormal)rwindow<MouseWheel>c0t|jSrPr?rDerMs r*rz#TreeNode.drawtext.<locals>.<lambda>s+a2Mr,
<Button-4>c0t|jSrPrrs r*rz#TreeNode.drawtext.<locals>.<lambda> At{{0Kr,
<Button-5>c0t|jSrPrrs r*rz#TreeNode.drawtext.<locals>.<lambda>!rr,)rJrKrFGetLabelTextrDcreate_textrrarnrmaxGetTextentryedit_finishAttributeErrorr)r"rCurrentThemerHrGetHighlight
create_windowbindselect_or_edittext_id)rMtextxtexty	labeltextrrrrrrthemes`          r*r_zTreeNode.drawtextsr	!qII**,	((d.7)9BKK  UDKK8KK  \499=![[--b1NBBCL2%Eyy  "1k	JJ
	MJJ%%'==JJ  !6!6uh!GHJJ  !6!6uh!GH
[[
&
&ue.24::'G

t223

dii0

(MN

&KL

&KL+			Mt{{!!!LDJ	Ms$:I<J<	J	J	(J87J8c|jr,|jjr|j|y|j	|yrP)rHrF
IsEditableeditrar`s  r*rzTreeNode.select_or_edit$s0==TYY113IIeKKr,ct|jddd|_|jjd|jd|jj	dt
|jj
d|jj|jjd|j|jjd|jy)	Nrr
)rhighlightthicknesswidthrr0)ipadxz<Return>z<Escape>)Entryr)rinsertselection_rangeENDpack	focus_setrredit_cancelr`s  r*rz
TreeNode.edit*s4::!K


!TZZ/0

""1c*

a 




D$4$45


D$4$45r,c	|j}|`|j}|j|r8||jjk7r|jj
||jj}||jd<|j|jjy#t$rYywxYw)Nr)rrgetrRrFrSetTextr)r_rDr)rMr<rrs    r*rzTreeNode.edit_finish3s	JJE
yy{


DDII--//IId#yy  "!

6

		sB>>	C
	C
c	|j}|`|j|j|jjy#t$rYywxYwrP)rrrRr_rDr)rMr<rs   r*rzTreeNode.edit_cancelBsM	JJE
	



			sA	AArP)__name__
__module____qualname__rNrRrYrarcr[rernrlrkrrrwrqrr^r_rrrrrr,r*rArATsh
 !
+".(T:#J6
  r,rAc\eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZy)TreeItemzAbstract class representing tree items.

    Methods should typically be overridden, otherwise a default action
    is used.

    cy)z)Constructor.  Do whatever you need to do.Nrrfs r*rNzTreeItem.__init__Vrr,cy)zReturn text string to display.Nrrfs r*rzTreeItem.GetTextYrr,cy)z>Return label text string to display in front of text (if any).Nrrfs r*rzTreeItem.GetLabelText\rr,Nc\|j|j|_|jS)%Do not override!  Called by TreeNode.)
expandableIsExpandablerfs r*rpzTreeItem._IsExpandableas&??""//1DOr,cy)z"Return whether there are subitems.r
rrfs r*rzTreeItem.IsExpandablegsr,c\|jsgS|j}|sd|_|S)rr)r
GetSubListr)rMrs  r*rzTreeItem._GetSubListks.  "I//#DOr,cy)z-Return whether the item's text may be edited.Nrrfs r*rzTreeItem.IsEditabletrr,cy)z+Change the item's text (if it is editable).Nr)rMrs  r*rzTreeItem.SetTextwrr,cy)z-Return name of icon to be displayed normally.Nrrfs r*rzTreeItem.GetIconNamezrr,cy)z2Return name of icon to be displayed when selected.Nrrfs r*rzTreeItem.GetSelectedIconName}rr,cy)z%Return list of items forming sublist.Nrrfs r*rzTreeItem.GetSubListrr,cy)z%Called on a double-click on the item.Nrrfs r*rmzTreeItem.OnDoubleClickrr,)rrr__doc__rNrrrrprrrrrrrrmrr,r*rrMsL8-MJ<:<A44r,rc:eZdZdZdZdZdZdZdZdZ	dZ
y	)
FileTreeItemz4Example TreeItem subclass -- browse the file system.c||_yrP)r)rMrs  r*rNzFileTreeItem.__init__s		r,cptjj|jxs|jSrPrrrrfs r*rzFileTreeItem.GetTexts$ww		*7dii7r,cZtjj|jdk7S)Nrrfs r*rzFileTreeItem.IsEditables ww		*b00r,ctjj|j}tjj||}tjj|tjj|jk7ry	tj|j|||_y#t
$rYywxYwrP)rrdirnamerrenameOSError)rMrnewpaths   r*rzFileTreeItem.SetTexts''//$)),'',,w-
77??7#rwwtyy'AA	IIdii)DI		s'B==	C	C	c&|jsyy)Npython)rrfs r*rzFileTreeItem.GetIconNames  "#r,cTtjj|jSrP)rrisdirrfs r*rzFileTreeItem.IsExpandablesww}}TYY''r,cV	tj|j}|j	tjj
g}|D]F}t
tjj|j|}|j|H|S#t$rgcYSwxYw)N)key)	rlistdirrr
rnormcaserrr!)rMnamesrr(rFs     r*rzFileTreeItem.GetSubLists	JJtyy)E	

))
*	!DTYY =>DNN4 	!	I	sBB('B(N)rrrrrNrrrrrrrr,r*rrs(>81	(
r,rc0eZdZdZdZdZdZdZdZy)ScrolledCanvascd|vrd|d<||_t||_|jjdd|jj	ddt|jfi||_|jjdddt|jd	|_	|jjddd
t|jdd
|_
|jjddd|jj|jd<|jj|jd<|jj|jd<|jj|jd<|jjd|j|jjd|j |jjd|j"|jjd|j$|jjdt&|jjdt&|jjdt&|jjd|j(|jj+y)Nyscrollincrementrurr
)weightnsew)rrstickyvbar)r(nsehbar
horizontal)r(orientewsyscrollcommandcommandxscrollcommandz<Key-Prior>z
<Key-Next>z<Key-Up>z
<Key-Down>rrrz<Alt-Key-2>)rrframerowconfigurecolumnconfigureCanvasrDr#rrrsetr:xviewrpage_up	page_downunit_up	unit_downr?zoom_heightr)rMroptss   r*rNzScrolledCanvas.__init__sT)')D#$6]


!,

""1Q"/TZZ040Qq8djjv6			1Qu5djjvlK			1Qu5(,		

$%#{{00		)(,		

$%#{{00		)5t~~6T\\2t~~65{3{3(8(89r,c<|jjddy)Nrpager2rDyview_scrollr`s  r*r+zScrolledCanvas.page_up  V,r,c<|jjddy)Nr
r2r2r3r`s  r*r,zScrolledCanvas.page_down  F+r,c<|jjddy)Nrunitr2r3r`s  r*r-zScrolledCanvas.unit_upr5r,c<|jjddy)Nr
r9r2r3r`s  r*r.zScrolledCanvas.unit_downr7r,cBtj|jy)Nr2)rr/rr`s  r*r/zScrolledCanvas.zoom_heightst{{+r,N)	rrrrNr+r,r-r.r/rr,r*rrs  6r,rct|}tt|jj	ddd\}}|jd|dz|dzfzt|ddd}|jjdd	t
tt}t|jd|}|jy)N+r
z+%d+%d2whiter)bgr	takefocusboth)rlrside)Toplevelmapintgeometrysplitrr%rLEFTrrVrArDrl)rEr}rJrKscrFnodes       r*_tree_widgetrMs
6
CsFOO%++C045DAqLLQrT1S5M)*	A	KBHHMMdM3 DBIItT*DKKMr,__main__)mainzidlelib.idle_test.test_treerF)	verbosityexit)runrP)rtkintertkinter.ttkrridlelib.configridlelibrrVrrr__file___icondir	NameErrorrRuntimeErrorr+r?rArrrrMrunittestrOidlelib.idle_test.htestrRrr,r*<module>r]s"
(#
ww||BGGOOH5w?H77==G	w	
4WKqA
BB,2v v r7474x)8)\++\z	&!%@+cHs5C66D?D