
    f                        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y)    )annotationsNwin32)byrefwindll)DWORDHANDLE)AnyTextIOSize)STD_OUTPUT_HANDLE   )Output)
ColorDepth)Vt100_Output)Win32OutputWindows10_Output   c                  P    e Zd ZdZ	 d	 	 	 	 	 d	dZd
dZedd       ZddZddZ	y)r   zV
    Windows 10 output abstraction. This enables and uses vt100 escape sequences.
    Nc                    || _         t        ||      | _        t        |d |      | _        t        t        j                  j                  t                    | _
        y )N)default_color_depthc                     t        dd      S )Nr   r        Z/var/www/cvtools/html/venv/lib/python3.12/site-packages/prompt_toolkit/output/windows10.py<lambda>z+Windows10_Output.__init__.<locals>.<lambda>'   s    DAJ r   )r   r   win32_outputr   vt100_outputr   r   kernel32GetStdHandler   	_hconsole)selfstdoutr   s      r   __init__zWindows10_Output.__init__!   sP     $7 'DWX(&<O
   < <=N OPr   c                   t        d      }t        j                  j                  | j                  t        |             t        j                  j                  | j                  t        t        t        z               	 | j                  j                          t        j                  j                  | j                  |       y# t        j                  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]7KL 	&&NN(+MMN	

	J##% OO**4>>=IFOO**4>>=Is   >C ,C/c                     y)NFr   r"   s    r   responds_to_cprz Windows10_Output.responds_to_cpr@   s    r   c                b    |dv rt        | j                  |      S t        | j                  |      S )N)get_sizeget_rows_below_cursor_positionenable_mouse_supportdisable_mouse_supportscroll_buffer_to_promptget_win32_screen_buffer_infoenable_bracketed_pastedisable_bracketed_paste)getattrr   r   )r"   names     r   __getattr__zWindows10_Output.__getattr__D   s7     	
 	
 4,,d334,,d33r   c                R    | 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_COLORr-   s    r   get_default_color_depthz(Windows10_Output.get_default_color_depthS   s*     ##/+++ $$$r   )N)r#   r
   r   zColorDepth | NonereturnNone)r>   r?   r>   bool)r9   strr>   r	   )r>   r   )
__name__
__module____qualname____doc__r$   r*   propertyr.   r:   r=   r   r   r   r   r      sS    
 HLQQ3DQ	QJ*  4%r   c                    t         j                  dk7  ryt        t        j                  j                  t                    } t        d      }t        j                  j                  | t        |             	 t        j                  j                  | t        t        t        z              }|dk(  t        j                  j                  | |       S # t        j                  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_enabledrM   j   s    
 ||wfoo223DEFH !HM
OO""8U=-AB@oo44e25WWX
 {&&x?&&x?s   68C "C1r@   )
__future__r   rI   rJ   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   registerrM   r   r   r   <module>rY      sv    " 

||w    )  / 8  #   
   %+ "H% H%V   !@r   