Merge pull request #12194 from sonninnos/scroll-delay

Customizable menu scroll hold delay
This commit is contained in:
Autechre 2021-03-26 03:49:48 +01:00 committed by GitHub
commit bbcf1c8881
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 39 additions and 2 deletions

View File

@ -557,6 +557,8 @@ static const bool menu_show_sublabels = true;
static const bool menu_dynamic_wallpaper_enable = true; static const bool menu_dynamic_wallpaper_enable = true;
static const bool menu_scroll_fast = false; static const bool menu_scroll_fast = false;
#define DEFAULT_MENU_SCROLL_DELAY 256
#define DEFAULT_MENU_TICKER_TYPE (TICKER_TYPE_LOOP) #define DEFAULT_MENU_TICKER_TYPE (TICKER_TYPE_LOOP)
static const float menu_ticker_speed = 2.0f; static const float menu_ticker_speed = 2.0f;

View File

@ -1931,6 +1931,7 @@ static struct config_uint_setting *populate_settings_uint(
SETTING_UINT("menu_timedate_style", &settings->uints.menu_timedate_style, true, DEFAULT_MENU_TIMEDATE_STYLE, false); SETTING_UINT("menu_timedate_style", &settings->uints.menu_timedate_style, true, DEFAULT_MENU_TIMEDATE_STYLE, false);
SETTING_UINT("menu_timedate_date_separator", &settings->uints.menu_timedate_date_separator, true, DEFAULT_MENU_TIMEDATE_DATE_SEPARATOR, false); SETTING_UINT("menu_timedate_date_separator", &settings->uints.menu_timedate_date_separator, true, DEFAULT_MENU_TIMEDATE_DATE_SEPARATOR, false);
SETTING_UINT("menu_ticker_type", &settings->uints.menu_ticker_type, true, DEFAULT_MENU_TICKER_TYPE, false); SETTING_UINT("menu_ticker_type", &settings->uints.menu_ticker_type, true, DEFAULT_MENU_TICKER_TYPE, false);
SETTING_UINT("menu_scroll_delay", &settings->uints.menu_scroll_delay, true, DEFAULT_MENU_SCROLL_DELAY, false);
SETTING_UINT("content_show_add_entry", &settings->uints.menu_content_show_add_entry, true, DEFAULT_MENU_CONTENT_SHOW_ADD_ENTRY, false); SETTING_UINT("content_show_add_entry", &settings->uints.menu_content_show_add_entry, true, DEFAULT_MENU_CONTENT_SHOW_ADD_ENTRY, false);
#ifdef HAVE_RGUI #ifdef HAVE_RGUI
SETTING_UINT("rgui_menu_color_theme", &settings->uints.menu_rgui_color_theme, true, DEFAULT_RGUI_COLOR_THEME, false); SETTING_UINT("rgui_menu_color_theme", &settings->uints.menu_rgui_color_theme, true, DEFAULT_RGUI_COLOR_THEME, false);

View File

@ -247,6 +247,7 @@ typedef struct settings
unsigned menu_rgui_aspect_ratio_lock; unsigned menu_rgui_aspect_ratio_lock;
unsigned menu_rgui_particle_effect; unsigned menu_rgui_particle_effect;
unsigned menu_ticker_type; unsigned menu_ticker_type;
unsigned menu_scroll_delay;
unsigned menu_content_show_add_entry; unsigned menu_content_show_add_entry;
unsigned playlist_entry_remove_enable; unsigned playlist_entry_remove_enable;

View File

@ -3818,6 +3818,10 @@ MSG_HASH(
MENU_ENUM_LABEL_MENU_SCROLL_FAST, MENU_ENUM_LABEL_MENU_SCROLL_FAST,
"menu_scroll_fast" "menu_scroll_fast"
) )
MSG_HASH(
MENU_ENUM_LABEL_MENU_SCROLL_DELAY,
"menu_scroll_delay"
)
MSG_HASH( MSG_HASH(
MENU_ENUM_LABEL_CORE_LOCK, MENU_ENUM_LABEL_CORE_LOCK,
"core_lock" "core_lock"

View File

@ -3987,6 +3987,14 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_MENU_SCROLL_FAST, MENU_ENUM_SUBLABEL_MENU_SCROLL_FAST,
"Maximum speed of the cursor when holding a direction to scroll." "Maximum speed of the cursor when holding a direction to scroll."
) )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_MENU_SCROLL_DELAY,
"Menu Scroll Delay"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_MENU_SCROLL_DELAY,
"Initial delay in milliseconds when holding a direction to scroll."
)
MSG_HASH( MSG_HASH(
MENU_ENUM_LABEL_VALUE_UI_COMPANION_ENABLE, MENU_ENUM_LABEL_VALUE_UI_COMPANION_ENABLE,
"UI Companion" "UI Companion"

View File

@ -784,6 +784,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_online_updater,
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_core_updater, MENU_ENUM_SUBLABEL_MENU_SHOW_CORE_UPDATER) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_core_updater, MENU_ENUM_SUBLABEL_MENU_SHOW_CORE_UPDATER)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_legacy_thumbnail_updater, MENU_ENUM_SUBLABEL_MENU_SHOW_LEGACY_THUMBNAIL_UPDATER) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_legacy_thumbnail_updater, MENU_ENUM_SUBLABEL_MENU_SHOW_LEGACY_THUMBNAIL_UPDATER)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_scroll_fast, MENU_ENUM_SUBLABEL_MENU_SCROLL_FAST) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_scroll_fast, MENU_ENUM_SUBLABEL_MENU_SCROLL_FAST)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_scroll_delay, MENU_ENUM_SUBLABEL_MENU_SCROLL_DELAY)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_music_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_MUSIC) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_music_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_MUSIC)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_video_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_VIDEO) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_video_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_VIDEO)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_netplay_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_NETPLAY) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_netplay_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_NETPLAY)
@ -2303,6 +2304,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_MENU_SCROLL_FAST: case MENU_ENUM_LABEL_MENU_SCROLL_FAST:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_scroll_fast); BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_scroll_fast);
break; break;
case MENU_ENUM_LABEL_MENU_SCROLL_DELAY:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_scroll_delay);
break;
case MENU_ENUM_LABEL_CONTENT_SHOW_NETPLAY: case MENU_ENUM_LABEL_CONTENT_SHOW_NETPLAY:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_netplay_tab); BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_netplay_tab);
break; break;

