o
    žD®f5  ã                   @  sl   d dl mZ d dlmZ d dlmZmZ d dlmZ er"d dl	m
Z
 ddgZeegdf ZG d	d„ dƒZd
S )é    )Úannotations©Údefaultdict)ÚTYPE_CHECKINGÚCallable)Ú
MouseEvent)ÚNotImplementedOrNoneÚMouseHandlerÚMouseHandlersr   c                   @  s$   e Zd ZdZddd„Zddd„ZdS )r
   z?
    Two dimensional raster of callbacks for mouse events.
    ÚreturnÚNonec                   s    d	dd„‰ t ‡ fdd„ƒ| _d S )
NÚmouse_eventr   r   r   c                 S  s   t S )zD
            :param mouse_event: `MouseEvent` instance.
            )ÚNotImplemented)r   © r   ú]/home/ubuntu/webapp/venv/lib/python3.10/site-packages/prompt_toolkit/layout/mouse_handlers.pyÚdummy_callback   s   z.MouseHandlers.__init__.<locals>.dummy_callbackc                     s   t ‡ fdd„ƒS )Nc                     s   ˆ S )Nr   r   ©r   r   r   Ú<lambda>&   s    z:MouseHandlers.__init__.<locals>.<lambda>.<locals>.<lambda>r   r   r   r   r   r   &   s    z(MouseHandlers.__init__.<locals>.<lambda>)r   r   r   r   )r   Úmouse_handlers)Úselfr   r   r   Ú__init__   s   
ÿzMouseHandlers.__init__Úx_minÚintÚx_maxÚy_minÚy_maxÚhandlerú,Callable[[MouseEvent], NotImplementedOrNone]c           	      C  s6   t ||ƒD ]}| j| }t ||ƒD ]}|||< qqdS )z1
        Set mouse handler for a region.
        N)Úranger   )	r   r   r   r   r   r   ÚyÚrowÚxr   r   r   Úset_mouse_handler_for_range)   s   

ÿýz)MouseHandlers.set_mouse_handler_for_rangeN)r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r   r   r   r   r
      s    
N)Ú
__future__r   Úcollectionsr   Útypingr   r   Úprompt_toolkit.mouse_eventsr   Ú'prompt_toolkit.key_binding.key_bindingsr   Ú__all__r	   r
   r   r   r   r   Ú<module>   s    þ