
    ^j=                    x   U d dl mZ d dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlmZmZ d dlmZmZ ddlmZ erdd	lmZ  ej        d
          Z ej        d          Z  ej        d          Z! ej        d          Z" ej        d          Z# ej        d          Z$ej%        eej&        eej'        eej(        eej)        e	ej*        eej+        e
ej,        eej-        eej.        ei
Z/de0d<    ed d d d           Z1d!dZ2d"dZ3d#dZ4d$dZ5 G d d          Z6 ej        d           Z7dS )%    )annotationsN)TYPE_CHECKING)NSAlphaShiftKeyMaskNSFunctionKeyMaskNSLeftAlternateKeyMaskNSLeftCommandKeyMaskNSLeftControlKeyMaskNSLeftShiftKeyMask%NSPasteboardURLReadingFileURLsOnlyKeyNSRightAlternateKeyMaskNSRightCommandKeyMaskNSRightControlKeyMaskNSRightShiftKeyMaskcocoapy
NSMakeRect)charmapkeymap)keymouse   )PygletTextView)CocoaWindowNSTrackingAreaNSURLNSArrayNSDictionaryNSNumberNSNotificationCenterzdict[int, int]
maskForKeynseventcocoapy.ObjCInstancereturntuple[int, int]c                \    |                                  }|                                  }||fS N)deltaXdeltaY)r    dxdys      Z/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/window/cocoa/pyglet_view.pygetMouseDeltar+   8   s,    			B
..

	Br6M    self0PygletView_Implementation | cocoapy.ObjCInstancec                   |                                 }|                     |d           }t          j        j        dk    rM|j        t          j        _        |j        t          j        _        | 	                    t                    }|j        }t          |j                  }t          |j                  }|| j        _        || j        _        ||fS )Nstretch)locationInWindowconvertPoint_fromView_pygletoptionsdpi_scalingx_mouseViewRectoriginyconvertRectToBacking_int_window_mouse_x_mouse_y)r-   r    	in_window	convertedr6   r9   s         r*   getMousePositionrA   >   s    ((**I++It<<I~!Y.."++"++..~>>	$	IKAIKADLDLa4Kr,   r;   c                   d}|                                  }|t          j        z  r|t          j        z  }|t          j        z  r|t          j        z  }|t          j        z  r|t          j        z  }|t          j	        z  r|t          j
        z  }|t          j        z  }|t          j        z  r|t          j        z  }|t          j        z  r|t          j        z  }|S Nr   )modifierFlagsr   r   r   MOD_CAPSLOCKNSShiftKeyMask	MOD_SHIFTNSControlKeyMaskMOD_CTRLNSAlternateKeyMaskMOD_ALT
MOD_OPTIONNSCommandKeyMaskMOD_COMMANDr   MOD_FUNCTION)r    	modifiersrD   s      r*   getModifiersrQ   O   s    I))++Mw22 &S%%	w-- #S]"	w// "S\!	w11 $S[ 	S^#	w// %S_$	w00 &S%%	r,   
str | Nonec                   t          j        |                                 d           }||S t          j        |                                           }|r-t          j        |d                                         d           S d S rC   )r   getkeyCoder   cfstring_to_stringcharactersIgnoringModifiersr   upper)r    symbolcharss      r*   	getSymbolr[   b   sq    Z))400F&w'J'J'L'LMME 3{58>>++T2224r,   c                     e Zd Z ej        dd          Ze                    dej        z   ej        z             d7d
            Z	e                    d          d8d            Z
e                    d          d8d            Ze                    d          d9d            Ze                    d          d9d            Ze                    dej        z             d:d            Ze                    d          d;d            Ze                    d          d;d            Ze                    d          d;d            Ze                    d          d<d             Ze                    d          d;d!            Ze                    d          d;d"            Ze                    d          d;d#            Ze                    d          d;d$            Ze                    d          d;d%            Ze                    d          d;d&            Ze                    d          d;d'            Ze                    d          d;d(            Ze                    d          d;d)            Ze                    d          d;d*            Ze                    d          d;d+            Ze                    d          d;d,            Ze                    d          d;d-            Z e                    d          d;d.            Z!e                    d/          d=d2            Z"e                    d3          d>d5            Z#d6S )?PygletView_ImplementationNSView
PygletView   @framecocoapy.NSRectwindowr   r"   cocoapy.ObjCInstance | Nonec                   t          j        t          j        | d|t           j        g                    } | sd S || _        |                     dd            |                                  t          j                    	                    |          }|                     d|           | 
                    | j                   | S )NzinitWithFrame:)argtypes_tracking_area	_textview)r   ObjCInstance
