package Ġcom . i jo ic . k tx . widget . attr Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġcom . i jo ic . k tx . util . value box . Value Box Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* ĠBind Ġtext . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Text (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠString ? Ġ= Ġnull ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getText ( index ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġstring . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind String (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠString ? Ġ= Ġnull ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getString ( index ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġnon - resource Ġstring . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Non Resource String (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠString ? Ġ= Ġnull ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Non Resource String ( index ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġboolean . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Boolean (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠBoolean Ġ= Ġfalse ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getBoolean ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġint . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Int (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠInt Ġ= Ġ 0 ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getInt ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġfloat . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Float (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠFloat Ġ= Ġ 0 F ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Float ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġcolor . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Color (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠInt Ġ= ĠColor . TRANSP ARENT ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getColor ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġcolor Ġstate Ġlist . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Color State List (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠColor State List ? Ġ= Ġnull ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getColor State List ( index ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġinteger . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Integer (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠInt Ġ= Ġ 0 ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getInteger ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġdimension . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Dim en (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠFloat Ġ= Ġ 0 F ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Dimension ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġdimension Ġpixel Ġoffset . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Dim en Pixel Offset (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠInt Ġ= Ġ 0 ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Dimension Pixel Offset ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġdimension Ġpixel Ġsize . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Dim en Pixel Size (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠInt Ġ= Ġ 0 ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Dimension Pixel Size ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġfraction . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġbase Ġbase Ġvalue Ġof Ġthis Ġfraction . Ċ Ġ* Ġ@ param Ġp base ĠThe Ġparent Ġbase Ġvalue Ġof Ġthis Ġfraction . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ* Ċ Ġ* Ġ@ see ĠTyped Array . get Fraction Ċ Ġ*/ Ċ fun ĠStyle Config . bind Fraction (@ Attr Res Ġattr : ĠInt , Ġbase : ĠInt , Ġp base : ĠInt , Ġdef Value : ĠFloat Ġ= Ġ 0 F ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Fraction ( index , Ġbase , Ġp base , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġresource Ġid . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind ResourceId (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠInt Ġ= Ġ 0 ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getResource Id ( index , Ġdef Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġdrawable . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Drawable (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠDrawable ? Ġ= Ġnull ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . get Drawable ( index ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġtext Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġattr Ġattribute Ġid . Ċ Ġ* Ġ@ param Ġdef Value Ġdefault Ġvalue . Ċ Ġ*/ Ċ fun ĠStyle Config . bind Text Array (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠArray < CharSequence >? Ġ= Ġnull ) Ġ= Ġbind Attr Item ( attr , Ġdef Value ) Ġ{ Ġarray , Ġindex Ġ-> ĊĠ Ġarray . getText Array ( index ) Ċ } Ċ Ċ /** Ċ Ġ* ĠBind Ġattribute Ġitem . Ċ Ġ*/ Ċ private Ġfun < T > ĠStyle Config . bind Attr Item (@ Attr Res Ġattr : ĠInt , Ġdef Value : ĠT , ĠgetValue : Ġ( Typed Array , ĠInt ) Ġ-> ĠT ): ĠRead Write Property < Style Config , ĠT > Ġ{ ĊĠ Ġval Ġvalue Box Ġ= ĠValue Box ( def Value ) ĊĠ Ġval Ġitem Ġ= ĠAttr Item Impl ( attr , Ġvalue Box , ĠgetValue ) ĊĊĠ Ġattr Items . add ( item ) ĊĠ Ġreturn ĠSimple Property ( value Box ) Ċ } Ċ Ċ /** Ċ Ġ* ĠSimple Ġproperty . Ċ Ġ*/ Ċ private Ġclass ĠSimple Property < R , ĠT >( private Ġvar Ġinner Box : ĠValue Box < T >): ĠRead Write Property < R , ĠT > Ġ{ ĊĊĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠR , Ġproperty : ĠK Property < *> ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġinner Box . value ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠR , Ġproperty : ĠK Property <* >, Ġvalue : ĠT ) Ġ{ ĊĠĠĠ Ġinner Box . value Ġ= Ġvalue ĊĠ Ġ} Ċ Ċ }