
    ࢉi23                         d dl Z d dlmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ  G d de      Zy)    N)UnionTupleCallableOptionalAny   )	CTkCanvas)ThemeManager)
DrawEngine)CTkBaseClass)CTkFont)CTkImage)pop_from_dict_by_setcheck_kwargs_emptyc                       e Zd ZdZh dZ	 	 	 	 	 	 	 	 	 	 	 	 	 d(dedededee   dee	e
e	e	f   f   d	eee	e
e	e	f   f      d
eee	e
e	e	f   f      deee	e
e	e	f   f      de	deeeef      deedf   de	de	def fdZ fdZ fdZd) fd	Zd Zd Z fdZd Zd* fd	Zd* fd	Zde	def fdZd+de	d ed!e	fd"Zd)de	d#ee	   fd$Zd% Zd& Zd' Z xZ S ),CTkLabelz
    Label with rounded corners. Default is fg_color=None (transparent fg_color).
    For detailed information check out the documentation.

    state argument will probably be removed because it has no effect
    >   padxpadystatecursorjustify	takefocus	underlinetextvariableNmasterwidthheightcorner_radiusbg_colorfg_color
text_colortext_color_disabledtextfontimagecompoundanchor
wraplengthc                    t         |   ||||       |t        j                  d   d   n| j	                  |d      | _        |t        j                  d   d   n| j	                  |      | _        |Cdt        j                  d   v rt        j                  d   d   | _        n(| j                  | _        n| j	                  |      | _        |t        j                  d   d   n|| _        || _	        |	| _
        || _        | j                  |      | _        || _        t        | j                  t               r%| j                  j#                  | j$                         |

t'               n| j)                  |
      | _        t        | j*                  t&              r%| j*                  j-                  | j.                         | j1                  d	d
       | j3                  d	d
       t5        | d	| j7                  | j8                        | j7                  | j:                              | _        | j<                  j?                  d	d	d       tA        | j<                        | _!        tE        jF                  | d	d	d	d	| j                  | j                  | j7                  | j                        | j                  | jI                  | j*                        
      | _%         | jJ                  jL                  di tO        || jP                         tS        |d       | jU                          | j%                          | jW                          y )N)r   r   r   r   r   r    Ttransparencyr!   r"   r   r   r   )weight)r   highlightthicknessr   r   nswerowcolumnsticky)
r   r-   r   r   borderwidthr'   r&   r(   r#   r$   )raise_error ),super__init__r
   theme_check_color_type	_fg_color_text_color_text_color_disabled_corner_radius_anchor_text_wraplength_check_image_type_image	_compound
isinstancer   add_configure_callback_update_imager   _check_font_type_fontadd_size_configure_callback_update_fontgrid_rowconfiguregrid_columnconfigurer	   _apply_widget_scaling_desired_width_desired_height_canvasgridr   _draw_enginetkinterLabel_apply_font_scaling_label	configurer   _valid_tk_label_attributesr   _create_grid_draw)selfr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   kwargs	__class__s                   q/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/customtkinter/windows/widgets/ctk_label.pyr7   zCTkLabel.__init__   s   ( 	vV HPGW++J7
C]a]s]st|  LP]s  ^QKUK]<--j9,Gcgcycy  {E  dF&$(:(::(FF,8,>,>z,J<,X),0,<,<)(,(>(>?R(SD% R_Qfl00<_Mly 
% ,,U3!dkk8,KK..t/A/AB #',WYD4I4I$4O
djj'*JJ2243D3DE 	q+!!!A!. 45'+'A'A$BUBU'V(,(B(B4CWCW(XZ 	a&9&t||4mm478)*)*01+/<<-1^^/3/I/I$JZJZ/[)-)-)A)A$**)M	O 	^ 4VT=\=\ ]^6t4

    c                    t        |   |i | | j                  j                  | j	                  | j
                        | j	                  | j                               | j                  j                  | j                  | j                               | j                  j                  | j	                  | j                               | j                          | j                          | j                  d       y )Nr   r   r$   r(   T)no_color_updates)r6   _set_scalingrP   rW   rM   rN   rO   rV   rU   rH   r@   rY   rF   rZ   )r[   argsr\   r]   s      r^   re   zCTkLabel._set_scalingk   s    d-f-T%?%?@S@S%T]a]w]wx|  yM  yM  ^N  	O4#;#;DJJ#GH)C)CDDTDT)UV

