From 6c3e09adbaaeb45b9c652833905769b16025fe7e Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Fri, 29 Dec 2023 23:26:08 +0000 Subject: [PATCH] Add flashcart info menu --- Makefile | 1 + src/menu/menu.c | 1 + src/menu/menu_state.h | 1 + src/menu/views/browser.c | 5 ++++ src/menu/views/flashcart_info.c | 46 +++++++++++++++++++++++++++++++++ src/menu/views/views.h | 3 +++ 6 files changed, 57 insertions(+) create mode 100644 src/menu/views/flashcart_info.c diff --git a/Makefile b/Makefile index 61814b3f..e59f3a44 100644 --- a/Makefile +++ b/Makefile @@ -65,6 +65,7 @@ SRCS = \ menu/views/system_info.c \ menu/views/settings_editor.c \ menu/views/rtc.c \ + menu/views/flashcart_info.c \ utils/fs.c FONTS = \ diff --git a/src/menu/menu.c b/src/menu/menu.c index 3e695f0d..976ae309 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -149,6 +149,7 @@ static struct views_s { { view_credits_init, view_credits_display }, // MENU_MODE_CREDITS { view_settings_init, view_settings_display }, // MENU_MODE_SETTINGS_EDITOR { view_rtc_init, view_rtc_display }, // MENU_MODE_RTC + { view_flashcart_info_init, view_flashcart_info_display }, // MENU_MODE_FLASHCART { view_load_rom_init, view_load_rom_display }, // MENU_MODE_LOAD_ROM { view_load_disk_init, view_load_disk_display }, // MENU_MODE_LOAD_DISK { view_load_emulator_init, view_load_emulator_display }, // MENU_MODE_LOAD_EMULATOR diff --git a/src/menu/menu_state.h b/src/menu/menu_state.h index d29573d4..3a004ad7 100644 --- a/src/menu/menu_state.h +++ b/src/menu/menu_state.h @@ -33,6 +33,7 @@ typedef enum { MENU_MODE_CREDITS, MENU_MODE_SETTINGS_EDITOR, MENU_MODE_RTC, + MENU_MODE_FLASHCART, MENU_MODE_LOAD_ROM, MENU_MODE_LOAD_DISK, MENU_MODE_LOAD_EMULATOR, diff --git a/src/menu/views/browser.c b/src/menu/views/browser.c index 75ab0a4a..8bfe36a9 100644 --- a/src/menu/views/browser.c +++ b/src/menu/views/browser.c @@ -244,12 +244,17 @@ static void edit_rtc (menu_t *menu) { menu->next_mode = MENU_MODE_RTC; } +static void show_flashcart_info (menu_t *menu) { + menu->next_mode = MENU_MODE_FLASHCART; +} + static component_context_menu_t settings_context_menu = { .list = { { .text = "Edit settings", .action = edit_settings }, { .text = "Show system info", .action = show_system_info }, { .text = "Show credits", .action = show_credits }, { .text = "Adjust RTC", .action = edit_rtc }, + { .text = "Show cart info", .action = show_flashcart_info }, COMPONENT_CONTEXT_MENU_LIST_END, } }; diff --git a/src/menu/views/flashcart_info.c b/src/menu/views/flashcart_info.c new file mode 100644 index 00000000..084cc073 --- /dev/null +++ b/src/menu/views/flashcart_info.c @@ -0,0 +1,46 @@ +#include "views.h" + + +static void process (menu_t *menu) { + if (menu->actions.back) { + menu->next_mode = MENU_MODE_BROWSER; + } +} + +static void draw (menu_t *menu, surface_t *d) { + rdpq_attach(d, NULL); + + component_background_draw(); + + component_layout_draw(); + + component_main_text_draw( + ALIGN_CENTER, VALIGN_TOP, + "FLASHCART INFORMATION\n" + ); + + component_main_text_draw( + ALIGN_LEFT, VALIGN_TOP, + "\n" + "\n" + ); + + + component_actions_bar_text_draw( + ALIGN_LEFT, VALIGN_TOP, + "\n" + "B: Back" + ); + + rdpq_detach_show(); +} + + +void view_flashcart_info_init (menu_t *menu) { + // Nothing to initialize (yet) +} + +void view_flashcart_info_display (menu_t *menu, surface_t *display) { + process(menu); + draw(menu, display); +} diff --git a/src/menu/views/views.h b/src/menu/views/views.h index 2b7e0660..4990920c 100644 --- a/src/menu/views/views.h +++ b/src/menu/views/views.h @@ -50,6 +50,9 @@ void view_settings_display (menu_t *menu, surface_t *display); void view_rtc_init (menu_t *menu); void view_rtc_display (menu_t *menu, surface_t *display); +void view_flashcart_info_init (menu_t *menu); +void view_flashcart_info_display (menu_t *menu, surface_t *display); + void view_load_emulator_init (menu_t *menu); void view_load_emulator_display (menu_t *menu, surface_t *display);