Sindbad~EG File Manager
�
&Μg|-��x� ddlZddgZd�ZGd�d�ZGd�d�ZGd�d �Zd
�Zedk(re�yy)�N� dnd_start�
DndHandlerc�8�t||�}|j�|Sy�N)r�root)�source�event�hs �(/usr/local/lib/python3.12/tkinter/dnd.pyrrms ���6�5�!�A��v�v�����c�8�eZdZdZd�Zd�Zd�Zd�Zdd�Zd d�Z y)
rNc���|jdkDry|jj�} |jy#t$r||_||_YnwxYw||_d|_|jx|_}|jx|_ }d||fz|_
|dxsd|_|j|j|j�|jd|j�d|d<y)N�z<B%d-ButtonRelease-%d>�cursor��<Motion>�hand2)�num�widget�_root�_DndHandler__dnd�AttributeErrorrr�target�initial_button�initial_widget�release_pattern�save_cursor�bind�
on_release� on_motion)�selfrr r�buttonrs r�__init__zDndHandler.__init__{s����9�9�q�=���|�|�!�!�#�� ��J�J���� ��D�J��D�I� ��������',�y�y�0���f�',�|�|�3���f�7�6�6�:J�J���!�(�+�1�r������D�(�(�$�/�/�:����J����/�"��x�s�9�A�Ac�T�|j}d|_|� |`yy#t$rYywxYwr)rrr�r!rs r�__del__zDndHandler.__del__�s;���y�y���� ���
��J���"�
��
�s�� '�'c��|j|j}}|jj||�}|j}d}|�( |j
}|||�}|�n|j}|��(|j}||ur|�|j||�yy|�d|_|j||�|�|j||�||_yy#t$rY�xwxYwr)�x_root�y_rootr�winfo_containingr�
dnd_acceptr�masterr�
dnd_motion� dnd_leave� dnd_enter) r!r �x�y�
target_widgetr�
new_target�attr�
old_targets rr zDndHandler.on_motion�s����|�|�U�\�\�1���+�+�<�<�Q��B�
������
��'�
�$�/�/��"�&�%�0�
��)��)�0�0�M��'��[�[�
���#��%��%�%�f�e�4�&��%�"����$�$�V�U�3��%��$�$�V�U�3�(���&��"�
��
�s�C� C�Cc�(�|j|d�y)N���finish�r!r s rrzDndHandler.on_release�������E�1�rc�(�|j|d�y)Nrr8r:s r�cancelzDndHandler.cancel�r;rc���|j}|j}|j}|j} |`|jj|j�|jjd�|j|d<dx|_x|_x|_|_|�'|r|j||�n|j||�|j||�y#|j||�wxYw)Nrr)rrrrr�unbindrr�
dnd_commitr.�dnd_end)r!r �commitrrrrs rr9zDndHandler.finish�s������������$�$���y�y�� *��
����&�&�t�';�';�<����&�&�z�2�#�/�/�F�8��JN�N�D�K�N�$�+�N��(;�d�i��!���%�%�f�e�4��$�$�V�U�3��N�N�6�5�)��F�N�N�6�5�)�s�BC�C/r)r)
�__name__�
__module__�__qualname__rr#r&r rr=r9�rrrrws%���D�#�(�)�6��*rc�>�eZdZd�Zd
d�Zd�Zd�Zd�Zd�Zd�Z d�Z
y )�Iconc�<�||_dx|_x|_|_yr)�name�canvas�label�id)r!rJs rr#z
Icon.__init__�s���� �-1�1���1�d�j�4�7rc��||jur(|jj|j||�y|j�|j�|�yt j
||jdd��}|j|||d��}||_||_||_|jd|j�y)N��raised)�text�borderwidth�relief�nw)�window�anchorz
<ButtonPress>)rK�coordsrM�detach�tkinter�LabelrJ�
create_windowrLr�press)r!rKr0r1rLrMs r�attachzIcon.attach�s����T�[�[� ��K�K���t�w�w��1�-���;�;�"��K�K�M��>���
�
�f�4�9�9�*+�H�>��
�
!�
!�!�Q�u�T�
!�
B�������
����
�
�
�?�D�J�J�/rc��|j}|�y|j}|j}dx|_x|_|_|j|�|j �yr)rKrMrL�delete�destroy)r!rKrMrLs rrXzIcon.detach�sO�������>��
�W�W���
�
��-1�1���1�d�j�4�7��
�
�b��
�
�
�rc���t||�rU|j|_|j|_|j
j
|j�\|_|_ yyr)
rr0�x_offr1�y_offrKrWrM�x_orig�y_origr:s rr\z
Icon.press�sH���T�5�!����D�J����D�J�'+�{�{�'9�'9�$�'�'�'B�$�D�K���"rc��|j|j|�\}}|jj|j||�yr)�whererKrWrM)r!r r0r1s r�movez Icon.move�s4���z�z�$�+�+�u�-���1������4�7�7�A�q�)rc�z�|jj|j|j|j�yr)rKrWrMrdre)r!s r�putbackzIcon.putback�s$�������4�7�7�D�K�K����=rc��|j�}|j�}|j|z
}|j|z
}||jz
||j
z
fSr)�winfo_rootx�winfo_rootyr(r)rbrc)r!rKr �x_org�y_orgr0r1s rrgz
Icon.where�sU���"�"�$���"�"�$���L�L�5� ���L�L�5� ���4�:�:�~�q�4�:�:�~�-�-rc��yrrF)r!rr s rrAzIcon.dnd_end s��rN)�
rq)rCrDrEr#r]rXr\rhrjrgrArFrrrHrH�s+��2�0� �C�*�>�.�
rrHc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�Testerc��tj|�|_tj|jdd��|_|jjdd��|j|j_y)N�d)�width�height�bothr7)�fill�expand)rY�Toplevel�top�CanvasrK�packr+r%s rr#zTester.__init__sS���#�#�D�)����n�n�T�X�X�S��E��������f�Q��/�!%������rc��|SrrF�r!rr s rr+zTester.dnd_accepts���rc�T�|jj�|j|j|�\}}|jj|j�\}}}}||z
||z
}
} |jj|||| z||
z�|_|j||�yr)rK� focus_setrg�bboxrM�create_rectangle�dndidr-)r!rr r0r1�x1�y1�x2�y2�dx�dys rr/zTester.dnd_enters����������|�|�D�K�K��/���1����+�+�F�I�I�6���B��B��B���2��B���[�[�1�1�!�Q��"��a��d�C��
������&rc���|j|j|�\}}|jj|j�\}}}}|jj |j||z
||z
�yr)rgrKr�r�rh) r!rr r0r1r�r�r�r�s rr-zTester.dnd_motion s\���|�|�D�K�K��/���1����)�)�$�*�*�5���B��B���������Q�r�T�1�R�4�0rc��|jj�|jj|j�d|_yr)r|r�rKr_r�r�s rr.zTester.dnd_leave%s/�������������4�:�:�&���
rc��|j||�|j|j|�\}}|j|j||�yr)r.rgrKr])r!rr r0r1s rr@zTester.dnd_commit*s<�����v�u�%��|�|�D�K�K��/���1��
�
�d�k�k�1�a�(rN) rCrDrEr#r+r/r-r.r@rFrrrsrs
s ��1��'�1�
�
)rrsc��tj�}|jd�tj|jd��j�t
|�}|jjd�t
|�}|jjd�t
|�}|jjd�td�}td�}td �}|j|j�|j|j�|j|j�|j�y)
Nz+1+1�Quit)�commandrQz+1+60z+120+60z+240+60�ICON1�ICON2�ICON3)rY�Tk�geometry�Button�quitr~rsr|rHr]rK�mainloop)r�t1�t2�t3�i1�i2�i3s r�testr�0s����:�:�<�D��M�M�&���N�N�4�9�9�6�2�7�7�9� ���B��F�F�O�O�G�� ���B��F�F�O�O�I�� ���B��F�F�O�O�I��
�g��B�
�g��B�
�g��B��I�I�b�i�i���I�I�b�i�i���I�I�b�i�i���M�M�Or�__main__)rY�__all__rrrHrsr�rCrFrr�<module>r�s\��c�J���
%��
�S*�S*�r:
�:
�z )� )�F�&�z���F�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists