B
    '˜t\  ã               @   s:   d Z ddlmZ ddgZG dd„ dƒZG dd„ deƒ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.
é    )Úunicode_literalsÚMouseEventTypeÚ
MouseEventc               @   s   e Zd ZdZdZdZdZdS )r   ÚMOUSE_UPÚ
MOUSE_DOWNÚ	SCROLL_UPÚSCROLL_DOWNN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   © r   r   ú:lib/python3.7/site-packages/prompt_toolkit/mouse_events.pyr      s   c               @   s    e Zd ZdZdd„ Zdd„ ZdS )r   zŠ
    Mouse event, sent to `UIControl.mouse_handler`.

    :param position: `Point` instance.
    :param event_type: `MouseEventType`.
    c             C   s   || _ || _d S )N)ÚpositionÚ
event_type)Úselfr   r   r   r   r   Ú__init__(   s    zMouseEvent.__init__c             C   s   d| j | jf S )NzMouseEvent(%r, %r))r   r   )r   r   r   r   Ú__repr__,   s    zMouseEvent.__repr__N)r	   r
   r   Ú__doc__r   r   r   r   r   r   r   !   s   N)r   Z
__future__r   Ú__all__r   Úobjectr   r   r   r   r   Ú<module>   s
   