#include "../mfc_editor_app_i.h" void mfc_editor_scene_sector_select_submenu_callback(void* context, uint32_t index) { MfcEditorApp* instance = context; view_dispatcher_send_custom_event(instance->view_dispatcher, index); } void mfc_editor_scene_sector_select_on_enter(void* context) { MfcEditorApp* instance = context; Submenu* submenu = instance->submenu; uint8_t sectors_num = mf_classic_get_total_sectors_num(instance->mf_classic_data->type); FuriString* label = furi_string_alloc(); for(uint8_t i = 0; i < sectors_num; i++) { furi_string_printf(label, "Sector %u", i); submenu_add_item( submenu, furi_string_get_cstr(label), i, mfc_editor_scene_sector_select_submenu_callback, instance); } furi_string_free(label); submenu_set_selected_item( submenu, scene_manager_get_scene_state(instance->scene_manager, MfcEditorSceneSectorSelect)); view_dispatcher_switch_to_view(instance->view_dispatcher, MfcEditorAppViewSubmenu); } bool mfc_editor_scene_sector_select_on_event(void* context, SceneManagerEvent event) { MfcEditorApp* instance = context; bool consumed = false; if(event.type == SceneManagerEventTypeCustom) { scene_manager_set_scene_state( instance->scene_manager, MfcEditorSceneSectorSelect, event.event); instance->current_sector = event.event; scene_manager_set_scene_state(instance->scene_manager, MfcEditorSceneBlockSelect, 0); scene_manager_next_scene(instance->scene_manager, MfcEditorSceneBlockSelect); consumed = true; } return consumed; } void mfc_editor_scene_sector_select_on_exit(void* context) { MfcEditorApp* instance = context; submenu_reset(instance->submenu); }