
    jj	                        d dl mZ d dlZd dlmZmZmZ d dlmZ ddl	m
Z
 ddlmZmZ ej                  rd dlmZ d d	lmZ  G d
 de      Zy)    )annotationsN)
CanvasJoinCompositeCanvas
TextCanvas)decompose_tagmarkup   )Sizing)Widget
fixed_size)Hashable)Fontc                       e Zd Z eej
                  g      Zd fdZd Zd Z	ddZ
	 	 d	 	 	 	 	 d	dZ	 d
	 	 	 	 	 ddZ xZS )BigTextc                    t         |           d| _        g | _        || _        | j                  |       | j                  |       y)z_
        markup -- same as Text widget markup
        font -- instance of a Font class
         N)super__init__textattribfontset_fontset_text)selfmarkupr   	__class__s      ^/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/urwid/widget/big_text.pyr   zBigText.__init__   s=    
 			df    c                T    t        |      \  | _        | _        | j                          y N)r   r   r   _invalidate)r   r   s     r   r   zBigText.set_text    s!    !4V!<	4;r   c                2    | j                   | j                  fS )z-
        Returns (text, attributes).
        )r   r   )r   s    r   get_textzBigText.get_text$   s     yy$++%%r   c                2    || _         | j                          y r   )r   r    )r   r   s     r   r   zBigText.set_font*   s    	r   c                    | j                   j                  }d}| j                  D ]   }|| j                   j                  |      z  }" ||fS )Nr   )r   heightr   
char_width)r   sizefocusrowscolscs         r   packzBigText.pack.   sN    
 yy 	,ADII((++D	,Tzr   c                8   t        |       d }dx}}g }| j                  j                  }g | j                  d t	        | j
                        f}| j
                  D ]  }	|s||   \  }}|dz  }|dz  }| j                  j                  |	      x}
s5| j                  j                  |	      }|t        |      }|j                  |       |j                  |d d|
f        |rt        |      }nt        t        dg|z  dd            }|j                  g        |S )Nr   r   Fr   )maxcolcheck_width)r   r   r%   r   lenr   r&   renderr   	fill_attrappendr   r   set_depends)r   r'   r(   aaiakor)   r   chwidthr+   canvs                r   r1   zBigText.render9   s   
 	4!Ryy74;;7s499~ 67)) 	2Br
2a!GB		,,R00u026))2B2B22F='*AKKN!T5%01	2 a=D":sedl1RW#XYDr   )r   r   returnNone) F)r'   ztuple[()] | Noner(   boolr<   ztuple[int, int])F)r'   z	tuple[()]r(   r?   r<   r   )__name__
__module____qualname__	frozensetr	   FIXED_sizingr   r   r"   r   r,   r1   __classcell__)r   s   @r   r   r      sv    'G
& "$		 	 
		   
	r   r   )
__future__r   typingurwid.canvasr   r   r   
urwid.utilr   	constantsr	   widgetr
   r   TYPE_CHECKINGcollections.abcr   urwidr   r   r>   r   r   <module>rP      s7    "  @ @ *  &	(Ef Er   