
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
ÝPfõ  ã               @   sÎ  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
rd   dZdd„ Z	dd„ Z
Y �nfX 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 ee ƒeeeƒi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S )é   é   é    N)ÚLibraryLoader)Úwintypesc              G   s   d S )N© )Ú_r   r   ú/usr/lib/python3.6/win32.pyÚ<lambda>   s    r	   c              G   s   d S )Nr   )r   r   r   r   r	      s    )Ú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| t|ƒƒ}t|ƒS )N)ÚhandlesÚSTDOUTr   Ú_GetConsoleScreenBufferInfor
   Úbool)ÚhandleÚcsbiÚsuccessr   r   r   Úwinapi_testa   s
    r'   c             C   s    t |  }tƒ }t|t|ƒƒ}|S )N)r    r   r"   r
   )Ú	stream_idr$   r%   r&   r   r   r   ÚGetConsoleScreenBufferInfoh   s
    r)   c             C   s   t |  }t||ƒS )N)r    Ú_SetConsoleTextAttribute)r(   Zattrsr$   r   r   r   ÚSetConsoleTextAttributeo   s    r+   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(   ZpositionZadjustZadjusted_positionÚsrr$   r   r   r   ÚSetConsoleCursorPositions   s    
r/   c             C   sB   t |  }t|jƒ ƒ}tj|ƒ}tjdƒ}t||||t|ƒƒ}|jS )Nr   )r    r   Úencoder   ÚDWORDÚ_FillConsoleOutputCharacterAr
   Úvalue)r(   ÚcharÚlengthÚstartr$   Únum_writtenr&   r   r   r   ÚFillConsoleOutputCharacter…   s    

r8   c             C   s:   t |  }tj|ƒ}tj|ƒ}tjdƒ}t||||t|ƒƒS )za FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )r   )r    r   r   r1   Ú_FillConsoleOutputAttributer
   )r(   Úattrr5   r6   r$   Z	attributer7   r   r   r   ÚFillConsoleOutputAttribute�   s    


r;   c             C   s   t | ƒS )N)Ú_SetConsoleTitleW)Útitler   r   r   ÚSetConsoleTitle™   s    r>   iõÿÿÿiôÿÿÿ)T)*r!   ZSTDERRZctypesr   ZWinDLLZwindllr   ÚAttributeErrorÚImportErrorr+   r'   r
   r   r   r   Z_COORDr   r   Zkernel32ZGetStdHandleZ_GetStdHandler1   ZargtypesZHANDLEZrestyper)   r"   ZBOOLr*   r   r/   r-   ZFillConsoleOutputCharacterAr2   r;   r9   ZSetConsoleTitleAr<   ZLPCSTRr    r8   r>   r   r   r   r   Ú<module>   sl   






