package Ġcom . l hw dev . kt ui . text . font Ċ Ċ import Ġcom . l hw dev . kt ui . Immutable ĊĊ Ċ /** Ċ Ġ* ĠDefines Ġa Ġfont Ġfamily . ĠIt Ġcan Ġbe Ġconstructed Ġvia Ġa Ġgeneric Ġfont Ġfamily Ġsuch Ġas Ġserif , Ġsans - serif Ċ Ġ* Ġ( i . e . ĠFont Family (" sans - serif "). ĠIt Ġcan Ġalso Ġbe Ġconstructed Ġby Ġa Ġset Ġof Ġcustom Ġfonts . Ċ Ġ*/ Ċ @ Immutable Ċ sealed Ġclass ĠFont Family Ġconstructor ( val Ġcan Load S ynchronously : ĠBoolean ) Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ /** Ċĉĉ Ġ* ĠFont Ġfamily Ġwith Ġlow Ġcontrast Ġand Ġplain Ġstroke Ġend ings . Ċĉĉ Ġ* Ċĉĉ Ġ* Ġ@ see Ġ[ CSS Ġsans - serif ]( https :// www . w 3 . org / TR / css - fonts - 3 /# sans - serif ) Ċĉĉ Ġ*/ Ċĉ ĉ val Ġsans Ser if Ġ= ĠGeneric Font Family (" sans - serif ") ĊĉĉĊĉ ĉ /** Ċĉĉ Ġ* ĠThe Ġformal Ġtext Ġstyle Ġfor Ġscripts . Ċĉĉ Ġ* Ċĉĉ Ġ* Ġ@ see Ġ[ CSS Ġserif ]( https :// www . w 3 . org / TR / css - fonts - 3 /# serif ) Ċĉĉ Ġ*/ Ċĉ ĉ val Ġserif Ġ= ĠGeneric Font Family (" serif ") ĊĉĉĊĉ ĉ /** Ċĉĉ Ġ* ĠFont Ġfamily Ġwhere Ġglyph s Ġhave Ġthe Ġsame Ġfixed Ġwidth . Ċĉĉ Ġ* Ċĉĉ Ġ* Ġ@ see Ġ[ CSS Ġmonospace ]( https :// www . w 3 . org / TR / css - fonts - 3 /# mono space ) Ċĉĉ Ġ*/ Ċĉ ĉ val Ġmonospace Ġ= ĠGeneric Font Family (" mono space ") ĊĉĉĊĉ ĉ /** Ċĉĉ Ġ* ĠC urs ive , Ġhand - written Ġlike Ġfont Ġfamily . Ċĉĉ Ġ* Ċĉĉ Ġ* ĠIf Ġthe Ġdevice Ġdoesn 't Ġsupport Ġthis Ġfont Ġfamily , Ġthe Ġsystem Ġwill Ġfallback Ġto Ġthe Ċĉĉ Ġ* Ġdefault Ġfont . Ċĉĉ Ġ* Ċĉĉ Ġ* Ġ@ see Ġ[ CSS Ġcurs ive ]( https :// www . w 3 . org / TR / css - fonts - 3 /# cursive ) Ċĉĉ Ġ*/ Ċĉ ĉ val Ġcurs ive Ġ= ĠGeneric Font Family (" cursive ") Ċ ĉ } Ċ } ĊĊĊ Ċ /** Ċ Ġ* ĠA Ġbase Ġclass Ġof Ġ[ Font Family ] s Ġthat Ġis Ġcreated Ġfrom Ġfile Ġsources . Ċ Ġ*/ Ċ sealed Ġclass ĠFile Based Font Family Ġ: ĠFont Family ( false ) Ċ Ċ /** Ċ Ġ* ĠA Ġbase Ġclass Ġof Ġ[ Font Family ] s Ġinstalled Ġon Ġthe Ġsystem . Ċ Ġ*/ Ċ sealed Ġclass ĠSystem Font Family Ġ: ĠFont Family ( true ) Ċ Ċ /** Ċ Ġ* ĠDefines Ġa Ġfont Ġfamily Ġwith Ġlist Ġof Ġ[ Font ]. Ċ Ġ*/ Ċ data Ġclass ĠFont List Font Family ( val Ġfonts : ĠList < Font >) Ġ: ĠFile Based Font Family (), ĠList < Font > Ġby Ġfonts Ġ{ Ċ ĉ init Ġ{ Ċĉ ĉ check ( fonts . isNotEmpty ()) Ġ{ Ġ" At Ġleast Ġone Ġfont Ġshould Ġbe Ġpassed Ġto ĠFont Family " Ġ} ĊĉĉĊĉ ĉ check ( fonts . distinct By Ġ{ ĠPair ( it . weight , Ġit . style ) Ġ}. size Ġ== Ġfonts . size ) Ġ{ Ċĉĉ ĉ " There Ġcannot Ġbe Ġtwo Ġfonts Ġwith Ġthe Ġsame ĠFontWeight Ġand ĠFont Style Ġin Ġthe Ġsame Ġ" Ġ+ Ċĉĉĉ ĉ " Font Family " Ċĉ ĉ } Ċ ĉ } Ċ } Ċ /** Ċ Ġ* ĠConstruct Ġa Ġfont Ġfamily Ġthat Ġcontains Ġlist Ġof Ġcustom Ġfont Ġfiles . Ċ Ġ* Ċ Ġ* Ġ@ param Ġfonts Ġlist Ġof Ġfont Ġfiles Ċ Ġ*/ Ċ fun ĠfontFamily ( fonts : ĠList < Font >) Ġ= ĠFont List Font Family ( fonts ) Ċ Ċ /** Ċ Ġ* ĠConstruct Ġa Ġfont Ġfamily Ġthat Ġcontains Ġlist Ġof Ġcustom Ġfont Ġfiles . Ċ Ġ* Ċ Ġ* Ġ@ param Ġfonts Ġlist Ġof Ġfont Ġfiles Ċ Ġ*/ Ċ fun ĠfontFamily ( var arg Ġfonts : ĠFont ) Ġ= ĠFont List Font Family ( fonts . asList ()) Ċ Ċ /** Ċ Ġ* ĠDefines Ġa Ġfont Ġfamily Ġwith Ġan Ġgeneric Ġfont Ġfamily Ġname . Ċ Ġ* Ċ Ġ* ĠIf Ġthe Ġplatform Ġcannot Ġfind Ġthe Ġpassed Ġgeneric Ġfont Ġfamily , Ġuse Ġthe Ġplatform Ġdefault Ġone . Ċ Ġ* Ċ Ġ* Ġ@ param Ġname Ġa Ġgeneric Ġfont Ġfamily Ġname , Ġe . g . Ġ" serif ", Ġ" sans - serif " Ċ Ġ* Ġ@ see ĠFont Family . sans Ser if Ċ Ġ* Ġ@ see ĠFont Family . serif Ċ Ġ* Ġ@ see ĠFont Family . mono space Ċ Ġ* Ġ@ see ĠFont Family . cursive Ċ Ġ*/ Ċ class ĠGeneric Font Family Ġinternal Ġconstructor ( val Ġname : ĠString ) Ġ: ĠSystem Font Family () Ċ Ċ /** Ċ Ġ* ĠDefines Ġa Ġdefault Ġfont Ġfamily . Ċ Ġ*/ Ċ internal Ġclass ĠDefault Font Family Ġ: ĠSystem Font Family () Ċ Ċ /** Ċ // Ġ* ĠDefines Ġa Ġfont Ġfamily Ġthat Ġis Ġalready Ġloaded ĠType face . Ċ // Ġ* Ċ // Ġ* Ġ@ param Ġtype face ĠA Ġtype face Ġinstance . Ċ // Ġ*/ Ċ // data Ġclass ĠLoaded Font Family ( val Ġtype face : ĠType face ) Ġ: ĠFont Family ( true ) Ċ // Ċ // /** Ċ // Ġ* ĠConstruct Ġa Ġfont Ġfamily Ġthat Ġcontains Ġloaded Ġfont Ġfamily : ĠType face . Ċ // Ġ* Ċ // Ġ* Ġ@ param Ġtype face ĠA Ġtype face Ġinstance . Ċ // Ġ*/ Ċ // fun ĠfontFamily ( type face : ĠType face ) Ġ= ĠLoaded Font Family ( type face ) Ċ