o
    ÞË·e  ã                   @   sJ   d 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.
é    )Ú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   úO/var/www/ideatree/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                   @   sF   e Zd ZdZdejfdededdfdd„Zdd	d
„Zde	f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ÚtypeÚreturnNc                 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_mode4   s   
zSelectionState.enter_shift_modec                 C   s   d  | jj| j| j¡S )Nz,{}(original_cursor_position={!r}, type={!r}))ÚformatÚ	__class__r	   r   r   r   r   r   r   Ú__repr__7   s
   ýzSelectionState.__repr__)r   N)r	   r
   r   r   r   r   Úintr   r   Ústrr   r   r   r   r   r   "   s    	ýþý
ü

r   N)r   Úenumr   Ú__all__r   r   r   r   r   r   r   Ú<module>   s    