
    .hh|-                     x    S SK r SS/rS r " S S5      r " S S5      r " S S	5      rS
 r\S:X  a  \" 5         gg)    N	dnd_start
DndHandlerc                 8    [        X5      nUR                  b  U$ g N)r   root)sourceevenths      4/opt/python-3.13.8/usr/lib/python3.13/tkinter/dnd.pyr   r   m   s    6!Avv    c                   D    \ rS rSrSrS rS rS rS rS
S jr	SS jr
S	rg)r   w   Nc                    UR                   S:  a  g UR                  R                  5       n UR                    g ! [         a    Xl        X0l         Of = fXl        S U l        UR                   =U l        nUR                  =U l	        nSXD4-  U l
        US   =(       d    SU l        UR                  U R                  U R                  5        UR                  SU R                  5        SUS'   g )N   z<B%d-ButtonRelease-%d>cursor <Motion>hand2)numwidget_root_DndHandler__dndAttributeErrorr   r   targetinitial_buttoninitial_widgetrelease_patternsave_cursorbind
on_release	on_motion)selfr   r	   r   buttonr   s         r   __init__DndHandler.__init__{   s    99q=||!!#	JJ 	JI	 ',yy0f',||3f76:JJ!(+1rD(($//:J/"xs   : AAc                 X    U R                   nS U l         Ub   U?g g ! [         a     g f = fr   )r   r   r   r"   r   s     r   __del__DndHandler.__del__   s;    yy	J  " s    
))c                    UR                   UR                  p2U R                  R                  X#5      nU R                  nS nUb+   UR
                  nU" XQ5      nUb  O UR                  nUb  M+  U R                  nXL a  Ub  UR                  XQ5        g g Ub  S U l        UR                  XQ5        Ub  UR                  XQ5        X`l        g g ! [         a     Nzf = fr   )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	            r   r!   DndHandler.on_motion   s    ||U\\1++<<QB
'$// "&0
) *)00M ' [[
#%%%f4 & %"$$V3%$$V3( & " s   C 
CCc                 (    U R                  US5        g )N   finishr"   r	   s     r   r    DndHandler.on_release       E1r   c                 (    U R                  US5        g )Nr   r<   r>   s     r   cancelDndHandler.cancel   r@   r   c                    U R                   nU R                  nU R                  nU R                  n U?U R                  R                  U R                  5        U R                  R                  S5        U R                  US'   S =U l         =U l        =U l        U l        Ub*  U(       a  UR                  XA5        OUR                  XA5        UR                  X15        g ! UR                  X15        f = f)Nr   r   )r   r   r   r   r   unbindr   r   
dnd_commitr1   dnd_end)r"   r	   commitr   r   r   r   s          r   r=   DndHandler.finish   s    $$yy	*
&&t';';<&&z2#//F8JNNDKN$+N(;di!%%f4$$V3NN6)FNN6)s   BC C1)r   r   r   r   r   r   r   r   )r   )__name__
__module____qualname____firstlineno__r   r$   r(   r!   r    rB   r=   __static_attributes__ r   r   r   r   w   s%    D#()6*r   c                   H    \ rS rSrS rSS jrS rS rS rS r	S r
S	 rS
rg)Icon   c                 :    Xl         S =U l        =U l        U l        g r   )namecanvaslabelid)r"   rT   s     r   r$   Icon.__init__   s    	-111dj47r   c                 n   XR                   L a'  U R                   R                  U R                  X#5        g U R                   b  U R                  5         Uc  g [        R
                  " XR                  SSS9nUR                  X#USS9nXl         X@l        XPl        UR                  SU R                  5        g )N   raised)textborderwidthreliefnw)windowanchorz<ButtonPress>)rU   coordsrW   detachtkinterLabelrT   create_windowrV   r   press)r"   rU   r3   r4   rV   rW   s         r   attachIcon.attach   s    [[ KKtww-;;"KKM>f99*+H>!!!uT!B


?DJJ/r   c                     U R                   nUc  g U R                  nU R                  nS =U l         =U l        U l        UR                  U5        UR	                  5         g r   )rU   rW   rV   deletedestroy)r"   rU   rW   rV   s       r   rc   Icon.detach   sO    >WW

