
    h                         	 d dl mZ ddlmZ  G d de      Z G d de      Z G d	 d
e      Zd Z	y# e$ r d ZY 5w xY w)    )get_osfhandlec                     t        d      )NzThis isn't windows!)OSError)_s    9D:\EasyAligner\venv\Lib\site-packages\colorama/winterm.pyr   r      s    +,,       )win32c                   ,    e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
WinColorr   r	                     N)__name__
__module____qualname__BLACKBLUEGREENCYANREDMAGENTAYELLOWGREY r   r   r   r      s*    EDEDCGFDr   r   c                       e Zd ZdZdZdZy)WinStyler         N)r   r   r   NORMALBRIGHTBRIGHT_BACKGROUNDr   r   r   r    r       s    FFr   r    c                   r    e Zd Zd Zd Zd ZddZddZddZddZ	dd	Z
d
 ZddZddZddZddZd Zy)WinTermc                    t        j                  t         j                        j                  | _        | j                  | j                         | j                  | _        | j                  | _	        | j                  | _        d| _        y )Nr   )r
   GetConsoleScreenBufferInfoSTDOUTwAttributes_default	set_attrs_fore_default_fore_back_default_back_style_default_style_lightselfs    r   __init__zWinTerm.__init__   s[    88FRRt}}%!ZZ!ZZ"kk
 r   c                 n    | j                   | j                  dz  z   | j                  | j                  z  z   S )N   )r.   r0   r2   r4   r5   s    r   	get_attrszWinTerm.get_attrs*   s+    zzDJJO+t{{T[[/HIIr   c                     |dz  | _         |dz	  dz  | _        |t        j                  t        j                  z  z  | _        y )Nr   r   )r.   r0   r    r$   r%   r2   )r6   values     r   r-   zWinTerm.set_attrs-   s8    QY
qjA%
x1K1KKLr   Nc                     | j                  | j                         | j                  | j                         d| _        y )N)attrsr   )r-   r,   set_consoler4   )r6   	on_stderrs     r   	reset_allzWinTerm.reset_all2   s.    t}}%t}}-r   c                     || j                   }|| _        |r$| xj                  t        j                  z  c_        n$| xj                  t        j                   z  c_        | j                  |       y N)r@   )r/   r.   r4   r    r$   r?   )r6   forelightr@   s       r   rD   zWinTerm.fore7   sT    <%%D
KK8??*KKKHOO++K9-r   c                     || j                   }|| _        |r$| xj                  t        j                  z  c_        n$| xj                  t        j                   z  c_        | j                  |       y rC   )r1   r0   r4   r    r%   r?   )r6   backrE   r@   s       r   rG   zWinTerm.backB   sX    <%%D
KK8555KKKH6666K9-r   c                 R    || j                   }|| _        | j                  |       y rC   )r3   r2   r?   )r6   styler@   s      r   rI   zWinTerm.styleM   s*    =''E9-r   c                     || j                         }t        j                  }|rt        j                  }t        j                  ||       y N)r:   r
   r*   STDERRSetConsoleTextAttribute)r6   r>   r@   handles       r   r?   zWinTerm.set_consoleS   s8    =NN$E\\F%%fe4r   c                     t        j                  |      j                  }|xj                  dz  c_        |xj                  dz  c_        |S )Nr	   )r
   r)   dwCursorPositionXY)r6   rN   positions      r   get_positionzWinTerm.get_position[   s9    33F;LL 	

a


a
r   c                 z    |y t         j                  }|rt         j                  }t        j                  ||       y rK   )r
   r*   rL   SetConsoleCursorPosition)r6   rS   r@   rN   s       r   set_cursor_positionzWinTerm.set_cursor_positionc   s2     \\F&&vx8r   c                     t         j                  }|rt         j                  }| j                  |      }|j                  |z   |j
                  |z   f}t        j                  ||d       y )NF)adjust)r
   r*   rL   rT   rR   rQ   rV   )r6   xyr@   rN   rS   adjusted_positions          r   cursor_adjustzWinTerm.cursor_adjustm   sU    \\F$$V,%ZZ!^XZZ!^<&&v/@Or   c                    t         j                  }|rt         j                  }t        j                  |      }|j                  j
                  |j                  j                  z  }|j                  j
                  |j                  j                  z  |j                  j
                  z   }|dk(  r|j                  }||z
  }n=|dk(  rt        j                  dd      }|}n|dk(  rt        j                  dd      }|}ny t        j                  |d||       t        j                  || j                         ||       |dk(  rt        j                  |d       y y )Nr   r	   r    )r	   r	   )r
   r*   rL   r)   dwSizerQ   rR   rP   COORDFillConsoleOutputCharacterFillConsoleOutputAttributer:   rV   )	r6   moder@   rN   csbicells_in_screencells_before_cursor
from_coordcells_to_erases	            r   erase_screenzWinTerm.erase_screenu   s    \\F//7++--$++--7"kkmmd.C.C.E.EEH]H]H_H__19..J,/BBNQYQ*J0NQYQ*J,N ((njQ((1A>S]^19**66: r   c                    t         j                  }|rt         j                  }t        j                  |      }|dk(  r:|j                  }|j
                  j                  |j                  j                  z
  }n|dk(  rAt        j                  d|j                  j                        }|j                  j                  }nG|dk(  rAt        j                  d|j                  j                        }|j
                  j                  }ny t        j                  |d||       t        j                  || j                         ||       y )Nr   r	   r   r_   )r
   r*   rL   r)   rP   r`   rQ   ra   rR   rb   rc   r:   )r6   rd   r@   rN   re   rh   ri   s          r   
erase_linezWinTerm.erase_line   s     \\F//719..J![[]]T-B-B-D-DDNQYQ(=(=(?(?@J!2244NQYQ(=(=(?(?@J![[]]N ((njQ((1A>S]^r   c                 .    t        j                  |       y rK   )r
   SetConsoleTitle)r6   titles     r   	set_titlezWinTerm.set_title   s    e$r   rK   )NFF)NF)F)r   F)r   r   r   r7   r:   r-   rA   rD   rG   rI   r?   rT   rW   r]   rj   rl   rp   r   r   r   r'   r'      sM    
JM

	.	..59P;@_2%r   r'   c                 Z   t         j                  t        j                         sy	 t        |       }t        j                  |      }t        j
                  ||t         j                  z         t        j                  |      }|t         j                  z  ryy # t        t        f$ r Y yw xY w)NFT)	r
   windllwinapi_testr   GetConsoleModeSetConsoleMode"ENABLE_VIRTUAL_TERMINAL_PROCESSINGr   	TypeError)fdrN   rd   s      r   enable_vt_processingry      s    ||5#4#4#6r"##F+5;;;	

 ##F+%::: ; Y s   A/B B*)B*N)
msvcrtr   ImportError r
   objectr   r    r'   ry   r   r   r   <module>r~      sU   -$ v v 
S%f S%l]  ---s   3 >>