
    ^jX%                       d Z ddlmZ ddlmZ  G d d          Zdd
ZddZddZddZ	dZ
dZdZdZdZdZdZdZdZdZeZedk    re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)d0Z*d1Z+d2Z,d3Z-d4Z.d5Z/d6Z0d7Z1d8Z2d9Z3d:Z4d:Z5d;Z6e!Z7e"Z8e#Z9e Z:dZ;dZ<d<Z=dZ>e%Z?e$Z@d=ZAd>ZBeZCe(ZDd?ZEdZFd@ZGdAZHdBZIdCZJdDZKdEZLdFZMdGZNdHZOdIZPdJZQdKZRdLZSdMZTdMZUdNZVdNZWdOZXdPZYdQZZdRZ[dSZ\dTZ]dUZ^dVZ_dWZ`dXZadYZbdZZcd[Zdd\Zed]Zfd^Zgd_Zhd`ZidaZjdbZkdcZlddZmdeZndfZodgZpdhZqdiZrdjZsdkZtdlZudmZvdnZwdoZxdpZydqZzdrZ{dsZ|dtZ}duZ~dvZdwZd;ZdxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZi Zi Z eݦ                                                                            D ]`\  ZZedd         dk    rMe                                ek    r5e                    dϦ          s e                    dЦ          reee<   [eee<   adS )a  Key constants and utilities for pyglet.window.

Usage::

    from pyglet.window import Window
    from pyglet.window import key

    window = Window()

    @window.event
    def on_key_press(symbol, modifiers):
        # Symbolic names:
        if symbol == key.RETURN:

        # Alphabet keys:
        elif symbol == key.Z:

        # Number keys:
        elif symbol == key._1:

        # Number keypad keys:
        elif symbol == key.NUM_1:

        # Modifiers:
        if modifiers & key.MOD_CTRL:

    )annotations)compat_platformc                  :    e Zd ZdZddZddZdd	Zdd
ZddZdS )KeyStateHandlera  Simple handler that tracks the state of keys on the keyboard.

    If a key is pressed then this handler holds a ``True`` value for it.
    If the window loses focus, all keys will be reset to ``False`` to avoid a
    "sticky" key state.

    For example::

        >>> win = window.Window
        >>> keyboard = key.KeyStateHandler()
        >>> win.push_handlers(keyboard)

        # Hold down the "up" arrow...

        >>> keyboard[key.UP]
        True
        >>> keyboard[key.DOWN]
        False

    returnNonec                    i | _         d S Ndataselfs    L/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/window/key.py__init__zKeyStateHandler.__init__6   s    			    symbolint	modifiersc                    d| j         |<   d S )NTr   r   r   r   s      r   on_key_presszKeyStateHandler.on_key_press9   s     	&r   c                    d| j         |<   d S NFr   r   s      r   on_key_releasezKeyStateHandler.on_key_release<   s    !	&r   c                8    | j                                          d S r
   )r   clearr   s    r   on_deactivatezKeyStateHandler.on_deactivate?   s    	r   keyboolc                8    | j                             |d          S r   )r   get)r   r   s     r   __getitem__zKeyStateHandler.__getitem__B   s    y}}S%(((r   N)r   r   )r   r   r   r   r   r   )r   r   r   r   )	__name__
__module____qualname____doc__r   r   r   r   r"    r   r   r   r   !   s         (   ! ! ! !" " " "   ) ) ) ) ) )r   r   r   r   r   strc                ^   g }| t           z  r|                    d           | t          z  r|                    d           | t          z  r|                    d           | t          z  r|                    d           | t
          z  r|                    d           | t          z  r|                    d           | t          z  r|                    d           | t          z  r|                    d           | t          z  r|                    d	           d

                    |          S )zReturn a string describing a set of modifiers.

    Example::

        >>> modifiers_string(MOD_SHIFT | MOD_CTRL)
        'MOD_SHIFT|MOD_CTRL'

    Args:
        modifiers:
            Bitwise combination of modifier constants.
    	MOD_SHIFTMOD_CTRLMOD_ALTMOD_CAPSLOCKMOD_NUMLOCKMOD_SCROLLLOCKMOD_COMMAND
MOD_OPTIONMOD_FUNCTION|)r*   appendr+   r,   r-   r.   r/   r0   r1   r2   join)r   	mod_namess     r   modifiers_stringr7   F   sE    I9 &%%%8 %$$$7 $###< )(((; ('''>! +)***; (''': '&&&< )(((88Ir   r   c                n    | dk     r(t                               | t          |                     S d| dz	  z  S )zReturn a string describing a key symbol from a key constant.

    Example::

        >>> symbol_string(BACKSPACE)
        'BACKSPACE'
    l        zuser_key(%x)    )
