B
    h%              	   @   s  d Z dZdZy.ddlZddlmZ eejZddlmZ W n. ee	fk
rh   dZdd Z
d	d ZY nX 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 )#ii       N)LibraryLoader)wintypesc              G   s   d S )N )_r   r   KC:\Users\sanjo\AppData\Local\Qlobot\Launcher\ext_packages\colorama\win32.py<lambda>       r   c              G   s   d S )Nr   )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LeftZBottomZRightr   )selfr   r   r   __str__    s    z"CONSOLE_SCREEN_BUFFER_INFO.__str__N)
__name__
__module____qualname____doc__COORDr   WORDZ
SMALL_RECTZ_fields_r   r   r   r   r   r      s   
r   c             C   s   t  }t| t|}t|S )N)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 )N)r%   ).0hr   r   r   	<genexpr>s   s    zwinapi_test.<locals>.<genexpr>)any_GetStdHandleSTDOUTSTDERRr   r   r   r   winapi_testr   s    r-   c             C   s    t | }t }t|t|}|S )N)r*   r   r    r
   )	stream_idr"   r#   r$   r   r   r   GetConsoleScreenBufferInfov   s
    r/   c             C   s   t | }t||S )N)r*   _SetConsoleTextAttribute)r.   attrsr"   r   r   r   SetConsoleTextAttribute}   s    r2   Tc             C   sv   t | }|jdks|jdkr d S t |jd |jd }|rdttj}| j|j7  _| j|j7  _t| }t	||S )Nr      )
r   r   r   r/   r+   r   r   r   r*   _SetConsoleCursorPosition)r.   positionadjustadjusted_positionsrr"   r   r   r   SetConsoleCursorPosition   s    
r9   c             C   sB   t | }t| }t|}td}t||||t|}|jS )Nr   )r*   r   encoder   DWORD_FillConsoleOutputCharacterAr
   value)r.   charlengthstartr"   num_writtenr$   r   r   r   FillConsoleOutputCharacter   s    

rB   c             C   s:   t | }t|}t|}td}t||||t|S )za FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )r   )r*   r   r   r;   _FillConsoleOutputAttributer
   )r.   attrr?   r@   r"   	attributerA   r   r   r   FillConsoleOutputAttribute   s    


rF   c             C   s   t | S )N)_SetConsoleTitleW)titler   r   r   SetConsoleTitle   s    rI   c             C   s(   t  }t| t|}|s"t |jS )N)r   r;   _GetConsoleModer
   ctypesWinErrorr=   )r"   moder$   r   r   r   GetConsoleMode   s
    rN   c             C   s   t | |}|st d S )N)_SetConsoleModerK   rL   )r"   rM   r$   r   r   r   SetConsoleMode   s    
rP   )T)/r+   r,   "ENABLE_VIRTUAL_TERMINAL_PROCESSINGrK   r   ZWinDLLwindllr   AttributeErrorImportErrorr2   r-   r
   r   r   r   Z_COORDr   r   kernel32GetStdHandler*   r;   ZargtypesHANDLErestyper/   r    BOOLr0   r   r9   r4   ZFillConsoleOutputCharacterAr<   rF   rC   ZSetConsoleTitleWrG   LPCWSTRrN   rJ   rP   rO   r%   rB   rI   r   r   r   r   <module>   s   







