
     ft=                     >   d dl Z d dlZ	 d dlZn#  J d            xY wd dlZd dlZd dlmZmZmZ ej        dk    r e	d          	  e
d ej        D                       Ze                    i dd d	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(i d)d*d+d*d,d-d.d-d/d0d1d0d2d3d4d3d5d6d7d6d8d9d:d9d;d<d=d<d>d?d@d?dAdBi dCdBdDdEdFdEdGdHdIdHdJdKdLdKdMdNdOdNdPdQdRdSdTdUdVdUdWdXdYdZd[d\d]d^i d_d`dad`dbdcdddedfdedgdhdidhdjdkdldkdmdndodndpdqdrdsdtdudvdudwdxdydxi dzd{d|d{d}d~dd~dd~dd~ddddddddddddddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddÓddœddǓddɓdd˓dd͓ddϓddϓddғdddddddddddddddߜ           	 dD ]Zee         ee                                <    i dd dd
dddddddddddddddddddddddd dd"dd$dd&d(d*d-d0d3d6d9dZd Zd Zd Zd Zd Zd ZddZ	 ddZddZd Zd Zd Zdad  ZddZd Z d Z!d Z"dS (      NFzfYou must first install pyobjc-core and pyobjc: https://pyautogui.readthedocs.io/en/latest/install.html)LEFTMIDDLERIGHTdarwinzAThe pyautogui_osx module should only be loaded on an OS X system.c                     g | ]}|d fS N ).0keys     [/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/pyautogui/_pyautogui_osx.py
<listcomp>r      s    CCCdCCC    as   d   f   h   g   z   x   c   v	   b   q   w   e   r   y   t   1   !2   @3   #4   $6   ^5   %=   +9   (7   &-   _8   *0   )]   }o   u    [!   {i"   p#   l%   j&   ''   "k(   ;)   :\*   |,+   </,   ?n-   m.   ./   >`2   ~ 1   space$   
enterreturn	0   tab	backspace3   esc5   escapecommand7   shift8   	shiftleftcapslock9   option:   
optionleftaltaltleftctrl;   ctrlleft
shiftright<   optionright=   	ctrlright>   fn?   f17@   volumeupH   
volumedownI   
volumemuteJ   f18O   f19P   f20Z   f5`   f6a   f7b   f3c   f8d   f9e   f11g   f13i   f16j   f14k   f10m   f12o   f15q   helpr   homes   pageupt   pgupdelu   v   w   x   y   z   {   |   }   ~   ]   f   h   )deletef4endf2pagedownpgdnf1leftrightdownupyeneisukanaabcdefghijklmnopqrstuvwxyzKEYTYPE_SOUND_UPKEYTYPE_SOUND_DOWNKEYTYPE_BRIGHTNESS_UPKEYTYPE_BRIGHTNESS_DOWNKEYTYPE_CAPS_LOCKKEYTYPE_HELP	POWER_KEYKEYTYPE_MUTEUP_ARROW_KEYDOWN_ARROW_KEYKEYTYPE_NUM_LOCK
   KEYTYPE_CONTRAST_UPKEYTYPE_CONTRAST_DOWNKEYTYPE_LAUNCH_PANELKEYTYPE_EJECTKEYTYPE_VIDMIRRORKEYTYPE_PLAY)KEYTYPE_NEXTKEYTYPE_PREVIOUSKEYTYPE_FASTKEYTYPE_REWINDKEYTYPE_ILLUMINATION_UPKEYTYPE_ILLUMINATION_DOWNKEYTYPE_ILLUMINATION_TOGGLEc                     | t           vst           |          d S | t          v rt          | d           d S t          | d           d S )Nr   keyboardMappingspecial_key_translate_table_specialKeyEvent_normalKeyEventr   s    r   _keyDownr     sT    
/!!_S%9%A
)))f%%%%%V$$$$$r   c                     | t           vst           |          d S | t          v rt          | d           d S t          | d           d S )Nr   r  r  s    r   _keyUpr     sT    
/!!_S%9%A
)))d#####T"""""r   c                 X   |dv s
J d            	 t          j        |           rt          |                                          }t	          j        d t          d         |dk              }t	          j        t          j        |           t          j	        t           j
                   nt          |          }t	          j        d ||dk              }t	          j        t          j        |           t          j	        t           j
                   d S # t          $ r t          d| z            w xY w)Nr   r   &upDown argument must be 'up' or 'down'r   r   zKey %s not implemented.)	pyautoguiisShiftCharacterr  lowerQuartzCGEventCreateKeyboardEventCGEventPostkCGHIDEventTaptimesleepDARWIN_CATCH_UP_TIMEKeyErrorRuntimeError)r   upDownkey_codeevents       r   r  r     s   ^###%M###>%c** 
	,&syy{{3H5d'0&F2BD DEv4e<<<Jy56666 's+H1$&FBRSS60%888
9122222
  > > >4<===>s   C:D D)c                    |dv s
J d            t           |          }t          j                            t          j        d|dk    rdnddddd|d	z  |dk    rd
nddz  z  d	  	        }t	          j        d|                                           dS )z} Helper method for special keys.

    Source: http://stackoverflow.com/questions/11045814/emulate-media-key-press-on-mac
    r  r  )r   r   r   i 
  i   r   r   r-   r   r#   N)r  AppKitNSEvent]otherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_r  NSSystemDefinedr   CGEvent)r   r'  r(  evs       r   r  r    s    
 ^###%M###*3/H		u	u"v%%EE5^&(8(8ca GH


 


B q"**,,'''''r   c                      t           j                                        } t          | j                  t          t          j        d          | j        z
            fS Nr   )r,  r-  mouseLocationintr   r  CGDisplayPixelsHighr,   )locs    r   	_positionr8  '  sB    
.
&
&
(
(Csu::s65a8835@AAAAr   c                      t          j        t          j                              t          j        t          j                              fS r   )r  CGDisplayPixelsWideCGMainDisplayIDr6  r	   r   r   _sizer<  ,  s6    %f&<&>&>??A[\b\r\t\tAuAuuur   c                 (    t          | ||           d S r   )_vscroll)clicksr   r,   s      r   _scrollr@  1  s    VQr   c                    t          ||           t          |           } t          t          |           dz            D ]J}t	          j        d t          j        d| dk    rdnd          }t	          j        t          j        |           Kt	          j        d t          j        d| dk    r| dz  nd|  dz  z            }t	          j        t          j        |           d S )Nr   r   r   r+  	_moveTor5  rangeabsr  CGEventCreateScrollWheelEventkCGScrollEventUnitLiner   r!  r?  r   r,   rM   scrollWheelEvents        r   r>  r>  ;  s    AqMMM[[F3v;;"$%% D D!?)A++BB3	( (
 	602BCCCC;%	{{vgl(;	= =
 v,.>?????r   c           	         t          ||           t          |           } t          t          |           dz            D ]K}t	          j        d t          j        dd| dk    rdnd          }t	          j        t          j        |           Lt	          j        d t          j        dd| dk    r| dz  nd| z  dz            }t	          j        t          j        |           d S )Nr   r   r   rB  r+  rC  rI  s        r   _hscrollrL  N  s    AqMMM[[F3v;;"$%% D D!?)A++BB3( ( 	602BCCCC;%		1"2;+;> > v,.>?????r   c                 H   |t           k    r(t          t          j        | |t          j                   d S |t
          k    r(t          t          j        | |t          j                   d S |t          k    r(t          t          j	        | |t          j
                   d S J d            NFz2button argument not in ('left', 'middle', 'right'))r   _sendMouseEventr  kCGEventLeftMouseDownkCGMouseButtonLeftr   kCGEventOtherMouseDownkCGMouseButtonCenterr   kCGEventRightMouseDownkCGMouseButtonRightr   r,   buttons      r   
_mouseDownrX  c  s    ~~4aF<UVVVVV	6		5q!V=XYYYYY	55q!V=WXXXXXJJJJJr   c                 H   |t           k    r(t          t          j        | |t          j                   d S |t
          k    r(t          t          j        | |t          j                   d S |t          k    r(t          t          j	        | |t          j
                   d S J d            rN  )r   rO  r  kCGEventLeftMouseUprQ  r   kCGEventOtherMouseUprS  r   kCGEventRightMouseUprU  rV  s      r   _mouseUpr]  n  s    ~~2Aq&:STTTTT	6		3Q6;VWWWWW	53Q6;UVVVVVJJJJJr   c                 ,   |t           k    rNt          t          j        | |t          j                   t          t          j        | |t          j                   d S |t          k    rNt          t          j        | |t          j                   t          t          j	        | |t          j                   d S |t          k    rNt          t          j        | |t          j                   t          t          j        | |t          j                   d S J d            rN  )r   rO  r  rP  rQ  rZ  r   rR  rS  r[  r   rT  rU  r\  rV  s      r   _clickr_  y  s    ~~4aF<UVVV2Aq&:STTTTT	6		5q!V=XYYY3Q6;VWWWWW	55q!V=WXXX3Q6;UVVVVVJJJJJr   c                  "    t           da t           S )NF)_mouse_is_swapped_settingr	   r   r   _mouse_is_swappedrb    s    
 !($)!$$r           c                    d }d }d }|t           k    r%t          j        }t          j        }t          j        }nj|t
          k    r%t          j        }t          j        }t          j        }n:|t          k    r%t          j
        }t          j        }t          j        }n
J d            t          |          D ]'}t          | ||           t          j        |           (d S rN  )r   r  rQ  rP  rZ  r   rS  rR  r[  r   rU  rT  r\  rE  r_  r"  r#  )	r   r,   rW  numintervalbtnr   r   r^   s	            r   _multiClickrh    s    CDB~~(+)	6		*,*	5),*JJJJJ 3ZZ  q!V
8 r   c                 v    t          j        d | ||f|          }t          j        t           j        |           d S r   )r  CGEventCreateMouseEventr   r!  )r1  r   r,   rW  
mouseEvents        r   rO  rO    s8    /b1a&&IIJ
v,j99999r   c                    |t           k    r't          t          j        | |t          j                   nn|t
          k    r't          t          j        | |t          j                   n<|t          k    r't          t          j	        | |t          j
                   n
J d            t          j        t          j                   d S rN  )r   rO  r  kCGEventLeftMouseDraggedrQ  r   kCGEventOtherMouseDraggedrS  r   kCGEventRightMouseDraggedrU  r"  r#  r  r$  rV  s      r   _dragTorp    s    ~~7!Q@YZZZZ	6		81aA\]]]]	581aA[\\\\JJJJJJy-.....r   c                 z    t          t          j        | |d           t          j        t
          j                   d S r3  )rO  r  kCGEventMouseMovedr"  r#  r  r$  )r   r,   s     r   rD  rD    s2    F-q!Q777Jy-.....r   )NN)rc  )#r"  sysr  r,  r  r   r   r   platform	Exceptiondict	KEY_NAMESr  updater   upperr  r  r  r  r  r8  r<  r@  r>  rL  rX  r]  r_  ra  rb  rh  rO  rp  rD  r	   r   r   <module>rz     s
    



{MMMM{zzzzz      ) ) ) ) ) ) ) ) ) )<H
)W
X
XXV $CCy/BCCCDD    HHH H 	H
 H H H H H H H H H H H  !H" #H H$ %H& 'H( )H* +H, -H. /H0 1H2 3H4 5H6 7H8 9H: ;H< =H> ?H@ AHB CHD EH H HF GHH IHJ KHL MHN OHP QHR SHT UHV WHX YHZ [H\ ]H^ _H` aHb cHd eHf gH H Hh iHj kHl mHn oHp qHr 	$sHt uHv wHx yHz {H| }H~ H@ AHB CHD EHF GHH IH H HJ KHL TMHN 	$OHP 	$QHR TSHT dUHV 	$WHX 
4YHZ [H\ 	$]H^ 
4_H` daHb tcHd TeHf gHh iHj dkH H Hl $mHn 
4oHp tqHr DsHt uHv $wHx 4yHz {H| 	$}H~ 
4H@ AHB $CHD $EHF 
4GHH 
4IHJ 
4KHL 	$MH H HN 	$OHP 	$QHR 	$SHT 	$UHV 	$WHX 
4YHZ 
4[H\ 
4]H^ 
4_H` 
4aHb 
4cHd 
4eHf DgHh DiHj dkHl DmHn 
4oH Hp 



 OH H H H H HT. 
& 4 4A!0!3OAGGII! Q q	
  A  A A a  2 R B R  !" B#$ !!##%1   6% % %# # #> > >4( ( (>B B B
v v v
   @ @ @ @&@ @ @ @*K K KK K KK K K ! % % %   4: : :
	/ 	/ 	// / / / /s    