HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/conch/ui/__pycache__/tkvt100.cpython-38.pyc
U


W[��@s�dZzddlZddlmZWn$ek
r@ddlZddlZYnXddlZddlm	Z	da
d\aadZ
ddd	d
ddd
dddddddddd�ZGdd�dej�ZdS)zHModule to emulate a VT100 terminal in Tkinter.

Maintainer: Paul Swartz
�N�)�ansi)NN)�b�r�g�y�l�m�c�w�B�R�G�Y�L�M�C�W�#000000z#c40000z#00c400z#c4c400z#000080z#c400c4z#00c4c4z#c4c4c4z#626262z#ff0000z#00ff00z#ffff00z#0000ffz#ff00ffz#00ffffz#ffffffc@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
VT100FramecOs�tjddd�atttjtjtj��a	t
t��d�a|�
dd�|_|�
dd�|_|d	|_|d	=t	|j|d<}t|j|d<}tjj|f|�|�tjd
||d�|_|jjtjtjdd
�|j�d|j�|j�ddd��|j�d|j�|j�d|j�|j�d|j�|j�d|j�|j��t �!t j"j#t j"j$�|_%|j&|j%_&|j'|j%_'|j(|j%_(d|_)d|_*|jj+ddt	dtdddd�|_,dS)NZCourier�
)Zfamily�sizeZ	linespace�width�P�height��callbackr)�bgrrr)Zside�fill�expandz<Key>z<1>cSsdS�N�break�)�xr"r"�:/usr/lib/python3/dist-packages/twisted/conch/ui/tkvt100.py�<lambda>2�z%VT100Frame.__init__.<locals>.<lambda>z<Up>z<Down>z<Left>z<Right>r�green�rZoutline)-�tkFontZFont�ttyFont�max�mapZmeasure�stringZ
ascii_lettersZdigits�	fontWidth�intZmetrics�
fontHeight�getrrr�Tkinter�Frame�__init__ZCanvas�canvasZpackZTOPZBOTHZbind�
keyPressed�	upPressed�downPressed�leftPressed�rightPressedZfocusrZ
AnsiParserZ	ColorTextZWHITEZBLACK�
ansiParser�writeString�parseCursor�
parseEraser#r�create_rectangle�cursor)�self�args�kwr�hr"r"r$r4#s4




zVT100Frame.__init__cCs\|td}|td}|td}|td}|j�||||�}	|	D]}
|j�|
�qFdS)Nr�)r.r0r5�find_overlapping�delete)rAZsxZsy�exZeyZcsxZcsyZcexZcey�items�itemr"r"r$�_deleteFszVT100Frame._deletecs��j�jkrRd�_�jd7_�j�jkrR�fdd��j��D��jd8_�jtd}�jtd}�j�|||d|d�}|r��fdd�|D�|rʈjj	|||td|td||d��jj
||tjt
||d��jd7_dS)	Nrrcsg|]}�j�|dt��qS�r�r5Zmover0��.0r#�rAr"r$�
<listcomp>Tsz%VT100Frame._write.<locals>.<listcomp>�csg|]}�j�|��qSr")r5rG)rOrJrPr"r$rQZsr()Zanchor�font�textr)r#rrrr5�find_allr.r0rFr?Zcreate_textr2ZNWr*)rA�ch�fgr�canvasX�canvasYrIr"rPr$�_writeOs(zVT100Frame._writecCsr|j�|�|j�|j�|jtd}|jtd}|jj	|||td|tdddd�|_|j�
|j�dS)Nrr'r()r;ZparseStringr5rGr@r#r.rr0r?�lower)rA�datarXrYr"r"r$�write`s*zVT100Frame.writecs |js
dSt|j�|jdko&t|j�|jD]�}t|�}|dkrL���q.|dkrj�jrh�jd8_q.|dkr����fdd�td�D�q.|dkr�j	�j
dkr҈�d	d	�jd	��fd
d��j
��D�n�j	d7_	q.|dkr�d	�_q.d|k�rd
kr.nq.��|���q.dS)Nr��r�	csg|]}��d����qS)� )rZ)rO�index�rrWrAr"r$rQwsz*VT100Frame.writeString.<locals>.<listcomp>rrcsg|]}�j�|dt��qSrLrMrNrPr"r$rQ{s�
� �)Zdisplay�colorMaprWrrT�ordZbellr#�rangerrrKrr5rUrZ)rA�irVrr"rcr$r<js,


zVT100Frame.writeStringcs@d|kr:|d�|dd��d�}��fdd�|D�dSd}�j�j}}t|�dkrht|dd��}|ddkr�|dkr���||�j�j�n ��dd�j�j�d�_d�_n�|ddk�r|dkrވ�||�j|�n:|dk�r��d|||�d�_n��d|�j|�d�_n"|dd	k�r<��|||||�dS)
N�;���csg|]}��|���qSr")r>rN��endrAr"r$rQ�sz)VT100Frame.parseErase.<locals>.<listcomp>rr�J�K�P)�splitr#r�lenr/rKrr)rAZerase�parts�startr#rr"rmr$r>�s2
zVT100Frame.parseErasecCs�d}t|�dkr,|ddkr,t|dd��}|ddkrH|j|7_n�|ddkrd|j|8_n�|ddkr||d|_nr|ddkr�|d|_nZ|ddkr�t|�dkr�tt|dd��d��\}}|d8}|d8}nd	\}}||_||_dS)
Nrrl�Hr�D�drrk)rr)rsr/r#rr,rr)rAr@rurr#r"r"r$r=�s&
zVT100Frame.parseCursorcCs|jr|jr|�|j�dSr )r�char�rAZeventr"r"r$r6�szVT100Frame.keyPressedcCs|�d�dS)NzOA�rrzr"r"r$r7�szVT100Frame.upPressedcCs|�d�dS)NzOBr{rzr"r"r$r8�szVT100Frame.downPressedcCs|�d�dS)NzOCr{rzr"r"r$r:�szVT100Frame.rightPressedcCs|�d�dS)NzODr{rzr"r"r$r9�szVT100Frame.leftPressedN)�__name__�
__module__�__qualname__r4rKrZr]r<r>r=r6r7r8r:r9r"r"r"r$r"s#	
r)�__doc__Ztkinterr2Ztkinter.fontrSr)�ImportErrorr-�rr*r.r0Z	colorKeysrgr3rr"r"r"r$�<module>s8