
    \
j*                        d Z ddlmZ  G d d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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(d(Z)d)Z*d*Z+d+Z,d,Z-d-Z.d.Z/d/Z0d0Z1d1Z2d2Z3d3Z4d3Z5d4Z6e!Z7e"Z8e#Z9e Z:d	Z;d
Z<d5Z=dZ>e%Z?e$Z@d6ZAd7ZBeZCe(ZDd8ZEd9ZFd:ZGd;ZHd<ZId=ZJd>ZKd?ZLd@ZMdAZNdBZOdCZPdDZQdEZRdEZSdFZTdFZUdGZVdHZWdIZXdJZYdKZZdLZ[dMZ\dNZ]dOZ^dPZ_dQZ`dRZadSZbdTZcdUZddVZedWZfdXZgdYZhdZZid[Zjd\Zkd]Zld^Zmd_Znd`ZodaZpdbZqdcZrddZsdeZtdfZudgZvdhZwdiZxdjZydkZzdlZ{dmZ|dnZ}doZ~d4ZdpZdqZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd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:

    )compat_platformc                   *    e Zd ZdZd Zd Zd Z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

    c                     d| |<   d S )NT selfsymbol	modifierss      K/DATA/AppData/hermes/venv/lib/python3.11/site-packages/pyglet/window/key.pyon_key_presszKeyStateHandler.on_key_pressX   s    V    c                     d| |<   d S NFr   r   s      r   on_key_releasezKeyStateHandler.on_key_release[   s    Vr   c                 .    |                                   d S )N)clear)r	   s    r   on_deactivatezKeyStateHandler.on_deactivate^   s    

r   c                 .    |                      |d          S r   )get)r	   keys     r   __getitem__zKeyStateHandler.__getitem__a   s    xxU###r   N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r   C   sZ         (      $ $ $ $ $r   r   c                 ^   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 )a  Return a string describing a set of modifiers.

    Example::

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

    :Parameters:
        `modifiers` : int
            Bitwise combination of modifier constants.

    :rtype: str
    	MOD_SHIFTMOD_CTRLMOD_ALTMOD_CAPSLOCKMOD_NUMLOCKMOD_SCROLLLOCKMOD_COMMAND
MOD_OPTIONMOD_FUNCTION|)r   appendr   r    r!   r"   r#   r$   r%   r&   join)r   	mod_namess     r   modifiers_stringr+   e   sE    I9 &%%%8 %$$$7 $###< )(((; ('''>! +)***; (''': '&&&< )(((88Ir   c                 n    | dk     r(t                               | t          |                     S d| dz	  z  S )zReturn a string describing a key symbol.

    Example::

        >>> symbol_string(BACKSPACE)
        'BACKSPACE'

    :Parameters:
        `symbol` : int
            Symbolic key constant.

    :rtype: str
    l        zuser_key(%x)    )
_key_namesr   str)r
   s    r   symbol_stringr0      s8     ~~fc&kk2222..r   c                 R    t                               | t          |                     S )zReturn a string describing a text motion.

    Example::

        >>> motion_string(MOTION_NEXT_WORD)
        'MOTION_NEXT_WORD'

    :Parameters:
        `motion` : int
            Text motion constant.

    :rtype: str
    )_motion_namesr   r/   )motions    r   motion_stringr4      s      VS[[111r   c                     | 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   r-   r   )scancodes    r   user_keyr7      s     a<<<<r>r                  r-   @         i   darwini  i	  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   pygletr   dictr   r+   r0   r4   r7   r   r   r    r!   r"   MOD_WINDOWSr$   r%   r#   r&   	MOD_ACCEL	BACKSPACETABLINEFEEDCLEARRETURNENTERPAUSE
SCROLLLOCKSYSREQESCAPESPACE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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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.   r2   localscopyitems_name_valueupper
startswithr   r   r   <module>rY     sq  H 8 # " " " " "$ $ $ $ $d $ $ $D! ! !H/ / /(2 2 2"   	
 	hI 	
  
 	     # !   $ ! 					

	
  	
	
		
		


VXX]]__**,, ' 'ME6RaRyDU[[]]e33F## 4I&& 	'$)M&!!!&Jv' 'r   