send_superNSRectr<   	associateupdateTrackingAreasr   allocinitWithCocoaWindow_addSubview_rh   )r-   ra   rc   textviews       r*   initWithFrame_cocoaWindow_z4PygletView_Implementation.initWithFrame_cocoaWindow_q   s     #G$6t=Mu`g`n_o$p$p$pqq 	4 '...  """ "'))>>vFF{H---(((r,   vNonec                    d | _         | j                                         | j                                         | j                                         t          j        | d           d S )Ndealloc)r<   rh   (removeFromSuperviewWithoutNeedingDisplayreleaserg   r   rj   r-   s    r*   rv   z!PygletView_Implementation.dealloc   s_    ??AAA   ##%%%4+++++r,   c                    | j         rI|                     | j                    | j                                          |                     dd            t          j        t          j        z  t          j        z  t          j        z  }| 	                                }t                                                              ||| d           }|                     d|           |                     | j                    t	          j        | dd           d S )Nrg   rm   r^   )superclass_name)rg   removeTrackingArea_rx   rl   r   NSTrackingMouseEnteredAndExitedNSTrackingActiveInActiveAppNSTrackingCursorUpdateNSTrackingInVisibleRectra   r   rn   $initWithRect_options_owner_userInfo_addTrackingArea_rj   )r-   tracking_optionsra   tracking_areas       r*   rm   z-PygletView_Implementation.updateTrackingAreas   s      	3$$T%8999'')))NN+T222#CgFii#:;=D=\]

&,,..SS	  	'777d12224!6QQQQQQr,   Bboolc                    dS NT ry   s    r*   canBecomeKeyViewz*PygletView_Implementation.canBecomeKeyView       tr,   c                    dS r   r   ry   s    r*   isOpaquez"PygletView_Implementation.isOpaque   r   r,      vsizecocoapy.NSSizec                d   t          j        | d|dt           j        g           | j        j        j        r| j        j        rd S t          |j                  t          |j	                  }}| j        
                                 | j        j                                         ||c| j        _        | j        _        | j                            d||           | j                            d           |                                 r(ddlm} |j        |j                                         d S d S d S )NzsetFrameSize:r^   )r{   rf   _on_internal_resize	on_exposer   )app)r   rj   NSSizer<   contextcanvas_shadowr;   widthheight	switch_toupdate_geometry_width_heightdispatch_eventinLiveResizer3   r   
