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 */
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;
@ -70,6 +74,13 @@ void FP_Scene_Callback_Send(DialogExResult result, void* 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 */