Replaced Menu with Submenu for better appearance

This commit is contained in:
Maddox Werts 2024-09-05 16:07:41 -04:00
parent f2237af333
commit 84df9ee710
2 changed files with 18 additions and 22 deletions

View file

@ -14,7 +14,7 @@ typedef enum {
} FP_Scene; } FP_Scene;
/* Types of Views */ /* Types of Views */
typedef enum { FP_View_Menu, FP_View_Popup } FP_View; typedef enum { FP_View_Submenu, FP_View_Popup } FP_View;
/* All events */ /* All events */
typedef enum { typedef enum {
@ -49,51 +49,47 @@ void FP_Scene_Enter_MainMenu(void* context) {
FP_App* app = context; FP_App* app = context;
// Reset menu for next draw // Reset menu for next draw
menu_reset(app->menu); submenu_reset(app->submenu);
// Adding items to menu // Adding items to menu
menu_add_item( submenu_add_item(
app->menu, app->submenu,
"View Passwords", "View Passwords",
NULL,
FP_Scene_MainMenu_Event_View, FP_Scene_MainMenu_Event_View,
FP_Scene_Callback_MainMenu, FP_Scene_Callback_MainMenu,
app app
); );
menu_add_item( submenu_add_item(
app->menu, app->submenu,
"Create Password", "Create Password",
NULL,
FP_Scene_MainMenu_Event_Create, FP_Scene_MainMenu_Event_Create,
FP_Scene_Callback_MainMenu, FP_Scene_Callback_MainMenu,
app app
); );
menu_add_item( submenu_add_item(
app->menu, app->submenu,
"Archive Actions", "Archive Actions",
NULL,
FP_Scene_MainMenu_Event_Archive, FP_Scene_MainMenu_Event_Archive,
FP_Scene_Callback_MainMenu, FP_Scene_Callback_MainMenu,
app app
); );
menu_add_item( submenu_add_item(
app->menu, app->submenu,
"About", "About",
NULL,
FP_Scene_MainMenu_Event_About, FP_Scene_MainMenu_Event_About,
FP_Scene_Callback_MainMenu, FP_Scene_Callback_MainMenu,
app app
); );
// Switching to current view // Switching to current view
view_dispatcher_switch_to_view(app->view_dispatcher, FP_View_Menu); view_dispatcher_switch_to_view(app->view_dispatcher, FP_View_Submenu);
} }
void FP_Scene_Exit_MainMenu(void* context) { void FP_Scene_Exit_MainMenu(void* context) {
// Setting context // Setting context
FP_App* app = context; FP_App* app = context;
// Reset menu // Reset menu
menu_reset(app->menu); submenu_reset(app->submenu);
} }
bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) { bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) {
// Setting context // Setting context
@ -174,7 +170,7 @@ FP_App* fp_app_create() {
view_dispatcher_enable_queue(result->view_dispatcher); view_dispatcher_enable_queue(result->view_dispatcher);
// Allocating all types of views // Allocating all types of views
result->menu = menu_alloc(); result->submenu = submenu_alloc();
result->popup = popup_alloc(); result->popup = popup_alloc();
// Event handling // Event handling
@ -183,7 +179,7 @@ FP_App* fp_app_create() {
view_dispatcher_set_navigation_event_callback(result->view_dispatcher, FP_SceneManager_Callback_Navigation); view_dispatcher_set_navigation_event_callback(result->view_dispatcher, FP_SceneManager_Callback_Navigation);
// Adding views to dispatcher // Adding views to dispatcher
view_dispatcher_add_view(result->view_dispatcher, FP_View_Menu, menu_get_view(result->menu)); view_dispatcher_add_view(result->view_dispatcher, FP_View_Submenu, submenu_get_view(result->submenu));
view_dispatcher_add_view(result->view_dispatcher, FP_View_Popup, popup_get_view(result->popup)); view_dispatcher_add_view(result->view_dispatcher, FP_View_Popup, popup_get_view(result->popup));
// Return app // Return app
@ -210,10 +206,10 @@ void fp_app_run(FP_App* app) {
void fp_app_delete(FP_App* app) { void fp_app_delete(FP_App* app) {
// Freeing stuff from memory // Freeing stuff from memory
scene_manager_free(app->scene_manager); scene_manager_free(app->scene_manager);
view_dispatcher_remove_view(app->view_dispatcher, FP_View_Menu); view_dispatcher_remove_view(app->view_dispatcher, FP_View_Submenu);
view_dispatcher_remove_view(app->view_dispatcher, FP_View_Popup); view_dispatcher_remove_view(app->view_dispatcher, FP_View_Popup);
view_dispatcher_free(app->view_dispatcher); view_dispatcher_free(app->view_dispatcher);
menu_free(app->menu); submenu_free(app->submenu);
popup_free(app->popup); popup_free(app->popup);
free(app); free(app);
} }

View file

@ -10,7 +10,7 @@
#include <gui/scene_manager.h> #include <gui/scene_manager.h>
#include <gui/view_dispatcher.h> #include <gui/view_dispatcher.h>
#include <gui/modules/menu.h> #include <gui/modules/submenu.h>
#include <gui/modules/popup.h> #include <gui/modules/popup.h>
#include "app.h" #include "app.h"
@ -20,7 +20,7 @@
typedef struct { typedef struct {
SceneManager* scene_manager; SceneManager* scene_manager;
ViewDispatcher* view_dispatcher; ViewDispatcher* view_dispatcher;
Menu* menu; Submenu* submenu;
Popup* popup; Popup* popup;
} FP_App; } FP_App;