
    i                     "   S SK r S SKrS SK JrJrJrJrJrJrJrJ	r	J
r
JrJrJr  S SKJrJrJrJrJrJrJrJr  \" \5      rS SKrSSKJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'  \ RP                  " SSS9r) " S	 S
\5      r*\" \\\\" \*5      5      r+\)RX                  r-\\-l.        \)R^                  r/\\/l.        \)R`                  r0\/\0l1        \\0l.        \)Rd                  r3\\\\/\3l1        \\3l.        \)Rh                  r4\/\4l1        \\4l.        \)Rj                  r6\/\6l1        Sr7Sr8Sr9Sr:Sr;Sr<Sr=Sr>Sr?Sr@SrASrBSrCSrDSrESrFSrGSrHSr8Sr9Sr7SrASrHSr;Sr<\8\#\4\9\"\4\:\$\4\;\#\4\<\"\4\=\$\4\>\#\4\?\"\4\@\$\4\B\#\ 4\C\"\ 4\D\$\ 40rISrJSrKSrLSrMS rNS!rOS"rPS#rQS$rRS%rSS&rTS'rU\%\&4\M\%\'4\L\#\4\N\"\4\O\#\4\P\"\4\Q\#\4\R\"\4\S\#\ 4\T\"\ 4\U0
rV\" S 5      rWS(rXS) rYS* rZS+ r[\4S, jr\\4S- jr]S6S. jr^S/ r_S0 r` " S1 S2\5      raS3 rb\cS4:X  a  S5 rd\Z" \d5        gg)7    N)c_shortc_charc_uint8c_int32c_intc_uintc_uint32c_longbyref	Structure	CFUNCTYPEPOINTER)DWORDBOOLHHOOKMSGLPWSTRWCHARWPARAMLPARAM   )ButtonEvent
WheelEvent	MoveEventLEFTRIGHTMIDDLEXX2UPDOWNDOUBLEWHEEL
HORIZONTALVERTICALuser32T)use_last_errorc                   <    \ rS rSrS\4S\4S\4S\4S\4S\4/rSr	g	)
MSLLHOOKSTRUCT   xydatareservedflagstime N)
__name__
__module____qualname____firstlineno__r
   r   r   r   _fields___static_attributes__r1       V/home/kali/github-search/github-env/lib/python3.13/site-packages/keyboard/_winmouse.pyr)   r)      s6    ff!W%% Hr8   r)   i   i  i  i  i  i  i  i  i  i	  i
  i  i  i           i  i   i   i            r*       @         x   c                      g Nr1   r1   r8   r9   <lambda>rG      s    tr8   c                 `  ^  U 4S jn[        S5      n[        U5      n[        X#[        [        5      n[        R
                  " [        U5        [        5       n[        U[        [        [        5      (       d8  [        U5        [        U5        [        U[        [        [        5      (       d  M7  g g )Nc                   > UR                   n[        R                  " 5       nU[        :X  a"  [        UR                  UR
                  U5      nO}U[        :X  a!  [        UR                  [        S-  -  U5      nORU[        ;   aH  [        R                  US5      u  pgU[        :  a  [        [        S.UR                     n[        XgU5      nTR!                  W5        [#        [$        XU5      $ )N   )?rK   )rJ      )contentsr0   WM_MOUSEMOVEr   r+   r,   WM_MOUSEWHEELr   r-   WHEEL_DELTAbuttons_by_wm_codegetWM_XBUTTONDOWNr   r   r   putCallNextHookExNULL)	nCodewParamlParamstructteventtypebuttonqueues	           r9   low_level_mouse_handler'listen.<locals>.low_level_mouse_handler   s    IIK\!fhh!4E}$v{{kU.CDaHE))-11&*ELD'#$r26;;?a0E		%dE6::r8      )r   LowLevelMouseProcSetWindowsHookExrV   atexitregisterUnhookWindowsHookExLPMSG
GetMessageTranslateMessageDispatchMessage)r_   r`   WH_MOUSE_LLmouse_callback
mouse_hookmsgs   `     r9   listenrp      sx    ;$ )K&'>?N!+tTJJ OO'4
'CdD$// dD$//r8   c                 `    U [         :X  d
  U [        :X  a  [         [         S[        S0U    4$ U S4$ )NrJ   rL   r   )r   r   )r^   s    r9   _translate_buttonrr      s2    {fl1gr7+F333qyr8   c                 n    [        U 5      u  p[        [        U 4   n[        R	                  USSUS5        g Nr   )rr   simulated_mouse_codesr!   r&   mouse_eventr^   r-   codes      r9   pressry      s2    $V,LF $0D
tQ4+r8   c                 n    [        U 5      u  p[        [        U 4   n[        R	                  USSUS5        g rt   )rr   ru   r    r&   rv   rw   s      r9   releaser{      s2    $V,LF "f.D
tQ4+r8   c           	      |    [         [        [        4   n[        R	                  USS[        U [        -  5      S5        g rt   )ru   r#   r%   r&   rv   intrP   )deltarx   s     r9   wheelr      s1     %!23D
tQ3u{':#;Q?r8   c                 T    [         R                  [        U 5      [        U5      5        g rF   )r&   SetCursorPosr}   r+   r,   s     r9   move_tor      s    
AA'r8   c                 b    [         R                  [        [        U 5      [        U5      SS5        g rt   )r&   rv   MOUSEEVENTF_MOVEr}   r   s     r9   move_relativer      s!    
'QQA>r8   c                   $    \ rS rSrS\4S\4/rSrg)POINT   r+   r,   r1   N)r2   r3   r4   r5   r
   r6   r7   r1   r8   r9   r   r      s    fV}-Hr8   r   c                      [        5       n [        R                  [        U 5      5        U R                  U R
                  4$ rF   )r   r&   GetCursorPosr   r+   r,   )points    r9   get_positionr      s.    GE
e%GGUWWr8   __main__c                     [        U 5        g rF   )print)es    r9   pr      s	    ar8   )r   )ectypesr0   r   r   r   r   r   r   r	   r
   r   r   r   r   ctypes.wintypesr   r   r   r   r   r   r   r   rh   re   _mouse_eventr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   WinDLLr&   r)   rc   SetWindowsHookExArd   restyperU   rg   argtypesGetMessageWri   rj   DispatchMessageArk   rN   WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLKWM_RBUTTONDOWNWM_RBUTTONUPWM_RBUTTONDBLCLKWM_MBUTTONDOWNWM_MBUTTONUPWM_MBUTTONDBLCLKrO   rS   WM_XBUTTONUPWM_XBUTTONDBLCLKWM_NCXBUTTONDOWNWM_NCXBUTTONUPWM_NCXBUTTONDBLCLKWM_MOUSEHWHEELrQ   MOUSEEVENTF_ABSOLUTEr   MOUSEEVENTF_WHEELMOUSEEVENTF_HWHEELMOUSEEVENTF_LEFTDOWNMOUSEEVENTF_LEFTUPMOUSEEVENTF_RIGHTDOWNMOUSEEVENTF_RIGHTUPMOUSEEVENTF_MIDDLEDOWNMOUSEEVENTF_MIDDLEUPMOUSEEVENTF_XDOWNMOUSEEVENTF_XUPru   rV   rP   initrp   rr   ry   r{   r   r   r   r   r   r2   r   r1   r8   r9   <module>r      s?     { { { { R R R  H  H  H  H 
x$	7Y  eVVW^5LM ++    && 00  %w  "  
eUE2
 
 ** "G    ))!7         T4L2t*vtnT5M2u+vuoT6N2v,vv&T1I2q'vqk $             J+
H(	4L&J"	5M(K$	6N*L&	1I G_ " Qx@  ,
  ,
@(?.I .
 z
1I r8   