-111dj47br   c                     [        X5      (       aU  UR                  U l        UR                  U l        U R
                  R                  U R                  5      u  U l        U l	        g g r   )
r   r3   x_offr4   y_offrU   rb   rW   x_origy_origr>   s     r   rg   
Icon.press   sI    T!!DJDJ'+{{'9'9$'''B$DK "r   c                     U R                  U R                  U5      u  p#U R                  R                  U R                  X#5        g r   )whererU   rb   rW   )r"   r	   r3   r4   s       r   move	Icon.move   s0    zz$++u-477A)r   c                 z    U R                   R                  U R                  U R                  U R                  5        g r   )rU   rb   rW   rq   rr   )r"   s    r   putbackIcon.putback   s$    477DKK=r   c                     UR                  5       nUR                  5       nUR                  U-
  nUR                  U-
  nXPR                  -
  X`R
                  -
  4$ r   )winfo_rootxwinfo_rootyr+   r,   ro   rp   )r"   rU   r	   x_orgy_orgr3   r4   s          r   ru   
Icon.where   sQ    ""$""$LL5 LL5 ::~q::~--r   c                     g r   rO   )r"   r   r	   s      r   rG   Icon.dnd_end	  s    r   )rU   rW   rV   rT   ro   rq   rp   rr   N)
   r   )rJ   rK   rL   rM   r$   rh   rc   rg   rv   ry   ru   rG   rN   rO   r   r   rQ   rQ      s+    20 C*>.r   rQ   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
Testeri  c                     [         R                  " U5      U l        [         R                  " U R                  SSS9U l        U R                  R                  SSS9  U R                  U R                  l        g )Nd   )widthheightbothr;   )fillexpand)rd   TopleveltopCanvasrU   packr.   r'   s     r   r$   Tester.__init__  sS    ##D)nnTXXSEfQ/!%r   c                     U $ r   rO   r"   r   r	   s      r   r.   Tester.dnd_accept  s    r   c                 @   U R                   R                  5         UR                  U R                   U5      u  p4UR                   R                  UR                  5      u  pVpxXu-
  X-
  pU R                   R                  X4X9-   XJ-   5      U l        U R                  X5        g r   )rU   	focus_setru   bboxrW   create_rectangledndidr0   )r"   r   r	   r3   r4   x1y1x2y2dxdys              r   r2   Tester.dnd_enter  sy    ||DKK/++FII6B[[11!adC
&r   c                     UR                  U R                  U5      u  p4U R                  R                  U R                  5      u  pVpxU R                  R	                  U R                  X5-
  XF-
  5        g r   )ru   rU   r   r   rv   )	r"   r   r	   r3   r4   r   r   r   r   s	            r   r0   Tester.dnd_motion   sR    ||DKK/))$**5QT140r   c                     U R                   R                  5         U R                  R                  U R                  5        S U l        g r   )r   r   rU   rk   r   r   s      r   r1   Tester.dnd_leave%  s/    4::&
r   c                     U R                  X5        UR                  U R                  U5      u  p4UR                  U R                  X45        g r   )r1   ru   rU   rh   )r"   r   r	   r3   r4   s        r   rF   Tester.dnd_commit*  s6    v%||DKK/dkk1(r   )rU   r   r   N)rJ   rK   rL   rM   r$   r.   r2   r0   r1   rF   rN   rO   r   r   r   r     s     1'1

)r   r   c                     [         R                  " 5       n U R                  S5        [         R                  " U R                  SS9R                  5         [        U 5      nUR                  R                  S5        [        U 5      nUR                  R                  S5        [        U 5      nUR                  R                  S5        [        S5      n[        S5      n[        S	5      nUR                  UR                  5        UR                  UR                  5        UR                  UR                  5        U R                  5         g )
Nz+1+1Quit)commandr\   z+1+60z+120+60z+240+60ICON1ICON2ICON3)rd   TkgeometryButtonquitr   r   r   rQ   rh   rU   mainloop)r   t1t2t3i1i2i3s          r   testr   0  s    ::<DMM&NN49962779	BFFOOG	BFFOOI	BFFOOI	gB	gB	gBIIbiiIIbiiIIbiiMMOr   __main__)rd   __all__r   r   rQ   r   r   rJ   rO   r   r   <module>r      sV   L 
%
S* S*r: :z )  )F& zF r   