event_loopidle)r-   r   r   r   r   s        r*   setFrameSize_z'PygletView_Implementation.setFrameSize_   s7   4$+3%,^$4	6 	6 	6 	6 |#* 	dl.B 	FDJT[)9)9v   ,,...4961T\1##$95&III##K000  	&""""""~)##%%%%%	& 	&))r,   zv@r    r!   c                    |                                 s<t          |          }t          |          }| j                            d||           d S d S )Non_key_press)	isARepeatr[   rQ   r<   r   r-   r    rY   rP   s       r*   keyDown_z"PygletView_Implementation.keyDown_   s]      "" 	Kw''F$W--IL''	JJJJJ	K 	Kr,   c                z    t          |          }t          |          }| j                            d||           d S )Non_key_release)r[   rQ   r<   r   r   s       r*   keyUp_z PygletView_Implementation.keyUp_   s=    7## ))	##$4fiHHHHHr,   c                L   t          j        |                                d           }|	|t          vrd S t	          |          }|                                }|r.|t          |         z  r| j                            d||           d S | j                            d||           d S )Nr   r   )r   rT   rU   r   rQ   rD   r<   r   )r-   r    rY   rP   rD   s        r*   flagsChanged_z'PygletView_Implementation.flagsChanged_   s    
 GOO--t44
 >V:55F ))	--// 	Mmj&88 	ML''	JJJJJL''(8&)LLLLLr,   zv:selectorctypes.c_void_pc                    dS )z9Prevent system beeps when an event or key is not handled.Nr   )r-   r   s     r*   doCommandBySelector_z.PygletView_Implementation.doCommandBySelector_   s      r,   c                $   | j         j        rd| j         _        d S | j         j        sd S t          | |          \  }}t	          |          \  }}| j         j                                        }| j                             d||||z  ||z             d S )NFon_mouse_motion)r<   _mouse_ignore_motion_mouse_in_windowrA   r+   	_nswindowbackingScaleFactorr   )r-   r    r6   r9   r(   r)   factors          r*   mouseMoved_z%PygletView_Implementation.mouseMoved_   s    <, 	05DL-F|, 	Fg..1w''B'::<<##$5q!R&["v+VVVVVr,   c                    t          | |          \  }}t          |          \  }}| j                            d||||           d S )Non_mouse_scroll)rA   r+   r<   r   )r-   r    r6   r9   scroll_xscroll_ys         r*   scrollWheel_z&PygletView_Implementation.scrollWheel_  sL    g..1*733(##$5q!XxPPPPPr,   c                    t          | |          \  }}t          j        }t          |          }| j                            d||||           d S Non_mouse_pressrA   r   LEFTrQ   r<   r   r-   r    r6   r9   buttonsrP   s         r*   
mouseDown_z$PygletView_Implementation.mouseDown_  sN    g..1* ))	##$4aGYOOOOOr,   c           	         t          | |          \  }}t          |          \  }}t          j        }t	          |          }| j                            d||||||           d S Non_mouse_drag)rA   r+   r   r   rQ   r<   r   r-   r    r6   r9   r(   r)   r   rP   s           r*   mouseDragged_z'PygletView_Implementation.mouseDragged_  sb    g..1w''B* ))	##OQ2r7IVVVVVr,   c                    t          | |          \  }}t          j        }t          |          }| j                            d||||           d S Non_mouse_releaser   r   s         r*   mouseUp_z"PygletView_Implementation.mouseUp_   sN    g..1* ))	##$61gyQQQQQr,   c                    t          | |          \  }}t          j        }t          |          }| j                            d||||           d S r   rA   r   RIGHTrQ   r<   r   r   s         r*   rightMouseDown_z)PygletView_Implementation.rightMouseDown_'  sN    g..1+ ))	##$4aGYOOOOOr,   c           	         t          | |          \  }}t          |          \  }}t          j        }t	          |          }| j                            d||||||           d S r   )rA   r+   r   r   rQ   r<   r   r   s           r*   rightMouseDragged_z,PygletView_Implementation.rightMouseDragged_.  sb    g..1w''B+ ))	##OQ2r7IVVVVVr,   c                    t          | |          \  }}t          j        }t          |          }| j                            d||||           d S r   r   r   s         r*   rightMouseUp_z'PygletView_Implementation.rightMouseUp_6  sN    g..1+ ))	##$61gyQQQQQr,   c                    t          | |          \  }}t          j        }t          |          }| j                            d||||           d S r   rA   r   MIDDLErQ   r<   r   r   s         r*   otherMouseDown_z)PygletView_Implementation.otherMouseDown_=  sN    g..1, ))	##$4aGYOOOOOr,   c           	         t          | |          \  }}t          |          \  }}t          j        }t	          |          }| j                            d||||||           d S r   )rA   r+   r   r   rQ   r<   r   r   s           r*   otherMouseDragged_z,PygletView_Implementation.otherMouseDragged_D  sb    g..1w''B, ))	##OQ2r7IVVVVVr,   c                    t          | |          \  }}t          j        }t          |          }| j                            d||||           d S r   r   r   s         r*   otherMouseUp_z'PygletView_Implementation.otherMouseUp_L  sN    g..1, ))	##$61gyQQQQQr,   c                |    t          | |          \  }}d| j        _        | j                            d||           d S )NTon_mouse_enter)rA   r<   r   r   r-   r    r6   r9   s       r*   mouseEntered_z'PygletView_Implementation.mouseEntered_S  sB    g..1(,% 	##$4a;;;;;r,   c                    t          | |          \  }}d| j        _        | j        j        s| j                                         | j                            d||           d S )NFon_mouse_leave)rA   r<   r   _mouse_exclusiveset_mouse_platform_visibler   r   s       r*   mouseExited_z&PygletView_Implementation.mouseExited_[  sa    g..1(-%|, 	6L33555##$4a;;;;;r,   c                l    d| j         _        | j         j        s| j                                          d S d S r   )r<   r   r   r   )r-   r    s     r*   cursorUpdate_z'PygletView_Implementation.cursorUpdate_c  s?     )-%|, 	6L3355555	6 	6r,   zQ@draginfor;   c                    t           j        S r%   )r   NSDragOperationGeneric)r-   r   s     r*   draggingEntered_z*PygletView_Implementation.draggingEntered_p  s    --r,   zB@senderc                j   |                                 }|                                }t                              t                    }t
                              t                              d          t                    }|
                    ||          }|                                }g }t          |          D ]P}	|                    |	                                          }
