o
    )1_&                     @   s@   d dl mZ G dd deZG dd deZG dd deZdS )	   )win32c                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
WinColor    r                     N)__name__
__module____qualname__BLACKBLUEGREENCYANREDMAGENTAYELLOWGREY r   r   2/usr/lib/python3/dist-packages/colorama/winterm.pyr      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_all,   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)r3   )r%   r$   r*   r   r   r2   )r,   forelightr3   r   r   r   r7   1      zWinTerm.forec                 C   r5   r6   )r'   r&   r*   r   r   r2   )r,   backr8   r3   r   r   r   r:   <   r9   zWinTerm.backc                 C   s$   |d u r| j }|| _| j|d d S r6   )r)   r(   r2   )r,   styler3   r   r   r   r;   G   s   zWinTerm.stylec                 C   s0   |d u r|   }tj}|rtj}t|| d S N)r/   r   r    STDERRSetConsoleTextAttribute)r,   r1   r3   handler   r   r   r2   M   s   zWinTerm.set_consolec                 C   s,   t |j}| jd7  _| jd7  _|S )Nr   )r   r   dwCursorPositionXY)r,   r?   positionr   r   r   get_positionU   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,   rC   r3   r?   r   r   r   set_cursor_position]   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=   rD   rB   rA   rE   )r,   xyr3   r?   rC   adjusted_positionr   r   r   cursor_adjustg   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   dwSizerA   rB   r@   COORDFillConsoleOutputCharacterFillConsoleOutputAttributer/   rE   )	r,   moder3   r?   csbicells_in_screencells_before_cursor
from_coordcells_to_eraser   r   r   erase_screeno   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   rL   )r   r    r=   r   r@   rM   rA   rN   rB   rO   rP   r/   )r,   rQ   r3   r?   rR   rU   rV   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   r-   r/   r#   r4   r7   r:   r;   r2   rD   rF   rK   rW   rX   r[   r   r   r   r   r      s    









 r   N) r   objectr   r   r   r   r   r   r   <module>   s   