_key_namesr!   r(   )r   s    r   symbol_stringr;   h   s8     ~~fc&kk222Vr\**r   motionc                R    t                               | t          |                     S )zReturn a string describing a text motion from a motion constant.

    Example::

        >>> motion_string(MOTION_NEXT_WORD)
        'MOTION_NEXT_WORD'
    )_motion_namesr!   r(   )r<   s    r   motion_stringr?   v   s      VS[[111r   scancodec                    | dk    sJ | dz  S )a  Return a key symbol for a key not supported by pyglet.

    This can be used to map virtual keys or scancodes from unsupported
    keyboard layouts into a machine-specific symbol.  The symbol will
    be meaningless on any other machine, or under a different keyboard layout.

    Applications should use user-keys only when user explicitly binds them
    (for example, mapping keys to actions in a game options screen).
    r   r9   r'   )r@   s    r   user_keyrB      s     a<<<<r>r                  r9   @         i   darwini  i	  i
  i  i  i  i  i  i  iP  iQ  iR  iS  iT  iU  iV  iW  iX  i  i`  ia  ib  ic  ie  if  ig  ih  ii  ij  ik  i~  i              i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?   [   \   ]   ^   _   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~   N__MOD_MOTION_)r   r   r   r(   )r   r   r   r(   )r<   r   r   r(   )r@   r   r   r   )r&   
__future__r   pygletr   r   r7   r;   r?   rB   r*   r+   r,   r-   r.   MOD_WINDOWSr0   r1   r/   r2   	MOD_ACCEL	BACKSPACETABLINEFEEDCLEARRETURNENTERPAUSE
SCROLLLOCKSYSREQESCAPEHOMELEFTUPRIGHTDOWNPAGEUPPAGEDOWNENDBEGINDELETESELECTPRINTEXECUTEINSERTUNDOREDOMENUFINDCANCELHELPBREAK
MODESWITCHSCRIPTSWITCHFUNCTION	MOTION_UPMOTION_RIGHTMOTION_DOWNMOTION_LEFTMOTION_NEXT_WORDMOTION_PREVIOUS_WORDMOTION_BEGINNING_OF_LINEMOTION_END_OF_LINEMOTION_NEXT_PAGEMOTION_PREVIOUS_PAGEMOTION_BEGINNING_OF_FILEMOTION_END_OF_FILEMOTION_BACKSPACEMOTION_DELETEMOTION_COPYMOTION_PASTENUMLOCK	NUM_SPACENUM_TAB	NUM_ENTERNUM_F1NUM_F2NUM_F3NUM_F4NUM_HOMENUM_LEFTNUM_UP	NUM_RIGHTNUM_DOWN	NUM_PRIORNUM_PAGE_UPNUM_NEXTNUM_PAGE_DOWNNUM_END	NUM_BEGIN
NUM_INSERT
NUM_DELETE	NUM_EQUALNUM_MULTIPLYNUM_ADDNUM_SEPARATORNUM_SUBTRACTNUM_DECIMAL
NUM_DIVIDENUM_0NUM_1NUM_2NUM_3NUM_4NUM_5NUM_6NUM_7NUM_8NUM_9F1F2F3F4F5F6F7F8F9F10F11F12F13F14F15F16F17F18F19F20F21F22F23F24LSHIFTRSHIFTLCTRLRCTRLCAPSLOCKLMETARMETALALTRALTLWINDOWSRWINDOWSLCOMMANDRCOMMANDLOPTIONROPTIONSPACEEXCLAMATIONDOUBLEQUOTEHASHPOUNDDOLLARPERCENT	AMPERSAND
APOSTROPHE	PARENLEFT
PARENRIGHTASTERISKPLUSCOMMAMINUSPERIODSLASH_0_1_2_3_4_5_6_7_8_9COLON	SEMICOLONLESSEQUALGREATERQUESTIONATBRACKETLEFT	BACKSLASHBRACKETRIGHTASCIICIRCUM
UNDERSCOREGRAVE	QUOTELEFTABCDEFGHIJKLMNOPQRSTUVWXYZ	BRACELEFTBAR
BRACERIGHT
ASCIITILDEr:   r>   localscopyitems_name_valueupper
startswithr'   r   r   <module>rg     s   6 # " " " " " " " " " " "") ") ") ") ") ") ") ")J   D+ + + +2 2 2 2    	
 	hI 	
  
 	     # !   $ ! 					

	
  	
	
		
		


VXX]]__**,, ' 'ME6RaRyDU[[]]e33F## 4I&& 	'$)M&!!!&Jv' 'r   