
    d                     F    d Z ddlmZ dZ G d d      ZeZ G d de      Zy)	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                       e Zd ZdZdZdZdZy)r   MOUSE_UP
MOUSE_DOWN	SCROLL_UPSCROLL_DOWNN)__name__
__module____qualname__r   r   r	   r
        .lib/third_party/prompt_toolkit/mouse_events.pyr   r      s    HJIKr   r   c                       e Zd ZdZd Zd Zy)r   z
    Mouse event, sent to `UIControl.mouse_handler`.

    :param position: `Point` instance.
    :param event_type: `MouseEventType`.
    c                      || _         || _        y )Nposition
event_type)selfr   r   s      r   __init__zMouseEvent.__init__+   s     $r   c                 <    d| j                   d| j                  dS )NzMouseEvent(z, )r   )r   s    r   __repr__zMouseEvent.__repr__/   s    '+}}dooFFr   N)r   r   r   __doc__r   r   r   r   r   r   r   $   s    %Gr   r   N)r   
__future__r   __all__r   MouseEventTypesobjectr   r   r   r   <module>r       s5   " (    !G Gr   