o
    �õ±jÞ  ã                   @   st   zd dl mZ W n ey   dd„ ZY nw ddlmZ G dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZdd„ Z	dS )é    )Úget_osfhandlec                 C   s   t dƒ‚)NzThis isn't windows!)ÚOSError)Ú_© r   úƒ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/colorama/winterm.pyr      s   r   é   )Úwin32c                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
ÚWinColorr   r   é   é   é   é   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚBLACKÚBLUEÚGREENÚCYANÚREDÚMAGENTAÚYELLOWÚGREYr   r   r   r   r	      s    r	   c                   @   s   e Zd ZdZdZdZdS )ÚWinStyler   é   é€   N)r   r   r   ÚNORMALÚBRIGHTÚBRIGHT_BACKGROUNDr   r   r   r   r      s    r   c                   @   sŽ   e Zd Zdd„ Zdd„ Zdd„ Zd dd	„Zd!dd„Zd!dd„Zd"dd„Z	d"dd„Z
dd„ Zd"dd„Zd#dd„Zd$dd„Zd$dd„Zdd„ ZdS )%ÚWinTermc                 C   s>   t  t j¡j| _|  | j¡ | j| _| j| _	| j
| _d| _d S )Nr   )r   ÚGetConsoleScreenBufferInfoÚSTDOUTÚwAttributesÚ_defaultÚ	set_attrsÚ_foreÚ_default_foreÚ_backÚ_default_backÚ_styleÚ_default_styleÚ_light©Úselfr   r   r   Ú__init__   s   
zWinTerm.__init__c                 C   s   | j | jd  | j| jB  S )Né   )r'   r)   r+   r-   r.   r   r   r   Ú	get_attrs*   s   zWinTerm.get_attrsc                 C   s.   |d@ | _ |d? d@ | _|tjtjB @ | _d S )Nr   r   )r'   r)   r   r   r    r+   )r/   Úvaluer   r   r   r&   -   s   
zWinTerm.set_attrsNc                 C   s$   |   | j¡ | j| jd� d| _d S )N)Úattrsr   )r&   r%   Úset_consoler-   )r/   Ú	on_stderrr   r   r   Ú	reset_all2   s   
zWinTerm.reset_allFc                 C   óL   |d u r| j }|| _|r|  jtjO  _n	|  jtj M  _| j|d� d S ©N)r6   )r(   r'   r-   r   r   r5   )r/   ÚforeÚlightr6   r   r   r   r:   7   ó   zWinTerm.forec                 C   r8   r9   )r*   r)   r-   r   r    r5   )r/   Úbackr;   r6   r   r   r   r=   B   r<   zWinTerm.backc                 C   s$   |d u r| j }|| _| j|d� d S r9   )r,   r+   r5   )r/   Ústyler6   r   r   r   r>   M   s   zWinTerm.stylec                 C   s0   |d u r|   ¡ }tj}|rtj}t ||¡ d S ©N)r2   r   r#   ÚSTDERRÚSetConsoleTextAttribute)r/   r4   r6   Úhandler   r   r   r5   S   s   zWinTerm.set_consolec                 C   s,   t  |¡j}| jd7  _| jd7  _|S )Nr   )r   r"   ÚdwCursorPositionÚXÚY)r/   rB   Úpositionr   r   r   Úget_position[   s   zWinTerm.get_positionc                 C   s,   |d u rd S t j}|rt j}t  ||¡ d S r?   )r   r#   r@   ÚSetConsoleCursorPosition)r/   rF   r6   rB   r   r   r   Úset_cursor_positionc   s   zWinTerm.set_cursor_positionc                 C   sB   t j}|rt j}|  |¡}|j| |j| f}t j||dd� d S )NF)Úadjust)r   r#   r@   rG   rE   rD   rH   )r/   ÚxÚyr6   rB   rF   Úadjusted_positionr   r   r   Úcursor_adjustm   s   
zWinTerm.cursor_adjustr   c           	      C   sÒ   t j}|rt j}t  |¡}|jj|jj }|jj|jj |jj }|dkr-|j}|| }n|dkr:t  dd¡}|}n|dkrGt  dd¡}|}nd S t  	|d||¡ t  
||  ¡ ||¡ |dkrgt  |d¡ d S d S )Nr   r   r
   ú )r   r   )r   r#   r@   r"   ÚdwSizerD   rE   rC   ÚCOORDÚFillConsoleOutputCharacterÚFillConsoleOutputAttributer2   rH   )	r/   Úmoder6   rB   ÚcsbiÚcells_in_screenÚcells_before_cursorÚ
from_coordÚcells_to_eraser   r   r   Úerase_screenu   s*   

þzWinTerm.erase_screenc                 C   sª   t j}|rt j}t  |¡}|dkr|j}|jj|jj }n$|dkr.t  d|jj¡}|jj}n|dkr?t  d|jj¡}|jj}nd S t  	|d||¡ t  
||  ¡ ||¡ d S )Nr   r   r
   rO   )r   r#   r@   r"   rC   rP   rD   rQ   rE   rR   rS   r2   )r/   rT   r6   rB   rU   rX   rY   r   r   r   Ú
erase_line•   s    


zWinTerm.erase_linec                 C   s   t  |¡ d S r?   )r   ÚSetConsoleTitle)r/   Útitler   r   r   Ú	set_title®   s   zWinTerm.set_titler?   )NFF)NF)F)r   F)r   r   r   r0   r2   r&   r7   r:   r=   r>   r5   rG   rI   rN   rZ   r[   r^   r   r   r   r   r!      s    









 r!   c              	   C   st   t jd u s	t  ¡ sdS z"t| ƒ}t  |¡}t  ||t jB ¡ t  |¡}|t j@ r+W dS W d S  ttfy9   Y dS w )NFT)	r   ÚwindllÚwinapi_testr   ÚGetConsoleModeÚSetConsoleModeÚ"ENABLE_VIRTUAL_TERMINAL_PROCESSINGr   Ú	TypeError)ÚfdrB   rT   r   r   r   Úenable_vt_processing²   s    
þ

ÿÿrf   N)
Úmsvcrtr   ÚImportErrorÚ r   Úobjectr	   r   r!   rf   r   r   r   r   Ú<module>   s   ÿ 