
    he"                       S SK Jr  S SKJrJr  S SKrS SKJrJr  S SK	J
r
JrJrJrJr  S SKJrJr  S SKJrJrJr  S SKJr  S	S
KJr  \(       a  S SKJr  S SKJr  S SKJr  S/r \RB                  " S5      r"\" S\
" SS\RF                  S9\
" SS S9\
" SS \RH                  \S9\
" SS	\RJ                  \S9\
" SS S9\
" SS S9\
" SSS9\
" S\RL                  S9\
" SSS9S .	5      r'\" \'5      r(\ " S! S\5      5       r)g)"    )annotations)TYPE_CHECKINGOptionalN)	validatorconst)DXFAttrDXFAttributesDefSubclassRETURN_DEFAULTgroup_code_mapping)DXF12SUBCLASS_MARKER)
base_classSubclassProcessor	DXFEntity)acdb_symbol_table_record   )register_entity)DXFNamespace)AbstractTagWriterfonts	TextstyleezdxfAcDbTextStyleTableRecord   Standard)defaultr   F   )r   (   )r   r   fixer)   2   G   *   g      @       	nameflagsheightwidthobliquegeneration_flagslast_heightfontbigfontc                    ^  \ rS rSrSrSr\" \\\	5      r
SrSr S   SU 4S jjjrSU 4S jjr\SS j5       rSS	 jr SS
S
S.   SS jjjrS r\SS j5       r\R*                  SS j5       r\SS j5       r\R*                  SS j5       r\SS j5       r\R*                  SS j5       r\SS j5       r  S     S S jjrSrU =r$ )!r   W   zDXF STYLE entitySTYLEi   i   c                `   > [         TU ]  U5      nU(       a  UR                  U[        5        U$ N)superload_dxf_attribssimple_dxfattribs_loaderacdb_style_group_codes)self	processordxf	__class__s      J/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/textstyle.pyr9   Textstyle.load_dxf_attribs`   s-     g&y1..s4JK
    c                  > [         TU ]  U5        UR                  [        :  aH  UR	                  [
        [        R                  5        UR	                  [
        [        R                  5        U R                  R                  U/ SQ5        g )Nr)   )r8   export_entity
dxfversionr   
write_tag2r   r   r*   
acdb_styler>   export_dxf_attribs)r<   	tagwriterr?   s     r@   rD   Textstyle.export_entityh   sc    i(%'  2J2O2OP  *//B##
	
rB   c                $    U R                  S5      $ )z2Returns ``True`` if extended font data is present.ACAD)	has_xdatar<   s    r@   has_extended_font_data Textstyle.has_extended_font_data}   s     ~~f%%rB   c                $   SnSnSn U R                  S5      n[        U5      S:  aL  US   u  pVUS:X  a  UnUS   u  pVUS:X  a0  [        U R                  U-  5      n[        U R                  U-  5      nXU4$ ! [
        R                   a     Nf = f)zReturns extended font data as tuple (font-family, italic-flag,
bold-flag).

The extended font data is optional and not reliable! Returns
("", ``False``, ``False``) if extended font data is not present.

r(   FrL   r   r     /  )	get_xdatalenboolITALICBOLDr   DXFValueError)r<   familyitalicboldxdata
group_codevalues          r@   get_extended_font_data Textstyle.get_extended_font_data   s     	3NN6*E 5zA~$)!H!
%"F$)!H!
%!$++"56F		E 12Dt## "" 		s   A8 8BBF)r[   r\   c                   U R                  S5      (       a  U R                  S5        SnU(       a  X@R                  -  nU(       a  X@R                  -  nU R	                  SSU4SU4/5        g)zmSet extended font data, the font-family name `family` is not
validated by `ezdxf`. Overwrites existing data.
rL   "   rR   rS   N)rM   discard_xdatarW   rX   	set_xdata)r<   rZ   r[   r\   r+   s        r@   set_extended_font_data Textstyle.set_extended_font_data   s_     >>&!!v&[[ EYYEvvu>?rB   c                &    U R                  S5        g)zDiscard extended font data.rL   N)rd   rN   s    r@   discard_extended_font_data$Textstyle.discard_extended_font_data   s    6"rB   c                B    U R                  [        R                  S5      $ )zLGet/set text generation flag BACKWARDS, for mirrored text along the
x-axis.
r/   )get_flag_stater   BACKWARDrN   s    r@   is_backwardTextstyle.is_backward   s    
 ""5>>3EFFrB   c                F    U R                  [        R                  US5        g Nr/   )set_flag_stater   rm   r<   states     r@   rn   ro      s    ENNE3EFrB   c                B    U R                  [        R                  S5      $ )zOGet/set text generation flag UPSIDE_DOWN, for mirrored text along
