
    et                     \    d gZ ddlmZmZmZ  G d d       Z G d dej                        Zy)DockDrop   )QtCoreQtGui	QtWidgetsc                   F    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)r   zProvides dock-dropping methodsc                     || _         h d| _        | j                   j                  d       d | _        t	        |      | _        | j
                  j                          y )N>   topleftrightbottomcenterT)	dndWidgetallowedAreassetAcceptDropsdropAreaDropAreaOverlayoverlayraise_)selfr   s     =/usr/lib/python3/dist-packages/pyqtgraph/dockarea/DockDrop.py__init__zDockDrop.__init__   sF    "H%%d+&y1    c                 :    | j                   j                  |       y N)r   updater   areas     r   addAllowedAreazDockDrop.addAllowedArea   s      &r   c                 :    | j                   j                  |       y r   )r   discardr   s     r   removeAllowedAreazDockDrop.removeAllowedArea   s    !!$'r   c                 :    | j                   j                  |       y r   )r   resize)r   sizes     r   resizeOverlayzDockDrop.resizeOverlay   s    D!r   c                 8    | j                   j                          y r   )r   r   )r   s    r   raiseOverlayzDockDrop.raiseOverlay   s    r   c                     |j                         }t        |d      r"|j                  d      r|j                          y |j	                          y )N
implementsdock)sourcehasattrr)   acceptignore)r   evsrcs      r   dragEnterEventzDockDrop.dragEnterEvent   s6    iik3%#..*@IIK IIKr   c                 l   | j                   j                         | j                   j                         }}t        |d      r|j	                         n|j                         }|j                         }||z
  }|j                         }||z
  }t        ||||      }	|	dkD  rd| _	        ng||	k(  s||	k(  r|	|dz  kD  rd| _	        nM||	k(  s||	k(  r|	|dz  kD  rd| _	        n3||	k(  rd| _	        n&||	k(  rd| _	        n||	k(  rd| _	        n||	k(  rd| _	        |j                         | j                   u r'| j                  dk(  rd | _	        |j                          n@| j                  | j                  vrd | _	        |j                          n|j                          | j                  j                  | j                         y )	NposF   r      r   r
   r	   r   )r   widthheightr,   r3   positionxyminr   r+   r.   r   r-   r   setDropArea)
r   r/   r6   r7   r3   ldrdtdbdmns
             r   dragMoveEventzDockDrop.dragMoveEvent%   sm    ,,.0E0E0Gv#B/rwwyR[[]VVXRZVVXb[RR 7$DMBh"(VAX$DMBh"(U1W$DM2X#DM2X"DM2X!DM2X$DM99;$..(T]]h-F DMIIK]]$"3"33 DMIIK IIK  /r   c                 \    d | _         | j                  j                  | j                          y r   )r   r   r<   )r   r/   s     r   dragLeaveEventzDockDrop.dragLeaveEventN   s      /r   c                    | j                   }|y |dk(  rd}| j                  j                  j                  |j	                         || j                         d | _         | j
                  j                  | j                          y )Nr   above)r   r   r   moveDockr+   r   r<   )r   r/   r   s      r   	dropEventzDockDrop.dropEventR   sc    }}<8D$$RYY[$G  /r   N)__name__
__module____qualname____doc__r   r   r!   r%   r'   r1   rB   rD   rH    r   r   r   r      s3    ('("'0R00r   c                   "    e Zd ZdZd Zd Zd Zy)r   zAOverlay widget that draws drop areas during a drag-drop operationc                     t         j                  j                  | |       d | _        | j	                          | j                  t        j                  j                  j                         y r   )
r   QWidgetr   r   hidesetAttributer   QtWidgetAttributeWA_TransparentForMouseEvents)r   parents     r   r   zDropAreaOverlay.__init__a   sF    ""40		&))33PPQr   c                 t   || _         || j                          n| j                         j                         }t	        j
                  |      }t        dt        |j                         dz              }t        dt        |j                         dz              }| j                   dk(  r|j                  |       n| j                   dk(  r4|j                  |j                         |j                         z   |z
         n| j                   dk(  r|j                  |       nh| j                   dk(  r4|j                  |j                         |j                         z   |z
         n%| j                   dk(  r|j!                  ||| |        | j#                  |       | j%                          | j'                          y )Nr4   r5   r
   r   r	   r   r   )r   rQ   rV   rectr   QRectr;   intr6   r7   setWidthsetLeftr
   	setHeightsetTopr	   adjustsetGeometryshowr   )r   r   prgnrgnwhs         r   r<   zDropAreaOverlay.setDropAreag   s@   <IIK ;;=%%'D,,t$CBDJJL1,-.ABDKKMA-./A}}&Q')CHHJ59:%'a (*

3779t{{}4q89(*

1a!aR(S!IIKr   c           
         | j                   y t        j                  |       }| j                         }|j	                  t        j
                  t        j                  dddd                   |j                  t        j                  t        j                  ddd      d             |j                  |       |j                          y )Nd      2      r5   )r   r   QPainterrX   setBrushQBrushQColorsetPenQPendrawRectend)r   r/   prc   s       r   
paintEventzDropAreaOverlay.paintEvent   s    == NN4 iik	

5<<S#sB ?@A	ELLR5q9:	

3	r   N)rI   rJ   rK   rL   r   r<   rt   rM   r   r   r   r   ^   s    KR6	r   r   N)__all__rS   r   r   r   r   rP   r   rM   r   r   <module>rv      s1   , ) )T0 T0p-i'' -r   