o
    tVg                     @   s   U d Z dZddlmZ ddlZddlZg aeej e	d< ej
je	d< dadadadd Zd	d
 Zdd Zdd Zdd ZedkrEe  dS dS )z pygame.examples.eventlist

Learn about pygame events and input.

At the top of the screen are the state of several device values,
and a scrolling list of events are displayed on the bottom.

a  
Mouse Controls
==============

- 1st button on mouse (left click) to toggle events 'grabed'.
- 3rd button on mouse (right click) to toggle mouse visible.
- The window can be resized.
- Mouse the mouse around to see mouse events.
- If events grabbed and mouse invisible show virtual mouse coords.


Keyboard Joystick Controls
==========================

- press keys up an down to see events.
- you can see joystick events if any are plugged in.
- press "c" to toggle events generated by controllers.
    )ListN
img_on_offfontc                 C   s8   t |d||}| || |d |  d |d fS )N   r      )r   renderblit	get_width)winpostextcolorbgcolortextimg r   M/home/ubuntu/.local/lib/python3.10/site-packages/pygame/examples/eventlist.pyshowtext-   s   r   c                 C   s  d}|  |d | tddd|d t| ddd	|}| ttj  | t| |d
 d |d fdd	|}| ttj	  | t| ddd	|}| ttj
  | t| ddd	|}tj }t|d
 7 at|d 7 atttj t| }d| }t| |||d t| ddd	|}trdttj
tf }nd}t| |||d t| ddd	|}| ttj  | tj otj	  }t| ddd	|}| t| | |rt dt }t| |d
 d |d f||d d S d S )N)2   r   r   )r   r     x   zStatus Arear      r   r   )   r   )
      zMouse Focus)   r   r   r   r   zMouse visible)J  r   zKeyboard Focus)r   <   zMouse Position(rel)z%s, %s (%s, %s))r   r   7   )r   r   zLast Keypressz%d, %sNone)r   Z   zInput Grabbed)r   r    zVirtual Mousez, )fillr   r   r   r   r   pgmouseget_focusedget_visiblekeyget_rel	virtual_x	virtual_ytuplelistget_poslast_keynameeventget_grab)r
   r   r   rel
mouse_datapis_virtual_mouser   r   r   
drawstatus3   s@   
$r5   c                 C   st   t dddd}| |d d}t|}|  |D ]}| |d|f}| d|j|jd	|jf |t 	 8 }qd S )
NzEvent History Arear   r   r   r   r   )r      i  r   r   il  )
r   r   r   r+   reverser!   righttopheight
get_height)r
   historyimgyposhlinerr   r   r   drawhistory_   s   rC   c                 C   sD   | d}|D ]}|dksd|v rqt|ddd}| | qd S )N
 z===r   r      r   r6   )splitr   r   append)r=   r   linesrA   r>   r   r   r   draw_usage_in_historyk   s   
rK   c            
      C   s  t   tjj  tt t jdt j	} t j
d t jd dattdddd ttdddd	 g }tt j D ]/}tjj|rXtjj|}d
|j }nt j|}d|  }t|ddd}|| qBt j stdddd}|| d}|rBt j D ]}|jt jkr|jt jkrd}n|ja|jt jkrt |t |jt j!krtjj" }	tjj#|	  |jt j$kr|j%dkrt j&t j'   |jt j$kr|j%dkrt j()t j(*   |jt j+krt j,|j d|j- }t|ddd}|| |dd  }|jt j.kr"t j|j/t j	} |jt j0kr+d}qt1|  t2| | t j3  t j45d |st 6  t7)N)r   i  z#Mouse Focus Workout. h key for help   Offr   r6   )r   r   r   On)r   r   r   zEnabled controller: zEnabled joystick: rF   zNo Joysticks to InitializeTF   z: ir   )8r"   initpygame_sdl2
controllerprintusagedisplayset_mode	RESIZABLEset_captionr   Fontr   rI   r   rangejoystick	get_countis_controller
Controllerr.   Joystickget_namer/   gettypeKEYDOWNr&   K_ESCAPEr-   K_hrK   K_cget_eventstateset_eventstateMOUSEBUTTONDOWNbuttonset_grabr0   r#   set_visibler%   MOUSEMOTION
event_namedictVIDEORESIZEsizeQUITr5   rC   fliptimewaitquit
SystemExit)
r
   r=   xctxtjr>   goingecurrent_stater   r   r   maint   sj   





&r   __main__)__doc__rU   typingr   rQ   r"   pygame._sdl2.controllerr   Surface__annotations__r   rZ   r-   r(   r)   r   r5   rC   rK   r   __name__r   r   r   r   <module>   s$   	,	M
