From a2e50a9c82b41741beb304c3b72c0b6729c5b340 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Wed, 17 Jan 2024 14:54:30 +0000 Subject: [PATCH] Add flashcart submenu view (#86) ## Description Adds a view to show the flashcart information ## Motivation and Context Will be useful to show its features etc. ## How Has This Been Tested? ## Screenshots ## Types of changes - [x] Improvement (non-breaking change that adds a new feature) - [ ] Bug fix (fixes an issue) - [ ] Breaking change (breaking change) - [ ] Config and build (change in the configuration and build system, has no impact on code or features) ## Checklist: - [ ] My code follows the code style of this project. - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. - [ ] I have added tests to cover my changes. - [ ] All new and existing tests passed. Signed-off-by: GITHUB_USER Co-authored-by: Mateusz Faderewski --- Makefile | 1 + src/menu/menu.c | 1 + src/menu/menu_state.h | 1 + src/menu/views/browser.c | 1 + src/menu/views/flashcart_info.c | 46 +++++++++++++++++++++++++++++++++ src/menu/views/views.h | 3 +++ 6 files changed, 53 insertions(+) create mode 100644 src/menu/views/flashcart_info.c diff --git a/Makefile b/Makefile index db6493d9..f9c10b67 100644 --- a/Makefile +++ b/Makefile @@ -64,6 +64,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 06e9ef2d..53bd497f 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -152,6 +152,7 @@ static view_t menu_views[] = { { MENU_MODE_CREDITS, view_credits_init, view_credits_display }, { MENU_MODE_SETTINGS_EDITOR, view_settings_init, view_settings_display }, { MENU_MODE_RTC, view_rtc_init, view_rtc_display }, + { MENU_MODE_FLASHCART, view_flashcart_info_init, view_flashcart_info_display }, { MENU_MODE_LOAD_ROM, view_load_rom_init, view_load_rom_display }, { MENU_MODE_LOAD_DISK, view_load_disk_init, view_load_disk_display }, { MENU_MODE_LOAD_EMULATOR, view_load_emulator_init, view_load_emulator_display }, diff --git a/src/menu/menu_state.h b/src/menu/menu_state.h index 9fcee137..071ce99e 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 a7517946..f6c2c9de 100644 --- a/src/menu/views/browser.c +++ b/src/menu/views/browser.c @@ -246,6 +246,7 @@ static component_context_menu_t settings_context_menu = { { .text = "Show system info", .action = set_menu_next_mode, .arg = (void *) (MENU_MODE_SYSTEM_INFO) }, { .text = "Show credits", .action = set_menu_next_mode, .arg = (void *) (MENU_MODE_CREDITS) }, { .text = "Adjust RTC", .action = set_menu_next_mode, .arg = (void *) (MENU_MODE_RTC) }, + { .text = "Show cart info", .action = set_menu_next_mode, .arg = (void *) (MENU_MODE_FLASHCART) }, 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 4d956b0d..74342dcc 100644 --- a/src/menu/views/views.h +++ b/src/menu/views/views.h @@ -44,6 +44,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_rom_init (menu_t *menu); void view_load_rom_display (menu_t *menu, surface_t *display);