diff --git a/project/backend/ui.c b/project/backend/ui.c index be848fe..4479f72 100644 --- a/project/backend/ui.c +++ b/project/backend/ui.c @@ -20,7 +20,8 @@ typedef enum { FP_View_Submenu, FP_View_Dialog, FP_View_Popup } FP_View; /* All events */ typedef enum { FP_Event_SwitchTo_About, - FP_Event_SwitchTo_Overview + FP_Event_SwitchTo_Overview, + FP_Event_SwitchTo_Create } FP_Event; /* Scene events */ @@ -44,6 +45,9 @@ void FP_Scene_Callback_MainMenu(void* context, uint32_t index) { case FP_Scene_MainMenu_Event_View: scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_Overview); break; + case FP_Scene_MainMenu_Event_Create: + scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_Create); + break; default: FURI_LOG_I(TAG, "S_MAINMENU: Unimplemented!"); break; @@ -64,12 +68,19 @@ void FP_Scene_Callback_View(DialogExResult result, void* context) { scene_manager_handle_custom_event(app->scene_manager, result); } void FP_Scene_Callback_Send(DialogExResult result, void* context) { - // Setting context + // Setting context FP_App* app = context; // Sending it to the scene manager scene_manager_handle_custom_event(app->scene_manager, result); } +void FP_Scene_Callback_Create(void* context, uint32_t index) { + // Setting context + FP_App* app = context; + + // Sending it to the scene manager + scene_manager_handle_custom_event(app->scene_manager, index); +} void FP_Scene_Enter_MainMenu(void* context) { // Setting context @@ -213,6 +224,14 @@ void FP_Scene_Enter_Send(void* context) { // Send view to Flipper view_dispatcher_switch_to_view(app->view_dispatcher, FP_View_Dialog); } +void FP_Scene_Enter_Create(void* context) { + // Setting context + FP_App* app = context; + + // Reset page + + // Send view to Flipper +} void FP_Scene_Exit_MainMenu(void* context) { // Setting context @@ -242,6 +261,13 @@ void FP_Scene_Exit_Send(void* context) { // Reset menu dialog_ex_reset(app->dialog); } +void FP_Scene_Exit_Create(void* context) { + // Setting context + FP_App* app = context; + + // Reset menu + dialog_ex_reset(app->dialog); +} bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) { // Setting context @@ -261,6 +287,9 @@ bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) { case FP_Event_SwitchTo_Overview: scene_manager_next_scene(app->scene_manager, FP_Scene_Overview); break; + case FP_Event_SwitchTo_Create: + scene_manager_next_scene(app->scene_manager, FP_Scene_Create); + break; default: break; } @@ -369,25 +398,52 @@ bool FP_Scene_Event_Send(void* context, SceneManagerEvent event) { // Return result return consumed; } +bool FP_Scene_Event_Create(void* context, SceneManagerEvent event) { + // Setting context + FP_App* app = context; + bool consumed = false; + + // Switching based on event + if (event.type == SceneManagerEventTypeCustom) { + // We consumed it + consumed = true; + + UNUSED(app); + + // What to do? + switch (event.event) { + default: + break; + } + } else { + consumed = false; + } + + // Return result + return consumed; +} /* Handlers */ void (*const FP_Scene_Enter_Handlers[])(void*) = { FP_Scene_Enter_MainMenu, FP_Scene_Enter_Overview, FP_Scene_Enter_View, - FP_Scene_Enter_Send + FP_Scene_Enter_Send, + FP_Scene_Enter_Create }; bool (*const FP_Scene_Event_Handlers[])(void*, SceneManagerEvent) = { FP_Scene_Event_MainMenu, FP_Scene_Event_Overview, FP_Scene_Event_View, - FP_Scene_Event_Send + FP_Scene_Event_Send, + FP_Scene_Event_Create }; void (*const FP_Scene_Exit_Handlers[])(void*) = { FP_Scene_Exit_MainMenu, FP_Scene_Exit_Overview, FP_Scene_Exit_View, - FP_Scene_Exit_Send + FP_Scene_Exit_Send, + FP_Scene_Exit_Create }; /* Event Handlers */