U
    ouf3  ã                   @  sl   d dl mZ d dlmZ d dlmZmZ d dlmZ erDd 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                   @  s6   e Zd ZdZddœdd„Zdddddddœd	d
„ZdS )r
   z?
    Two dimensional raster of callbacks for mouse events.
    ÚNone)Úreturnc                   s&   dddœdd„‰ t ‡ fdd„ƒ| _d S )Nr   r   )Úmouse_eventr   c                 S  s   t S )zD
            :param mouse_event: `MouseEvent` instance.
            )ÚNotImplemented)r   © r   úH/tmp/pip-unpacked-wheel-8milen2s/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>'   ó    z:MouseHandlers.__init__.<locals>.<lambda>.<locals>.<lambda>r   r   r   r   r   r   '   r   z(MouseHandlers.__init__.<locals>.<lambda>)r   Úmouse_handlers)Úselfr   r   r   Ú__init__   s    þzMouseHandlers.__init__Úintz,Callable[[MouseEvent], NotImplementedOrNone])Úx_minÚx_maxÚy_minÚy_maxÚhandlerr   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)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r   r   r   r   r
      s   N)Ú
__future__r   Úcollectionsr   Útypingr   r   Zprompt_toolkit.mouse_eventsr   Z'prompt_toolkit.key_binding.key_bindingsr   Ú__all__r	   r
   r   r   r   r   Ú<module>   s   þ