U
    ‰d@  ã                   @  sp   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 erHd 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ÚDefaultDict)Ú
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-4x_7prb2/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   r   Zprompt_toolkit.mouse_eventsr   Z'prompt_toolkit.key_binding.key_bindingsr	   Ú__all__r
   r   r   r   r   r   Ú<module>   s   þ