\dXddlZddlZdZgdZdZdZdZdZddZGd d Z dd Z dd Z e d kr'ej Ze ddeZeeeedeedeeeedeedee eededeeee dZeededeejedeZeejedejZee edZeeeeejdSdS) Nz0.9)NORMALROMANBOLDITALIC nametofontFontfamiliesnamesnormalromanbolditalicc&t|d|S)zFGiven the name of a tk named font, returns a Font representation. T)nameexistsroot)r)rrs ..\python\lib\tkinter\font.pyrrs T$T 2 2 22ceZdZdZejdZdZdZdZ ddZ d Z d Z d Z d Zd ZdZdZddZdZdZeZddZdZdS)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}|D]?\}}|d|z|t|@t|SN-)itemsappendstrtuple)selfkwoptionskvs r_setz Font._set2s_HHJJ # #DAq NN3q5 ! ! ! NN3q66 " " " "W~~rc^g}|D]}|d|zt|Sr)rr)rargsr r!s r_getz Font._get9s; " "A NN3q5 ! ! ! !W~~rci}tdt|dD]}||dz|||dd<|S)Nrr)rangelen)rr%r is r_mkdictz Font._mkdict?sNq#d))Q'' - -A#'!9GDGABBK rNFc |tjd}t|d|}|r+||dd|}n||}|s$dt t|jz}||_ |rwd|_ |j ||ddvr(tj d|j d|r|jdd |j g|Rn|jdd |j g|Rd |_ ||_ |j|_|j|_dS) 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__Ese <,Z88D T4 & &  &<<$ ? ?@@DD99W%%D 4CT\ 2 2333D  $$D y RWWVW-E-E F FFF&///>BiiiIKKK ? TY>>>>> BGFHdi 7$ 7 7 7 7#D l g rc|jSN)rrs r__str__z Font.__str__ds yrcLd|jjd|jjd|jdS)N<.z object >) __class__ __module__ __qualname__rrCs r__repr__z Font.__repr__gsB)4>,))t~/J)))))) )rczt|tstS|j|jko|j|jkSrB) isinstancerNotImplementedrr=)rothers r__eq__z Font.__eq__ks7%&& "! !yEJ&@48uy+@@rc,||SrB)cget)rkeys r __getitem__zFont.__getitem__psyy~~rc$|jdi||idS)N)r1)rrTvalues r __setitem__zFont.__setitem__ss$&&#u&&&&&rct |jr|dd|jdSdS#t$rYdSwxYw)Nr/delete)r:r?r ExceptionrCs r__del__z Font.__del__vs\  8 68TY77777 8 8    DD s #) 77cJt|jfi|S)z*Return a distinct copy of the current font)rr=r0rCs rcopyz Font.copy}s"DH.. ...rc d}|rd|f}|r|d|zfz}|jdd|jg|RS|||jdd|jg|RS)zReturn actual font attributesrW -displayofrr/r0)r?rr,r>)roption displayofr%s rr0z Font.actuals  - ),D  M3<**D4:fh ADAAA A<< JDJvxJTJJJKKMM MrcB|dd|jd|zS)zGet font attributer/configr)r?r)rrbs rrSz Font.cgets zz&(DIs6zBBBrc |r*|jdd|jg||RdS|||dd|jS)zModify font attributesr/reN)r?rr#r,r>)rr s rrez Font.configs  F DJvx '99W%% ' ' ' ' ' '<< DJJvxCCDDFF Frcp|f}|rd||f}|j|jdd|jg|RS)zReturn text widthrar/measure)r=getintr?r)rtextrcr%s rrhz Font.measuresKw  3 )T2Dxztz&)TYNNNNOOOrcd}|dd}|rd|f}|rE|||z}|j|jdd|jg|RS||jdd|jg|R}i}tdt|dD]6}|j||d z|||d d<7|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,,,D8?? 69di?$???AA A++jdjDIMMMMNNCG1c#hh** @ @&*hooc!A#h&?&?Aqrr ##Nr)NNNFNNrB)__name__rJrK__doc__ itertoolscountr9r#r&r,r@rDrLrQrUrYr]r_r0rSrer1rhrlrWrrrrsH*ioa  G  >)))AAA '''/// M M M MCCCFFFIPPPPrrc|tjd}d}|rd|f}|j|jjddg|RS)zGet font families (as a tuple)Nzuse font.families()rWrar/r r3r4r.r6r7)rrcr%s rr r s] |()>?? D)i( 7  \TW\&*DtDDD E EErc|tjd}|j|jddS)z'Get names of defined fonts (as a tuple)Nzuse font.names()r/r ru)rs rr r s> |();<< 7  TW\\&':: ; ;;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 6 6   3333 [[[[[[[[|FFFF<<<< z 7:<