D
)r_   c                 D    t         |   |       | j                          y N)r6   _set_appearance_moderF   )r[   mode_stringr]   s     r^   ri   zCTkLabel._set_appearance_modev   s    $[1r_   c                    t         |   ||       | j                  j                  | j	                  | j
                        | j	                  | j                               | j                          | j                          y )Nra   )	r6   _set_dimensionsrP   rW   rM   rN   rO   rY   rZ   )r[   r   r   r]   s      r^   rl   zCTkLabel._set_dimensionsz   sf    v.T%?%?@S@S%T&*&@&@AUAU&V 	 	X

r_   c                     | j                   j                  | j                  | j                               | j                  j                          | j                  j                  ddd       y)zX pass font to tkinter widgets with applied font scaling and update grid with workaround rb   r   r.   r/   N)rV   rW   rU   rH   rP   grid_forgetrQ   r[   s    r^   rJ   zCTkLabel._update_font   sQ    4#;#;DJJ#GH 	  "a&9r_   c                 D   t        | j                  t              rS| j                  j	                  | j                  j                  | j                         | j                                      y | j                  '| j                  j	                  | j                         y y )N)r%   )rD   rB   r   rV   rW   create_scaled_photo_image_get_widget_scaling_get_appearance_modero   s    r^   rF   zCTkLabel._update_image   sw    dkk8,KK!!(M(MdNfNfNhNRNgNgNi)k! l[[$KK!!!4 %r_   c                     t        | j                  t              r%| j                  j                  | j                         t
        |           y rh   )rD   rH   r   remove_size_configure_callbackrJ   r6   destroy)r[   r]   s    r^   rv   zCTkLabel.destroy   s3    djj'*JJ55d6G6GHr_   c                     | j                   dk7  r| j                   nd}| j                  j                  dd|| j                  t	        | j
                  t        | j                  dz                           y)z configure grid system (1x1) center r      )r0   r1   r2   r   N)r>   rV   rQ   rM   minr=   round_current_height)r[   text_label_grid_stickys     r^   rY   zCTkLabel._create_grid   sh     261IrQq1G"88T=P=PRWX\XlXlopXpRq9rs 	 	ur_   c                    t         |   |       | j                  j                  | j	                  | j
                        | j	                  | j                        | j	                  | j                        d      }|du s|r| j                  | j                        dk(  r| j                  j                  d| j                  | j                        | j                  | j                               | j                  j                  | j                  | j                        | j                  | j                         | j                  | j                               n| j                  j                  d| j                  | j                        | j                  | j                               | j                  j                  | j                  | j                        | j                  | j                         | j                  | j                               | j                  j                  | j                  | j                               y y )Nr   Ftransparentinner_parts)filloutline)fgdisabledforegroundbg)r   )r6   rZ   rR   draw_rounded_rect_with_borderrM   _current_widthr}   r=   _apply_appearance_moder:   rP   
itemconfig	_bg_colorrV   rW   r;   r<   )r[   rd   requires_recoloringr]   s      r^   rZ   zCTkLabel._draw   s   &'"//MMdNhNhimi|i|N}NRNhNhimi}i}N~NRNhNhimi|i|N}NOQ
 u$(;**4>>:mK''-1-H-H-X040K0KDNN0[ ( ] %%)D)DTEUEU)V9=9T9TUYUnUn9o)-)D)DT^^)T & V ''-1-H-H-X040K0KDNN0[ ( ] %%)D)DTEUEU)V9=9T9TUYUnUn9o)-)D)DT^^)T & V LL""d&A&A$..&Q"R% )<r_   c                     d|v r(|j                  d      | _        | j                          d}d|v r)| j                  |j                  d      d      | _        d}d|v r'| j                  |j                  d            | _        d}d|v r'| j                  |j                  d            | _        d}d|v r<|j                  d      | _        | j                  j                  | j                         d	|v rt        | j                  t              r%| j                  j                  | j                         | j                  |j                  d	            | _        t        | j                  t              r%| j                  j!                  | j                         | j                          d
