o
    1)h                     @   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   OC:\Users\User\Downloads\Proyecto_IoT\venv\Lib\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__ZBLACKZBLUEZGREENZCYANZREDZMAGENTAZYELLOWZ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   Z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)r-   )r   r   r$   r   r   r,   )r&   forelightr-   r   r   r   r1   7      zWinTerm.forec                 C   r/   r0   )r!   r    r$   r   r   r,   )r&   backr2   r-   r   r   r   r4   B   r3   zWinTerm.backc                 C   s$   |d u r| j }|| _| j|d d S r0   )r#   r"   r,   )r&   styler-   r   r   r   r5   M   s   zWinTerm.stylec                 C   s0   |d u r|   }tj}|rtj}t|| d S N)r)   r   r   STDERRSetConsoleTextAttribute)r&   r+   r-   handler   r   r   r,   S   s   zWinTerm.set_consolec                 C   s,   t |j}| jd7  _| jd7  _|S )Nr   )r   r   dwCursorPositionXY)r&   r9   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 r6   )r   r   r7   SetConsoleCursorPosition)r&   r=   r-   r9   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   r7   r>   r<   r;   r?   )r&   xyr-   r9   r=   Z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   r7   r   dwSizer;   r<   r:   COORDFillConsoleOutputCharacterFillConsoleOutputAttributer)   r?   )	r&   moder-   r9   csbiZcells_in_screenZ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
   rE   )r   r   r7   r   r:   rF   r;   rG   r<   rH   rI   r)   )r&   rJ   r-   r9   rK   rL   rM   r   r   r   
erase_line   s    


zWinTerm.erase_linec                 C   s   t | d S r6   )r   SetConsoleTitle)r&   titler   r   r   	set_title   s   zWinTerm.set_titler6   )NFF)NF)F)r   F)r   r   r   r'   r)   r   r.   r1   r4   r5   r,   r>   r@   rD   rN   rO   rR   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   windllZwinapi_testr   GetConsoleModeZSetConsoleMode"ENABLE_VIRTUAL_TERMINAL_PROCESSINGr   	TypeError)fdr9   rJ   r   r   r   enable_vt_processing   s    


rX   N)
msvcrtr   ImportError r   objectr	   r   r   rX   r   r   r   r   <module>   s    