View File

@ -7297,6 +7297,7 @@ unsigned menu_displaylist_build_list(
{MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD, PARSE_ONLY_STRING, false}, {MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD, PARSE_ONLY_STRING, false},
{MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND, PARSE_ONLY_BOOL, true}, {MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_MENU_SCROLL_FAST, PARSE_ONLY_BOOL, true}, {MENU_ENUM_LABEL_MENU_SCROLL_FAST, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_MENU_SCROLL_DELAY, PARSE_ONLY_UINT, true},
{MENU_ENUM_LABEL_PAUSE_LIBRETRO, PARSE_ONLY_BOOL, true}, {MENU_ENUM_LABEL_PAUSE_LIBRETRO, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_PAUSE_NONACTIVE, PARSE_ONLY_BOOL, true}, {MENU_ENUM_LABEL_PAUSE_NONACTIVE, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_MENU_SAVESTATE_RESUME, PARSE_ONLY_BOOL, true}, {MENU_ENUM_LABEL_MENU_SAVESTATE_RESUME, PARSE_ONLY_BOOL, true},

View File

@ -16998,6 +16998,21 @@ static bool setting_append_list(
general_read_handler, general_read_handler,
SD_FLAG_NONE); SD_FLAG_NONE);
CONFIG_UINT(
list, list_info,
&settings->uints.menu_scroll_delay,
MENU_ENUM_LABEL_MENU_SCROLL_DELAY,
MENU_ENUM_LABEL_VALUE_MENU_SCROLL_DELAY,
DEFAULT_MENU_SCROLL_DELAY,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
(*list)[list_info->index - 1].offset_by = 1;
menu_settings_list_current_add_range(list, list_info, 1, 999, 1, true, true);
CONFIG_BOOL( CONFIG_BOOL(
list, list_info, list, list_info,
&settings->bools.ui_companion_enable, &settings->bools.ui_companion_enable,

View File

@ -1091,6 +1091,7 @@ enum msg_hash_enums
MENU_LABEL(MENU_SHOW_CORE_UPDATER), MENU_LABEL(MENU_SHOW_CORE_UPDATER),
MENU_LABEL(MENU_SHOW_LEGACY_THUMBNAIL_UPDATER), MENU_LABEL(MENU_SHOW_LEGACY_THUMBNAIL_UPDATER),
MENU_LABEL(MENU_SCROLL_FAST), MENU_LABEL(MENU_SCROLL_FAST),
MENU_LABEL(MENU_SCROLL_DELAY),
MENU_LABEL(MENU_ENABLE_KIOSK_MODE), MENU_LABEL(MENU_ENABLE_KIOSK_MODE),
MENU_LABEL(MENU_DISABLE_KIOSK_MODE), MENU_LABEL(MENU_DISABLE_KIOSK_MODE),
MENU_LABEL(MENU_KIOSK_MODE_PASSWORD), MENU_LABEL(MENU_KIOSK_MODE_PASSWORD),

View File

@ -23724,9 +23724,9 @@ static unsigned menu_event(
first_held = true; first_held = true;
if (menu_scroll_fast) if (menu_scroll_fast)
delay_timer = initial_held ? 256 : 100; delay_timer = initial_held ? settings->uints.menu_scroll_delay : 100;
else else
delay_timer = initial_held ? 256 : 20; delay_timer = initial_held ? settings->uints.menu_scroll_delay : 20;
delay_count = 0; delay_count = 0;
} }