
    %
i]                         d dl Z d dlZd dlZd dlZd dlmZmZ  ej        ej                  Z	 ej        ej
                  Zd Zd Zd Zd Z G d dej                  Zd	 Zd
 Zedk    r e             dS dS )    N)afxreswindowc                 ~    | d         | d         z
  }| d         | d         z
  }| d         |dz  z   | d         |dz  z   fS )N   r          )rectwidthheights      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\pythonwin/pywin/docking/DockingBar.pyCenterPointr      sK    Gd1gE!WtAwF7UaZa6Q;!666    c                 `    |\  }}| d         |z   | d         |z   | d         |z   | d         |z   fS Nr   r   r   r   r	   r
   pointxys       r   
OffsetRectr      :    FQ7Q;Q!T!Wq[$q'A+==r   c                 `    |\  }}| d         |z   | d         |z   | d         |z
  | d         |z
  fS r   r	   r   s       r   DeflateRectr      r   r   c                     | d         |d         cxk    o| d         k     nc o!| d         |d         cxk    o| d         k     nc S )Nr   r   r   r   r	   )r
   pts     r   PtInRectr   $   s]    7be%%%%d1g%%%%D$q'RU*D*D*D*DT!W*D*D*D*DDr   c                       e Zd ZddZd Zej        ej        z  ej	        z  dfdZ
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
DockingBarNc                    |t          j                    }t          j                            | |           d | _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        d| _        d| _        d| _        t          j                    | _        | j                            t'          j        t*          j                             d| _        t'          j        t*          j                  | _        t'          j        t*          j                  | _        t'          j        t*          j                  | _        d| _        d S )Nr   )    r    )   r!      r      r   r   r   r   ) win32uiCreateControlBarr   Wnd__init__dialog
nDockBarIDsizeMinsizeHorzsizeVert	sizeFloat	bTrackingbInRecalcNCcxEdgecxBorder	cxGripperCreateBrush	brushBkgdCreateSolidBrushwin32apiGetSysColorwin32conCOLOR_BTNFACEcyBorderGetSystemMetricsSM_CYSMCAPTIONcCaptionSizeSM_CXMIN	cMinWidthSM_CYMIN
cMinHeight
rectUndock)selfobjs     r   r(   zDockingBar.__init__)   s   ;*,,C
D#&&&  ! ,..''(<X=S(T(TUUU $5h6MNN!283DEE"3H4EFF&r   c                 .    |                      ||          S N)UpdateDialogControls)rD   targetbDisableIfNoHndlers      r   OnUpdateCmdUIzDockingBar.OnUpdateCmdUIB   s    ((1CDDDr   r	   c                    |t           j        z  r|t           j        z  r
J d            dx| _        x| _        x| _        | _        |t           j        z  | j        _	        t          j        dt          j                  }t          j        t          j        || j                                        d          }| j                            |||d||            || f|z    | _        | j                                        sJ d|z              | j                                        }	|	d         |	d         z
  |	d         |	d         z
  fx| _        x| _        | _        | j        d         | j        d         | j        z   | j        z   f| _        | j        d         | j        z   | j        z   | j        d         f| _        |                                  d S )NzInvalid styler$   r   z5The childCreator function %s did not create a window!r   r   r   )r   CBRS_SIZE_FIXEDCBRS_SIZE_DYNAMIC	rectClose
rectBorderrectGripperrectTrackerCBRS_ALL_obj_dwStyler7   
LoadCursorr9   	IDC_ARROWr%   RegisterWndClass
CS_DBLCLKSr5   GetSafeHandleCreateWindowr)   IsWindowGetWindowRectr,   r-   r.   r1   r2   HookMessages)
rD   parentchildCreatortitleidstylechildCreatorArgscursorwndClassr
   s
             r   r[   zDockingBar.CreateWindowE   s    V++	27&:R2R	 		 	 
R
 	
 	
 	
4+;d>N #V_4
$Q(:;;+)E)E)G)G
 
 	
%fbQQQ #lTG.>$>? {##%% 	
 	
ClR	
 	
