
    ^h	                        S r SSKJr  SSKJr  SSKJr  / SQr " S S\5      r " S	 S
\5      r	 " S S\5      r
 " S S5      rg)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                  (    \ rS rSrSrSrSrSrSrSr	g)	r      MOUSE_UP
MOUSE_DOWN	SCROLL_UPSCROLL_DOWN
MOUSE_MOVE N)
__name__
__module____qualname____firstlineno__r   r   r   r   r   __static_attributes__r       U/home/james-whalen/.local/lib/python3.13/site-packages/prompt_toolkit/mouse_events.pyr   r      s!     H JIK Jr   r   c                  (    \ rS rSrSrSrSrSrSrSr	g)	r   ,   LEFTMIDDLERIGHTNONEUNKNOWNr   N)
r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   ,   s    DFE D
 Gr   r   c                       \ rS rSrSrSrSrSrg)r	   :   SHIFTALTCONTROLr   N)r   r   r   r   r#   r$   r%   r   r   r   r   r	   r	   :   s    E
CGr   r	   c                  @    \ rS rSrSr          SS jrSS jrSrg)	r
   @   zz
Mouse event, sent to `UIControl.mouse_handler`.

:param position: `Point` instance.
:param event_type: `MouseEventType`.
c                4    Xl         X l        X0l        X@l        g )Nposition
event_typebutton	modifiers)selfr*   r+   r,   r-   s        r   __init__MouseEvent.__init__H   s     !$"r   c           	     x    SU R                   < SU R                  < SU R                  < SU R                  < S3	$ )NzMouseEvent(,)r)   )r.   s    r   __repr__MouseEvent.__repr__T   s;    T]]-Qt.A4;;/QRSWSaSaRddeffr   )r,   r+   r-   r*   N)
r*   r   r+   r   r,   r   r-   zfrozenset[MouseModifier]returnNone)r6   str)r   r   r   r   __doc__r/   r4   r   r   r   r   r
   r
   @   sB    
#
# #
# 	
#
 ,
# 

#gr   r
   N)r9   
__future__r   enumr   data_structuresr   __all__r   r   r	   r
   r   r   r   <module>r>      sJ   $ #  "
JT  $ D g gr   