# Released under the MIT License. See LICENSE for details.#"""UI functionality for creating radio groups of buttons."""from__future__importannotationsfromtypingimportTYPE_CHECKINGimportbauiv1asbuiifTYPE_CHECKING:fromtypingimportAny,Callable,Sequence
[docs]defmake_radio_group(check_boxes:Sequence[bui.Widget],value_names:Sequence[str],value:str,value_change_call:Callable[[str],Any],)->None:"""Link the provided check_boxes together into a radio group."""def_radio_press(check_string:str,other_check_boxes:list[bui.Widget],val:int)->None:ifval==1:value_change_call(check_string)forcbxinother_check_boxes:bui.checkboxwidget(edit=cbx,value=False)fori,check_boxinenumerate(check_boxes):bui.checkboxwidget(edit=check_box,value=(value==value_names[i]),is_radio_button=True,on_value_change_call=bui.Call(_radio_press,value_names[i],[cforcincheck_boxesifc!=check_box],),)