diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index c10357eadc..a798a1edcd 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -272,6 +272,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST, "deferred_onscreen_display_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST, "deferred_onscreen_overlay_settings_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST, + "deferred_onscreen_notifications_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_SETTINGS_LIST, "deferred_playlist_settings") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_PRIVACY_SETTINGS_LIST, @@ -642,6 +644,8 @@ MSG_HASH(MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS, "onscreen_display_settings") MSG_HASH(MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS, "onscreen_overlay_settings") +MSG_HASH(MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS, + "onscreen_notifications_settings") MSG_HASH(MENU_ENUM_LABEL_OPEN_ARCHIVE, "open_archive") MSG_HASH(MENU_ENUM_LABEL_OPEN_ARCHIVE_DETECT_CORE, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 3020f66c27..32718a6b5f 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -982,6 +982,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS, "Onscreen Display") MSG_HASH(MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS, "Onscreen Overlay") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ONSCREEN_NOTIFICATIONS_SETTINGS, + "Onscreen Notifications") MSG_HASH(MENU_ENUM_LABEL_VALUE_OPEN_ARCHIVE, "Open Archive As Folder") MSG_HASH(MENU_ENUM_LABEL_VALUE_OPTIONAL, diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index bd9f3f8050..de6056f4d1 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -150,6 +150,11 @@ static int deferred_push_onscreen_display_settings_list(menu_displaylist_info_t return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST); } +static int deferred_push_onscreen_notifications_settings_list(menu_displaylist_info_t *info) +{ + return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST); +} + static int deferred_push_onscreen_overlay_settings_list(menu_displaylist_info_t *info) { return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST); @@ -747,6 +752,11 @@ static int menu_cbs_init_bind_deferred_push_compare_label( BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_display_settings_list); return 0; } + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST))) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_notifications_settings_list); + return 0; + } if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST))) { BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_overlay_settings_list); diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 558cf0bc4f..f34468abb3 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -682,6 +682,14 @@ int generic_action_ok_displaylist_push(const char *path, info.enum_idx = MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST; dl_type = DISPLAYLIST_GENERIC; break; + case ACTION_OK_DL_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST: + info.directory_ptr = idx; + info.type = type; + info_path = path; + info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST); + info.enum_idx = MENU_ENUM_LABEL_DEFERRED_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST; + dl_type = DISPLAYLIST_GENERIC; + break; case ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST: info.directory_ptr = idx; info.type = type; @@ -2857,6 +2865,13 @@ static int action_ok_onscreen_display_list(const char *path, entry_idx, ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST); } +static int action_ok_onscreen_notifications_list(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_displaylist_push(path, NULL, label, type, idx, + entry_idx, ACTION_OK_DL_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST); +} + static int action_ok_onscreen_overlay_list(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -3788,6 +3803,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS: BIND_ACTION_OK(cbs, action_ok_onscreen_display_list); break; + case MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS: + BIND_ACTION_OK(cbs, action_ok_onscreen_notifications_list); + break; case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS: BIND_ACTION_OK(cbs, action_ok_onscreen_overlay_list); break; diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index e8e4ecab1d..bd201565ff 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -263,6 +263,13 @@ static int action_get_onscreen_display_settings_list(const char *path, const cha return 0; } +static int action_get_onscreen_notifications_settings_list(const char *path, const char *label, + unsigned menu_type, char *s, size_t len) +{ + sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_NOTIFICATIONS_SETTINGS), len); + return 0; +} + static int action_get_onscreen_overlay_settings_list(const char *path, const char *label, unsigned menu_type, char *s, size_t len) { @@ -949,6 +956,12 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, return 0; } + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST))) + { + BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_notifications_settings_list); + return 0; + } + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST))) { BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_overlay_settings_list); diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 6963772151..84668a78d6 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -85,6 +85,7 @@ enum ACTION_OK_DL_DEFERRED_CORE_LIST_SET, ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST, ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST, + ACTION_OK_DL_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST, ACTION_OK_DL_MENU_SETTINGS_LIST, ACTION_OK_DL_USER_INTERFACE_SETTINGS_LIST, ACTION_OK_DL_MENU_FILE_BROWSER_SETTINGS_LIST, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 8e7be44438..be72df7e75 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4211,6 +4211,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) case DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST: case DISPLAYLIST_REWIND_SETTINGS_LIST: case DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST: + case DISPLAYLIST_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST: case DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST: case DISPLAYLIST_MENU_SETTINGS_LIST: case DISPLAYLIST_USER_INTERFACE_SETTINGS_LIST: @@ -4660,6 +4661,13 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) case DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST: menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS, PARSE_ACTION, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS, PARSE_ACTION, false); + + info->need_refresh = true; + info->need_push = true; + break; + case DISPLAYLIST_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST: menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_VIDEO_FONT_ENABLE, PARSE_ONLY_BOOL, false); diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 3efb4063be..2248148abb 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -121,6 +121,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST, DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST, DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST, + DISPLAYLIST_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST, DISPLAYLIST_MENU_SETTINGS_LIST, DISPLAYLIST_USER_INTERFACE_SETTINGS_LIST, DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 21cb33b158..1546088b4d 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -2485,6 +2485,14 @@ static bool setting_append_list( &subgroup_info, parent_group); + CONFIG_ACTION( + list, list_info, + MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS, + MENU_ENUM_LABEL_VALUE_ONSCREEN_NOTIFICATIONS_SETTINGS, + &group_info, + &subgroup_info, + parent_group); + CONFIG_ACTION( list, list_info, MENU_ENUM_LABEL_MENU_SETTINGS, diff --git a/msg_hash.h b/msg_hash.h index ce5f1b44da..d27440e124 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -793,6 +793,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST, + MENU_ENUM_LABEL_DEFERRED_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_MENU_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_USER_INTERFACE_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_MENU_FILE_BROWSER_SETTINGS_LIST, @@ -1253,6 +1254,7 @@ enum msg_hash_enums MENU_LABEL(SAVE_NEW_CONFIG), MENU_LABEL(ONSCREEN_DISPLAY_SETTINGS), MENU_LABEL(ONSCREEN_OVERLAY_SETTINGS), + MENU_LABEL(ONSCREEN_NOTIFICATIONS_SETTINGS), MENU_LABEL(CHEAT_APPLY_CHANGES), MENU_ENUM_LABEL_COLLECTION,