a
    Šxd
  ã                   @  s~   d Z ddlm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)Ú	FrozenSeté   )ÚPoint)ÚMouseEventTypeÚMouseButtonÚMouseModifierÚ
MouseEventc                   @  s    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   úS/var/www/html/Ranjet/env/lib/python3.9/site-packages/prompt_toolkit/mouse_events.pyr      s
   r   c                   @  s    e Zd ZdZdZdZdZdZdS )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                   @  s4   e Zd ZdZddddddœdd	„Zd
dœdd„ZdS )r
   zŠ
    Mouse event, sent to `UIControl.mouse_handler`.

    :param position: `Point` instance.
    :param event_type: `MouseEventType`.
    r   r   r   zfrozenset[MouseModifier]ÚNone)ÚpositionÚ
event_typeÚbuttonÚ	modifiersÚreturnc                 C  s   || _ || _|| _|| _d S )N)r   r   r    r!   )Úselfr   r   r    r!   r   r   r   Ú__init__H   s    zMouseEvent.__init__Ústr)r"   c                 C  s   d  | j| j| j| j¡S )NzMouseEvent({!r},{!r},{!r},{!r}))Úformatr   r   r    r!   )r#   r   r   r   Ú__repr__T   s    üzMouseEvent.__repr__N)r   r   r   Ú__doc__r$   r'   r   r   r   r   r
   @   s   r
   N)r(   Ú
__future__r   Úenumr   Útypingr   Zdata_structuresr   Ú__all__r   r   r	   r
   r   r   r   r   Ú<module>   s   