Add flashcart submenu view (#86)

<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds a view to show the flashcart information

## Motivation and Context
<!--- What does this sample do? What problem does it solve? -->
<!--- If it fixes/closes/resolves an open issue, please link to the
issue here -->
Will be useful to show its features etc.

## How Has This Been Tested?
<!-- (if applicable) -->
<!--- Please describe in detail how you tested your sample/changes. -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots
<!-- (if appropriate): -->

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [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:
<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
- [ ] 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.

<!--- It would be nice if you could sign off your contribution by
replacing the name with your GitHub user name and GitHub email contact.
-->
Signed-off-by: GITHUB_USER <GITHUB_USER_EMAIL>

Co-authored-by: Mateusz Faderewski <sc@mateuszfaderewski.pl>
This commit is contained in:
Robin Jones 2024-01-17 14:54:30 +00:00 committed by GitHub
parent cc46a3b9fb
commit a2e50a9c82
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 53 additions and 0 deletions

View File

@ -64,6 +64,7 @@ SRCS = \
menu/views/system_info.c \ menu/views/system_info.c \
menu/views/settings_editor.c \ menu/views/settings_editor.c \
menu/views/rtc.c \ menu/views/rtc.c \
menu/views/flashcart_info.c \
utils/fs.c utils/fs.c
FONTS = \ FONTS = \

View File

@ -152,6 +152,7 @@ static view_t menu_views[] = {
{ MENU_MODE_CREDITS, view_credits_init, view_credits_display }, { MENU_MODE_CREDITS, view_credits_init, view_credits_display },
{ MENU_MODE_SETTINGS_EDITOR, view_settings_init, view_settings_display }, { MENU_MODE_SETTINGS_EDITOR, view_settings_init, view_settings_display },
{ MENU_MODE_RTC, view_rtc_init, view_rtc_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_ROM, view_load_rom_init, view_load_rom_display },
{ MENU_MODE_LOAD_DISK, view_load_disk_init, view_load_disk_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 }, { MENU_MODE_LOAD_EMULATOR, view_load_emulator_init, view_load_emulator_display },

View File

@ -33,6 +33,7 @@ typedef enum {
MENU_MODE_CREDITS, MENU_MODE_CREDITS,
MENU_MODE_SETTINGS_EDITOR, MENU_MODE_SETTINGS_EDITOR,
MENU_MODE_RTC, MENU_MODE_RTC,
MENU_MODE_FLASHCART,
MENU_MODE_LOAD_ROM, MENU_MODE_LOAD_ROM,
MENU_MODE_LOAD_DISK, MENU_MODE_LOAD_DISK,
MENU_MODE_LOAD_EMULATOR, MENU_MODE_LOAD_EMULATOR,

View File

@ -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 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 = "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 = "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, COMPONENT_CONTEXT_MENU_LIST_END,
} }
}; };

View File

@ -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);
}

View File

@ -44,6 +44,9 @@ void view_settings_display (menu_t *menu, surface_t *display);
void view_rtc_init (menu_t *menu); void view_rtc_init (menu_t *menu);
void view_rtc_display (menu_t *menu, surface_t *display); 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_init (menu_t *menu);
void view_load_rom_display (menu_t *menu, surface_t *display); void view_load_rom_display (menu_t *menu, surface_t *display);