package Ġde . at enn ert . l cars de . status bar . widgets Ċ Ċ import Ġde . at enn ert . l cars de . status bar . configuration . Widget Configuration Ċ import Ġde . at enn ert . l cars de . status bar . execute Command Ċ import Ġde . at enn ert . l cars de . status bar . extensions . g Signal Connect Ċ import Ġde . at enn ert . l cars de . status bar . extensions . set St yling Ċ import Ġkotlinx . c interop .* Ċ import Ġstatus bar .* Ċ Ċ class ĠButton Widget ( widget Configuration : ĠWidget Configuration , Ġcss Provider : ĠC Pointer < Gtk Css Provider >) ĊĠĠĠ Ġ: ĠStatus Widget ( widget Configuration , Ġcss Provider , Ġnull ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġref : ĠSt able Ref < Button Widget >? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġwidget Ġ= Ġgtk _ button _ new _ with _ label ( properties [" text "] ?. uppercase ()) !! ĊĠĠĠĠĠĠĠ Ġgtk _ widget _ set _ size _ request ( widget , Ġwidth Px , Ġheight Px ) ĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġgtk _ container _ get _ children ( widget . reinterpret ()) ?. point ed ?. data !! ĊĠĠĠĠĠĠĠ Ġgtk _ label _ set _ x align ( label . reinterpret (), Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġgtk _ label _ set _ y align ( label . reinterpret (), Ġ 1 f ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġcolor Ġ= Ġproperties [" color "] ĊĠĠĠĠĠĠĠ Ġif Ġ(! colors . contains ( color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġ" 9 9 f " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwidget . set St yling ( css Provider , Ġ" button -- $ color ", Ġ" button -- long ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġref Ġ= ĠSt able Ref . create ( this ) ĊĠĠĠĠĠĠĠ Ġg Signal Connect ( widget , Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic C Function Ġ{ Ġ_: ĠC Pointer < Gtk Widget >, Ġp : ĠCO pa que Pointer Ġ-> Ġexecute Btn Command ( p ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref !!. as CP o inter ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġref !!. dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNothing Ġto Ġdo ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcolors Ġ= ĠarrayOf (" f 9 0 ", Ġ" c 9 c ", Ġ" 9 9 c ", Ġ" c 6 6 ", Ġ" 9 9 f ", Ġ" f 9 6 ", Ġ" c 6 9 ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute Btn Command ( ref : ĠCO pa que Pointer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= Ġref . as Stable Ref < Button Widget >(). get (). properties [" command "] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Command ( command ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }