o
    �õ±j%  ã                	   @   s  d Z dZdZzddlZddlmZ eejƒZddlmZ W n ee	fy3   dZdd„ Z
d	d„ ZY dS w dd
lmZmZmZmZ ejZG dd„ deƒZejjZejge_eje_ejjZejeeƒge_eje_ejj
Zejejge_eje_ejjZ ejege _eje _ejj!Z"ejeejeeejƒge"_eje"_ejj#Z$ejejejeeejƒge$_eje$_ejj%Z&ej'ge&_eje&_ejj(Z)ejeejƒge)_eje)_ejj*Z+ejejge+_eje+_dd„ Z,dd„ Ze fdd„Zdd„ Z
d"dd„Zdd„ Z-dd„ Z#dd„ Z.dd„ Z(d d!„ Z*dS )#iõÿÿÿiôÿÿÿé   é    N)ÚLibraryLoader)Úwintypesc                  G   ó   d S ©N© ©Ú_r   r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/colorama/win32.pyÚ<lambda>   ó    r   c                  G   r   r   r   r   r   r   r
   r      r   )ÚbyrefÚ	StructureÚc_charÚPOINTERc                   @   s>   e Zd ZdZdefdefdejfdejfdefgZdd„ Z	d	S )
ÚCONSOLE_SCREEN_BUFFER_INFOzstruct in wincon.h.ÚdwSizeÚdwCursorPositionÚwAttributesÚsrWindowÚdwMaximumWindowSizec                 C   sH   d| j j| j j| jj| jj| j| jj| jj| jj| jj	| j
j| j
jf S )Nz"(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d))r   ÚYÚXr   r   r   ÚTopÚLeftÚBottomÚRightr   )Úselfr   r   r
   Ú__str__    s   ûz"CONSOLE_SCREEN_BUFFER_INFO.__str__N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚCOORDr   ÚWORDÚ
SMALL_RECTÚ_fields_r   r   r   r   r
   r      s    ûr   c                 C   s   t ƒ }t| t|ƒƒ}t|ƒS r   )r   Ú_GetConsoleScreenBufferInfor   Úbool)ÚhandleÚcsbiÚsuccessr   r   r
   Ú_winapi_testl   s
   ÿr,   c                   C   s   t dd„ ttƒttƒfD ƒƒS )Nc                 s   s   � | ]}t |ƒV  qd S r   )r,   )Ú.0Úhr   r   r
   Ú	<genexpr>s   s   € zwinapi_test.<locals>.<genexpr>)ÚanyÚ_GetStdHandleÚSTDOUTÚSTDERRr   r   r   r
   Úwinapi_testr   s   ÿr4   c                 C   s    t | ƒ}tƒ }t|t|ƒƒ}|S r   )r1   r   r'   r   )Ú	stream_idr)   r*   r+   r   r   r
   ÚGetConsoleScreenBufferInfov   s   ÿr6   c                 C   s   t | ƒ}t||ƒS r   )r1   Ú_SetConsoleTextAttribute)r5   Úattrsr)   r   r   r
   ÚSetConsoleTextAttribute}   s   
r9   Tc                 C   sv   t |Ž }|jdks|jdkrd S t |jd |jd ƒ}|r2ttƒj}| j|j7  _| j|j7  _t| ƒ}t	||ƒS )Nr   é   )
r#   r   r   r6   r2   r   r   r   r1   Ú_SetConsoleCursorPosition)r5   ÚpositionÚadjustÚadjusted_positionÚsrr)   r   r   r
   ÚSetConsoleCursorPosition�   s   

r@   c                 C   sB   t | ƒ}t| ¡ ƒ}t |¡}t d¡}t||||t|ƒƒ}|jS )Nr   )r1   r   Úencoder   ÚDWORDÚ_FillConsoleOutputCharacterAr   Úvalue)r5   ÚcharÚlengthÚstartr)   Únum_writtenr+   r   r   r
   ÚFillConsoleOutputCharacter“   s   

ÿrI   c                 C   s:   t | ƒ}t |¡}t |¡}t d¡}t||||t|ƒƒS )za FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )r   )r1   r   r$   rB   Ú_FillConsoleOutputAttributer   )r5   ÚattrrF   rG   r)   Ú	attributerH   r   r   r
   ÚFillConsoleOutputAttribute�   s   


ÿrM   c                 C   s   t | ƒS r   )Ú_SetConsoleTitleW)Útitler   r   r
   ÚSetConsoleTitle§   s   rP   c                 C   s(   t  ¡ }t| t|ƒƒ}|st ¡ ‚|jS r   )r   rB   Ú_GetConsoleModer   ÚctypesÚWinErrorrD   ©r)   Úmoder+   r   r   r
   ÚGetConsoleModeª   s
   rV   c                 C   s   t | |ƒ}|st ¡ ‚d S r   )Ú_SetConsoleModerR   rS   rT   r   r   r
   ÚSetConsoleMode±   s   
ÿrX   )T)/r2   r3   Ú"ENABLE_VIRTUAL_TERMINAL_PROCESSINGrR   r   ÚWinDLLÚwindllr   ÚAttributeErrorÚImportErrorr9   r4   r   r   r   r   Ú_COORDr#   r   Úkernel32ÚGetStdHandler1   rB   ÚargtypesÚHANDLEÚrestyper6   r'   ÚBOOLr7   r$   r@   r;   ÚFillConsoleOutputCharacterArC   rM   rJ   ÚSetConsoleTitleWrN   ÚLPCWSTRrV   rQ   rX   rW   r,   rI   rP   r   r   r   r
   Ú<module>   s–   
ýÿþþþûûÿþþ


