/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 - 2 0 2 1 . Ġdata 2 viz Ġs Ãł rl . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . data 2 viz . viz Ċ Ċ import Ġandroid . graphics .* Ċ Ċ internal Ġfun ĠText Node . render ( renderer : ĠAndroid Canvas Renderer ) Ġ{ ĊĠĠĠ Ġval Ġcanvas Ġ= Ġrenderer . canvas ĊĠĠĠ Ġwith ( renderer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint . textAlign Ġ= Ġh Align . android ĊĠĠĠĠĠĠĠ Ġpaint . text Size Ġ= ĠfontSize . dp ĊĠĠĠĠĠĠĠ Ġpaint . type face Ġ= ĠType face . create ( fontFamily . name , Ġget Android Style ( font Weight , Ġfont Style )) ĊĊĠĠĠĠĠĠĠ Ġval Ġdy Ġ= Ġv Align . dy ( renderer , Ġpaint . font Metrics ) ĊĊĠĠĠĠĠĠĠ ĠtextColor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . update Paint ( paint , Ġrenderer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy . dp Ġ- Ġdy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstroke Color ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . update Paint ( paint , Ġrenderer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy . dp Ġ- Ġdy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠThe Ġy Ġdistance Ġto Ġmove Ġthe Ġtext Ġfrom Ġbaseline Ġin Ġorder Ġto Ġrespect Ġthe Ġwanted Ċ Ġ* Ġalignment . Ċ Ġ* Ċ Ġ* ĠThe Ġmiddle Ġalign ement Ġis Ġan Ġapproximation . Ċ Ġ* ĠTODO Ġresolve Ġby Ġimplementing ĠDV - 1 0 5 Ċ Ġ*/ Ċ internal Ġfun ĠText V Align . dy ( renderer : ĠAndroid Canvas Renderer , Ġfont Metrics : ĠPaint . Font Metrics ): ĠFloat Ġ= ĊĠĠĠ Ġwith ( renderer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( this @ dy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText V Align . BASE LINE Ġ-> Ġ 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText V Align . H ANG ING Ġ-> Ġfont Metrics . top ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText V Align . MIDDLE Ġ-> Ġfont Metrics . as cent Ġ* Ġ. 4 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ internal Ġval ĠText H Align . android : ĠPaint . Align ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText H Align . START , ĠText H Align . LEFT Ġ-> ĠPaint . Align . LEFT ĊĠĠĠĠĠĠĠ ĠText H Align . END , ĠText H Align . RIGHT Ġ-> ĠPaint . Align . RIGHT ĊĠĠĠĠĠĠĠ ĠText H Align . MIDDLE Ġ-> ĠPaint . Align . CENTER ĊĠĠĠ Ġ} ĊĊ Ċ // TODO Ġn ba Ġrefactor Ġcode : Ġmake Ġaccess Ġto Ġthe Ġandroid Ġtext ĠFont Ġmore Ġreachable Ċ internal Ġfun Ġget Android Style ( font Weight : ĠFontWeight , Ġfont Style : ĠFont Posture ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( font Weight ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFontWeight . NORMAL Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( font Style ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFont Posture . NORMAL Ġ-> ĠType face . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFont Posture . ITAL IC Ġ-> ĠType face . ITAL IC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠFontWeight . BOLD Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( font Style ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFont Posture . NORMAL Ġ-> ĠType face . BOLD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFont Posture . ITAL IC Ġ-> ĠType face . BOLD _ ITAL IC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