% {((**Gd1gGd1g:
 	
 	

 a($-*:T[*H4=*XXa(4;6FVWHXXr   c                    | j                             t          j                                                  }| j                             t          j                                                  }|rd}d}n(|d         |d         z
  dz   }|d         |d         z
  dz   }|                                 r| j        S |r|| j        d         fS | j	        d         |fS )Ni  r   r      r   r   )
dockSiteGetControlBarr   AFX_IDW_DOCKBAR_TOPr]   AFX_IDW_DOCKBAR_LEFT
IsFloatingr.   r,   r-   )rD   bStretchbHorzrectToprectLeftnHorzDockBarWidthnVertDockBarHeights          r   CalcFixedLayoutzDockingBar.CalcFixedLayouts   s    ---&
 

-// 	 =..'
 

-// 	  	? %!& '
WQZ 7! ;!)!x{!:Q!>?? 	">! 	7$dmA&666}Q!333r   c                 <
   |                                  rD|                                                                                     t          j        d           |t          j        t          j        z  z  rt          j        t          j	        z  t          j
        z  t          j        z  t          j        z  }|                     dd|           | j                                         | j                            ||          S |t          j        z  r| j        S |t          j        z  r|| j        d         f| _        | j        S |                                  r^| j        }t-          j                    }|                                                                                                 }|j        }|t          j        k    rt7          |d         |d         z
  | j                  | j        z
  }t7          |d         | j        z
  |d         z
  | j                  dz
  }	||	f| _        tA          |d         |d         | j        z
  | j        z
            | j!        z
  }
tA          |d         |d         | j        z
            dz
  }||
|j"        d         |j"        d         f|_"        | j        S |t          j#        k    rt7          |d         |d         z
  | j                  }t7          |d         | j        z
  |d         z
  | j                  dz
  }	||	f| _        tA          |d         |d         | j        z
  | j        z
            | j!        z
  }
