Created groundwork for the creation screen

This commit is contained in:
Maddox Werts 2024-09-05 19:27:55 -04:00
parent dab8c43e70
commit 0d8b27e98d

View file

@ -20,7 +20,8 @@ typedef enum { FP_View_Submenu, FP_View_Dialog, FP_View_Popup } FP_View;
/* All events */ /* All events */
typedef enum { typedef enum {
FP_Event_SwitchTo_About, FP_Event_SwitchTo_About,
FP_Event_SwitchTo_Overview FP_Event_SwitchTo_Overview,
FP_Event_SwitchTo_Create
} FP_Event; } FP_Event;
/* Scene events */ /* Scene events */
@ -44,6 +45,9 @@ void FP_Scene_Callback_MainMenu(void* context, uint32_t index) {
case FP_Scene_MainMenu_Event_View: case FP_Scene_MainMenu_Event_View:
scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_Overview); scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_Overview);
break; break;
case FP_Scene_MainMenu_Event_Create:
scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_Create);
break;
default: default:
FURI_LOG_I(TAG, "S_MAINMENU: Unimplemented!"); FURI_LOG_I(TAG, "S_MAINMENU: Unimplemented!");
break; break;
@ -70,6 +74,13 @@ void FP_Scene_Callback_Send(DialogExResult result, void* context) {
// Sending it to the scene manager // Sending it to the scene manager
scene_manager_handle_custom_event(app->scene_manager, result); 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) { void FP_Scene_Enter_MainMenu(void* context) {
// Setting context // Setting context
@ -213,6 +224,14 @@ void FP_Scene_Enter_Send(void* context) {
// Send view to Flipper // Send view to Flipper
view_dispatcher_switch_to_view(app->view_dispatcher, FP_View_Dialog); 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) { void FP_Scene_Exit_MainMenu(void* context) {
// Setting context // Setting context
@ -242,6 +261,13 @@ void FP_Scene_Exit_Send(void* context) {
// Reset menu // Reset menu
dialog_ex_reset(app->dialog); 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) { bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) {
// Setting context // Setting context
@ -261,6 +287,9 @@ bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) {
case FP_Event_SwitchTo_Overview: case FP_Event_SwitchTo_Overview:
scene_manager_next_scene(app->scene_manager, FP_Scene_Overview); scene_manager_next_scene(app->scene_manager, FP_Scene_Overview);
break; break;
case FP_Event_SwitchTo_Create:
scene_manager_next_scene(app->scene_manager, FP_Scene_Create);
break;
default: default:
break; break;
} }
@ -369,25 +398,52 @@ bool FP_Scene_Event_Send(void* context, SceneManagerEvent event) {
// Return result // Return result
return consumed; 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 */ /* Handlers */
void (*const FP_Scene_Enter_Handlers[])(void*) = { void (*const FP_Scene_Enter_Handlers[])(void*) = {
FP_Scene_Enter_MainMenu, FP_Scene_Enter_MainMenu,
FP_Scene_Enter_Overview, FP_Scene_Enter_Overview,
FP_Scene_Enter_View, FP_Scene_Enter_View,
FP_Scene_Enter_Send FP_Scene_Enter_Send,
FP_Scene_Enter_Create
}; };
bool (*const FP_Scene_Event_Handlers[])(void*, SceneManagerEvent) = { bool (*const FP_Scene_Event_Handlers[])(void*, SceneManagerEvent) = {
FP_Scene_Event_MainMenu, FP_Scene_Event_MainMenu,
FP_Scene_Event_Overview, FP_Scene_Event_Overview,
FP_Scene_Event_View, FP_Scene_Event_View,
FP_Scene_Event_Send FP_Scene_Event_Send,
FP_Scene_Event_Create
}; };
void (*const FP_Scene_Exit_Handlers[])(void*) = { void (*const FP_Scene_Exit_Handlers[])(void*) = {
FP_Scene_Exit_MainMenu, FP_Scene_Exit_MainMenu,
FP_Scene_Exit_Overview, FP_Scene_Exit_Overview,
FP_Scene_Exit_View, FP_Scene_Exit_View,
FP_Scene_Exit_Send FP_Scene_Exit_Send,
FP_Scene_Exit_Create
}; };
/* Event Handlers */ /* Event Handlers */