/* Ċ ĠCopyright Ġ 2 0 2 1 ĠSpl endo ĠConsult ing ĠB . V . ĠThe ĠNe therlands ĊĊĠĠĠ Ġ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 Ġcom . spl endo . kal uga . resources . compose Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroidx . compose . foundation . interaction . Mutable Interaction Source Ċ import Ġandroidx . compose . foundation . interaction . collect Is Pressed As State Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Button Defaults Ċ import Ġandroidx . compose . material . Button Elevation Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . spl endo . kal uga . resources . Default Colors Ċ import Ġcom . spl endo . kal uga . resources . String Style Attribute Ċ import Ġcom . spl endo . kal uga . resources . Styled StringBuilder Ċ import Ġcom . spl endo . kal uga . resources . styl able . Background Style Ċ import Ġcom . spl endo . kal uga . resources . styl able . Button State Style Ċ import Ġcom . spl endo . kal uga . resources . styl able . ButtonStyle Ċ import Ġcom . spl endo . kal uga . resources . styled Ċ import Ġcom . spl endo . kal uga . resources . view . K al uga Button Ċ import Ġcom . spl endo . kal uga . resources . view . K al uga Label Ċ Ċ @ Composable Ċ fun ĠKal uga Button . Composable ( ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ Ġelevation : ĠButton Elevation Ġ= ĠButton Defaults . elevation (), ĊĠĠĠ Ġcontent Padding : ĠPadding Values Ġ= ĠButton Defaults . Content Padding Ċ ) Ġ{ ĊĠĠĠ Ġval Ġinteraction Source : ĠMutable Interaction Source Ġ= Ġremember Ġ{ ĠMutable Interaction Source () Ġ} ĊĠĠĠ Ġval Ġpressed Ġby Ġinteraction Source . collect Is Pressed As State () ĊĠĠĠ Ġval Ġstate Style Ġ= Ġstyle . getState Style ( isEnabled , Ġpressed ) ĊĠĠĠ Ġval Ġtext Style Ġ= Ġstyle . getState TextStyle ( isEnabled , Ġpressed ) ĊĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠ Ġenabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġelevation Ġ= Ġelevation , ĊĠĠĠĠĠĠĠ Ġcolors Ġ= ĠButton Defaults . button Colors ( backgroundColor Ġ= ĠColor . Transparent ), ĊĠĠĠĠĠĠĠ Ġshape Ġ= Ġstate Style . background Style . shape . shape , ĊĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( 0 . dp ), ĊĠĠĠĠĠĠĠ Ġinteraction Source Ġ= Ġinteraction Source , ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġaction , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background Style ( state Style . background Style ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( content Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( modifier ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this @ Composable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠKal uga Button . Plain Ġ-> ĠKal uga Label . Plain ( text , Ġtext Style ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠKal uga Button . Styled Ġ-> ĠKal uga Label . Styled ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" unknown Ġbutton Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. Composable ( modifier Ġ= Ġmodifier ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ @ Preview Ċ fun ĠPreview K al uga Button () Ġ{ ĊĠĠĠ Ġval Ġbutton Style Ġ= ĠButton Style ( ĊĠĠĠĠĠĠĠ Ġfont Ġ= ĠType face . DEFAULT _ BOLD , ĊĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 1 4 . 0 f , ĊĠĠĠĠĠĠĠ Ġdefault Style Ġ= ĠButton State Style ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Colors . white , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Colors . red , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠBackground Style . Shape . Rectangle ( 5 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġpressed Style Ġ= ĠButton State Style ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Colors . red , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Colors . white , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠBackground Style . Shape . Rectangle ( 5 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġdisabled Style Ġ= ĠButton State Style ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Colors . black , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Colors . white , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠBackground Style . Shape . Rectangle ( 5 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . size ( 1 0 0 . dp )) Ġ{ ĊĠĠĠĠĠĠĠ ĠKal uga Button . Plain (" Plain ĠText ", Ġbutton Style , Ġtrue ) Ġ{} . Composable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠKal uga Button . Styled ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Styled ĠText ". styled ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyled StringBuilder . Provider ( Local Context . current ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Style . getState TextStyle ( isEnabled Ġ= Ġtrue , Ġis Pressed Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( String Style Attribute . Character Style Attribute . ForegroundColor ( Default Colors . dark Blue ), ĠInt Range ( 0 , Ġ 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Style , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ) Ġ{} . Composable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