HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux vps109042.inmotionhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: cisa (1010)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/imh/python3.13/lib/python3.13/idlelib/__pycache__/tree.cpython-313.pyc
�

��e�A���SSKrSSK7 SSKJrJr SSKJr SSKJr Sr	\RR\RR\
5\	5r\RR!\5(a\r	O-\RR!\	5(d
\"S\	<S35e\	4S	jrSS
jr"SS5r"S
S5r"SS\5r"SS5rSr\S:XaSSKJr \"SSSS9 SSKJr \"\5 gg!\a \	rN�f=f)�N)�*)�Frame�	Scrollbar)�idleConf)�
zoomheight�Iconszcan't find icon directory (�)c�*�[5nSSKnUR[RR	URU5S55nUR
5 /nS=pVUH�n[RR[RRU55Sn[XqS9n	URU	5 [XSSS9n
U
RXVS9 [XS	9n
U
RUS-US9 US-nUS
:�dM�US-nSnM� XAl
g)z'Utility to display the available icons.rNz*.gif)�file�master��raised)�image�bd�relief)�row�column)�text�
�)�Tk�glob�os�path�join�escape�sort�splitext�basename�
PhotoImage�append�Label�grid�images)�icondir�rootr�listr$rrr�namer�labels           �2/opt/imh/python3.13/lib/python3.13/idlelib/tree.py�	listiconsr+%s���
�4�D���9�9�R�W�W�\�\�$�+�+�g�"6��@�A�D��I�I�K�
�F���C����w�w������ 0� 0�� 6�7��:����2���
�
�e���d�A�h�?��
�
�
�s�
�*��d�&��
�
�
�s�1�u�V�
�,��!����R�<��a�%�C��F���K�c��[RURS:�[RURS:H0nX R
(aSOSnUcUROUnUR[US5 g)a
Handle 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.
r������units�break)	�	EventType�
MouseWheel�delta�ButtonPress�num�type�widget�yview�SCROLL)�eventr9�up�liness    r*�wheel_eventr?;sb��"�
�
����a��
�
�
����a��
1�B��Z�Z�.�B�a�E�#�^�U�\�\��F�
�L�L����(�r,c��\rSrSrSrSrSrSrSSjrSSjr	S	r
S
rSSjrSSjr
SS
jrSrSrSrSrSrSrSSjrSSjrSSjrSSjrSrg)�TreeNode�Trc�|�XlX lX0lSUlSUl/UlS=UlUl0Ulg)N�	collapsedF)	�canvas�parent�item�state�selected�children�x�y�
iconimages)�selfrErFrGs    r*�__init__�TreeNode.__init__Xs;�������	� ��
���
���
���������r,c��URSSH.nURRU5 UR5 M0 SUlg�N)rJ�remove�destroyrF)rN�cs  r*rT�TreeNode.destroybs9�����q�!�A��M�M� � ��#�
�I�I�K�"���r,c�.�URU$![a Of=f[RR	U5up#U=(d Sn[RR[X#-5n[URUS9nXPRU'U$)Nz.gif)rr)	rM�KeyErrorrrrr�ICONDIRr rE)rNr(r�ext�fullnamers      r*�geticonimage�TreeNode.geticonimagehs~��	��?�?�4�(�(���	��	���G�G�$�$�T�*�	���m�V���7�7�<�<����4���$�+�+�H�=�� %������s��
�Nc���UR(agUR5 SUlURRUR5 UR5 UR
5 g)NT)rI�deselectallrE�delete�image_id�drawicon�drawtext�rNr<s  r*�select�TreeNode.selecttsG���=�=��������
������4�=�=�)��
�
���
�
�r,c��UR(dgSUlURRUR5 UR	5 UR5 g)NF)rIrEr`rarbrcrds  r*�deselect�TreeNode.deselect}s;���}�}����
������4�=�=�)��
�
���
�
�r,c�|�UR(aURR5 gUR5 grR)rFr_�deselecttree�rNs r*r_�TreeNode.deselectall�s%���;�;��K�K�#�#�%����r,c��UR(aUR5 URHnUR5 M grR)rIrhrJrk)rN�childs  r*rk�TreeNode.deselecttree�s,���=�=��M�M�O��]�]�E���� �#r,c��URS:XaUR5 OUR5 URR	5 g)N�expandedr2)rH�collapse�expandrG�
OnDoubleClickrds  r*�flip�
TreeNode.flip�s3���:�:��#��M�M�O��K�K�M��	�	���!�r,c��URR5(dgURS:wa(SUlUR5 UR	5 gg)Nrr)rG�
_IsExpandablerH�update�viewrds  r*rt�TreeNode.expand�sB���y�y�&�&�(�(���:�:��#�#�D�J��K�K�M��I�I�K�$r,c�T�URS:waSUlUR5 gg)NrD)rHrzrds  r*rs�TreeNode.collapse�s#���:�:��$�$�D�J��K�K�M�%r,c���URS-
nUR5RS-nX!-
nURRS5nURR	5nURRU5nXA::aX&::agURRURS5upxp�X:�a
X5::aX-U-
nOUn[
U5U
-nURRU5 g)Nr�r�scrollregion)rL�lastvisiblechildrE�canvasy�winfo_height�_getints�float�yview_moveto)rN�top�bottom�height�visible_top�visible_height�visible_bottom�x0�y0�x1�y1�fractions            r*r{�
TreeNode.view�s����f�f�q�j���&�&�(�*�*�R�/������k�k�)�)�!�,�����1�1�3�����,�,�^�<����&�":�����-�-�d�k�k�.�.I�J������&�":��|�n�4�H��H���?�R�'����� � ��*r,c��UR(a-URS:XaURSR5$U$)Nrr���)rJrHr�rls r*r��TreeNode.lastvisiblechild�s1���=�=�T�Z�Z�:�5��=�=��$�5�5�7�7��Kr,c���UR(aURR5 gURSnSURS'URR5 URR[5 URSS5 URR
[5up#pEURRSSXE4S9 XRS'g)N�cursor�watch�rr)r�)rFrzrEr`�ALL�draw�bbox�	configure)rN�	oldcursorr�r�r�r�s      r*rz�TreeNode.update�s����;�;��K�K��� ����H�-�I�$+�D�K�K��!��K�K��� ��K�K���s�#��I�I�a��O�!�[�[�-�-�c�2�N�B�B��K�K�!�!��1�b�~�!�>�$-�K�K��!r,c	�z�XsUlUlUR5 UR5 URS:waU[
R-$UR(dtURR5nU(dU[
R-$UH:nURURX5nURRU5 M< US-nU[
R-nSnURH�nUnURRUS-US-XgS-SS9 URXg5nURR5(dM\URS:XaSn	UR n
OS	n	UR"n
UR%U	5nURR'US-US-US
9nURR)USU
5 URR)USS
5 M� URRUS-US-US-US-SS9nURR+U5 U$)Nrr�r�	r��gray50)�fill�	minusnode�plusnode)r�<1>�
<Double-1>c��grR�)rKs r*�<lambda>�TreeNode.draw.<locals>.<lambda>�s��r,r)rKrLrbrcrHrA�dyrJrG�_GetSubList�	__class__rEr!�create_liner�ryrsrtr\�create_image�tag_bind�	tag_lower)
rNrKrL�sublistrGro�cx�cy�cylast�iconname�callbackr�ids
             r*r��
