+
    Dfj$                         R t ^ RIt^ RIt^ RIHt ^RIHt Rs	RRus
sR%t/ RRbRRbRRbRRbRRbRRbR	RbR
RbRRbRRbRRbRRbRRbRR bRR!bRR"bt ! R# R$]P                  4      tR# )&zHModule to emulate a VT100 terminal in Tkinter.

Maintainer: Paul Swartz
N)ansi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                   h   a  ] tR t^>t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )
VT100Framec           	        \         P                  ! R ^
R7      s\        \	        \        P
                  \        P                  \        P                  ,           4      4      s	\        \        P                  4       R,          4      sVP                  R^P4      V n        VP                  R^4      V n        VR,          V n        VR \        V P                  ,          ;VR&   p\        V P                  ,          ;VR&   p\"        P$                  P&                  ! V .VO5/ VB  \"        P(                  ! RW4R7      V n        V P*                  P-                  \"        P.                  \"        P0                  ^R7       V P*                  P3                  R	V P4                  4       V P*                  P3                  R
R 4       V P*                  P3                  RV P6                  4       V P*                  P3                  RV P8                  4       V P*                  P3                  RV P:                  4       V P*                  P3                  RV P<                  4       V P*                  P?                  4        \@        PB                  ! \@        PD                  PF                  \@        PD                  PH                  4      V n%        V PL                  V PJ                  n&        V PN                  V PJ                  n'        V PP                  V PJ                  n(        ^ V n)        ^ V n*        V P*                  PW                  ^ ^ \        ^,
          \        ^,
          RRR7      V n,        R# )Courier)familysize	linespacewidthheightcallbackr   )bgr   r   )sidefillexpandz<Key>z<1>c                     R # break )xs   &:/usr/lib/python3/dist-packages/twisted/conch/ui/tkvt100.py<lambda>%VT100Frame.__init__.<locals>.<lambda>N   s    '    z<Up>z<Down>z<Left>z<Right>greenr    outlineN)-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'   r>   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 
r*   c                &   V\         ,          ^,           pV\        ,          ^,           pV\         ,          ^,           pV\        ,          ^,           pV P                  P                  WVWx4      p	V	 F  p
V P                  P	                  V
4       K   	  R# )   N)r7   r:   r@   find_overlappingdelete)rU   sxsyexeycsxcsycexceyitemsitems   &&&&&      r'   _deleteVT100Frame._deleted   sl    9nq :o!9nq :o!,,Ss@DKKt$ r*   c           	        V P                   V P                  8X  d   ^ V n         V ;P                  ^,          un        V P                  V P                  8X  db   V P                  P                  4        Uu. uF$  q@P                  P                  V^ \        ) 4      NK&  	   pV ;P                  ^,          un        V P                   \        ,          ^,           pV P                  \        ,          ^,           pV P                  P                  WVV^,           V^,           4      pV'       d*   V Uu. uF  qP                  P                  V4      NK  	   pV'       dF   V P                  P                  VVV\        ,           ^,
          V\        ,           ^,
          VVR7       V P                  P                  WV\        P                  \        WR7       V ;P                   ^,          un         R# u upi u upi )    r,   )anchorfonttextr    N)r&   r   r   r   r@   find_allmover:   r7   r\   r]   rS   create_textr<   NWr0   )	rU   chfgr   r&   canvasXcanvasYrf   rg   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   3*G)+#G.c           	        V P                   P                  V4       V P                  P                  V P                  4       V P
                  \        ,          ^,           pV P                  \        ,          ^,           pV P                  P                  VVV\        ,           ^,
          V\        ,           ^,
          RRR7      V n        V P                  P                  V P                  4       R# )r[   r+   r,   N)rO   parseStringr@   r]   rT   r&   r7   r   r:   rS   lower)rU   dataru   rv   s   &&  r'   writeVT100Frame.write   s    ##D)4;;'&&9$q(&&:%)kk22i!#j 1$ 3 
 	$++&r*   c           	        VP                   '       g   R # \        VP                  ,          pVP                  R8g  ;'       d    \        VP                  ,          pVP                   EFy  p\        V4      pV^8X  d   V P                  4        K(  V^8X  d0   V P                  '       d   V ;P                  ^,          un        K\  K^  V^	8X  d,   \        ^4       Uu. uF  q`P                  RW#4      NK  	   pK  V^
8X  d   V P                  V P                  ^,
          8X  dk   V P                  ^ ^ V P                  ^ 4       V P                  P                  4        Uu. uF%  pV P                  P!                  V^ \"        ) 4      NK'  	   pEK#  V ;P                  ^,          un
        EK?  V^8X  d   ^ V n        EKP  ^ Tu;8:  d   ^8  g   EKb  M EKg  V P                  WBV4       EK|  	  R # u upi u upi )Nr    )displaycolorMaprt   r   rn   ordbellr&   rangerw   r   r   rh   r   r@   ro   rp   r:   )rU   irt   r   rs   r   indexr&   s   &&      r'   rP   VT100Frame.writeString   s\   yyyadd^TTS[++Xadd^&&BBAAv		a666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                L   R V9   dE   VR,          pVRR P                  R 4      pV Uu. uF  q@P                  WB,           4      NK  	   pR# ^ pV P                  V P                  rd\	        V4      ^8  d   \        VRR 4      pVR,          R8X  di   V^ 8X  d*   V P                  WFV P                  V P                  4       R# V P                  ^ ^ V P                  V P                  4       ^ V n        ^ V n        R# VR,          R8X  dp   V^ 8X  d    V P                  WFV P                  V4       R# V^8X  d   V P                  ^ WdV4       ^ V n        R# V P                  ^ W`P                  V4       ^ V n        R# VR,          R8X  d   V P                  WFWE,           V4       R# R# u upi );NJKP)	splitrR   r&   r   lenr8   rh   r   r   )rU   eraseendpartsr&   startr   s   &&     r'   rR   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   F!c                J   ^p\        V4      ^8  d   VR,          R8w  d   \        VRR 4      pVR,          R8X  d   V ;P                  V,          un        R# VR,          R8X  d   V ;P                  V,          un        R# VR,          R8X  d   V^,
          V n        R# VR,          R8X  d   V^,
          V n        R# VR,          R8X  dY   \        V4      ^8  d8   \	        \        VRR P                  R4      4      w  r4V^,          pV^,          pM^ ^ r4W@n        W0n        R# R# )	r[   HNr   Ddr   r   r   )r   r8   r&   r   r2   r   )rU   rT   r   r   r&   s   &&   r'   rQ   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!1FF r*   c                    V P                   '       d.   VP                  '       d   V P                  VP                  4       R # r#   )r   charrU   events   &&r'   rE   VT100Frame.keyPressed   s&    ===UZZZMM%**%r*   c                (    V P                  R 4       R# )zOANr   r   s   &&r'   rF   VT100Frame.upPressed       hr*   c                (    V P                  R 4       R# )zOBNr   r   s   &&r'   rG   VT100Frame.downPressed   r   r*   c                (    V P                  R 4       R# )zOCNr   r   s   &&r'   rI   VT100Frame.rightPressed   r   r*   c                (    V P                  R 4       R# )zODNr   r   s   &&r'   rH   VT100Frame.leftPressed   r   r*   )rO   r   r@   rT   r   r   r&   r   N)__name__
__module____qualname____firstlineno__r>   rh   rw   r}   rP   rR   rQ   rE   rF   rG   rI   rH   __static_attributes____classdictcell__)__classdict__s   @r'   r   r   >   sG     #
J%4'(8-:6
      r*   r   )r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   )__doc__r4   tkinterr<   tkinter.fontrm   r.    r   r0   r7   r:   	colorKeysr   r=   r   r%   r*   r'   <module>r      s  
    
 	:
	&  	
             !({  { r*   