/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġandroidx . compose . ui . text . style Ċ Ċ import Ġandroidx . compose . ui . text . Platform Paragraph Style Ċ import Ġandroidx . compose . ui . text . Experimental Text Api Ċ Ċ /** Ċ Ġ* ĠThe Ġconfiguration Ġfor Ġline Ġheight Ġsuch Ġas Ġalignment Ġof Ġthe Ġline Ġin Ġthe Ġprovided Ġline Ġheight , Ċ Ġ* Ġwhether Ġto Ġapply Ġadditional Ġspace Ġas Ġa Ġresult Ġof Ġline Ġheight Ġto Ġtop Ġof Ġfirst Ġline Ġtop Ġand Ċ Ġ* Ġbottom Ġof Ġlast Ġline . Ċ Ġ* Ċ Ġ* ĠThe Ġconfiguration Ġis Ġapplied Ġonly Ġwhen Ġa Ġline Ġheight Ġis Ġdefined Ġon Ġthe Ġtext . Ċ Ġ* Ċ Ġ* Ġ[ trim ] Ġfeature Ġis Ġavailable Ġonly Ġwhen Ġ[ Platform Paragraph Style . include Font Padding ] Ġis Ġfalse . Ċ Ġ* Ċ Ġ* ĠPlease Ġcheck Ġ[ Trim ] Ġand Ġ[ Alignment ] Ġfor Ġmore Ġdescription . Ċ Ġ* Ċ Ġ* Ġ@ param Ġalignment Ġdefines Ġhow Ġto Ġalign Ġthe Ġline Ġin Ġthe Ġspace Ġprovided Ġby Ġthe Ġline Ġheight . Ċ Ġ* Ġ@ param Ġtrim Ġdefines Ġwhether Ġthe Ġspace Ġthat Ġwould Ġbe Ġadded Ġto Ġthe Ġtop Ġof Ġfirst Ġline , Ġand Ċ Ġ* Ġbottom Ġof Ġthe Ġlast Ġline Ġshould Ġbe Ġtrimmed Ġor Ġnot . ĠThis Ġfeature Ġis Ġavailable Ġonly Ġwhen Ċ Ġ* Ġ[ Platform Paragraph Style . include Font Padding ] Ġis Ġfalse . Ċ Ġ*/ Ċ @ Experimental Text Api Ċ class ĠLine Height Style ( ĊĠĠĠ Ġval Ġalignment : ĠAlignment , ĊĠĠĠ Ġval Ġtrim : ĠTrim Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġdefault Ġconfiguration Ġfor Ġ[ Line Height Style ]: ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġalignment Ġ= Ġ[ Alignment . Pro portional ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġtrim Ġ= Ġ[ Trim . Both ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠDefault Ġ= ĠLine Height Style ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Pro portional , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrim Ġ= ĠTrim . Both ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠLine Height Style ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( alignment Ġ!= Ġother . alignment ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( trim Ġ!= Ġother . trim ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġalignment . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtrim . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Line Height Style (" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alignment =$ alignment , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" trim =$ trim " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ")" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDefines Ġwhether Ġthe Ġspace Ġthat Ġwould Ġbe Ġadded Ġto Ġthe Ġtop Ġof Ġfirst Ġline , Ġand Ġbottom Ġof Ġthe ĊĠĠĠĠ Ġ* Ġlast Ġline Ġshould Ġbe Ġtrimmed Ġor Ġnot . ĠThis Ġfeature Ġis Ġavailable Ġonly Ġwhen ĊĠĠĠĠ Ġ* Ġ[ Platform Paragraph Style . include Font Padding ] Ġis Ġfalse . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ kotlin . jvm . Jvm Inline ĊĠĠĠ Ġ@ Experimental Text Api ĊĠĠĠ Ġvalue Ġclass ĠTrim Ġprivate Ġconstructor ( private Ġval Ġvalue : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFirst Line Top . value Ġ-> Ġ" Line Height Style . Trim . First Line Top " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLast Line Bottom . value Ġ-> Ġ" Line Height Style . Trim . Last Line Bottom " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoth . value Ġ-> Ġ" Line Height Style . Trim . Both " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNone . value Ġ-> Ġ" Line Height Style . Trim . None " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Invalid " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFlag Trim Top Ġ= Ġ 0 x 0 0 0 0 0 0 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFlag Trim Bottom Ġ= Ġ 0 x 0 0 0 0 0 0 1 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠTrim Ġthe Ġspace Ġthat Ġwould Ġbe Ġadded Ġto Ġthe Ġtop Ġof Ġthe Ġfirst Ġline Ġas Ġa Ġresult Ġof Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġline Ġheight . ĠSingle Ġline Ġtext Ġis Ġboth Ġthe Ġfirst Ġand Ġlast Ġline . ĠThis Ġfeature Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġavailable Ġonly Ġwhen Ġ[ Platform Paragraph Style . include Font Padding ] Ġis Ġfalse . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġand Ġ[ Alignment ] Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ Alignment . Center ], Ġthe Ġfirst Ġline Ġhas Ġ 2 . em Ġheight Ġand Ġthe Ġheight Ġfrom ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġfirst Ġline Ġbaseline Ġto Ġsecond Ġline Ġbaseline Ġis Ġstill Ġ 3 . em : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠFirst Line Top Ġ= ĠTrim ( Flag Trim Top ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠTrim Ġthe Ġspace Ġthat Ġwould Ġbe Ġadded Ġto Ġthe Ġbottom Ġof Ġthe Ġlast Ġline Ġas Ġa Ġresult Ġof Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġline Ġheight . ĠSingle Ġline Ġtext Ġis Ġboth Ġthe Ġfirst Ġand Ġlast Ġline . ĠThis Ġfeature Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġavailable Ġonly Ġwhen Ġ[ Platform Paragraph Style . include Font Padding ] Ġis Ġfalse . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġand Ġ[ Alignment ] Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ Alignment . Center ], Ġthe Ġlast Ġline Ġhas Ġ 2 . em Ġheight Ġand Ġthe Ġheight Ġfrom ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġfirst Ġline Ġbaseline Ġto Ġsecond Ġline Ġbaseline Ġis Ġstill Ġ 3 . em : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠLast Line Bottom Ġ= ĠTrim ( Flag Trim Bottom ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠTrim Ġthe Ġspace Ġthat Ġwould Ġbe Ġadded Ġto Ġthe Ġtop Ġof Ġthe Ġfirst Ġline Ġand Ġbottom Ġof Ġthe Ġlast ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġline Ġas Ġa Ġresult Ġof Ġthe Ġline Ġheight . ĠThis Ġfeature Ġis Ġavailable Ġonly Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ Platform Paragraph Style . include Font Padding ] Ġis Ġfalse . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġand Ġ[ Alignment ] Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ Alignment . Center ], Ġthe Ġfirst Ġand Ġlast Ġline Ġhas Ġ 2 . em Ġheight Ġand Ġthe Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġfrom Ġfirst Ġline Ġbaseline Ġto Ġsecond Ġline Ġbaseline Ġis Ġstill Ġ 3 . em : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠBoth Ġ= ĠTrim ( Flag Trim Top Ġor ĠFlag Trim Bottom ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠDo Ġnot Ġtrim Ġfirst Ġline Ġtop Ġor Ġlast Ġline Ġbottom . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġand Ġ[ Alignment ] Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ Alignment . Center ], Ġthe Ġfirst Ġline Ġheight , Ġlast Ġline Ġheight Ġand Ġthe Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġfrom Ġfirst Ġline Ġbaseline Ġto Ġsecond Ġline Ġbaseline Ġare Ġ 3 . em : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠNone Ġ= ĠTrim ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġis Trim First Line Top (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue Ġand ĠFlag Trim Top Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġis Trim Last Line Bottom (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue Ġand ĠFlag Trim Bottom Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDefines Ġhow Ġto Ġalign Ġthe Ġline Ġin Ġthe Ġspace Ġprovided Ġby Ġthe Ġline Ġheight . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ kotlin . jvm . Jvm Inline ĊĠĠĠ Ġ@ Experimental Text Api ĊĠĠĠ Ġvalue Ġclass ĠAlignment Ġprivate Ġconstructor ( internal Ġval Ġtop Percentage : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( top Percentage Ġin Ġ 0 .. 1 0 0 Ġ|| Ġtop Percentage Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" top Ratio Ġshould Ġbe Ġin Ġ[ 0 .. 1 0 0 ] Ġrange Ġor Ġ- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( top Percentage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTop . top Percentage Ġ-> Ġ" Line Height Style . Alignment . Top " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCenter . top Percentage Ġ-> Ġ" Line Height Style . Alignment . Center " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro portional . top Percentage Ġ-> Ġ" Line Height Style . Alignment . Pro portional " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom . top Percentage Ġ-> Ġ" Line Height Style . Alignment . Bottom " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Line Height Style . Alignment ( top Percentage Ġ= Ġ$ top Percentage )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAlign Ġthe Ġline Ġto Ġthe Ġtop Ġof Ġthe Ġspace Ġreserved Ġfor Ġthat Ġline . ĠThis Ġmeans Ġthat Ġall Ġextra ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġspace Ġas Ġa Ġresult Ġof Ġline Ġheight Ġis Ġapplied Ġto Ġthe Ġbottom Ġof Ġthe Ġline . ĠWhen Ġthe Ġprovided ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġline Ġheight Ġvalue Ġis Ġsmaller Ġthan Ġthe Ġactual Ġline Ġheight , Ġthe Ġline Ġwill Ġstill Ġbe Ġaligned ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġto Ġthe Ġtop , Ġtherefore Ġthe Ġrequired Ġdifference Ġwill Ġbe Ġsubtract ed Ġfrom Ġthe Ġbottom Ġof Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġline . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġthe Ġlines Ġare Ġaligned Ġto Ġthe Ġtop Ġof Ġ 3 . em ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġheight : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠTop Ġ= ĠAlignment ( top Percentage Ġ= Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAlign Ġthe Ġline Ġto Ġthe Ġcenter Ġof Ġthe Ġspace Ġreserved Ġfor Ġthe Ġline . ĠThis Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġdistribut es Ġadditional Ġspace Ġeven ly Ġbetween Ġtop Ġand Ġbottom Ġof Ġthe Ġline . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġthe Ġlines Ġare Ġaligned Ġto Ġthe Ġcenter Ġof Ġ 3 . em ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġheight : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠCenter Ġ= ĠAlignment ( top Percentage Ġ= Ġ 5 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAlign Ġthe Ġline Ġpro portional Ġto Ġthe Ġas cent Ġand Ġdesc ent Ġvalues Ġof Ġthe Ġline . ĠFor Ġexample ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġif Ġas cent Ġis Ġ 8 Ġunits Ġof Ġlength , Ġand Ġdesc ent Ġis Ġ 2 Ġunits ; Ġan Ġadditional Ġspace Ġof Ġ 1 0 Ġunits ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġwill Ġbe Ġdistributed Ġas Ġ 8 Ġunits Ġto Ġtop , Ġand Ġ 2 Ġunits Ġto Ġthe Ġbottom Ġof Ġthe Ġline . ĠThis Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġdefault Ġbehavior . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠPro portional Ġ= ĠAlignment ( top Percentage Ġ= Ġ- 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAlign Ġthe Ġline Ġto Ġthe Ġbottom Ġof Ġthe Ġspace Ġreserved Ġfor Ġthat Ġline . ĠThis Ġmeans Ġthat Ġall ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġextra Ġspace Ġas Ġa Ġresult Ġof Ġline Ġheight Ġis Ġapplied Ġto Ġthe Ġtop Ġof Ġthe Ġline . ĠWhen Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġprovided Ġline Ġheight Ġvalue Ġis Ġsmaller Ġthan Ġthe Ġactual Ġline Ġheight , Ġthe Ġline Ġwill Ġstill ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġbe Ġaligned Ġto Ġthe Ġbottom , Ġtherefore Ġthe Ġrequired Ġdifference Ġwill Ġbe Ġsubtract ed Ġfrom Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġtop Ġof Ġthe Ġline . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġexample , Ġwhen Ġline Ġheight Ġis Ġ 3 . em , Ġthe Ġlines Ġare Ġaligned Ġto Ġthe Ġbottom Ġof Ġ 3 . em ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġheight : ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ< pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 1 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| --------| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ| ĠLine 2 Ġ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ+ --------+ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ</ pre > ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠBottom Ġ= ĠAlignment ( top Percentage Ġ= Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