
    Mh
                        d dl mZ d dlZej        dk    sJ d dlmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d	d
lmZ d	dlmZ d	dlmZ d	dlmZ dgZd	ZdZ G d d          Z ej        e           ddZdS )    )annotationsNwin32)byrefwindll)DWORDHANDLE)AnyTextIOSize)STD_OUTPUT_HANDLE   )Output)
ColorDepth)Vt100_Output)Win32OutputWindows10_Output   c                  N    e Zd ZdZ	 ddd	Zdd
Zedd            ZddZddZ	dS )r   zV
    Windows 10 output abstraction. This enables and uses vt100 escape sequences.
    Nstdoutr
   default_color_depthColorDepth | NonereturnNonec                    || _         t          ||          | _        t          |d |          | _        t          t          j                            t                              | _
        d S )N)r   c                 "    t          dd          S )Nr   r        _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/prompt_toolkit/output/windows10.py<lambda>z+Windows10_Output.__init__.<locals>.<lambda>'   s    DAJJ r   )r   r   win32_outputr   vt100_outputr   r   kernel32GetStdHandler   	_hconsole)selfr   r   s      r   __init__zWindows10_Output.__init__!   sk     $7 'DWXXX(&&<O
 
 
   < <=N O OPPr   c                   t          d          }t          j                            | j        t          |                     t          j                            | j        t          t          t          z                       	 | j	        
                                 t          j                            | j        |           dS # t          j                            | j        |           w xY w)z3
        Write to output stream and flush.
        r   N)r   r   r#   GetConsoleModer%   r   SetConsoleModeENABLE_PROCESSED_INPUT"ENABLE_VIRTUAL_TERMINAL_PROCESSINGr"   flush)r&   original_modes     r   r-   zWindows10_Output.flush+   s     a 	&&t~u]7K7KLLL 	&&N(+MMNN	
 	
 	

	J##%%% O**4>=IIIIIFO**4>=IIIIs   C 'C)boolc                    dS )NFr   r&   s    r   responds_to_cprz Windows10_Output.responds_to_cpr@   s    ur   namestrr	   c                ^    |dv rt          | j        |          S t          | j        |          S )N)get_sizeget_rows_below_cursor_positionscroll_buffer_to_promptget_win32_screen_buffer_info)getattrr!   r"   )r&   r3   s     r   __getattr__zWindows10_Output.__getattr__D   s>      	
 	
 	
 4,d3334,d333r   r   c                6    | j         | j         S t          j        S )z
        Return the default color depth for a windows terminal.

        Contrary to the Vt100 implementation, this doesn't depend on a $TERM
        variable.
        )r   r   
TRUE_COLORr1   s    r   get_default_color_depthz(Windows10_Output.get_default_color_depthX   s!     #/++ $$r   )N)r   r
   r   r   r   r   )r   r   r   r/   )r3   r4   r   r	   )r   r   )
__name__
__module____qualname____doc__r'   r-   propertyr2   r;   r>   r   r   r   r   r      s         
 HLQ Q Q Q QJ J J J*    X4 4 4 4(% % % % % %r   r   r/   c                    t           j        dk    rdS t          t          j                            t                              } t          d          }t          j                            | t          |                     	 t          j        
                    | t          t          t          z                      }|dk    t          j        
                    | |           S # t          j        
                    | |           w xY w)z_
    Returns True when we're running Windows and VT100 escape sequences are
    supported.
    r   Fr   r   )sysplatformr   r   r#   r$   r   r   r)   r   r*   r+   r,   )hconsoler.   results      r   is_win_vt100_enabledrJ   o   s    
 |wufo223DEEFFH !HHM
O""8U=-A-ABBB@o44e25WWXX
 
 {&&x????&&x????s   ?C! !"Dr?   )
__future__r   rF   rG   ctypesr   r   ctypes.wintypesr   r   typingr	   r
   prompt_toolkit.data_structuresr   prompt_toolkit.win32_typesr   baser   color_depthr   vt100r   r   r   __all__r+   r,   r   registerrJ   r   r   r   <module>rV      sk   " " " " " " 




|w                 ) ) ) ) ) ) ) )         / / / / / / 8 8 8 8 8 8       # # # # # #             
   %+ "M% M% M% M% M% M% M% M%`   ! ! !@ @ @ @ @ @r   