package Ġdev . the code war ri or . bit font . font editor . widgets Ċ Ċ import Ġdev . the code war ri or . bit font . font editor . N uk lear Fonts Ċ import Ġdev . the code war ri or . bit font . font editor . utils . Dirty able Ċ import Ġdev . the code war ri or . bit font . font editor . utils . Draw List Ċ import Ġdev . the code war ri or . bit font . font editor . utils . Free able Ċ import Ġdev . the code war ri or . bit font . font editor . utils . Reference Glyph Ċ import Ġorg . lwjgl . n uk lear . Nk Context Ċ import Ġjava . awt . Color Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min Ċ Ċ class ĠReference Glyph Widget (): ĠN k Widget (), ĠFree able , ĠDir ty able Ġ{ ĊĠĠĠ Ġvar Ġguides Ġ= ĠGuide Set () ĊĠĠĠ Ġval Ġglyph Ġ= ĠReference Glyph ( N uk lear Fonts . sans ) ĊĠĠĠ Ġvar Ġhard Padding X : ĠFloat Ġby Ġdirty ing ( 0 . 0 5 f ) ĊĠĠĠ Ġvar Ġhard Padding Y : ĠFloat Ġby Ġdirty ing ( 0 . 0 5 f ) ĊĠĠĠ Ġvar Ġpadding X : ĠFloat Ġby Ġdirty ing ( 0 . 1 f ) ĊĠĠĠ Ġvar Ġpadding Y : ĠFloat Ġby Ġdirty ing ( 0 . 1 5 f ) ĊĠĠĠ Ġvar Ġcode point : ĠInt Ġby Ġdirty ing ( 0 ) ĊĊĠĠĠ Ġprivate Ġval ĠbackgroundColor Ġ= ĠColor . BLACK ĊĠĠĠ Ġprivate Ġval Ġaxis Color Ġ= ĠColor ( 0 xf 5 8 2 3 1 ) ĊĠĠĠ Ġprivate Ġval Ġguide Color Ġ= ĠColor ( 0 x 4 3 6 3 d 8 ) ĊĠĠĠ Ġprivate Ġval Ġglyph Color Ġ= ĠColor . WHITE ĊĠĠĠ Ġprivate Ġval Ġmark ings Color Ġ= ĠColor ( 0 x 3 cb 4 4 b ) ĊĊĠĠĠ Ġprivate Ġvar Ġglyph X : ĠFloat Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġglyph Y : ĠFloat Ġ= Ġ 0 f ĊĊĠĠĠ Ġprivate Ġvar Ġdirty : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġmark Dirty () Ġ{ Ġdirty Ġ= Ġtrue Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresize ( width : ĠFloat , Ġheight : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmark Dirty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( ĊĠĠĠĠĠĠĠ Ġctx : ĠN k Context , Ġdraw List : ĠDraw List , ĊĠĠĠĠĠĠĠ Ġrom : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġwidth : ĠFloat , Ġheight : ĠFloat , ĊĠĠĠĠĠĠĠ Ġmouse X : ĠFloat , ĠmouseY : ĠFloat ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( dirty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirty Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull Width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding X Ġ= Ġwidth Ġ* Ġthis . padding X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhard Padding X Ġ= Ġwidth Ġ* Ġthis . hard Padding X ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull Height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Y Ġ= Ġheight Ġ* Ġthis . padding Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhard Padding Y Ġ= Ġheight Ġ* Ġthis . hard Padding Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġglyph . load Glyph ( code point ) Ġ{ Ġmetrics Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġdefault Ġscale Ġbased Ġon Ġthe Ġfont Ġmetrics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġscale Ġ= Ġ( full Height Ġ- Ġpadding Y Ġ* Ġ 2 ) Ġ/ Ġ( metrics . cap Height Ġ- Ġmetrics . desc ender ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġmax ( metrics . cap Height , Ġmetrics . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Ġ= Ġmin ( metrics . desc ender , Ġmetrics . bottom ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbaseline Ġ= Ġpadding Y Ġ+ Ġmetrics . cap Height Ġ* Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( baseline Ġ- Ġtop Ġ* Ġscale Ġ< Ġhard Padding Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ( baseline Ġ- Ġhard Padding Y ) Ġ/ Ġtop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( baseline Ġ- Ġbottom Ġ* Ġscale Ġ> Ġfull Height Ġ- Ġhard Padding Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ( full Height Ġ- Ġbaseline Ġ- Ġhard Padding Y ) Ġ/ Ġ- bottom ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph Y Ġ= Ġbaseline ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġmin ( metrics . left , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġmax ( metrics . right , Ġmetrics . advance ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph X Ġ= Ġpadding X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( padding X Ġ+ Ġright Ġ* Ġscale Ġ> Ġfull Width Ġ- Ġhard Padding X ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ( full Width Ġ- Ġpadding X Ġ- Ġhard Padding X ) Ġ/ Ġright ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( padding X Ġ+ Ġleft Ġ* Ġscale Ġ< Ġhard Padding X ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġmin ( scale , Ġ( full Width Ġ- Ġhard Padding X Ġ* Ġ 2 ) Ġ/ Ġ( right Ġ- Ġleft )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph X Ġ= Ġhard Padding X Ġ+ Ġ- left Ġ* Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdraw List . fillRect ( 0 , Ġ 0 , Ġwidth , Ġheight , Ġ 0 , ĠbackgroundColor ) ĊĠĠĠĠĠĠĠ Ġval Ġmetrics Ġ= Ġglyph . metrics ĊĊĠĠĠĠĠĠĠ Ġif ( metrics Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding X Ġ= Ġwidth Ġ* Ġthis . padding X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . baseline Ġ&& Ġguides . while Blank ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( 0 f , Ġglyph Y , Ġwidth , Ġglyph Y , Ġguides . thickness , Ġaxis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . yAxis Ġ&& Ġguides . while Blank ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( padding X , Ġ 0 , Ġpadding X , Ġheight , Ġguides . thickness , Ġaxis Color ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . cap Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( 0 f , Ġglyph Y Ġ- Ġmetrics . cap Height , Ġwidth , Ġglyph Y Ġ- Ġmetrics . cap Height , Ġguides . thickness , Ġguide Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . advance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( 0 f , Ġglyph Y , Ġglyph X , Ġglyph Y , Ġguides . thickness , Ġaxis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( glyph X Ġ+ Ġmetrics . advance , Ġglyph Y , Ġwidth , Ġglyph Y , Ġguides . thickness , Ġaxis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( 0 , Ġglyph Y , Ġwidth , Ġglyph Y , Ġguides . thickness , Ġaxis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . x Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( 0 f , Ġglyph Y Ġ- Ġmetrics . x Height , Ġwidth , Ġglyph Y Ġ- Ġmetrics . x Height , Ġguides . thickness , Ġguide Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . desc ender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( 0 f , Ġglyph Y Ġ- Ġmetrics . desc ender , Ġwidth , Ġglyph Y Ġ- Ġmetrics . desc ender , Ġguides . thickness , Ġguide Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . yAxis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( glyph X , Ġ 0 f , Ġglyph X , Ġheight , Ġguides . thickness , Ġaxis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( guides . advance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph X Ġ+ Ġ 0 . 5 , Ġglyph Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph X Ġ+ Ġmetrics . advance , Ġglyph Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguides . thickness , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmark ings Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw List . stroke Line ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph X Ġ+ Ġmetrics . advance , Ġglyph Y Ġ- Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglyph X Ġ+ Ġmetrics . advance , Ġglyph Y Ġ+ Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , Ġmark ings Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġglyph . fill ( draw List , Ġglyph X , Ġglyph Y , Ġ 1 f , Ġglyph Color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfree () Ġ{ ĊĠĠĠĠĠĠĠ Ġglyph . free () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠGuide Set ( ĊĠĠĠĠĠĠĠ Ġvar Ġthickness : ĠFloat Ġ= Ġ 1 f , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWhether Ġto Ġstill Ġshow Ġguides Ġwhen Ġthere 's Ġno Ġglyph ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġwhile Blank : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġvar Ġbaseline : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġy Axis : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġcap Height : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġx Height : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġdesc ender : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġvar Ġadvance : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconstructor ( thickness : ĠFloat Ġ= Ġ 1 f , Ġall : ĠBoolean Ġ= Ġfalse , Ġwhile Blank : ĠBoolean Ġ= Ġall ): Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthickness , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Blank , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall , Ġall , Ġall , Ġall , Ġall , Ġall ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }