
    ࢉi                     <    d dl Z d dlZd dlZd dlmZ  G d d      Zy)    N)Unionc            
       h    e Zd ZdZed        Zed
deeef   de	de	de	fd       Z
edede	fd       Zy	)FontManagerz	~/.fonts/c                    t         j                  j                  d      r	 t        j                  j                  t        j                  j                  | j                              s<t        j                  t        j                  j                  | j                               yy# t        $ r8}t         j                  j                  dt        |      z   dz          Y d }~yd }~ww xY w)NlinuxTFontManager error: 
F)sysplatform
startswithospathisdir
expanduserlinux_font_pathmkdir	Exceptionstderrwritestr)clserrs     y/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/customtkinter/windows/widgets/font/font_manager.pyinit_font_managerzFontManager.init_font_manager   s     <<""7+ww}}RWW%7%78K8K%LMHHRWW//0C0CDE   

  !6S!AD!HIs   BB% %	C&..C!!C&	font_pathprivate
enumerablereturnc                 X   ddl m}m}m}m} d}d}	t        |t              r ||      }
|j                  j                  }n:t        |t              r ||      }
|j                  j                  }nt        d      |r|nd|s|	ndz  } | ||
      |d      }t        t        |d            S )zr Function taken from: https://stackoverflow.com/questions/11993290/truly-custom-font-in-tkinter/30631309#30631309 r   )windllbyrefcreate_unicode_buffercreate_string_buffer       z&font_path must be of type bytes or str   )ctypesr    r!   r"   r#   
isinstancebytesgdi32AddFontResourceExAr   AddFontResourceExW	TypeErrorboolmin)r   r   r   r   r    r!   r"   r#   
FR_PRIVATEFR_NOT_ENUMpath_bufferadd_font_resource_exflagsnum_fonts_addeds                 r   windows_load_fontzFontManager.windows_load_font   s     	VU
i'.y9K#)<<#B#B 	3'/	:K#)<<#B#B DEE&AZ+UVW.u[/A5!LC+,,    c                    t         j                  j                  d      r| j                  |dd      S t         j                  j                  d      r?	 t	        j
                  |t        j                  j                  | j                               yy# t        $ r8}t         j                  j                  dt        |      z   dz          Y d }~yd }~ww xY w)NwinTF)r   r   r   r   r	   )r
   r   r   r6   shutilcopyr   r   r   r   r   r   r   r   )r   r   r   s      r   	load_fontzFontManager.load_font1   s     <<""5)((DU(SS \\$$W-Irww'9'9#:M:M'NO   

  !6S!AD!HIs   =B 	C.CCN)TF)__name__
__module____qualname__r   classmethodr   r   r   r)   r.   r6   r<    r7   r   r   r      sv    !O  -%U
*; -d -_c -pt - -* # $  r7   r   )r
   r   r:   typingr   r   rA   r7   r   <module>rC      s    
 	  ; ;r7   