o
    �õ±j©	  ã                   @  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   úŽ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/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    