
                             S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	J
r
  Sr\
" SS5      r\
" S	S
5      r " S S\5      r\" \SS9r\R"                  r " S S\5      r " S S\5      rg)    )unicode_literals)FastDictCache)Token)
get_cwidth)defaultdict
namedtuple)PointSizeScreenCharr	   zy xr
   zrows columnsc                       \ rS rSrSr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#_S$S%_S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4S5.ErS6\4S7 jrS8 r	S9 r
S: rSrg;)<r      z[
Represent a single character in a :class:`.Screen`.

This should be considered immutable.
)chartokenwidth z^@z^Az^Bz^Cz^Dz^Ez^Fz^Gz^H	z^I
z^Jz^Kz^Lz^Mz^Nz^Oz^Pz^Qz^Rz^Sz^Tz^Uz^Vz^Wz^Xz^Yz^Zz^[z^\z^]z^_z^?) c                 r    U R                   R                  X5      nXl        X l        [	        U5      U l        g N)display_mappingsgetr   r   r   r   )selfr   r   s      /lib/third_party/prompt_toolkit/layout/screen.py__init__Char.__init__C   s0    $$((4	
  %
    c                 t    U R                   UR                   :H  =(       a    U R                  UR                  :H  $ r4   r   r   r7   others     r8   __eq__Char.__eq__N   s'    yyEJJ&D4::+DDr;   c                 t    U R                   UR                   :g  =(       d    U R                  UR                  :g  $ r4   r=   r>   s     r8   __ne__Char.__ne__Q   s)     yyEJJ&C$***CCr;   c                 n    U R                   R                  < SU R                  < SU R                  < S3$ N(z, ))	__class____name__r   r   r7   s    r8   __repr__Char.__repr__V   s!    #~~66		4::NNr;   N)rJ   
__module____qualname____firstlineno____doc__	__slots__r5   r   r9   r@   rC   rL   __static_attributes__ r;   r8   r   r      s2   
 +I
!!! 	! 		!
 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  	!!" 	#!$ A!F  u 	&ED
Or;   r   i@B )sizec                   (    \ rS rSrSrSS jrS rSrg)r   ^   z5
Two dimentional buffer of :class:`.Char` instances.
Nc                    ^ Tc  [         S[        4   m[        U4S j5      U l        [        S 5      U l        [        SSS9U l        SU l        S U l        U=(       d    SU l	        U=(       d    SU l
        g )Nr2   c                  "   > [        U 4S j5      $ )Nc                     > T $ r4   rT   default_chars   r8   <lambda>3Screen.__init__.<locals>.<lambda>.<locals>.<lambda>f   s    <r;   r   r[   s   r8   r]   !Screen.__init__.<locals>.<lambda>f   s    {;O/Pr;   c                      [        S 5      $ )Nc                      g)N rT   rT   r;   r8   r]   r^   i   s    "r;   r_   rT   r;   r8   r]   r`   i   s	    k*6Mr;   r   )yxT)_CHAR_CACHETransparentr   data_bufferzero_width_escapesr	   cursor_positionshow_cursormenu_positionr   height)r7   r\   initial_widthinitial_heights    `  r8   r9   Screen.__init__b   st    &sK'78L&'PQ #..M"N  %qA   " #'a
$)r;   c                     U R                   nUR                  5        H8  u  p4UR                  5        H  u  pV[        UR                  U4   X#   U'   M!     M:     g)zK
For all the characters in the screen. Set the token to the given `token`.
N)rh   itemsrf   r   )r7   r   brd   rowre   r   s          r8   replace_all_tokensScreen.replace_all_tokens|   sL     ggiFA99;%dii&67Q '  r;   )rj   rh   rm   rl   rk   r   ri   )Nr   r   )rJ   rN   rO   rP   rQ   r9   ru   rS   rT   r;   r8   r   r   ^   s    *48r;   r   c                   $    \ rS rSrSS jrS rSrg)WritePosition   Nc                     US:  d   eUb  US:  d   eUS:  d   eXl         X l        X0l        X@l        U=(       d    UU l        g )Nr   )xposyposr   rm   extended_height)r7   r{   r|   r   rm   r}   s         r8   r9   WritePosition.__init__   sP    {{&/Q*>>>zz 		
.8&r;   c                     U R                   R                  < SU R                  < SU R                  < SU R                  < SU R
                  < SU R                  < S3$ rF   )rI   rJ   r{   r|   r   rm   r}   rK   s    r8   rL   WritePosition.__repr__   s<    NN##IItyy$**dkk4;O;OQ 	Qr;   )r}   rm   r   r{   r|   r4   )rJ   rN   rO   rP   r9   rL   rS   rT   r;   r8   rx   rx      s    
9Qr;   rx   N)
__future__r   prompt_toolkit.cacher   prompt_toolkit.tokenr   prompt_toolkit.utilsr   collectionsr   r   __all__r	   r
   objectr   rf   rg   r   rx   rT   r;   r8   <module>r      sz    ' . & + / 	7E"&.)BO6 BOJ D{3&8V &8RQF Qr;   