
    h$                         S r SSKrSSKrSSKJr  SSKJr  Sq	Su  q
qSr0 SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_S#S$_S%S&_r " S' S(\R                  5      rg))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Wr   #000000r   z#c40000r   z#00c400r   z#c4c400r	   z#000080r
   z#c400c4r   z#00c4c4r   z#c4c4c4r   z#626262r   z#ff0000r   z#00ff00r   z#ffff00r   z#0000ffr   z#ff00ffr   z#00ffffr   z#ffffffc                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)
VT100Frame>   c           	      T   [         R                  " SSS9q[        [	        [        R
                  [        R                  [        R                  -   5      5      q	[        [        R                  5       S   5      qUR                  SS5      U l        UR                  SS5      U l        US	   U l        US		 [        U R                  -  =US'   n[        U R                  -  =US'   n["        R$                  R&                  " U /UQ70 UD6  ["        R(                  " S
X4S9U l        U R*                  R-                  ["        R.                  ["        R0                  SS9  U R*                  R3                  SU R4                  5        U R*                  R3                  SS 5        U R*                  R3                  SU R6                  5        U R*                  R3                  SU R8                  5        U R*                  R3                  SU R:                  5        U R*                  R3                  SU R<                  5        U R*                  R?                  5         [@        RB                  " [@        RD                  RF                  [@        RD                  RH                  5      U l%        U RL                  U RJ                  l&        U RN                  U RJ                  l'        U RP                  U RJ                  l(        SU l)        SU l*        U R*                  RW                  SS[        S-
  [        S-
  SSS9U l,        g )NCourier
   )familysize	linespacewidthP   height   callbackr   )bgr   r!   r   )sidefillexpandz<Key>z<1>c                     gNbreak )xs    _/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/conch/ui/tkvt100.py<lambda>%VT100Frame.__init__.<locals>.<lambda>N   s    '    z<Up>z<Down>z<Left>z<Right>r   greenr&   outline)-tkFontFontttyFontmaxmapmeasurestringascii_lettersdigits	fontWidthintmetrics
fontHeightgetr   r!   r#   TkinterFrame__init__CanvascanvaspackTOPBOTHbind
keyPressed	upPresseddownPressedleftPressedrightPressedfocusr   
AnsiParser	ColorTextWHITEBLACK
ansiParserwriteStringparseCursor
parseEraser,   r   create_rectanglecursor)selfargskwr   hs        r-   rD   VT100Frame.__init__?   s<   ++YR8GOOV-A-AFMM-QRS	*;78
VVGR(
ffXr*:zN#djj007a%338qt1d1b1nn	EgkkQG$//2 1204#3#344#3#34D$5$56//$..*>*>@T@TU&*&6&6#&*&6&6#%)__" kk22q)a-agw 3 
r0   c                     U[         -  S-   nU[        -  S-   nU[         -  S-   nU[        -  S-   nU R                  R                  XVXx5      n	U	 H  n
U R                  R	                  U
5        M      g )Nr      )r=   r@   rF   find_overlappingdelete)r[   sxsyexeycsxcsycexceyitemsitems              r-   _deleteVT100Frame._deleted   sl    9nq :o!9nq :o!,,Ss@DKKt$ r0   c           	      l   U R                   U R                  :X  a  SU l         U =R                  S-  sl        U R                  U R                  :X  a^  U R                  R                  5        Vs/ s H$  o@R                  R                  US[        * 5      PM&       nU =R                  S-  sl        U R                   [        -  S-   nU R                  [        -  S-   nU R                  R                  XVUS-   US-   5      nU(       a*  U Vs/ s H  oR                  R                  U5      PM       nU(       a2  U R                  R                  UUU[        -   S-
  U[        -   S-
  UUS9  U R                  R                  XV[        R                  [        XS9  U =R                   S-  sl         g s  snf s  snf )Nr   r      r2   )anchorfonttextr&   )r,   r   r   r!   rF   find_allmover@   r=   rb   rc   rY   create_textrB   NWr6   )	r[   chfgr$   r,   canvasXcanvasYrl   rm   s	            r-   _writeVT100Frame._writem   s`   66TZZDFFFaKFvv$>Bkk>R>R>TU>T!!!Q4>TU!&&9$q(&&:%),,Ww{GVWKX278%$[[%%8KK(()#a'*$q( )  	WZZgB 	  	
 	!' V 9s   -+F,	$F1c           	         U R                   R                  U5        U R                  R                  U R                  5        U R
                  [        -  S-   nU R                  [        -  S-   nU R                  R                  UUU[        -   S-
  U[        -   S-
  SSS9U l        U R                  R                  U R                  5        g )Nr   r1   r2   )rU   parseStringrF   rc   rZ   r,   r=   r   r@   rY   lower)r[   datar{   r|   s       r-   writeVT100Frame.write   s    ##D)4;;'&&9$q(&&:%)kk22i!#j 1$ 3 
 	$++&r0   c           	         UR                   (       d  g [        UR                     nUR                  S:g  =(       a    [        UR                     nUR                   GHf  n[        U5      nUS:X  a  U R                  5         M'  US:X  a*  U R                  (       a  U =R                  S-  sl        MU  MW  US:X  a,  [        S5       Vs/ s H  o`R                  SX#5      PM       nM  US:X  a  U R                  U R                  S-
  :X  ak  U R                  SSU R                  S5        U R                  R                  5        Vs/ s H%  nU R                  R!                  US["        * 5      PM'       nGM  U =R                  S-  sl
        GM/  US	:X  a
  SU l        GM?  S
Us=::  a	  S:  d  GMO  O  GMT  U R                  XBU5        GMi     g s  snf s  snf )Nr         r   	    r   r             )displaycolorMaprz   r$   rt   ordbellr,   ranger}   r   r!   rn   r   rF   ru   rv   r@   )r[   irz   r$   ry   r   indexr,   s           r-   rV   VT100Frame.writeString   sU   yyadd^TTS[+Xadd^&&BBAAv		a66FFaKF a7<Qx@xeS")x@b66T[[1_,LLAtzz15 "&!5!5!7!7A ((A
{;!7
 FFaKFFbq3BB'+  As   G,Gc                    SU;   a<  US   nUS S R                  S5      nU Vs/ s H  o@R                  XB-   5      PM       ng SnU R                  U R                  pd[	        U5      S:  a  [        US S 5      nUS   S:X  ae  US:X  a(  U R                  XFU R                  U R                  5        g U R                  SSU R                  U R                  5        SU l        SU l        g US   S:X  aj  US:X  a  U R                  XFU R                  U5        g US:X  a  U R                  SXdU5        SU l        g U R                  SX`R                  U5        SU l        g US   S:X  a  U R                  XFXE-   U5        g g s  snf )N;r   r   JKP)	splitrX   r,   r   lenr>   rn   r   r!   )r[   eraseendpartsr,   startr   s          r-   rX   VT100Frame.parseErase   sO   %<)C#2J$$S)E/45u!__QW%u5vvtvv1u:>cr
OE9zQ4::t{{;Q4::t{{;2Y#zQ4::q1!Qa(Q::q12Y#LLqy!, - 6s   E:c                    Sn[        U5      S:  a  US   S:w  a  [        US S 5      nUS   S:X  a  U =R                  U-  sl        g US   S:X  a  U =R                  U-  sl        g US   S:X  a  US-
  U l        g US   S:X  a  US-
  U l        g US   S:X  aO  [        U5      S:  a/  [	        [        US S R                  S5      5      u  p4US-  nUS-  nOS	u  pCX@l        X0l        g g )
Nr   r   Hr   Ddr   r   )r   r   )r   r>   r,   r   r8   r   )r[   rZ   r   r   r,   s        r-   rW   VT100Frame.parseCursor   s     v;?vbzS0s$E":FFeOFBZ3FFeOFBZ3QYDFBZ3QYDFBZ36{Q3s 1 1# 67QQFF r0   c                 ~    U R                   (       a,  UR                  (       a  U R                  UR                  5        gr)   )r#   charr[   events     r-   rK   VT100Frame.keyPressed   s"    ==UZZMM%**%r0   c                 &    U R                  S5        g )NzOAr#   r   s     r-   rL   VT100Frame.upPressed       hr0   c                 &    U R                  S5        g )NzOBr   r   s     r-   rM   VT100Frame.downPressed   r   r0   c                 &    U R                  S5        g )NzOCr   r   s     r-   rO   VT100Frame.rightPressed   r   r0   c                 &    U R                  S5        g )NzODr   r   s     r-   rN   VT100Frame.leftPressed   r   r0   )rU   r#   rF   rZ   r!   r   r,   r   N)__name__
__module____qualname____firstlineno__rD   rn   r}   r   rV   rX   rW   rK   rL   rM   rO   rN   __static_attributes__r+   r0   r-   r   r   >   s?    #
J%4'(8-:6
    r0   r   )__doc__r:   tkinterrB   tkinter.fontrs   r4    r   r6   r=   r@   	colorKeysr   rC   r   r+   r0   r-   <module>r      s  
    
 	:
	&  	
             !({  { r0   