3 �Pf��@s@ddlmZGdd�de�ZGdd�de�ZGdd�de�ZdS) �)�win32c@s,eZdZdZdZdZdZdZdZdZ dZ d S) �WinColor�r������N) �__name__� __module__� __qualname__ZBLACKZBLUEZGREENZCYANZREDZMAGENTAZYELLOWZGREY�rr�/usr/lib/python3.6/winterm.pyrsrc@seZdZdZdZdZdS)�WinStyler��N)r r r ZNORMAL�BRIGHT�BRIGHT_BACKGROUNDrrrrrsrc@s�eZdZdd�Zdd�Zdd�Zd dd �Zd!d d �Zd"d d�Zd#dd�Z d$dd�Z dd�Z d%dd�Z d&dd�Z d'dd�Zd(dd�Zdd�ZdS))�WinTermcCs>tjtj�j|_|j|j�|j|_|j|_ |j |_ d|_ dS)Nr) r�GetConsoleScreenBufferInfo�STDOUTZ wAttributes�_default� set_attrs�_fore� _default_fore�_back� _default_back�_style�_default_style�_light)�selfrrr�__init__s  zWinTerm.__init__cCs|j|jd|j|jBS)N�)rrrr )r!rrr� get_attrs$szWinTerm.get_attrscCs.|d@|_|d?d@|_|tjtjB@|_dS)Nr r)rrrrrr)r!�valuerrrr's zWinTerm.set_attrsNcCs|j|j�|j|jd�dS)N)�attrs)rr� set_console)r!� on_stderrrrr� reset_all,s zWinTerm.reset_allFcCsL|dkr|j}||_|r*|jtjO_n|jtjM_|j|d�dS)N)r()rrr rrr')r!�fore�lightr(rrrr*0sz WinTerm.forecCsL|dkr|j}||_|r*|jtjO_n|jtjM_|j|d�dS)N)r()rrr rrr')r!�backr+r(rrrr,;sz WinTerm.backcCs$|dkr|j}||_|j|d�dS)N)r()rrr')r!�styler(rrrr-Fsz WinTerm.stylecCs0|dkr|j�}tj}|r tj}tj||�dS)N)r$rr�STDERRZSetConsoleTextAttribute)r!r&r(�handlerrrr'Ls zWinTerm.set_consolecCs,tj|�j}|jd7_|jd7_|S)Nr)rr�dwCursorPosition�X�Y)r!r/�positionrrr� get_positionTs zWinTerm.get_positioncCs,|dkr dStj}|rtj}tj||�dS)N)rrr.�SetConsoleCursorPosition)r!r3r(r/rrr�set_cursor_position\s zWinTerm.set_cursor_positioncCsBtj}|rtj}|j|�}|j||j|f}tj||dd�dS)NF)Zadjust)rrr.r4r2r1r5)r!�x�yr(r/r3Zadjusted_positionrrr� cursor_adjustfs  zWinTerm.cursor_adjustrc Cs�tj}|rtj}tj|�}|jj|jj}|jj|jj|jj}|dkrX|j}||}|dkrrtjdd�}|}n|dkr�tjdd�}|}tj |d||�tj ||j �||�|dkr�tj |d�dS)Nrrr� )rr) rrr.r�dwSizer1r2r0�COORD�FillConsoleOutputCharacter�FillConsoleOutputAttributer$r5) r!�moder(r/�csbiZcells_in_screenZcells_before_cursor� from_coord�cells_to_eraserrr� erase_screenns&   zWinTerm.erase_screencCs�tj}|rtj}tj|�}|dkr8|j}|jj|jj}|dkrZtjd|jj�}|jj}n |dkrztjd|jj�}|jj}tj |d||�tj ||j �||�dS)Nrrrr:) rrr.rr0r;r1r<r2r=r>r$)r!r?r(r/r@rArBrrr� erase_line�s  zWinTerm.erase_linecCstj|�dS)N)rZSetConsoleTitle)r!�titlerrr� set_title�szWinTerm.set_title)N)NFF)NFF)NF)NF)NF)F)rF)rF)r r r r"r$rr)r*r,r-r'r4r6r9rCrDrFrrrrrs       rN)�r�objectrrrrrrr�s