import dearpygui.dearpygui as dpg from dynalab.state import AppState from dynalab.ui.recording import tags from dynalab.ui.recording.controller import ( on_add_signal_clicked, on_available_signal_selected, on_configuration_name_changed, on_remove_signal_clicked, ) def build_recording_dialogs(state: AppState) -> None: with dpg.window( label="Recording Configuration", tag=tags.CONFIGURATION_WINDOW, no_collapse=True, show=False, min_size=(500, 300), ): dpg.add_text("Configuration Name") dpg.add_input_text( tag=tags.CONFIGURATION_NAME, callback=on_configuration_name_changed, user_data=state, ) dpg.add_text("Selected Signals") dpg.add_listbox(tag=tags.SELECTED_SIGNALS, num_items=10, width=480) with dpg.group(horizontal=True): dpg.add_button( label="Add", callback=on_add_signal_clicked, user_data=state ) dpg.add_button( label="Remove", callback=on_remove_signal_clicked, user_data=state ) with dpg.window( label="Add Signal", tag=tags.ADD_SIGNAL_WINDOW, no_collapse=True, show=False, min_size=(500, 300), modal=True, ): dpg.add_listbox(tag=tags.AVAILABLE_SIGNALS, num_items=10, width=480) with dpg.group(horizontal=True): dpg.add_button( label="Select", callback=on_available_signal_selected, user_data=state, ) dpg.add_button( label="Refresh", callback=on_add_signal_clicked, user_data=state )