o
    Df                     @  sV   d Z ddlmZ ddlmZ g dZG dd deZG dd deZG d	d
 d
ZdS )z$
Data structures for the selection.
    )annotations)Enum)SelectionType	PasteModeSelectionStatec                   @  s   e Zd ZdZdZdZdZdS )r   z
    Type of selection.
    
CHARACTERSLINESBLOCKN)__name__
__module____qualname____doc__r   r   r	    r   r   Q/home/ubuntu/webapp/venv/lib/python3.10/site-packages/prompt_toolkit/selection.pyr      s
    r   c                   @  s   e Zd ZdZdZdZdS )r   EMACSVI_AFTER	VI_BEFOREN)r
   r   r   r   r   r   r   r   r   r   r      s    r   c                   @  s6   e Zd ZdZdejfdd	d
ZdddZdddZdS )r   z}
    State of the current selection.

    :param original_cursor_position: int
    :param type: :class:`~.SelectionType`
    r   original_cursor_positioninttyper   returnNonec                 C  s   || _ || _d| _d S )NF)r   r   
shift_mode)selfr   r   r   r   r   __init__-   s   
zSelectionState.__init__c                 C  s
   d| _ d S )NT)r   r   r   r   r   enter_shift_mode6   s   
zSelectionState.enter_shift_modestrc                 C  s   | j j d| jd| jdS )Nz(original_cursor_position=z, type=))	__class__r
   r   r   r   r   r   r   __repr__9   s   zSelectionState.__repr__N)r   r   r   r   r   r   )r   r   )r   r   )	r
   r   r   r   r   r   r   r   r    r   r   r   r   r   %   s    	
	r   N)	r   
__future__r   enumr   __all__r   r   r   r   r   r   r   <module>   s    