|j"        d         |
|j"        d         |j"        d         f|_"        | j        S |t          j$        k    rt7          |d         |d         z
  | j                  | j        z
  }t7          |d         |d         z
  | j        z
  | j                  }	||	f| _        tA          |d         |d         | j        z
            dz
  }||j"        d         |j"        d         |j"        d         f|_"        | j        S |t          j%        k    r`t7          |d         |d         z
  | j                  }t7          |d         |d         z
  | j        z
  | j                  }	||	f| _        | j        S |t          j&        z  r4| j        d         t7          | j'        d         |          f| _        | j        S t7          | j'        d         |          | j        d         fS )Nr   r$   r   r   r   )(rm   	GetParentModifyStyler%   MFS_4THICKFRAMELM_HORZDOCKLM_VERTDOCKr9   
SWP_NOSIZE
SWP_NOMOVESWP_NOZORDERSWP_NOACTIVATESWP_FRAMECHANGEDSetWindowPosri   RecalcLayoutrT   CalcDynamicLayoutLM_MRUWIDTHr.   	LM_COMMITdockContextr7   GetCursorPosr]   nHitTest	HTTOPLEFTmaxr@   r2   r>   rB   minr;   rectFrameDragHorz
HTTOPRIGHTHTBOTTOMLEFTHTBOTTOMRIGHT
LM_LENGTHYr+   )rD   lengthmodeflagsdcr   
windowRecthittestcxcytoplefts               r   r   zDockingBar.CalcDynamicLayout   s   ?? 	QNN&&((44W5LaPPP7&)<<= 	>#%&'( )* +	,   	 	 	 M&&(((://==='%% 	">!'## 	"#T^A%66DN>!?? :	&!B&((B))3355CCEEJkG(,,,AA.??$-OA)::RUBDOTTWXX!#R 1z!}t/@@4?RSSm$  2a5*Q-$."@AAAE(+(+	($ ~%(---AA.??A)::RUBDOTTWXX!#R 1z!}t/@@4?RSSm$ 
 (+(+(+	($ ~%(///AA.??$-OAA.1BBDOTT!#R2a5*Q-$."@AAAE(+(+(+	($ ~%(000AA.??AA.1BBDOTT!#R~%'$$ 	C!^A.DLOV0L0LLDN>!t|A//1BBBr   c                     |                                  dk    s| j        dS |d         }	 d}t          j        |t	          j        |                    }t	          j        ||          \  }}}}}	}
}| j        r0|                                 }| j        	                    |           dS | 
                                                                }|| j        k    r8|t          j        z  r)| j        j        t"          j        z  t"          j        k    rd S || _        d| _        	 t          j        t          j        z  t          j        z  t          j        z  }|                     dd|           d| _        n# d| _        w xY wdS )Nr   r   PPiiiiir   r$   )GetSafeHwndr)   r%   GetBytesstructcalcsizeunpackr0   GetClientRect
MoveWindowrv   GetDlgCtrlIDr*   r9   r{   rT   rU   r   CBRS_BORDER_ANYr|   r}   r   r   )rD   msglparamformatbyteshwnd	hwndAfterr   r   r   r   r   rcr*   swpflagss                  r   OnWindowPosChangedzDockingBar.OnWindowPosChanged   s   ""dk&91Q		  )@)@AA/5}VU/K/K,iAr2u 	##%%BK""2&&&1^^%%2244
 4?**,, + #f&<<AWWW F$ 		!#%&'( +,  ax888 DqD    qs    A
E2 2	E;c                 Z   |t           j        k    s| j        r| j                            |||          S |                                 r2t          j        t          j        dt           j	                             n1t          j        t          j        dt           j
                             dS Nr   r   )r9   HTSIZEr/   rT   OnSetCursorIsHorzr7   	SetCursorrV   
IDC_SIZENS
IDC_SIZEWE)rD   r   r   	wMouseMsgs       r   r   zDockingBar.OnSetCursor  s    x&&$.&:))&(IFFF;;== 	Lx21h6IJJKKKKx21h6IJJKKKqr   c                 B    | j         sdS |                     d           dS Nr   r   )r/   StopTrackingrD   r   s     r   OnLButtonUpzDockingBar.OnLButtonUp&  s*    ~ 	1!qr   c                     | j         9|d         }|                     |          }| j                            |           dS dS )N   r   r   )dockBarClientToScreenr   	StartDrag)rD   r   r   s      r   OnLButtonDownzDockingBar.OnLButtonDown,  sI     <#QB$$R((B&&r***1qr   c                 V   | j         rdS |d         x}}|d         }|t          j        k    r>|                                 s*|                                                     | dd           n|t          j        k    r.|                                 s| j                                         n|t          j	        k    r6|                                 s"| j
        | j                            |           n;|t          j        k    r)|                                 s|                                  ndS dS )Nr   r   r   r   )r/   r9   	HTSYSMENUrm   GetDockingFrameShowControlBarHTMINBUTTONr   ToggleDocking	HTCAPTIONr   r   r   StartTracking)rD   r   r   wparamr   s        r   OnNcLButtonDownzDockingBar.OnNcLButtonDown7  s   > 	1F"6Vx)))$//2C2C)  ""11$1====---doo6G6G-**,,,,***OO%% +(&&r****((1B1B(    1qr   c                 J    | j         | j                                         dS dS r   )r   r   r   r   s     r   OnLButtonDblClkzDockingBar.OnLButtonDblClkM  s)    <#**,,,1qr   c                 ~    |d         x}}| j         +|t          j        k    r| j                                         dS dS )Nr   r   r   )r   r9   r   r   r   )rD   r   r   r   s       r   OnNcLButtonDblClkzDockingBar.OnNcLButtonDblClkU  sD    F"6<#H4F(F(F**,,,1qr   c                 $   |d         x}}|d         }|                                  s| j        sdS t          j        |          }|dz  r|dz  }t          j        |          }|dz  r|dz  }||f}t          | j                  }|                     |          }|                                 rr|d         |d         k    r_| 	                    | j                   t          | j        d|d         |d         z
  f          | _        | 	                    | j                   nq|d         |d         k    r_| 	                    | j                   t          | j        |d         |d         z
  df          | _        | 	                    | j                   dS )Nr   r   r   i   i  r   )rm   r/   r7   LOWORDHIWORDr   rR   ClientToWndr   OnInvertTrackerr   )	rD   r   r   r   r   r   r   r   cpts	            r   OnMouseMovezDockingBar.OnMouseMove^  s   QQ?? 	DN 	1 OF##u9 	KAOF##u9 	KAT$*++b!!;;== 		71vA$$T%5666#-d.>BqECPQFN@S#T#T $$T%56661vA$$T%5666#-d.>AQQR@S#T#T $$T%5666qr   c                    |\  }}}}|                                  | _        t          | j        | j        d          | j        d          f          | _        | j        j        t
          j        z  }| j        t
          j        k    r|t
          j	         z  }|xj
        | j        z  c_
        |xj        | j        z  c_        |xj        | j        z  c_        |xj        | j        z  c_        | j        d         | j        d         | j        z
  | j        d         | j        d         f| _        n3| j        t
          j        k    r|t
          j         z  }|xj
        | j        z  c_
        |xj        | j        z  c_        |xj        | j        z  c_        |xj        | j        z  c_        | j        d         | j        d         | j        d         | j        d         | j        z   f| _        ny| j        t
          j        k    r|t
          j         z  }|xj        | j        z  c_        |xj
        | j        z  c_
        |xj        | j        z  c_        |xj        | j        z  c_        | j        d         | j        z
  | j        d         | j        d         | j        d         f| _        n| j        t
          j        k    r|t
          j         z  }|xj
        | j        z  c_
        |xj        | j        z  c_        |xj        | j        z  c_        |xj        | j        z  c_        | j        d         | j        d         | j        d         | j        z   | j        d         f| _        nd| _        |                     |           dS )Nr   r   r   r   r$   )r]   rP   r   rT   rU   r   r   r*   rk   CBRS_BORDER_BOTTOMr   r3   bottomr1   r   r2   rightAFX_IDW_DOCKBAR_BOTTOMCBRS_BORDER_TOPrl   CBRS_BORDER_RIGHTAFX_IDW_DOCKBAR_RIGHTCBRS_BORDER_LEFTSetBarStyle)rD   
bCalcValid	size_inforc0rc1rc2posdwBorderStyles           r   OnNcCalcSizezDockingBar.OnNcCalcSize}  s   (c3,,..$Otq11DOA4F3FG
 
 
*V-CC?f888f777MHH&HHJJ$+%JJGGt}$GGII&II""T[0""	DOO _ ===f444MHH&HHGGt{"GGJJ$-'JJII&II""""T[0	DOO _ ;;;f666MII$IIHH%HHJJ$-'JJGGt~%GG"T[0"""	DOO _ <<<f555MHH#HHII&IIJJ$-'JJGGt~%GG"""T[0"	DOO )DO'''qr   c                    |                                   |                                 }t          j        t          j                  }t          j        t          j                  }|                    | j        ||           | 	                    |           | 
                                }|                     |d           dS r   )EraseNonClientGetWindowDCr7   r8   r9   COLOR_BTNHIGHLIGHTCOLOR_BTNSHADOW
Draw3dRectrP   DrawGripperr   InvalidateRect)rD   r   r   ctlcbrr
   s         r   	OnNcPaintzDockingBar.OnNcPaint  s    "8#>??"8#;<<
dosC000!!##D!$$$qr   c                    |                                  rdS |}|                                 }|d         |d         z
  |d         |d         z
  f}t          | j        |          rt          j        S t          | j        |          rt          j        S t          | j        |          rt          j	        S t          | j
        |          rt          j        S | j                            |          S r   )rm   r]   r   rO   r9   r   rC   r   rQ   r   rP   r   rT   OnNcHitTest)rD   r   ptOrigr
   s       r   r   zDockingBar.OnNcHitTest  s    ?? 	1!!##UT!W_bed1go-DNB'' 		2%%dor** 	2''d&++ 	2%%dor** 	2?":))&111r   c                    |                                   |                     d d t          j        t          j        z             | j                                         t          | j                  | _	        d| _
        | j        | _        |                                 s| j        \  }}}}|dz  }||||f| _        |                     | j                   d S )Nr   rh   )
SetCaptureRedrawWindowr9   RDW_ALLCHILDRENRDW_UPDATENOWri   LockWindowUpdater   rP   ptOldr/   rR   r   r   )rD   ltrbs        r   r   zDockingBar.StartTracking  s     	$h&>AW&WXXX&&((( 11
?{{}} 	*)JAq!QFA !QzDT-.....r   c                     |d         x}}| j         r-||                                 k    r|                     d           dS )Nr   r   r   )r/   r   r   )rD   r   r   r   s       r   OnCaptureChangedzDockingBar.OnCaptureChanged  sI    Av> 	!dd&6&6&8&888a   qr   c                 H   |                      | j                   | j                                         d| _        |                                  |sd S | j                                        }|                                 r/| j        d         }||d         |d         z
  z   }| j	        d         }n.| j
        d         }||d         |d         z
  z   }| j	        d         }t          | j                  }| j        t          j        k    r||d         | j        d         z
  z  }n| j        t          j        k    r||d          | j        d         z   z  }n^| j        t          j        k    r||d         | j        d         z
  z  }n/| j        t          j        k    r||d          | j        d         z   z  }t'          |t)          ||                    }|                                 r| j        d         |f| _        n|| j
        d         f| _
        | j                                         dS )Nr   r   r   r   )r   rR   ri   UnlockWindowUpdater/   ReleaseCapturer]   r   r,   r+   r-   r   r*   r   rk   r   r   rl   r   r   r   r   )rD   bAcceptrccnewsizemaxsizeminsizer   s          r   r   zDockingBar.StopTracking  s   T-...((*** 	Fm))++;;== 	&mA&GQ#a&1Gl1oGGmA&GQ#a&1Gl1oG)**?f888r!utz!},,GG_ ===1v
1--GG_ ;;;r!utz!},,GG_ <<<1v
1--Ggs7G4455;;== 	6 M!,g5DMM#T]1%55DM""$$$qr   c                 h   |d         |d         z
  dk    r|d         |d         z
  dk    s
J d            | j         sJ |                                 }| j                                        }t          ||d         |d         z
  |d         |d         z
  f          }t	          |d          }t
          j        t
          j        z  t
          j        z  }| j        	                    d |          }	 t          j                    }|                    |          }|                    |d         |d         f|d         |d         z
  |d         |d         z
  ft
          j                   |                    |           | j                            |           d S # | j                            |           w xY w)Nr   r   r   r   zrect is empty)r   r   )r/   r]   ri   r   r   r9   
DCX_WINDOW	DCX_CACHEDCX_LOCKWINDOWUPDATEGetDCExr%   GetHalftoneBrushSelectObjectPatBlt	PATINVERT	ReleaseDC)rD   r
   r  rcfr   r   brusholdBrushs           r   r   zDockingBar.OnInvertTracker  s   Awa 1$$a47):Q)>)>)>)>)>>~~  ""m))++$Q#a&#a&3q6/ BCC4((#h&888;XX]""4//	(,..Eu--HIIa$q'"a47"DGd1g$56"  
 OOH%%%M##B'''''DM##B''''s   -BF F1c                 V    | j         t          j        k    p| j         t          j        k    S rG   )r*   r   rk   r   rD   s    r   r   zDockingBar.IsHorz/  s'    Ov99 @&"??	
r   c                     |\  }}| j         t          j        k    r|| j        z  }n| j         t          j        k    r
|| j        z  }||fS rG   )r*   r   r   r1   r   )rD   r   r   r   s       r   r   zDockingBar.ClientToWnd5  sN    1?f;;;AA_ <<<A!tr   c                 v   | j         j        t          j        z  rd S | j                                         |                                 }|                     |          }t          ||d          |d          f          }|\  }}}}| j         j        t          j	        z  r||dz   |dz   |f| _
        |dz   |dz   |dz   |dz   f| _        |                    | j        t          j        t          j                   t          | j        d	          | _        |                    | j        t          j        t          j                   |d
z  }|dz  }|dz  }|dz   }||||f}|                    |t&          t(                     |                    t          |d          t&          t(                     d S |||dz
  |dz   f| _
        |dz
  |dz   |dz
  |dz   f| _        |                    | j        t          j        t          j                   t          | j        d          | _        |                    | j        t          j        t          j                   |d
z  }|dz  }|dz  }|dz   }||||f}|                    |t&          t(                     |                    t          |d          t&          t(                     d S )Nr   r   (   r#      
         )r      &   r   )rh   r         )ir   )r   rh   )rT   rU   r   CBRS_FLOATINGri   r   r]   ScreenToClientr   CBRS_ORIENT_HORZrQ   rO   DrawFrameControlr9   DFC_CAPTIONDFCS_CAPTIONCLOSErC   DFCS_CAPTIONMAXr   clrBtnHilightclrBtnShadow)rD   r   gripperglgtgrgbs          r   r   zDockingBar.DrawGripper=  s   : 44 	F
 	""$$$ $$&&%%g..W
{WQZK&@AA BB: 77 )	T!27BGR7D!VR"Wb2grBw>DN 4h6P   )AADO!5x7O   "HB"HB"HBaB"b"nGMM'=,???MM*Wf55}lSSSSS  "2rBwR7D"Wb1fb2grBw>DN 4h6P   )BBDO!5x7O   "HB"HB"HBaB"b"nGMM'=,???MM*Wf55}lSSSSSr   c                    |                      | j        t          j                   |                      | j        t          j                   |                      | j        t          j                   |                      | j        t          j	                   |                      | j
        t          j                   |                      | j        t          j                   |                      | j        t          j                   |                      | j        t          j                   |                      | j        t          j                   d S rG   )HookMessager   r9   WM_LBUTTONUPr   WM_LBUTTONDOWNr   WM_LBUTTONDBLCLKr   WM_NCLBUTTONDOWNr   WM_NCLBUTTONDBLCLKr   WM_MOUSEMOVEr   
WM_NCPAINTr  WM_CAPTURECHANGEDr   WM_WINDOWPOSCHANGEDr  s    r   r^   zDockingBar.HookMessagesx  s   )8+@AAA+X-DEEE-x/HIII-x/HIII/1LMMM)8+@AAA)<===.0JKKK0(2NOOOOOr   rG   ) __name__
__module____qualname__r(   rK   r9   WS_CHILD
WS_VISIBLEr   	CBRS_LEFTr[   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r^   r	   r   r   r   r   (   s       ' ' ' '2E E E ("558HH, , , ,\4 4 4(_C _C _CB0 0 0f    	 	 	  ,      >= = =~  2 2 2&/ / /$  ! ! !F( ( (0
 
 
  9T 9T 9Tv	P 	P 	P 	P 	Pr   r   c                     t          j                    }t          j        t          j        z  t          j        z  t          j        z  t          j        z  }|                    |d| d           |S )N)r   r      rF  i  )	r%   
CreateEditr9   rB  rC  	WS_BORDERES_MULTILINEES_WANTRETURNr[   )r_   dess      r   EditCreatorrM    sk    A

	

	 
	  
 		!  NN2'666Hr   c                     t                      } t          }|                     t          j                    |dd           |                     |                                 t          j        z  t          j	        z  t          j
        z             |                     t          j                   t          j                                        | t          j                   d S )NzCoolbar Demoi )r   rM  r[   r%   GetMainFramer   GetBarStyler   CBRS_TOOLTIPS
CBRS_FLYBYrN   EnableDockingCBRS_ALIGN_ANYDockControlBarr   )barcreators     r   testrX    s    
,,CGW)++WngNNNOO

	

	 
"	#   f+,,,))#v/LMMMMMr   __main__)r   r7   r9   r%   	pywin.mfcr   r   r8   COLOR_BTNHILIGHTr-  r   r.  r   r   r   r   r'   r   rM  rX  r?  r	   r   r   <module>r\     s.       $ $ $ $ $ $ $ $$$X%>??#x#H$<==7 7 7> > >
> > >
E E EY	P Y	P Y	P Y	P Y	P Y	P Y	P Y	P~
 
 
N N N zDFFFFF r   