75ddlZddlZdZgdZdZdZdZdZddZGd d Z dd Z dd Z e d k(rejZe ddeZeej#eej#deej#deej%eej'deej'dee eej)dej+deej+ee dZeej)dej+deej,edeZej1ej2edej4Zej1e edj7Zej%eej%eej:yy) Nz0.9)NORMALROMANBOLDITALIC nametofontFontfamiliesnamesnormalromanbolditalicct|d|S)zFGiven the name of a tk named font, returns a Font representation. T)nameexistsroot)r)rrs 3/opt/alt/python312/lib64/python3.12/tkinter/font.pyrrs T$T 22ceZdZdZej dZdZdZdZ ddZ dZ d Z d Z d Zd Zd ZdZddZdZdZeZddZdZy)raRepresents a named font. Constructor options are: font -- font specifier (name, system font, or (family, size, style)-tuple) name -- name to use for this font configuration (defaults to a unique name) exists -- does a named font by this name already exist? Creates a new named font if False, points to the existing font if True. Raises _tkinter.TclError if the assertion is false. the following are ignored if font is specified: family -- font 'family', e.g. Courier, Times, Helvetica size -- font size in points weight -- font thickness: NORMAL, BOLD slant -- font slant: ROMAN, ITALIC underline -- font underlining: false (0), true (1) overstrike -- font strikeout: false (0), true (1) cg}|jD]3\}}|jd|z|jt|5t|SN-)itemsappendstrtuple)selfkwoptionskvs r_setz Font._set2sGHHJDAq NN3q5 ! NN3q6 "W~rcRg}|D]}|jd|zt|Sr)rr)rargsr r!s r_getz Font._get9s+A NN3q5 !W~rcbi}tdt|dD]}||dz|||dd<|S)Nrr)rangelen)rr%r is r_mkdictz Font._mkdict?s?q#d)Q'A#'!9GDGABK (rNc |tjd}t|d|}|r#|j|j dd|}n|j |}|s!dt t|jz}||_ |rd|_ |j|j|j ddvr-tjjd|jd|rF|jdd |jg|n&|jdd |jg|d |_ ||_ |j|_|j|_y) Nzuse fonttkfontactualFr z named font z does not already exist configurecreateT)tkinter_get_default_rootgetattr splitlistcallr#rnextcounterr delete_font_tkinterTclError_tk_split_call)rrr/rrr r.s r__init__z Font.__init__Es% <,,Z8D T4 & <<$ ?@D99W%DCT\\ 233D $D yy RWWVW-E FF&&//>BiiIKK TYY>> BGGFHdii 7$ 7#D ll gg rc|jSN)rrs r__str__z Font.__str__ds yyrc~d|jjd|jjd|jdS)N<.z object >) __class__ __module__ __qualname__rrCs r__repr__z Font.__repr__gs<4>>,,-Qt~~/J/J.K$))a) )rct|tstS|j|jk(xr|j|jk(SrB) isinstancerNotImplementedrr=)rothers r__eq__z Font.__eq__ks7%&! !yyEJJ&@488uyy+@@rc$|j|SrB)cget)rkeys r __getitem__zFont.__getitem__psyy~rc,|jdi||iy)N)r1)rrTvalues r __setitem__zFont.__setitem__ss&#u&rcx |jr|jdd|jyy#t$rYywxYw)Nr/delete)r:r?r ExceptionrCs r__del__z Font.__del__vs;  68TYY7    s )- 99cJt|jfi|jS)z*Return a distinct copy of the current font)rr=r0rCs rcopyz Font.copy}sDHH. ..rc d}|rd|f}|r(|d|zfz}|jdd|jg|S|j|j|jdd|jg|S)zReturn actual font attributesrW -displayofrr/r0)r?rr,r>)roption displayofr%s rr0z Font.actuals}  ),D 3<**D4::fh ADA A<< JDJJvxJTJKM MrcD|jdd|jd|zS)zGet font attributer/configr)r?r)rrbs rrSz Font.cgetszz&(DIIs6zBBrc |r/|jdd|jg|j|y|j|j |jdd|jS)zModify font attributesr/reN)r?rr#r,r>)rr s rrez Font.configs`  DJJvx '99W% '<< DJJvxCDF Frc|f}|rd||f}|jj|jdd|jg|S)zReturn text widthrar/measure)r=getintr?r)rtextrcr%s rrhz Font.measuresCw  )T2Dxxztzz&)TYYNNOOrcd}|jdd}|rd|f}|rL||j|z}|jj|jdd|j g|S|j |jdd|j g|}i}tdt|dD],}|jj||d z|||d d<.|S) z}Return font metrics. For best performance, create a dummy widget using this font before calling this method.rWrcNrar/metricsrr(r) popr&r=rir?rr>r)r*)rr rr%rcresr+s rrlz Font.metricss FF;-  ),D $))G,,D88?? 69dii?$?A A++jdjjDIIMMNCG1c#h*&*hhooc!A#h&?Aqr #+Nr)NNNFNNrB)__name__rJrK__doc__ itertoolscountr9r#r&r,r@rDrLrQrUrYr]r_r0rSrer1rhrlrWrrrrsu*iooa G  >)A '/ MCFIPrrc|tjd}d}|rd|f}|jj|jjddg|S)zGet font families (as a tuple)zuse font.families()rWrar/r r3r4r.r6r7)rrcr%s rr r sU |(()>? Di( 77  \TWW\\&*DtD EErc|tjd}|jj|jj ddS)z'Get names of defined fonts (as a tuple)zuse font.names()r/r ru)rs rr r s< |(();< 77  TWW\\&': ;;r__main__times)familysizeweightrzr|hello linespace)rc)Courierr )r/z Hello, world)rjr/zQuit!)rjcommandr/)r|rBro)rrr3 __version____all__rrrrrrr r rpTkrfprintr0rerSrhrlLabelwpackButtondestroyr_fbmainlooprWrrrs   6   3 [[|F< z 7::