package Ġcom . gre yl abs dev . pex wall s . presentation . view . navigation Ċ Ċ class ĠActive Buttons Manager Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġactive Button : ĠNavigation Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbuttons Ġ= Ġmutable ListOf < Navigation Button >() ĊĠĠĠ Ġprivate Ġval Ġinactive Buttons : ĠList < Navigation Button > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbuttons . filter Ġ{ Ġit Ġ!= Ġactive Button Ġ} ĊĊĠĠĠ Ġvar Ġon Active Button Changed Action : Ġ(( active Button : ĠNavigation Button , Ġinactive Buttons : ĠList < Navigation Button >) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġtoggle Button To Active ( button : ĠNavigation Button ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( active Button Ġ!= Ġbutton ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Button Ġ= Ġbutton ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Button ?. let Ġ{ Ġon Active Button Changed Action ?. invoke ( it , Ġinactive Buttons ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Button ( button : ĠNavigation Button ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuttons . add ( button ) ĊĠĠĠ Ġ} Ċ } Ċ