package Ġcom . le ha ine . little kt . graph . node . ui Ċ Ċ import Ġcom . le ha ine . little kt . graph . Scene Graph Ċ import Ġcom . le ha ine . little kt . graph . node . Node Ċ import Ġcom . le ha ine . little kt . graph . node . addTo Ċ import Ġcom . le ha ine . little kt . graph . node . annotation . Scene Graph Dsl Marker Ċ import Ġcom . le ha ine . little kt . graph . node . component . Theme Ċ import Ġkotlin . contracts . Experimental Contracts Ċ import Ġkotlin . contracts . Invocation Kind Ċ import Ġkotlin . contracts . contract Ċ Ċ /** Ċ Ġ* ĠAdds Ġa Ġ[ P added Container ] Ġto Ġthe Ġcurrent Ġ[ Node ] Ġas Ġa Ġchild Ġand Ġthen Ġtriggers Ġthe Ġ[ callback ] Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ inline Ġfun ĠNode . padded Container ( callback : Ġ@ Scene Graph Dsl Marker ĠP added Container . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠP added Container Ġ{ ĊĠĠĠ Ġcontract Ġ{ Ġcalls In Place ( callback , ĠInvocation Kind . EX ACT LY _ ON CE ) Ġ} ĊĠĠĠ Ġreturn ĠP added Container (). also ( callback ). addTo ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġa Ġ[ P added Container ] Ġto Ġthe Ġcurrent Ġ[ Scene Graph . root ] Ġas Ġa Ġchild Ġand Ġthen Ġtriggers Ġthe Ġ[ callback ] Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ inline Ġfun ĠScene Graph <* >. padded Container ( callback : Ġ@ Scene Graph Dsl Marker ĠP added Container . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠP added Container Ġ{ ĊĠĠĠ Ġcontract Ġ{ Ġcalls In Place ( callback , ĠInvocation Kind . EX ACT LY _ ON CE ) Ġ} ĊĠĠĠ Ġreturn Ġroot . padded Container ( callback ) Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Container ] Ġwith Ġpadding . Ċ Ġ* Ġ@ author ĠCol ton ĠDaily Ċ Ġ* Ġ@ date Ġ 1 / 2 / 2 0 2 2 Ċ Ġ*/ Ċ open Ġclass ĠP added Container Ġ: ĠContainer () Ġ{ ĊĊĠĠĠ Ġclass ĠTheme Vars Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpadding Left Ġ= Ġ" padding Left " ĊĠĠĠĠĠĠĠ Ġval Ġpadding Right Ġ= Ġ" padding Right " ĊĠĠĠĠĠĠĠ Ġval Ġpadding Top Ġ= Ġ" padding Top " ĊĠĠĠĠĠĠĠ Ġval Ġpadding Bottom Ġ= Ġ" padding Bottom " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ Theme ] Ġrelated Ġvariable Ġnames Ġwhen Ġsetting Ġtheme Ġvalues Ġfor Ġa Ġ[ P added Container ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġtheme Vars Ġ= ĠTheme Vars () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpadding Left : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Theme Constant ( theme Vars . padding Left ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġfield ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Left ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Minimum Size Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġpadding Right : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Theme Constant ( theme Vars . padding Right ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġfield ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Right ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Minimum Size Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġpadding Top : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Theme Constant ( theme Vars . padding Top ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġfield ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Top ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Minimum Size Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġpadding Bottom : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Theme Constant ( theme Vars . padding Bottom ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġfield ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Bottom ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Minimum Size Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpadding ( value : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Right ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Top ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Bottom ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġconstant Overrides [ theme Vars . padding Left ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġon Minimum Size Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcalculate Min Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! min Size Invalid ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġvar ĠmaxWidth Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar ĠmaxHeight Ġ= Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġnodes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠControl Ġ&& Ġit . enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . combined Min Width Ġ> ĠmaxWidth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ= Ġit . combined Min Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . combined Min Height Ġ> ĠmaxHeight ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxHeight Ġ= Ġit . combined Min Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠmaxWidth Ġ+= Ġpadding Left Ġ+ Ġpadding Right ĊĠĠĠĠĠĠĠ ĠmaxHeight Ġ+= Ġpadding Top Ġ+ Ġpadding Bottom ĊĊĠĠĠĠĠĠĠ Ġ_ internal Min Width Ġ= ĠmaxWidth ĊĠĠĠĠĠĠĠ Ġ_ internal Min Height Ġ= ĠmaxHeight ĊĠĠĠĠĠĠĠ Ġmin Size Invalid Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sort Children () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġheight ĊĠĠĠĠĠĠĠ Ġnodes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠControl Ġ&& Ġit . enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġwidth Ġ- Ġpadding Left Ġ- Ġpadding Right ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġheight Ġ- Ġpadding Top Ġ- Ġpadding Bottom ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfit Child ( it , Ġpadding Left . toFloat (), Ġpadding Top . toFloat (), Ġw , Ġh ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . compute Margins () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }