o
    Df	                     @  sr   d Z ddlmZ ddlmZ ddlmZ g dZG dd deZG d	d
 d
eZ	G dd deZ
G dd dZdS )a  
Mouse events.


How it works
------------

The renderer has a 2 dimensional grid of mouse event handlers.
(`prompt_toolkit.layout.MouseHandlers`.) When the layout is rendered, the
`Window` class will make sure that this grid will also be filled with
callbacks. For vt100 terminals, mouse events are received through stdin, just
like any other key press. There is a handler among the key bindings that
catches these events and forwards them to such a mouse event handler. It passes
through the `Window` class where the coordinates are translated from absolute
coordinates to coordinates relative to the user control, and there
`UIControl.mouse_handler` is called.
    )annotations)Enum   )Point)MouseEventTypeMouseButtonMouseModifier
MouseEventc                   @      e Zd ZdZdZdZdZdZdS )r   MOUSE_UP
MOUSE_DOWN	SCROLL_UPSCROLL_DOWN
MOUSE_MOVEN)__name__
__module____qualname__r   r   r   r   r    r   r   T/home/ubuntu/webapp/venv/lib/python3.10/site-packages/prompt_toolkit/mouse_events.pyr      s    r   c                   @  r
   )r   LEFTMIDDLERIGHTNONEUNKNOWNN)r   r   r   r   r   r   r   r   r   r   r   r   r   ,   s    r   c                   @  s   e Zd ZdZdZdZdS )r   SHIFTALTCONTROLN)r   r   r   r   r   r   r   r   r   r   r   :   s    r   c                   @  s$   e Zd ZdZdddZdddZdS )r	   z
    Mouse event, sent to `UIControl.mouse_handler`.

    :param position: `Point` instance.
    :param event_type: `MouseEventType`.
    positionr   
event_typer   buttonr   	modifiersfrozenset[MouseModifier]returnNonec                 C  s   || _ || _|| _|| _d S )Nr   r   r   r    )selfr   r   r   r    r   r   r   __init__H   s   
zMouseEvent.__init__strc              	   C  s&   d| j d| jd| jd| jd	S )NzMouseEvent(,)r$   )r%   r   r   r   __repr__T   s   &zMouseEvent.__repr__N)
r   r   r   r   r   r   r    r!   r"   r#   )r"   r'   )r   r   r   __doc__r&   r*   r   r   r   r   r	   @   s    
r	   N)r+   
__future__r   enumr   data_structuresr   __all__r   r   r   r	   r   r   r   r   <module>   s    