the y-axis.

r/   )rl   r   UPSIDE_DOWNrN   s    r@   is_upside_downTextstyle.is_upside_down   s     ""5#4#46HIIrB   c                F    U R                  [        R                  US5        g rq   )rr   r   rv   rs   s     r@   rw   rx      s    E--u6HIrB   c                B    U R                  [        R                  S5      $ )z?Get/set style flag VERTICAL_STACKED, for vertical stacked text.r+   )rl   r   VERTICAL_STACKEDrN   s    r@   is_vertical_stackedTextstyle.is_vertical_stacked   s     ""5#9#97CCrB   c                F    U R                  [        R                  US5        g )Nr+   )rr   r   r{   rs   s     r@   r|   r}      s    E22E7CrB   c                    U R                   R                  S:H  =(       a"    [        U R                   R                  S-  5      $ )z$``True`` if entry describes a shape.r(   r   )r>   r*   rV   r+   rN   s    r@   is_shape_fileTextstyle.is_shape_file   s.     xx}}"?tDHHNNQ,>'??rB   c                   SSK Jn  SnU R                  (       aT  U R                  5       u  pVnU(       a9  U(       a  SOSnU(       a  SOSn	UR                  " XXU	S9n
UR
                  " U
5      nO*U R                  R                  S	[        R                  5      nUS:X  a  [        R                  nUb  US
:X  a  U R                  R                  nUS
:X  a  SnUb  US
:X  a  U R                  R                  nUR                  " XAU5      $ )a  Returns a font abstraction :class:`~ezdxf.tools.fonts.AbstractFont`
for this text style. Returns a font for a cap height of 1, if the
text style has auto height (:attr:`Textstyle.dxf.height` is 0) and
the given `cap_height` is ``None`` or 0.
Uses the :attr:`Textstyle.dxf.width` attribute if the given `width_factor`
is ``None`` or 0, the default value is 1.
The attribute :attr:`Textstyle.dxf.big_font` is ignored.
r   r   r(   ItalicRegulari  i  )rZ   styleweightr1   g        g      ?)ezdxf.fontsr   rO   r`   FontFacefind_font_file_namer>   getr   DEFAULT_TTFr,   r-   	make_font)r<   
cap_heightwidth_factorr   ttfrZ   r[   r\   
text_styletext_weight	font_faces              r@   r   Textstyle.make_font   s     	&&&#'#>#>#@ FD)/XY
%)cs!NN!K	 //	:((,,vu'8'89C"9##Cs!2JJ<3#688>>Ls==rB    r7   )r=   zOptional[SubclassProcessor]returnr   )rI   r   r   None)r   rV   )r   ztuple[str, bool, bool])r(   )rZ   strr   r   )r   r   )NN)r   Optional[float]r   r   r   zfonts.AbstractFont)__name__
__module____qualname____firstlineno____doc__DXFTYPEr	   r   r   rG   
DXFATTRIBSrW   rX   r9   rD   propertyrO   r`   rf   ri   rn   setterrw   r|   r   r   __static_attributes____classcell__)r?   s   @r@   r   r   W   sh   Gz+CZPJ)F'D 8<4	 
* & &$6 @*/e@@	@ # G G G G J J J J D D D  D @ @ '+(,#>##> &#> 
	#> #>rB   )*
__future__r   typingr   r   loggingezdxf.lldxfr   r   ezdxf.lldxf.attributesr   r	   r
   r   r   ezdxf.lldxf.constr   r   ezdxf.entities.dxfentityr   r   r   ezdxf.entities.layerr   factoryr   ezdxf.entitiesr   ezdxf.lldxf.tagwriterr   r   r   __all__	getLoggerloggeris_valid_table_nameis_greater_or_equal_zerois_greater_zeroDEFAULT_TEXT_FONTrG   r;   r   r   rB   r@   <module>r      s'   # *  (  5 M M 9 $+7!-			7	#33
 Q'88 	
 // 	
 2q) $B2r3/ 5#:#:;1b)S*-
\ ,J7  `>	 `> `>rB   