|v rt        | j"                  t$              r%| j"                  j'                  | j(                         | j+                  |j                  d
            | _        t        | j"                  t$              r%| j"                  j-                  | j(                         | j)                          d|v r<|j                  d      | _        | j                  j                  | j.                         d|v rL|j                  d      | _        | j                  j                  | j0                         | j                          d|v rK|j                  d      | _        | j                  j                  | j5                  | j2                                | j                  j                  di t7        || j8                         t;        | $  dd|i| y )Nr   Tr    r*   r!   r"   r#   )r#   r$   r%   r&   )r&   r'   )r'   r(   rc   require_redrawr5   )popr=   rY   r9   r:   r;   r<   r?   rV   rW   rD   rH   r   ru   rJ   rG   rI   rB   r   remove_configure_callbackrF   rA   rE   rC   r>   r@   rM   r   rX   r6   )r[   r   r\   r]   s      r^   rW   zCTkLabel.configure   s   f$"(**_"=D!N!33FJJz4JY]3^DN!N6!#55fjj6NOD!N F*(,(>(>vzzJ_?`(aD%!NVF+DJKK!!tzz!2V$**g.

99$:K:KL..vzz&/ABDJ$**g.

66t7H7HIf$++x055d6H6HI00G1DEDK$++x02243E3EF #ZZ
3DNKK!!4>>!:v!::h/DLKK!!!66!%zz,7DKK!!T-G-GHXHX-Y!Z^ 4VT=\=\ ]^BB6Br_   attribute_namereturnc                    |dk(  r| j                   S |dk(  r| j                  S |dk(  r| j                  S |dk(  r| j                  S |dk(  r| j                  S |dk(  r| j
                  S |dk(  r| j                  S |dk(  r| j                  S |d	k(  r| j                  S |d
k(  r| j                  S || j                  v r| j                  j                  |      S t        | 1  |      S )Nr   r    r!   r"   r#   r$   r%   r&   r'   r(   )r=   r:   r;   r<   r?   rH   rB   rC   r>   r@   rX   rV   cgetr6   )r[   r   r]   s     r^   r   zCTkLabel.cget   s    _,&&&z)>>!|+###44,,,v%::v%::w&;;z)>>!x'<<|+###t>>>;;##N337<//r_   sequencecommandaddc                     |dk(  s|du st        d      | j                  j                  ||d       | j                  j                  ||d       y)0 called on the tkinter.Label and tkinter.Canvas +TzE'add' argument can only be '+' or True to preserve internal callbacks)r   N)
ValueErrorrP   bindrV   )r[   r   r   r   s       r^   r   zCTkLabel.bind  sM    s
cTkdee(G675r_   funcidc                     |t        d      | j                  j                  |d       | j                  j                  |d       y)r   Nz'funcid' argument can only be None, because there is a bug in tkinter and its not clear whether the internal callbacks will be unbinded or not)r   rP   unbindrV   )r[   r   r   s      r^   r   zCTkLabel.unbind  sE     q r rHd+8T*r_   c                 6    | j                   j                         S rh   )rV   focusro   s    r^   r   zCTkLabel.focus  s    {{  ""r_   c                 6    | j                   j                         S rh   )rV   	focus_setro   s    r^   r   zCTkLabel.focus_set  s    {{$$&&r_   c                 6    | j                   j                         S rh   )rV   focus_forcero   s    r^   r   zCTkLabel.focus_force"  s    {{&&((r_   )r      Nr   NNNr   NNrx   rx   r   )NN)F)NNT)!__name__
__module____qualname____doc__rX   r   intr   r   strr   tupler   r   r7   re   ri   rl   rJ   rF   rv   rY   rZ   rW   anyr   r   r   r   r   r   r   __classcell__)r]   s   @r^   r   r      s   "U
  !049FCGEINR'9=04!)'#$!PPP P !)	P !eCHo!56P $E#uS#X*>$?@P &eCsCx,@&ABP '/uS%S/5I/J&KP P  eWn 56P hn-P P P  !!Pd	*:5
uS84Cl03 03 0:6S 6( 6 6+s +8C= +#')r_   r   )rS   typingr   r   r   r   r   core_renderingr	   r8   r
   r   core_widget_classesr   r$   r   r%   r   utilityr   r   r   r5   r_   r^   <module>r      s1     8 8 %  & -   =V)| V)r_   