
    ࢉi                         d dl mZ d dlZd dlmZmZmZmZ 	 d dlmZ ddlmZ  G d de      Zy# e	$ r	 d dl
mZ Y w xY w)	    )FontN)ListCallableTupleOptional)Literal   )ThemeManagerc                        e Zd ZdZ	 	 	 	 	 	 ddee   dee   ded   ded   ded	ef fd
Z	de
fdZde
fdZdedeeeef   fdZd Z fdZdedef fdZddZ xZS )CTkFonta  
    Font object with size in pixel, independent of scaling.
    To get scaled tuple representation use create_scaled_tuple() method.

    family	The font family name as a string.
    size	The font height as an integer in pixel.
    weight	'bold' for boldface, 'normal' for regular weight.
    slant	'italic' for italic, 'roman' for unslanted.
    underline	1 for underlined text, 0 for normal.
    overstrike	1 for overstruck text, 0 for normal.

    Tkinter Font: https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/fonts.html
    familysizeweight)normalboldslant)italicroman	underline
overstrikec                 z   g | _         |t        j                  d   d   n|| _        t        |   |t        j                  d   d   n|t        | j                         |t        j                  d   d   n||||       t        |   d      | _        t        |   d       d| d|rdnd d|rd	nd | _	        y )
Nr   r   r   r   )r   r   r   r   r   r    r    r   )
_size_configure_callback_listr
   theme_sizesuper__init__abscget_family_tuple_style_string)selfr   r   r   r   r   r   	__class__s          u/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/customtkinter/windows/widgets/font/ctk_font.pyr   zCTkFont.__init__   s     >@*>Bl\''	26:PT
6> 2 29 =h G_e"4::.KQ> 2 29 =h G_e$#,$. 	 	0 w|H-&+gl8&<%=QugQV_{egFhhi  {Ejv  KM  jN  $O     callbackc                 :    | j                   j                  |       y)z9 add function, that gets called when font got configured N)r   appendr#   r'   s     r%   add_size_configure_callbackz#CTkFont.add_size_configure_callback1   s    **11(;r&   c                 Z    	 | j                   j                  |       y# t        $ r Y yw xY w)z< remove function, that gets called when font got configured N)r   remove
ValueErrorr*   s     r%   remove_size_configure_callbackz&CTkFont.remove_size_configure_callback5   s-    	..55h? 		s    	**font_scalingreturnc                 t    | j                   t        t        | j                         |z        | j                  fS )z\ return scaled tuple representation of font in the form (family: str, size: int, style: str))r!   roundr   r   r"   )r#   r0   s     r%   create_scaled_tuplezCTkFont.create_scaled_tuple<   s.    ||UC

O#3l#BCTE]E]]]r&   c                     t        d      )Nz]'config' is not implemented for CTk widgets. For consistency, always use 'configure' instead.)AttributeError)r#   argskwargss      r%   configzCTkFont.config@   s    |}}r&   c           	         d|v r:|j                  d      | _        t        |   t	        | j                                d|v r3t        |   |j                  d             t        |   d      | _        t        |   di | t        |   d       dt        |   d       dt        |   d      rdnd	 dt        |   d
      rd
nd	 | _        | j                  D ]	  } |         y )Nr   )r   r   )r   r   r   r   r   r   r    )	popr   r   	configurer   r    r!   r"   r   )r#   r8   r'   r$   s      r%   r=   zCTkFont.configureC   s!   VF+DJGC

O#34vGVZZ%9: 7<1DL#F# ',gl8&<%=Quw|G?T>UUVfkfmfrs~fWb  FH  WI  IJ  [`  [b  [g  ht  [u  KW  {}  J~  $  :: 	HJ	r&   attribute_namec                 f    |dk(  r| j                   S |dk(  r| j                  S t        |   |      S )Nr   r   )r   r!   r   r    )r#   r>   r$   s     r%   r    zCTkFont.cgetU   s6    V#::X%<<7<//r&   c                 ,    t        j                  |       S )N)copydeepcopy)r#   s    r%   rA   zCTkFont.copy]   s    }}T""r&   )NNNr   FF)r1   r   )__name__
__module____qualname____doc__r   strintr   boolr   r   r+   r/   floatr   r4   r9   r=   anyr    rA   __classcell__)r$   s   @r%   r   r      s     *.'+595<#($)O!#O}O !!12O   12	O
 !O "O,<H <x ^ ^%S#:N ^~$03 03 0#r&   r   )tkinter.fontr   rA   typingr   r   r   r   r   ImportErrortyping_extensionsr   r
   r   r;   r&   r%   <module>rQ      s@      2 2* !R#d R#  *)*s   0 >>