|                    |
                                           Q| j                            d|j        |j        |           d S )NTon_file_drop)draggingLocationdraggingPasteboardr   arrayWithObject_r   r   dictionaryWithObject_forKey_r   numberWithBool_r   readObjectsForClasses_options_countrangeobjectAtIndex_fileSystemRepresentationappenddecoder<   r   r6   r9   )r-   r   pos
pasteboardclassesr4   urls	url_countpathsifpaths              r*   performDragOperation_z/PygletView_Implementation.performDragOperation_t  s   %%''..00
**511;;$$T**,Q
 
 88'JJJJLL	y!! 	) 	)A''**CCEEELL((((##NCE35%HHHHHr,   N)ra   rb   rc   r   r"   rd   )r"   rt   )r"   r   )r   r   r"   rt   )r    r!   r"   rt   )r   r   r"   rt   )r   r!   r"   r;   )r   r!   r"   rt   )$__name__
__module____qualname__r   ObjCSubclassr_   methodNSRectEncodingPyObjectEncodingrr   rv   rm   r   r   NSSizeEncodingr   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]   n   sK       %%h==Jtg44w7OOPP   QP> s, , , , sR R R R, s    s    tg4455& & & 65&8 tK K K K tI I I I
 tM M M M( tH H H H t
W 
W 
W 
W tQ Q Q Q
 tP P P P tW W W W tR R R R tP P P P tW W W W tR R R R tP P P P tW W W W tR R R R t< < < < t< < < < t
6 
6 
6 
6 t. . . . tI I I I I Ir,   r]   r_   )r    r!   r"   r#   )r-   r.   r    r!   r"   r#   )r    r!   r"   r;   )r    r!   r"   rR   )8
__future__r   ctypestypingr   r3   pyglet.libs.darwinr   r   r   r   r	   r
   r   r   r   r   r   r   r   pyglet.libs.darwin.quartzkeyr   r   pyglet.windowr   r   pyglet_textviewr    r   	ObjCClassr   r   r   r   r   r   LSHIFTRSHIFTLCTRLRCTRLLOPTIONROPTIONLCOMMANDRCOMMANDCAPSLOCKFUNCTIONr   __annotations__r7   r+   rA   rQ   r[   r]   r_   r   r,   r*   <module>r#     s   " " " " " " "                                            9 8 8 8 8 8 8 8 $ $ $ $ $ $ $ $ + + + + + + ""#344'""
'
I
&
& w 007Z(((w()?@@  J"J#I#I$K'K(L&L'L%L#
    " Aq!Q''      "   &	 	 	 	ZI ZI ZI ZI ZI ZI ZI ZIz W|,,


r,   