
    h%                        d Z dZdZ	 ddlZddlmZ  eej
                        ZddlmZ ddlmZm	Z	m
Z
mZ ej                  Z G 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j0                  e_        ej                  j2                  Zej(                  ej6                  ge_        ej0                  e_        ej                  j8                  Zej(                  ege_        ej0                  e_        ej                  j<                  Zej(                  e
ej$                  e eej$                        ge_        ej0                  e_        ej                  j@                  Z!ej(                  ej6                  ej$                  e eej$                        ge!_        ej0                  e!_        ej                  jD                  Z#ejH                  ge#_        ej0                  e#_        ej                  jJ                  Z&ej(                   eej$                        ge&_        ej0                  e&_        ej                  jN                  Z(ej(                  ej$                  ge(_        ej0                  e(_        d
 Z)d Z*e fdZd ZddZd Z+d Z d Z,d Z%d Z'y# e-e.f$ r dZd Zd Z*Y yw xY w)ii       N)LibraryLoader)wintypes)byref	Structurec_charPOINTERc                   `    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 Z	y)	CONSOLE_SCREEN_BUFFER_INFOzstruct in wincon.h.dwSizedwCursorPositionwAttributessrWindowdwMaximumWindowSizec                    d| j                   j                  | j                   j                  | j                  j                  | j                  j                  | j                  | j
                  j                  | j
                  j                  | j
                  j                  | j
                  j                  | j                  j                  | j                  j                  fz  S )Nz"(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d))r   YXr   r   r   TopLeftBottomRightr   )selfs    7D:\EasyAligner\venv\Lib\site-packages\colorama/win32.py__str__z"CONSOLE_SCREEN_BUFFER_INFO.__str__    s    7t{{}}''))4+@+@+B+B""--##T]]%7%79M9Mt}}ObOb**,,d.F.F.H.H;      N)
__name__
__module____qualname____doc__COORDr   WORD
SMALL_RECT_fields_r    r   r   r   r      sC    !u'HMM*,,-"E*
	r   r   c                 V    t               }t        | t        |            }t        |      S N)r   _GetConsoleScreenBufferInfor   bool)handlecsbisuccesss      r   _winapi_testr,   l   s'    )+-E$K!G}r   c                  ^    t        d t        t              t        t              fD              S )Nc              3   2   K   | ]  }t        |        y wr&   )r,   ).0hs     r   	<genexpr>zwinapi_test.<locals>.<genexpr>s   s      CA ()<?As   )any_GetStdHandleSTDOUTSTDERRr$   r   r   winapi_testr6   r   s/     C!&)=+@AC C 	Cr   c                 Z    t        |       }t               }t        |t        |            }|S r&   )r3   r   r'   r   )	stream_idr)   r*   r+   s       r   GetConsoleScreenBufferInfor9   v   s,    y))+-E$K!r   c                 0    t        |       }t        ||      S r&   )r3   _SetConsoleTextAttribute)r8   attrsr)   s      r   SetConsoleTextAttributer=   }   s    y)'66r   c                 |   t        | }|j                  dk  s|j                  dk  ry t        |j                  dz
  |j                  dz
        }|rWt        t              j
                  }|xj                  |j                  z  c_        |xj                  |j                  z  c_        t        |       }t        ||      S )Nr      )
r    r   r   r9   r4   r   r   r   r3   _SetConsoleCursorPosition)r8   positionadjustadjusted_positionsrr)   s         r   SetConsoleCursorPositionrE      s    (#::?hjjAo "(**q.(**q.A+F3<<B266)277*y)(1BCCr   c           	          t        |       }t        |j                               }t        j                  |      }t        j                  d      }t        ||||t        |            }|j                  S )Nr   )r3   r   encoder   DWORD_FillConsoleOutputCharacterAr   value)r8   charlengthstartr)   num_writtenr+   s          r   FillConsoleOutputCharacterrO      s^    y)dkkm$'nnQ'.D&%{);=   r   c           	          t        |       }t        j                  |      }t        j                  |      }t        j                  d      }t	        ||||t        |            S )za FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )r   )r3   r   r!   rH   _FillConsoleOutputAttributer   )r8   attrrL   rM   r)   	attributerN   s          r   FillConsoleOutputAttributerT      sU    y)MM$'	'nnQ'*IvueK.@B 	Br   c                     t        |       S r&   )_SetConsoleTitleW)titles    r   SetConsoleTitlerX      s     ''r   c                     t        j                         }t        | t        |            }|st	        j
                         |j                  S r&   )r   rH   _GetConsoleModer   ctypesWinErrorrJ   r)   moder+   s      r   GetConsoleModer_      s8    ~~!&%+6//##zzr   c                 H    t        | |      }|st        j                         y r&   )_SetConsoleModer[   r\   r]   s      r   SetConsoleModerb      s#    !&$///## r   c                       y r&   r$   _s    r   <lambda>rf      s    r   c                       y r&   r$   rd   s    r   rf   rf      s    Tr   )T)/r4   r5   "ENABLE_VIRTUAL_TERMINAL_PROCESSINGr[   r   WinDLLwindllr   r   r   r   r	   _COORDr    r   kernel32GetStdHandler3   rH   argtypesHANDLErestyper9   r'   BOOLr=   r;   r!   rE   r@   FillConsoleOutputCharacterArI   rT   rQ   SetConsoleTitleWrV   LPCWSTRr_   rZ   rb   ra   r,   r6   rO   rX   AttributeErrorImportErrorr$   r   r   <module>rw      s   
	%+ "k$$6==)F 98OOEY $ OO00MM %OOM"(//"L"L*+,( +3--'%FF)% (0}}$ & H H*& )1%#)??#N#N - ) ,4== ("(//"L"L,( +3--'88" !)oo44O O 'mmOoo44O O 'mmOC .4 7D$!B($G 	$ "F-!K"s   "K% %K76K7