TreeNode.draw�s����������
�
���
�
���:�:��#��x�{�{�?�"��}�}��i�i�+�+�-�G���8�;�;��&������t�{�{�D�?���
�
�$�$�U�+� ��r�T��
����_�����]�]�E��F��K�K�#�#�A�a�C��A��r�a�4�h�#�G����B�#�B��z�z�'�'�)�)��;�;�*�,�*�H�$�~�~�H�)�H�$�|�|�H��)�)�(�3���[�[�-�-�a��c�6�!�8�5�-�I�����$�$�R���9����$�$�R��~�F�#� �[�[�
$�
$�Q�q�S�!�B�$��!��V�A�X��%���	
�����b�!��	r,c� �UR(aEURR5=(d# URR5=(d SnO#URR5=(d SnUR	U5nUR
R
URURSUS9nX0l	UR
RUSUR5 UR
RUSUR5 g)N�
openfolder�folder�nw)�anchorrr�r�)
rIrG�GetSelectedIconName�GetIconNamer\rEr�rKrLrar�rerv)rN�	imagenamerr�s    r*rb�TreeNode.drawicon�s����=�=����6�6�8�&����.�.�0�&�%�
��	�	�-�-�/�;�8�I��!�!�)�,��
�[�[�
%�
%�d�f�f�d�f�f�T��
%�
O���
������R�����4������R��t�y�y�9r,c	�`^�TRS-S-
nTRS-
nTRR5nU(a�TRRXSUS9nTRR
USTR5 TRR
USTR5 TRRU5upVpx[US5S	-nTRR5=(d S
n	TR TR5 TR ["R$"5n
TR&(a1TRR)["R*"U
S55 O0TRR)["R*"U
S55 TRR-XSTRS9nTRR/STR05 TRR/STR5 TRR/SU4Sj5 TRR2S:Xa@TRR/SU4Sj5 TRR/SU4Sj5 UTl[6R8S:Xa=TRRU5n[SUSUS-
S-
5[6lgg![a GN�f=f![a  [!TRU	SSSS
9TlGNf=f)Nr�r
r.r�)r�rr�r���rz	<no text>rr)rr�padx�pady�hilite�normal)r��window�<MouseWheel>c�0>�[UTR5$rR�r?rE��erNs �r*r��#TreeNode.drawtext.<locals>.<lambda> s���+�a����2Mr,�x11�
<Button-4>c�0>�[UTR5$rRr�r�s �r*r�r�"����K��4�;�;�4Or,�
<Button-5>c�0>�[UTR5$rRr�r�s �r*r�r�#r�r,�)rKrLrG�GetLabelTextrE�create_textr�rervr��max�GetText�entry�edit_finish�AttributeErrorr)r"r�CurrentThemerIr��GetHighlight�
create_window�bind�select_or_edit�_windowingsystem�text_idrAr�)rN�textx�texty�	labeltextr�r�r�r�r�r�theme�coordss`           r*rc�TreeNode.drawtextso������r�	�!������q����I�I�*�*�,�	�����(�(��d�.7�)�9�B��K�K� � ��U�D�K�K�8��K�K� � ��\�4�9�9�=�!�[�[�-�-�b�1�N�B�B���C�L�2�%�E��y�y� � �"�1�k��	��J�J�
����	M��J�J��%�%�'���=�=��J�J� � ��!6�!6�u�h�!G�H��J�J� � ��!6�!6�u�h�!G�H�
�[�[�
&�
&�u�.2�4�:�:�'�G���
�
����t�2�2�3��
�
����d�i�i�0��
�
����(M�N��:�:�&�&�%�/��J�J�O�O�L�*O�P��J�J�O�O�L�*O�P�����;�;�!���[�[�%�%�b�)�F��b�&��)�f�Q�i�"7�!�";�<�H�K�	��/�	��	���	M��t�{�{��!�!�!�L�D�J�	M�s$�>K2�L�2
L�?L�&L-�,L-c��UR(a1URR5(aURU5 gUR	U5 grR)rIrG�
IsEditable�editrerds  r*r��TreeNode.select_or_edit+s3���=�=�T�Y�Y�1�1�3�3��I�I�e���K�K��r,c���[URSSSS9UlURRSURS5 URR	S[
5 URR
SS9 URR5 URRSUR5 URRSUR5 g)	Nrr
)r�highlightthickness�widthrr0)�ipadxz<Return>z<Escape>)�Entryr)r��insert�selection_range�END�pack�	focus_setr�r��edit_cancelrds  r*r��
TreeNode.edit1s����4�:�:�!���K��
��
�
���!�T�Z�Z��/�0��
�
�"�"�1�c�*��
�
���a�� ��
�
�����
�
���
�D�$4�$4�5��
�
���
�D�$4�$4�5r,c��URnU?UR5nUR5 U(a8X0RR5:waURR
U5 URR5nX0RS'UR5 URR5 g![a gf=f)Nr)r�r��getrTrGr��SetTextr)rcrEr�)rNr<r�rs    r*r��TreeNode.edit_finish:s���	��J�J�E��
��y�y�{��
�
�
���D�I�I�-�-�/�/��I�I���d�#��y�y� � �"��!�
�
�6���
�
����������	��	�s�C�
C�Cc��URnU?UR5 UR5 URR5 g![a gf=frR)r�r�rTrcrEr�)rNr<r�s   r*r��TreeNode.edit_cancelIsM��	��J�J�E��
�	�
�
���
�
���������	�	��	�s�A�
A�A)
rErJr�rMrarGr)rFrIrHr�rKrLrR)�__name__�
__module__�__qualname__�__firstlineno__r�rOrTr\rerhr_rkrvrtrsr{r�rzr�rbrcr�r�r�r��__static_attributes__r�r,r*rArATsm��	
�B���
��� �!����
+�"�.�'�R:�)=�V�6�
 � r,rAc�d�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrg)�TreeItemiTzvAbstract class representing tree items.

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

c��g)z)Constructor.  Do whatever you need to do.Nr�rls r*rO�TreeItem.__init__]��r,c��g)zReturn text string to display.Nr�rls r*r��TreeItem.GetText`r
r,c��g)z>Return label text string to display in front of text (if any).Nr�rls r*r��TreeItem.GetLabelTextcr
r,Nc�^�URcUR5UlUR$)�%Do not override!  Called by TreeNode.)�
expandable�IsExpandablerls r*ry�TreeItem._IsExpandablehs&���?�?�"�"�/�/�1�D�O����r,c��g)z"Return whether there are subitems.r
r�rls r*r�TreeItem.IsExpandablens��r,c�p�UR5(d/$UR5nU(dSUlU$)rr)r�
GetSubListr)rNr�s  r*r��TreeItem._GetSubListrs1��� � �"�"��I��/�/�#����D�O��r,c��g)z-Return whether the item's text may be edited.Nr�rls r*r��TreeItem.IsEditable{r
r,c��g)z+Change the item's text (if it is editable).Nr�)rNrs  r*r�TreeItem.SetText~r
r,c��g)z-Return name of icon to be displayed normally.Nr�rls r*r��TreeItem.GetIconName�r
r,c��g)z2Return name of icon to be displayed when selected.Nr�rls r*r��TreeItem.GetSelectedIconName�r
r,c��g)z%Return list of items forming sublist.Nr�rls r*r�TreeItem.GetSubList�r
r,c��g)z%Called on a double-click on the item.Nr�rls r*ru�TreeItem.OnDoubleClick�r
r,)r)rrrr�__doc__rOr�r�rryrr�r�rr�r�rrurr�r,r*r
r
TsL���8�-�M��J����<�:�<�A�4�4r,r
c�B�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�FileTreeItemi�z4Example TreeItem subclass -- browse the file system.c��XlgrR�r)rNrs  r*rO�FileTreeItem.__init__�s���	r,c�z�[RRUR5=(d UR$rR�rrrrls r*r��FileTreeItem.GetText�s$���w�w����	�	�*�7�d�i�i�7r,c�Z�[RRUR5S:g$)N�r/rls r*r��FileTreeItem.IsEditable�s ���w�w����	�	�*�b�0�0r,c��[RRUR5n[RRX!5n[RRU5[RRUR5:wag[R"URU5 X lg![
a gf=frR)rr�dirnamer�rename�OSError)rNr�newpaths   r*r�FileTreeItem.SetText�s����'�'�/�/�$�)�)�,���'�'�,�,�w�-��
�7�7�?�?�7�#�r�w�w���t�y�y�'A�A��	��I�I�d�i�i��)��I���	��	�s�'B=�=
C
�	C
c�0�UR5(dgg)N�python)rrls r*r��FileTreeItem.GetIconName�s��� � �"�"��#r,c�T�[RRUR5$rR)rr�isdirrls r*r�FileTreeItem.IsExpandable�s���w�w�}�}�T�Y�Y�'�'r,c�X�[R"UR5nUR	[RR
S9 /nUHGn[
[RRURU55nURU5 MI U$![a /s$f=f)N)�key)	r�listdirrr7r�normcaser*rr!)rN�namesr�r(rGs     r*r�FileTreeItem.GetSubList�s���	��J�J�t�y�y�)�E�	�
�
����)�)�
�*����D�������T�Y�Y�� =�>�D��N�N�4� ������	��I�	�s� B�B)�(B)r,N)
rrrrr(rOr�r�rr�rrrr�r,r*r*r*�s(��>��8�1�	��(�
r,r*c�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�ScrolledCanvasi�c��SU;aSUS'Xl[U5UlURRSSS9 URR	SSS9 [UR40UD6UlURRSSSS9 [URSS	9Ul	URRSSS
S9 [URSSS
9Ul
URRSSSS9 URRURS'URRURS'URRURS'URRURS'URRSUR5 URRSUR 5 URRSUR"5 URRSUR$5 URRS[&5 URR(S:Xa@URRS[&5 URRS[&5 URRSUR*5 URR-5 g)N�yscrollincrementr�rr
)�weight�nsew)rr�sticky�vbar)r(�nse�hbar�
horizontal)r(�orient�ews�yscrollcommand�command�xscrollcommandz<Key-Prior>z
<Key-Next>z<Key-Up>z
<Key-Down>r�r�r�r�z<Alt-Key-2>)rr�frame�rowconfigure�columnconfigure�CanvasrEr#rrMrO�setr:�xviewr��page_up�	page_down�unit_up�	unit_downr?r��zoom_heightr�)rNr�optss   r*rO�ScrolledCanvas.__init__�s	���T�)�')�D�#�$����6�]��
��
�
����!��,��
�
�"�"�1�Q�"�/��T�Z�Z�0�4�0��������Q�q���8��d�j�j�v�6��	��	�	���1�Q�u��5��d�j�j�v�l�K��	��	�	���1�Q�u��5�(,�	�	�
�
����$�%�#�{�{�0�0��	�	�)��(,�	�	�
�
����$�%�#�{�{�0�0��	�	�)�����������5�������t�~�~�6�������T�\�\�2�������t�~�~�6��������5��;�;�'�'�5�0��K�K���\�;�7��K�K���\�;�7��������(8�(8�9������r,c�<�URRSS5 g)Nr��pager2�rE�yview_scrollrds  r*r\�ScrolledCanvas.page_up������� � ��V�,�r,c�<�URRSS5 g)Nr
rdr2rerds  r*r]�ScrolledCanvas.page_down������� � ��F�+�r,c�<�URRSS5 g)Nr��unitr2rerds  r*r^�ScrolledCanvas.unit_up�rhr,c�<�URRSS5 g)Nr
rmr2rerds  r*r_�ScrolledCanvas.unit_down�rkr,c�D�[R"UR5 g)Nr2)rr`rrds  r*r`�ScrolledCanvas.zoom_height�s�����t�{�{�+�r,)rErVrOrrMN)rrrrrOr\r]r^r_r`rr�r,r*rGrG�s �� �8����r,rGc�x�[U5n[[UR5R	S5SS5up#URSUS-US-4-5 [USSSS9nURRSS	[S
9 [[5n[URSU5nUR5 g)N�+r
z+%d+%d�2��whiter)�bgr��	takefocus�both)rtr��side)�Toplevel�map�int�geometry�splitrGrVr��LEFTr*rYrArErt)rFr�rKrL�scrG�nodes       r*�_tree_widgetr��s���
�6�
�C��s�F�O�O�%�+�+�C�0���4�5�D�A��L�L��Q�r�T�1�S�5�M�)�*�	���A��	K�B��H�H�M�M���d�M�3��� �D��B�I�I�t�T�*�D��K�K�Mr,�__main__)�mainzidlelib.idle_test.test_treerF)�	verbosity�exit)�runrR)r�tkinter�tkinter.ttkrr�idlelib.configr�idlelibrrYrrr5�__file__�_icondir�	NameErrorr>�RuntimeErrorr+r?rAr
r*rGr�r�unittestr��idlelib.idle_test.htestr�r�r,r*�<module>r�s��"
��(�#��
����w�w�|�|�B�G�G�O�O�H�5�w�?�H��7�7�=�=�����G�	�����w�	�	�
�4�W�K�q�A�
B�B���,�2} �} �@74�74�x)�8�)�\,�,�^��z����	&�!�%�@�+������u���H��s�5D�D�D