Cleaned up navigation

This commit is contained in:
Mateusz Faderewski 2023-12-21 20:14:01 +01:00
parent 621e50cf7b
commit 3846547707
4 changed files with 35 additions and 19 deletions

View File

@ -20,9 +20,7 @@ static void actions_clear (menu_t *menu) {
menu->actions.enter = false; menu->actions.enter = false;
menu->actions.back = false; menu->actions.back = false;
menu->actions.options = false; menu->actions.options = false;
menu->actions.system_info = false;
menu->actions.settings = false; menu->actions.settings = false;
menu->actions.credits = false;
} }
static void actions_update_direction (menu_t *menu) { static void actions_update_direction (menu_t *menu) {
@ -91,11 +89,7 @@ static void actions_update_buttons (menu_t *menu) {
menu->actions.back = true; menu->actions.back = true;
} else if (pressed.r) { } else if (pressed.r) {
menu->actions.options = true; menu->actions.options = true;
} else if (pressed.z) {
menu->actions.system_info = true;
} else if (pressed.start) { } else if (pressed.start) {
menu->actions.credits = true;
} else if (pressed.l) {
menu->actions.settings = true; menu->actions.settings = true;
} }
} }

View File

@ -83,9 +83,7 @@ typedef struct {
bool enter; bool enter;
bool back; bool back;
bool options; bool options;
bool system_info;
bool settings; bool settings;
bool credits;
} actions; } actions;
struct { struct {

View File

@ -228,11 +228,36 @@ static component_context_menu_t entry_context_menu = {
} }
}; };
static void edit_settings (menu_t *menu) {
menu->next_mode = MENU_MODE_SETTINGS_EDITOR;
}
static void show_system_info (menu_t *menu) {
menu->next_mode = MENU_MODE_SYSTEM_INFO;
}
static void show_credits (menu_t *menu) {
menu->next_mode = MENU_MODE_CREDITS;
}
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 },
COMPONENT_CONTEXT_MENU_LIST_END,
}
};
static void process (menu_t *menu) { static void process (menu_t *menu) {
if (component_context_menu_process(menu, &entry_context_menu)) { if (component_context_menu_process(menu, &entry_context_menu)) {
return; return;
} }
if (component_context_menu_process(menu, &settings_context_menu)) {
return;
}
int scroll_speed = menu->actions.go_fast ? 10 : 1; int scroll_speed = menu->actions.go_fast ? 10 : 1;
if (menu->browser.entries > 1) { if (menu->browser.entries > 1) {
@ -284,12 +309,8 @@ static void process (menu_t *menu) {
} }
} else if (menu->actions.options && menu->browser.entry) { } else if (menu->actions.options && menu->browser.entry) {
component_context_menu_show(&entry_context_menu); component_context_menu_show(&entry_context_menu);
} else if (menu->actions.system_info) {
menu->next_mode = MENU_MODE_SYSTEM_INFO;
} else if (menu->actions.credits) {
menu->next_mode = MENU_MODE_CREDITS;
} else if (menu->actions.settings) { } else if (menu->actions.settings) {
menu->next_mode = MENU_MODE_SETTINGS_EDITOR; component_context_menu_show(&settings_context_menu);
} }
} }
@ -326,15 +347,15 @@ static void draw (menu_t *menu, surface_t *d) {
component_actions_bar_text_draw( component_actions_bar_text_draw(
ALIGN_RIGHT, VALIGN_TOP, ALIGN_RIGHT, VALIGN_TOP,
"%s\n" "Start: Settings\n"
"L: Settings", "^%02XR: Options^00",
menu->browser.entries == 0 ? "" : "R: Options" menu->browser.entries == 0 ? STL_UNKNOWN : STL_DEFAULT
); );
if (menu->current_time >= 0) { if (menu->current_time >= 0) {
component_actions_bar_text_draw( component_actions_bar_text_draw(
ALIGN_CENTER, VALIGN_TOP, ALIGN_CENTER, VALIGN_TOP,
"Z: System Info | Start: Credits\n" "\n"
"%s", "%s",
ctime(&menu->current_time) ctime(&menu->current_time)
); );
@ -342,6 +363,8 @@ static void draw (menu_t *menu, surface_t *d) {
component_context_menu_draw(&entry_context_menu); component_context_menu_draw(&entry_context_menu);
component_context_menu_draw(&settings_context_menu);
rdpq_detach_show(); rdpq_detach_show();
} }
@ -349,6 +372,7 @@ static void draw (menu_t *menu, surface_t *d) {
void view_browser_init (menu_t *menu) { void view_browser_init (menu_t *menu) {
if (!menu->browser.valid) { if (!menu->browser.valid) {
component_context_menu_init(&entry_context_menu); component_context_menu_init(&entry_context_menu);
component_context_menu_init(&settings_context_menu);
if (load_directory(menu)) { if (load_directory(menu)) {
path_free(menu->browser.directory); path_free(menu->browser.directory);
menu->browser.directory = path_init("sd:/", ""); menu->browser.directory = path_init("sd:/", "");

View File

@ -161,8 +161,8 @@ static component_context_menu_t set_tv_type_context_menu = { .list = {
}}; }};
static component_context_menu_t options_context_menu = { .list = { static component_context_menu_t options_context_menu = { .list = {
{ .text = "Set Save Type", .submenu = &set_save_type_context_menu }, { .text = "Set save type", .submenu = &set_save_type_context_menu },
{ .text = "Set TV Type", .submenu = &set_tv_type_context_menu }, { .text = "Set TV type", .submenu = &set_tv_type_context_menu },
COMPONENT_CONTEXT_MENU_LIST_END, COMPONENT_CONTEXT_MENU_LIST_END,
}}; }};