From 8cc866b051601cf0adb56797392d861eabdc0c0c Mon Sep 17 00:00:00 2001 From: tr12345 <27497732+tr12345@users.noreply.github.com> Date: Mon, 12 Sep 2022 17:17:24 -0400 Subject: [PATCH] New Menu Items for disabling Info & Search buttons in the menu (#14259) * New Menu Items Disable Info & Search Add menu options for disabling Info and Search buttons * Update msg_hash_us.h Update Sublabels * Update menu_setting.c Set Advanced flag for new settings --- configuration.c | 2 ++ configuration.h | 2 ++ intl/msg_hash_lbl.h | 8 ++++++++ intl/msg_hash_us.h | 16 ++++++++++++++++ menu/cbs/menu_cbs_sublabel.c | 8 ++++++++ menu/menu_displaylist.c | 8 ++++++++ menu/menu_driver.c | 10 ++++++++-- menu/menu_setting.c | 32 ++++++++++++++++++++++++++++++++ msg_hash.h | 2 ++ 9 files changed, 86 insertions(+), 2 deletions(-) diff --git a/configuration.c b/configuration.c index 72b3698c64..0f44bff8b5 100644 --- a/configuration.c +++ b/configuration.c @@ -1766,6 +1766,8 @@ static struct config_bool_setting *populate_settings_bool( #endif #ifdef HAVE_MENU SETTING_BOOL("menu_unified_controls", &settings->bools.menu_unified_controls, true, false, false); + SETTING_BOOL("menu_disable_info_button", &settings->bools.menu_disable_info_button, true, false, false); + SETTING_BOOL("menu_disable_search_button", &settings->bools.menu_disable_search_button, true, false, false); SETTING_BOOL("menu_throttle_framerate", &settings->bools.menu_throttle_framerate, true, true, false); SETTING_BOOL("menu_linear_filter", &settings->bools.menu_linear_filter, true, DEFAULT_VIDEO_SMOOTH, false); SETTING_BOOL("menu_horizontal_animation", &settings->bools.menu_horizontal_animation, true, DEFAULT_MENU_HORIZONTAL_ANIMATION, false); diff --git a/configuration.h b/configuration.h index e7e8b342fc..6037695f32 100644 --- a/configuration.h +++ b/configuration.h @@ -717,6 +717,8 @@ typedef struct settings bool menu_use_preferred_system_color_theme; bool menu_preferred_system_color_theme_set; bool menu_unified_controls; + bool menu_disable_info_button; + bool menu_disable_search_button; bool menu_ticker_smooth; bool settings_show_drivers; bool settings_show_video; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index ba16e34524..1b652609ab 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -4178,6 +4178,14 @@ MSG_HASH( MENU_ENUM_LABEL_INPUT_UNIFIED_MENU_CONTROLS, "unified_menu_controls" ) +MSG_HASH( + MENU_ENUM_LABEL_INPUT_DISABLE_INFO_BUTTON, + "disable_info_button" + ) +MSG_HASH( + MENU_ENUM_LABEL_INPUT_DISABLE_SEARCH_BUTTON, + "disable_search_button" + ) MSG_HASH( MENU_ENUM_LABEL_QUIT_PRESS_TWICE, "quit_press_twice" diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 25ba6d3f7e..cd0395188b 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -2646,6 +2646,22 @@ MSG_HASH( MENU_ENUM_SUBLABEL_INPUT_UNIFIED_MENU_CONTROLS, "Use the same controls for both the menu and the game. Applies to the keyboard." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_INPUT_DISABLE_INFO_BUTTON, + "Disable Info Button" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_INPUT_DISABLE_INFO_BUTTON, + "If enabled Info button presses will be ignored." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_INPUT_DISABLE_SEARCH_BUTTON, + "Disable Search Button" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_INPUT_DISABLE_SEARCH_BUTTON, + "If enabled Search button presses will be ignored." + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_MENU_INPUT_SWAP_OK_CANCEL, "Menu Swap OK and Cancel Buttons" diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index f3009c45c0..e6b18c970a 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -518,6 +518,8 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_history_list_enable, MENU_ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_content_history_size, MENU_ENUM_SUBLABEL_CONTENT_HISTORY_SIZE) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_content_favorites_size, MENU_ENUM_SUBLABEL_CONTENT_FAVORITES_SIZE) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_input_unified_controls, MENU_ENUM_SUBLABEL_INPUT_UNIFIED_MENU_CONTROLS) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_input_disable_info_button, MENU_ENUM_SUBLABEL_INPUT_DISABLE_INFO_BUTTON) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_input_disable_search_button, MENU_ENUM_SUBLABEL_INPUT_DISABLE_SEARCH_BUTTON) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_quit_press_twice, MENU_ENUM_SUBLABEL_QUIT_PRESS_TWICE) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_onscreen_notifications_enable, MENU_ENUM_SUBLABEL_VIDEO_FONT_ENABLE) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_crop_overscan, MENU_ENUM_SUBLABEL_VIDEO_CROP_OVERSCAN) @@ -3982,6 +3984,12 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_INPUT_UNIFIED_MENU_CONTROLS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_input_unified_controls); break; + case MENU_ENUM_LABEL_INPUT_DISABLE_INFO_BUTTON: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_input_disable_info_button); + break; + case MENU_ENUM_LABEL_INPUT_DISABLE_SEARCH_BUTTON: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_input_disable_search_button); + break; case MENU_ENUM_LABEL_QUIT_PRESS_TWICE: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quit_press_twice); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 43b905573e..d7c4b4f83f 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -6975,6 +6975,14 @@ unsigned menu_displaylist_build_list( MENU_ENUM_LABEL_MENU_SCROLL_DELAY, PARSE_ONLY_UINT, false) == 0) count++; + if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, + MENU_ENUM_LABEL_INPUT_DISABLE_INFO_BUTTON, + PARSE_ONLY_BOOL, false) == 0) + count++; + if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, + MENU_ENUM_LABEL_INPUT_DISABLE_SEARCH_BUTTON, + PARSE_ONLY_BOOL, false) == 0) + count++; break; case DISPLAYLIST_INPUT_SETTINGS_LIST: diff --git a/menu/menu_driver.c b/menu/menu_driver.c index af1535ba7c..0622e0c74a 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -6003,13 +6003,19 @@ unsigned menu_event( else if (BIT256_GET_PTR(p_trigger_input, menu_cancel_btn)) ret = MENU_ACTION_CANCEL; else if (BIT256_GET_PTR(p_trigger_input, RETRO_DEVICE_ID_JOYPAD_X)) - ret = MENU_ACTION_SEARCH; + { + if (!settings->bools.menu_disable_search_button) + ret = MENU_ACTION_SEARCH; + } else if (BIT256_GET_PTR(p_trigger_input, RETRO_DEVICE_ID_JOYPAD_Y)) ret = MENU_ACTION_SCAN; else if (BIT256_GET_PTR(p_trigger_input, RETRO_DEVICE_ID_JOYPAD_START)) ret = MENU_ACTION_START; else if (BIT256_GET_PTR(p_trigger_input, RETRO_DEVICE_ID_JOYPAD_SELECT)) - ret = MENU_ACTION_INFO; + { + if (!settings->bools.menu_disable_info_button) + ret = MENU_ACTION_INFO; + } else if (BIT256_GET_PTR(p_trigger_input, RARCH_MENU_TOGGLE)) ret = MENU_ACTION_TOGGLE; diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 7b8f899f4a..ff95eba805 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -13464,6 +13464,38 @@ static bool setting_append_list( ); SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED); + CONFIG_BOOL( + list, list_info, + &settings->bools.menu_disable_info_button, + MENU_ENUM_LABEL_INPUT_DISABLE_INFO_BUTTON, + MENU_ENUM_LABEL_VALUE_INPUT_DISABLE_INFO_BUTTON, + false, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_ADVANCED + ); + + CONFIG_BOOL( + list, list_info, + &settings->bools.menu_disable_search_button, + MENU_ENUM_LABEL_INPUT_DISABLE_SEARCH_BUTTON, + MENU_ENUM_LABEL_VALUE_INPUT_DISABLE_SEARCH_BUTTON, + false, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_ADVANCED + ); + CONFIG_BOOL( list, list_info, &settings->bools.quit_press_twice, diff --git a/msg_hash.h b/msg_hash.h index 14fe002bc4..a43724d664 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1071,6 +1071,8 @@ enum msg_hash_enums MENU_LABEL(INPUT_ALL_USERS_CONTROL_MENU), MENU_LABEL(INPUT_POLL_TYPE_BEHAVIOR), MENU_LABEL(INPUT_UNIFIED_MENU_CONTROLS), + MENU_LABEL(INPUT_DISABLE_INFO_BUTTON), + MENU_LABEL(INPUT_DISABLE_SEARCH_BUTTON), MENU_LABEL(INPUT_RUMBLE_GAIN), MENU_LABEL(QUIT_PRESS_TWICE),