From d03b77d4cff243ea35d686d79daf6a385bf15b75 Mon Sep 17 00:00:00 2001 From: sonninnos <45124675+sonninnos@users.noreply.github.com> Date: Sun, 27 Nov 2022 20:19:55 +0200 Subject: [PATCH] Menu icon improvements (#14679) --- intl/msg_hash_lbl.h | 12 ++- menu/drivers/materialui.c | 107 +++++++++++++-------- menu/drivers/ozone.c | 178 +++++++++++++++++++++++++--------- menu/drivers/xmb.c | 197 +++++++++++++++++++++++++++----------- menu/menu_displaylist.c | 100 +++++++++---------- menu/menu_explore.c | 9 +- 6 files changed, 408 insertions(+), 195 deletions(-) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index cb10c76d6e..acebd28ac0 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -3642,6 +3642,10 @@ MSG_HASH( MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES, "video_max_swapchain_images" ) +MSG_HASH( + MENU_ENUM_LABEL_VIDEO_WAITABLE_SWAPCHAINS, + "video_waitable_swapchains" + ) MSG_HASH( MENU_ENUM_LABEL_VIDEO_MAX_FRAME_LATENCY, "video_max_frame_latency" @@ -4430,19 +4434,19 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_QUICK_MENU_START_RECORDING, - "quick_menu_show_start_recording" + "quick_menu_start_recording" ) MSG_HASH( MENU_ENUM_LABEL_QUICK_MENU_START_STREAMING, - "quick_menu_show_start_streaming" + "quick_menu_start_streaming" ) MSG_HASH( MENU_ENUM_LABEL_QUICK_MENU_STOP_RECORDING, - "quick_menu_show_stop_recording" + "quick_menu_stop_recording" ) MSG_HASH( MENU_ENUM_LABEL_QUICK_MENU_STOP_STREAMING, - "quick_menu_show_stop_streaming" + "quick_menu_stop_streaming" ) MSG_HASH( MENU_ENUM_LABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT, diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 36f08a5356..2dd0a7d43e 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -8603,8 +8603,7 @@ static void materialui_populate_entries( /* Check whether this is the core updater menu * (this requires special handling when long * pressing an entry) */ - if (string_is_equal(label, - msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_UPDATER_LIST))) + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_UPDATER_LIST))) mui->flags |= MUI_FLAG_IS_CORE_UPDATER_LIST; else mui->flags &= ~(MUI_FLAG_IS_CORE_UPDATER_LIST); @@ -8619,9 +8618,8 @@ static void materialui_populate_entries( | MUI_FLAG_IS_DROPDOWN_LIST); if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY)) || - string_is_equal(label, -msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))) + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))) mui->flags |= MUI_FLAG_IS_PLAYLIST; else { @@ -8630,39 +8628,37 @@ msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))) * as the 'label' when navigating directories after * selecting load content */ if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SCAN_DIRECTORY)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_LIST)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PASS)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_OVERLAY)) || - string_is_equal(label, -msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST))) + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_LIST)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PASS)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_OVERLAY)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST))) mui->flags |= MUI_FLAG_IS_FILE_LIST; else { if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_VIDEO_SHADER_PARAMETER)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_VIDEO_SHADER_PRESET_PARAMETER)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_VIDEO_SHADER_NUM_PASSES)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_RIGHT_THUMBNAIL_MODE)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LEFT_THUMBNAIL_MODE)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_SORT_MODE)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_MANUAL_CONTENT_SCAN_SYSTEM_NAME)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_MANUAL_CONTENT_SCAN_CORE_NAME)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_DISK_INDEX)) || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_INPUT_DESCRIPTION)) || - string_is_equal(label, -msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_INPUT_DESCRIPTION_KBD))) + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_VIDEO_SHADER_PARAMETER)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_VIDEO_SHADER_PRESET_PARAMETER)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_VIDEO_SHADER_NUM_PASSES)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_RIGHT_THUMBNAIL_MODE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LEFT_THUMBNAIL_MODE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_SORT_MODE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_MANUAL_CONTENT_SCAN_SYSTEM_NAME)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_MANUAL_CONTENT_SCAN_CORE_NAME)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_DISK_INDEX)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_INPUT_DESCRIPTION)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_INPUT_DESCRIPTION_KBD))) mui->flags |= MUI_FLAG_IS_DROPDOWN_LIST; else mui->flags &= ~MUI_FLAG_IS_DROPDOWN_LIST; @@ -10280,7 +10276,6 @@ static void materialui_list_insert( case MENU_SETTING_ACTION_CORE_MANAGER_OPTIONS: case MENU_SETTING_ACTION_CORE_LOCK: case MENU_SETTING_ACTION_CORE_SET_STANDALONE_EXEMPT: - case MENU_EXPLORE_TAB: case MENU_CONTENTLESS_CORES_TAB: node->icon_texture_index = MUI_TEXTURE_CORES; node->icon_type = MUI_ICON_TYPE_INTERNAL; @@ -10316,6 +10311,13 @@ static void materialui_list_insert( node->icon_texture_index = MUI_TEXTURE_DATABASE; node->icon_type = MUI_ICON_TYPE_INTERNAL; break; + case MENU_EXPLORE_TAB: + if (!string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_GOTO_EXPLORE))) + node->icon_texture_index = MUI_TEXTURE_FOLDER; + else + node->icon_texture_index = MUI_TEXTURE_DATABASE; + node->icon_type = MUI_ICON_TYPE_INTERNAL; + break; case FILE_TYPE_RDB_ENTRY: if (string_is_equal(fullpath, msg_hash_to_str(MENU_ENUM_LABEL_INFORMATION))) node->icon_texture_index = MUI_TEXTURE_DATABASE; @@ -10324,12 +10326,23 @@ static void materialui_list_insert( node->icon_type = MUI_ICON_TYPE_INTERNAL; break; case FILE_TYPE_IN_CARCHIVE: - case FILE_TYPE_PLAIN: case FILE_TYPE_DOWNLOAD_CORE_CONTENT: case FILE_TYPE_DOWNLOAD_CORE_SYSTEM_FILES: node->icon_texture_index = MUI_TEXTURE_FILE; node->icon_type = MUI_ICON_TYPE_INTERNAL; break; + case FILE_TYPE_PLAIN: + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_ITEM))) + { + if (string_is_equal(path, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_SAVE_VIEW))) + node->icon_texture_index = MUI_TEXTURE_SAVE_STATE; + else if (string_is_equal(path, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_DELETE_VIEW))) + node->icon_texture_index = MUI_TEXTURE_CLOSE; + } + else + node->icon_texture_index = MUI_TEXTURE_FILE; + node->icon_type = MUI_ICON_TYPE_INTERNAL; + break; case FILE_TYPE_MUSIC: node->icon_texture_index = MUI_TEXTURE_MUSIC; node->icon_type = MUI_ICON_TYPE_INTERNAL; @@ -10447,7 +10460,8 @@ static void materialui_list_insert( node->icon_texture_index = MUI_TEXTURE_INFO; node->icon_type = MUI_ICON_TYPE_INTERNAL; } - else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST)) || + else if ( + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CURSOR_MANAGER_LIST)) ) { @@ -10563,10 +10577,8 @@ static void materialui_list_insert( node->icon_type = MUI_ICON_TYPE_INTERNAL; } else if ( - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_START_CORE)) - || - string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_RUN_MUSIC)) - || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_START_CORE)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_RUN_MUSIC)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_LOAD)) ) { @@ -10850,7 +10862,10 @@ static void materialui_list_insert( node->icon_type = MUI_ICON_TYPE_INTERNAL; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_ITEM))) + { + node->icon_texture_index = MUI_TEXTURE_DATABASE; node->icon_type = MUI_ICON_TYPE_MENU_EXPLORE; + } else if (string_ends_with_size(label, "_input_binds_list", strlen(label), STRLEN_CONST("_input_binds_list"))) { @@ -10870,6 +10885,16 @@ static void materialui_list_insert( } } } + /* Playlist manager icons */ + else if (string_is_equal(fullpath, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LIST))) + { + /* Set defaults */ + node->icon_texture_index = MUI_TEXTURE_PLAYLIST; + node->icon_type = MUI_ICON_TYPE_INTERNAL; + if (mui->textures.playlist.size >= 1) + if (!string_is_empty(path)) + materialui_set_node_playlist_icon(mui, node, path); + } break; } } diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c index 7301a505c4..cc1250b047 100644 --- a/menu/drivers/ozone.c +++ b/menu/drivers/ozone.c @@ -145,10 +145,10 @@ enum OZONE_SYSTEM_TAB_NETPLAY, #endif OZONE_SYSTEM_TAB_ADD, + OZONE_SYSTEM_TAB_CONTENTLESS_CORES, #if defined(HAVE_LIBRETRODB) OZONE_SYSTEM_TAB_EXPLORE, #endif - OZONE_SYSTEM_TAB_CONTENTLESS_CORES, /* End of this enum - use the last one to determine num of possible tabs */ OZONE_SYSTEM_TAB_LAST @@ -186,8 +186,8 @@ enum OZONE_TAB_TEXTURES OZONE_TAB_TEXTURE_IMAGE, OZONE_TAB_TEXTURE_NETWORK, OZONE_TAB_TEXTURE_SCAN_CONTENT, - OZONE_TAB_TEXTURE_EXPLORE, OZONE_TAB_TEXTURE_CONTENTLESS_CORES, + OZONE_TAB_TEXTURE_EXPLORE, OZONE_TAB_TEXTURE_LAST }; @@ -1756,17 +1756,23 @@ static uintptr_t ozone_entries_icon_get_texture( #endif case MENU_ENUM_LABEL_DISC_INFORMATION: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DISC]; - case MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_OPTIONS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS]; case MENU_ENUM_LABEL_ADD_TO_FAVORITES: case MENU_ENUM_LABEL_ADD_TO_FAVORITES_PLAYLIST: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ADD_FAVORITE]; + case MENU_ENUM_LABEL_PARENT_DIRECTORY: + case MENU_ENUM_LABEL_UNDO_LOAD_STATE: + case MENU_ENUM_LABEL_UNDO_SAVE_STATE: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE: case MENU_ENUM_LABEL_RESET_CORE_ASSOCIATION: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION: case MENU_ENUM_LABEL_PLAYLIST_MANAGER_RESET_CORES: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UNDO]; case MENU_ENUM_LABEL_CORE_INPUT_REMAPPING_OPTIONS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_REMAPPING_OPTIONS]; case MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CHEATS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS]; case MENU_ENUM_LABEL_DISK_OPTIONS: case MENU_ENUM_LABEL_DISK_TRAY_EJECT: @@ -1775,6 +1781,7 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_DISK_INDEX: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DISK_OPTIONS]; case MENU_ENUM_LABEL_SHADER_OPTIONS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS]; case MENU_ENUM_LABEL_ACHIEVEMENT_LIST: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENT_LIST]; @@ -1795,19 +1802,19 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_LOAD_STATE: case MENU_ENUM_LABEL_CORE_RESTORE_BACKUP_LIST: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE]; - case MENU_ENUM_LABEL_PARENT_DIRECTORY: - case MENU_ENUM_LABEL_UNDO_LOAD_STATE: - case MENU_ENUM_LABEL_UNDO_SAVE_STATE: - return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UNDO]; case MENU_ENUM_LABEL_TAKE_SCREENSHOT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SCREENSHOT]; case MENU_ENUM_LABEL_DELETE_ENTRY: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CLOSE_CONTENT: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE]; case MENU_ENUM_LABEL_RESTART_CONTENT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESTART_CONTENT: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD]; case MENU_ENUM_LABEL_RENAME_ENTRY: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RENAME]; case MENU_ENUM_LABEL_RESUME_CONTENT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESUME_CONTENT: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RESUME]; case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: @@ -1816,10 +1823,11 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RDB]; - /* Menu collection submenus*/ + /* Menu collection submenus */ case MENU_ENUM_LABEL_PLAYLISTS_TAB: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ZIP]; case MENU_ENUM_LABEL_GOTO_FAVORITES: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FAVORITE]; case MENU_ENUM_LABEL_GOTO_IMAGES: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_IMAGE]; @@ -1828,6 +1836,8 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_GOTO_MUSIC: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MUSIC]; case MENU_ENUM_LABEL_GOTO_EXPLORE: + if (!string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_EXPLORE))) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CURSOR]; return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RDB]; case MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE]; @@ -1845,12 +1855,14 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_CORE_LIST: case MENU_ENUM_LABEL_SIDELOAD_CORE_LIST: case MENU_ENUM_LABEL_CORE_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_CORE: case MENU_ENUM_LABEL_CORE_UPDATER_LIST: case MENU_ENUM_LABEL_UPDATE_INSTALLED_CORES: case MENU_ENUM_LABEL_SWITCH_INSTALLED_CORES_PFD: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_CORE: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE: case MENU_ENUM_LABEL_SET_CORE_ASSOCIATION: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SET_CORE_ASSOCIATION: case MENU_ENUM_LABEL_CORE_INFORMATION: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE]; case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: @@ -1868,11 +1880,14 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_THUMBNAILS_UPDATER_LIST: case MENU_ENUM_LABEL_PL_THUMBNAILS_UPDATER_LIST: case MENU_ENUM_LABEL_DOWNLOAD_PL_ENTRY_THUMBNAILS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_DOWNLOAD_THUMBNAILS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_IMAGE]; case MENU_ENUM_LABEL_UPDATE_OVERLAYS: case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_OVERLAYS: #ifdef HAVE_VIDEO_LAYOUT case MENU_ENUM_LABEL_ONSCREEN_VIDEO_LAYOUT_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_VIDEO_LAYOUT: #endif return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OVERLAY]; case MENU_ENUM_LABEL_UPDATE_CG_SHADERS: @@ -1885,8 +1900,8 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_INFORMATION_LIST: case MENU_ENUM_LABEL_SYSTEM_INFORMATION: case MENU_ENUM_LABEL_UPDATE_CORE_INFO_FILES: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INFO]; - case MENU_ENUM_LABEL_EXPLORE_TAB: case MENU_ENUM_LABEL_UPDATE_DATABASES: case MENU_ENUM_LABEL_DATABASE_MANAGER_LIST: case MENU_ENUM_LABEL_RDB_ENTRY_DETAIL: @@ -1904,20 +1919,37 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_HELP]; case MENU_ENUM_LABEL_QUIT_RETROARCH: - case MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_EXIT]; - /* Settings icons*/ + + /* Settings icons */ case MENU_ENUM_LABEL_DRIVER_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_DRIVERS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DRIVERS]; case MENU_ENUM_LABEL_VIDEO_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_VIDEO: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_VIDEO]; case MENU_ENUM_LABEL_AUDIO_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_AUDIO: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_AUDIO]; case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MIXER]; - case MENU_ENUM_LABEL_SCREEN_RESOLUTION: + case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_CONFIGURATION: + case MENU_ENUM_LABEL_SETTINGS_SHOW_FILE_BROWSER: + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SETTING]; + case MENU_ENUM_LABEL_GLOBAL_CORE_OPTIONS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_AI_SERVICE: + case MENU_ENUM_LABEL_SETTINGS_SHOW_ACCESSIBILITY: + case MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE: + case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE: + case MENU_ENUM_LABEL_PLAYLIST_MANAGER_SORT_MODE: + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING]; + case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LEFT_THUMBNAIL_MODE: + case MENU_ENUM_LABEL_PLAYLIST_MANAGER_RIGHT_THUMBNAIL_MODE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING]; case MENU_ENUM_LABEL_INPUT_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_INPUT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CONTROLS: case MENU_ENUM_LABEL_UPDATE_AUTOCONFIG_PROFILES: case MENU_ENUM_LABEL_INPUT_USER_1_BINDS: case MENU_ENUM_LABEL_INPUT_USER_2_BINDS: @@ -1940,8 +1972,12 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_INPUT_TURBO_FIRE_SETTINGS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_TURBO]; case MENU_ENUM_LABEL_LATENCY_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY: + case MENU_ENUM_LABEL_SETTINGS_SHOW_LATENCY: + case MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LATENCY]; case MENU_ENUM_LABEL_SAVING_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_SAVING: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG: case MENU_ENUM_LABEL_SAVE_NEW_CONFIG: case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: @@ -1949,16 +1985,23 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVESTATE_SUBMENU: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVING]; case MENU_ENUM_LABEL_LOGGING_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_LOGGING: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOG]; - case MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS: case MENU_ENUM_LABEL_FASTFORWARD_RATIO: + case MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_FRAME_THROTTLE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FRAMESKIP]; case MENU_ENUM_LABEL_QUICK_MENU_START_RECORDING: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_RECORDING: case MENU_ENUM_LABEL_RECORDING_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_RECORDING: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RECORD]; case MENU_ENUM_LABEL_QUICK_MENU_START_STREAMING: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_STREAMING: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_STREAM]; case MENU_ENUM_LABEL_QUICK_MENU_STOP_STREAMING: case MENU_ENUM_LABEL_QUICK_MENU_STOP_RECORDING: @@ -1984,14 +2027,17 @@ static uintptr_t ozone_entries_icon_get_texture( return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UNDO]; case MENU_ENUM_LABEL_CORE_OPTIONS_FLUSH: case MENU_ENUM_LABEL_REMAP_FILE_FLUSH: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CORE_OPTIONS_FLUSH: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FILE]; case MENU_ENUM_LABEL_CORE_LOCK: case MENU_ENUM_LABEL_CORE_SET_STANDALONE_EXEMPT: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE]; case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_ONSCREEN_DISPLAY: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OSD]; case MENU_ENUM_LABEL_SHOW_WIMP: case MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_USER_INTERFACE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UI]; #ifdef HAVE_LAKKA_SWITCH case MENU_ENUM_LABEL_SWITCH_GPU_PROFILE: @@ -2001,11 +2047,15 @@ static uintptr_t ozone_entries_icon_get_texture( return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_POWER]; #endif case MENU_ENUM_LABEL_POWER_MANAGEMENT_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_POWER_MANAGEMENT: + case MENU_ENUM_LABEL_FASTFORWARD_FRAMESKIP: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_POWER]; case MENU_ENUM_LABEL_RETRO_ACHIEVEMENTS_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_ACHIEVEMENTS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENTS]; case MENU_ENUM_LABEL_NETWORK_INFORMATION: case MENU_ENUM_LABEL_NETWORK_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_NETWORK: case MENU_ENUM_LABEL_WIFI_SETTINGS: case MENU_ENUM_LABEL_NETWORK_INFO_ENTRY: case MENU_ENUM_LABEL_NETWORK_HOSTING_SETTINGS: @@ -2016,10 +2066,13 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_BLUETOOTH_SETTINGS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_BLUETOOTH]; case MENU_ENUM_LABEL_PLAYLIST_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_PLAYLISTS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_PLAYLIST]; case MENU_ENUM_LABEL_USER_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_USER: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_USER]; case MENU_ENUM_LABEL_DIRECTORY_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_DIRECTORY: case MENU_ENUM_LABEL_ADD_CONTENT_LIST: case MENU_ENUM_LABEL_SCAN_DIRECTORY: case MENU_ENUM_LABEL_MANUAL_CONTENT_SCAN_LIST: @@ -2028,10 +2081,12 @@ static uintptr_t ozone_entries_icon_get_texture( return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FOLDER]; case MENU_ENUM_LABEL_PRIVACY_SETTINGS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_PRIVACY]; - case MENU_ENUM_LABEL_REWIND_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_REWIND: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_REWIND]; case MENU_ENUM_LABEL_QUICK_MENU_OVERRIDE_OPTIONS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OVERRIDE]; case MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_NOTIFICATIONS]; @@ -2053,13 +2108,15 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_RESET_TO_DEFAULT_CONFIG: case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS: case MENU_ENUM_LABEL_RESTART_RETROARCH: - case MENU_ENUM_LABEL_VIDEO_AUTOSWITCH_REFRESH_RATE: - case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE: - case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: case MENU_ENUM_LABEL_FRAME_TIME_COUNTER_SETTINGS: case MENU_ENUM_LABEL_PLAYLIST_MANAGER_CLEAN_PLAYLIST: case MENU_ENUM_LABEL_PLAYLIST_MANAGER_REFRESH_PLAYLIST: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD]; + case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE: + /* Only show icon in Throttle settings */ + if (ozone->depth < 3) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD]; + break; case MENU_ENUM_LABEL_SHUTDOWN: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHUTDOWN]; case MENU_ENUM_LABEL_CONFIGURATIONS: @@ -2070,7 +2127,6 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: case MENU_ENUM_LABEL_CHEAT_FILE_LOAD: case MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_LOAD: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE]; case MENU_ENUM_LABEL_CHEAT_APPLY_CHANGES: case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES: @@ -2083,10 +2139,7 @@ static uintptr_t ozone_entries_icon_get_texture( case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_TOGGLE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MENU_APPLY_TOGGLE]; case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_INDEX: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MENU_APPLY_COG]; - case MENU_ENUM_LABEL_SAVESTATE_AUTO_SAVE: - return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVESTATE]; case MENU_ENUM_LABEL_SLOWMOTION_RATIO: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RESUME]; case MENU_ENUM_LABEL_START_VIDEO_PROCESSOR: @@ -2097,6 +2150,12 @@ static uintptr_t ozone_entries_icon_get_texture( uintptr_t icon = menu_explore_get_entry_icon(type); if (icon) return icon; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_SAVE_VIEW))) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVING]; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_DELETE_VIEW))) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE]; + else if (type != FILE_TYPE_RDB) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CURSOR]; break; } #endif @@ -2107,11 +2166,14 @@ static uintptr_t ozone_entries_icon_get_texture( return icon; break; } + /* No icon */ + case MENU_ENUM_LABEL_SCREEN_RESOLUTION: + return 0; default: break; } - switch(type) + switch (type) { case MENU_SET_CDROM_INFO: case MENU_SET_CDROM_LIST: @@ -2367,7 +2429,8 @@ static uintptr_t ozone_entries_icon_get_texture( ) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS]; - return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING]; + /* No icon by default */ + return 0; } static const char *ozone_entries_icon_texture_path(unsigned id) @@ -3089,10 +3152,10 @@ static void ozone_draw_sidebar( MENU_ENUM_LABEL_VALUE_NETPLAY_TAB, #endif MENU_ENUM_LABEL_VALUE_ADD_TAB, + MENU_ENUM_LABEL_VALUE_CONTENTLESS_CORES_TAB, #ifdef HAVE_LIBRETRODB - MENU_ENUM_LABEL_VALUE_EXPLORE_TAB, + MENU_ENUM_LABEL_VALUE_EXPLORE_TAB #endif - MENU_ENUM_LABEL_VALUE_CONTENTLESS_CORES_TAB }; static const unsigned ozone_system_tabs_icons[OZONE_SYSTEM_TAB_LAST] = { OZONE_TAB_TEXTURE_MAIN_MENU, @@ -3110,10 +3173,10 @@ static void ozone_draw_sidebar( OZONE_TAB_TEXTURE_NETWORK, #endif OZONE_TAB_TEXTURE_SCAN_CONTENT, + OZONE_TAB_TEXTURE_CONTENTLESS_CORES, #ifdef HAVE_LIBRETRODB - OZONE_TAB_TEXTURE_EXPLORE, + OZONE_TAB_TEXTURE_EXPLORE #endif - OZONE_TAB_TEXTURE_CONTENTLESS_CORES }; size_t y; int entry_width; @@ -4406,10 +4469,10 @@ static void ozone_sidebar_goto( MENU_ENUM_LABEL_NETPLAY_TAB, #endif MENU_ENUM_LABEL_ADD_TAB, + MENU_ENUM_LABEL_CONTENTLESS_CORES_TAB, #ifdef HAVE_LIBRETRODB - MENU_ENUM_LABEL_EXPLORE_TAB, + MENU_ENUM_LABEL_EXPLORE_TAB #endif - MENU_ENUM_LABEL_CONTENTLESS_CORES_TAB }; static const enum menu_settings_type ozone_system_tabs_type[OZONE_SYSTEM_TAB_LAST] = { MENU_SETTINGS, @@ -4427,10 +4490,10 @@ static void ozone_sidebar_goto( MENU_NETPLAY_TAB, #endif MENU_ADD_TAB, + MENU_CONTENTLESS_CORES_TAB, #ifdef HAVE_LIBRETRODB - MENU_EXPLORE_TAB, + MENU_EXPLORE_TAB #endif - MENU_CONTENTLESS_CORES_TAB }; unsigned video_info_height; @@ -4852,9 +4915,8 @@ static void ozone_context_reset_horizontal_list(ozone_handle_t *ozone) else if (string_ends_with_size(ozone->horizontal_list.list[i].label, ".lvw", strlen(ozone->horizontal_list.list[i].label), STRLEN_CONST(".lvw"))) { - /* For now use a default icon for views */ node->console_name = strdup(path + strlen(msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_VIEW)) + 2); - node->icon = ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FILE]; + node->icon = ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CURSOR]; } } } @@ -5639,7 +5701,7 @@ border_iterate: texture = ozone_entries_icon_get_texture(ozone, entry.enum_idx, entry.path, entry.label, entry.type, entry_selected); - if (texture != ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING]) + if (texture) { /* Console specific icons */ if ( entry.type == FILE_TYPE_RPL_ENTRY @@ -5652,6 +5714,22 @@ border_iterate: if (sidebar_node && sidebar_node->content_icon) texture = sidebar_node->content_icon; } + /* Playlist manager icons */ + else if (ozone->depth == 3 && entry.enum_idx == MENU_ENUM_LABEL_PLAYLIST_MANAGER_SETTINGS) + { + if (string_is_equal(entry.rich_label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_HISTORY_TAB))) + texture = ozone->tab_textures[OZONE_TAB_TEXTURE_HISTORY]; + else if (string_is_equal(entry.rich_label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES_TAB))) + texture = ozone->tab_textures[OZONE_TAB_TEXTURE_FAVORITES]; + else if (i < ozone->horizontal_list.size) + { + ozone_node_t *sidebar_node = (ozone_node_t*) + file_list_get_userdata_at_offset(&ozone->horizontal_list, i + 1); + + if (sidebar_node && sidebar_node->icon) + texture = sidebar_node->icon; + } + } /* "Load Content" playlists */ else if (ozone->tabs[ozone->categories_selection_ptr] == OZONE_SYSTEM_TAB_MAIN) { @@ -8197,17 +8275,17 @@ static void *ozone_init(void **userdata, bool video_is_threaded) && !settings->bools.kiosk_mode_enable) ozone->tabs[++ozone->system_tab_end] = OZONE_SYSTEM_TAB_ADD; -#if defined(HAVE_LIBRETRODB) - if (settings->bools.menu_content_show_explore) - ozone->tabs[++ozone->system_tab_end] = OZONE_SYSTEM_TAB_EXPLORE; -#endif - #if defined(HAVE_DYNAMIC) if (settings->uints.menu_content_show_contentless_cores != MENU_CONTENTLESS_CORES_DISPLAY_NONE) ozone->tabs[++ozone->system_tab_end] = OZONE_SYSTEM_TAB_CONTENTLESS_CORES; #endif +#if defined(HAVE_LIBRETRODB) + if (settings->bools.menu_content_show_explore) + ozone->tabs[++ozone->system_tab_end] = OZONE_SYSTEM_TAB_EXPLORE; +#endif + for (i = 0; i < OZONE_TAB_MAX_LENGTH; i++) ozone->tab_selection[i] = 0; @@ -8678,8 +8756,8 @@ static void ozone_context_reset(void *data, bool is_threaded) "image.png", /* IMAGES_TAB */ "netplay.png", /* NETPLAY_TAB */ "add.png", /* ADD_TAB */ - "retroarch.png", /* EXPLORE_TAB */ - "retroarch.png" /* CONTENTLESS_CORES_TAB */ + "core.png", /* CONTENTLESS_CORES_TAB */ + "database.png" /* EXPLORE_TAB */ }; static const char *OZONE_TEXTURES_FILES[OZONE_TEXTURE_LAST] = { "retroarch.png", @@ -8732,9 +8810,21 @@ static void ozone_context_reset(void *data, bool is_threaded) /* Sidebar textures */ for (i = 0; i < OZONE_TAB_TEXTURE_LAST; i++) { - if (!gfx_display_reset_textures_list(OZONE_TAB_TEXTURES_FILES[i], - ozone->tab_path, &ozone->tab_textures[i], TEXTURE_FILTER_MIPMAP_LINEAR, NULL, NULL)) - ozone->flags &= ~OZONE_FLAG_HAS_ALL_ASSETS; + switch (i) + { + /* Exceptions for icons that don't exist in 'png/sidebar/' */ + case OZONE_TAB_TEXTURE_CONTENTLESS_CORES: + case OZONE_TAB_TEXTURE_EXPLORE: + if (!gfx_display_reset_textures_list(OZONE_TAB_TEXTURES_FILES[i], + ozone->icons_path, &ozone->tab_textures[i], TEXTURE_FILTER_MIPMAP_LINEAR, NULL, NULL)) + ozone->flags &= ~OZONE_FLAG_HAS_ALL_ASSETS; + break; + default: + if (!gfx_display_reset_textures_list(OZONE_TAB_TEXTURES_FILES[i], + ozone->tab_path, &ozone->tab_textures[i], TEXTURE_FILTER_MIPMAP_LINEAR, NULL, NULL)) + ozone->flags &= ~OZONE_FLAG_HAS_ALL_ASSETS; + break; + } } /* Theme textures */ diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 15eb658973..c1b65d3186 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -245,10 +245,10 @@ enum XMB_SYSTEM_TAB_NETPLAY, #endif XMB_SYSTEM_TAB_ADD, + XMB_SYSTEM_TAB_CONTENTLESS_CORES, #if defined(HAVE_LIBRETRODB) XMB_SYSTEM_TAB_EXPLORE, #endif - XMB_SYSTEM_TAB_CONTENTLESS_CORES, /* End of this enum - use the last one to determine num of possible tabs */ XMB_SYSTEM_TAB_MAX_LENGTH @@ -303,10 +303,10 @@ typedef struct xmb_handle xmb_node_t history_tab_node; xmb_node_t favorites_tab_node; xmb_node_t add_tab_node; + xmb_node_t contentless_cores_tab_node; #if defined(HAVE_LIBRETRODB) xmb_node_t explore_tab_node; #endif - xmb_node_t contentless_cores_tab_node; xmb_node_t netplay_tab_node; menu_input_pointer_t pointer; @@ -2534,8 +2534,7 @@ static void xmb_context_reset_horizontal_list( else if (string_ends_with_size(xmb->horizontal_list.list[i].label, ".lvw", strlen(xmb->horizontal_list.list[i].label), STRLEN_CONST(".lvw"))) { - /* For now use a default icon for views */ - node->icon = xmb->textures.list[XMB_TEXTURE_FILE]; + node->icon = xmb->textures.list[XMB_TEXTURE_CURSOR]; } } @@ -2764,6 +2763,9 @@ static void xmb_populate_entries(void *data, /* Determine whether to show entry index */ /* Update list size & entry index texts */ + if (show_entry_idx) + xmb->entry_index_str[0] = '\0'; + if ((xmb->entry_idx_enabled = show_entry_idx && !xmb->is_quick_menu && (xmb->is_playlist || xmb->is_explore_list))) @@ -2850,7 +2852,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, { switch (enum_idx) { - case MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_OPTIONS: return xmb->textures.list[XMB_TEXTURE_CORE_OPTIONS]; case MENU_ENUM_LABEL_CORE_OPTION_OVERRIDE_LIST: case MENU_ENUM_LABEL_REMAP_FILE_MANAGER_LIST: @@ -2861,7 +2863,9 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_PARENT_DIRECTORY: case MENU_ENUM_LABEL_UNDO_LOAD_STATE: case MENU_ENUM_LABEL_UNDO_SAVE_STATE: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE: case MENU_ENUM_LABEL_RESET_CORE_ASSOCIATION: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION: case MENU_ENUM_LABEL_PLAYLIST_MANAGER_RESET_CORES: return xmb->textures.list[XMB_TEXTURE_UNDO]; case MENU_ENUM_LABEL_CORE_INPUT_REMAPPING_OPTIONS: @@ -2875,13 +2879,13 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_DISK_INDEX: return xmb->textures.list[XMB_TEXTURE_DISK_OPTIONS]; case MENU_ENUM_LABEL_SHADER_OPTIONS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS: return xmb->textures.list[XMB_TEXTURE_SHADER_OPTIONS]; case MENU_ENUM_LABEL_ACHIEVEMENT_LIST: case MENU_ENUM_LABEL_ACHIEVEMENT_LIST_HARDCORE: return xmb->textures.list[XMB_TEXTURE_ACHIEVEMENT_LIST]; case MENU_ENUM_LABEL_SAVESTATE_LIST: case MENU_ENUM_LABEL_SAVE_STATE: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_SAVE: case MENU_ENUM_LABEL_CORE_CREATE_BACKUP: case MENU_ENUM_LABEL_GAME_SPECIFIC_CORE_OPTIONS_CREATE: case MENU_ENUM_LABEL_FOLDER_SPECIFIC_CORE_OPTIONS_CREATE: @@ -2899,30 +2903,36 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: case MENU_ENUM_LABEL_CHEAT_FILE_LOAD: case MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_LOAD: case MENU_ENUM_LABEL_CORE_RESTORE_BACKUP_LIST: return xmb->textures.list[XMB_TEXTURE_LOADSTATE]; case MENU_ENUM_LABEL_TAKE_SCREENSHOT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT: return xmb->textures.list[XMB_TEXTURE_SCREENSHOT]; case MENU_ENUM_LABEL_DELETE_ENTRY: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CLOSE_CONTENT: return xmb->textures.list[XMB_TEXTURE_CLOSE]; case MENU_ENUM_LABEL_RESTART_CONTENT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESTART_CONTENT: case MENU_ENUM_LABEL_REBOOT: case MENU_ENUM_LABEL_RESET_TO_DEFAULT_CONFIG: case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS: case MENU_ENUM_LABEL_RESTART_RETROARCH: - case MENU_ENUM_LABEL_VIDEO_AUTOSWITCH_REFRESH_RATE: - case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE: - case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: case MENU_ENUM_LABEL_FRAME_TIME_COUNTER_SETTINGS: case MENU_ENUM_LABEL_PLAYLIST_MANAGER_CLEAN_PLAYLIST: case MENU_ENUM_LABEL_PLAYLIST_MANAGER_REFRESH_PLAYLIST: return xmb->textures.list[XMB_TEXTURE_RELOAD]; + case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE: + /* Only show icon in Throttle settings */ + if (xmb->depth < 3) + return xmb->textures.list[XMB_TEXTURE_RELOAD]; + break; case MENU_ENUM_LABEL_RENAME_ENTRY: return xmb->textures.list[XMB_TEXTURE_RENAME]; case MENU_ENUM_LABEL_RESUME_CONTENT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESUME_CONTENT: return xmb->textures.list[XMB_TEXTURE_RESUME]; case MENU_ENUM_LABEL_DIRECTORY_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_DIRECTORY: case MENU_ENUM_LABEL_SCAN_DIRECTORY: case MENU_ENUM_LABEL_MANUAL_CONTENT_SCAN_LIST: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR: @@ -2934,12 +2944,14 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_ADD_CONTENT_LIST: return xmb->textures.list[XMB_TEXTURE_ADD]; case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: + case MENU_ENUM_LABEL_VALUE_CONTENTLESS_CORES_TAB: return xmb->textures.list[XMB_TEXTURE_RDB]; /* Menu collection submenus */ case MENU_ENUM_LABEL_PLAYLISTS_TAB: return xmb->textures.list[XMB_TEXTURE_ZIP]; case MENU_ENUM_LABEL_GOTO_FAVORITES: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES: return xmb->textures.list[XMB_TEXTURE_FAVORITE]; case MENU_ENUM_LABEL_GOTO_IMAGES: return xmb->textures.list[XMB_TEXTURE_IMAGE]; @@ -2948,9 +2960,11 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_GOTO_MUSIC: return xmb->textures.list[XMB_TEXTURE_MUSIC]; case MENU_ENUM_LABEL_GOTO_EXPLORE: - return xmb->textures.list[XMB_TEXTURE_MAIN_MENU]; + if (!string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_EXPLORE))) + return xmb->textures.list[XMB_TEXTURE_CURSOR]; + return xmb->textures.list[XMB_TEXTURE_RDB]; case MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES: - return xmb->textures.list[XMB_TEXTURE_MAIN_MENU]; + return xmb->textures.list[XMB_TEXTURE_CORE]; case MENU_ENUM_LABEL_LOAD_DISC: case MENU_ENUM_LABEL_DUMP_DISC: #ifdef HAVE_LAKKA @@ -2958,7 +2972,6 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, #endif case MENU_ENUM_LABEL_DISC_INFORMATION: return xmb->textures.list[XMB_TEXTURE_DISC]; - case MENU_ENUM_LABEL_CONTENT_SETTINGS: case MENU_ENUM_LABEL_UPDATE_ASSETS: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME: @@ -2971,12 +2984,14 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_CORE_LIST: case MENU_ENUM_LABEL_SIDELOAD_CORE_LIST: case MENU_ENUM_LABEL_CORE_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_CORE: case MENU_ENUM_LABEL_CORE_UPDATER_LIST: case MENU_ENUM_LABEL_UPDATE_INSTALLED_CORES: case MENU_ENUM_LABEL_SWITCH_INSTALLED_CORES_PFD: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_CORE: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE: case MENU_ENUM_LABEL_SET_CORE_ASSOCIATION: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SET_CORE_ASSOCIATION: case MENU_ENUM_LABEL_CORE_INFORMATION: return xmb->textures.list[XMB_TEXTURE_CORE]; case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: @@ -2990,15 +3005,19 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_UPDATE_LAKKA: return xmb->textures.list[XMB_TEXTURE_MAIN_MENU]; case MENU_ENUM_LABEL_UPDATE_CHEATS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CHEATS: return xmb->textures.list[XMB_TEXTURE_CHEAT_OPTIONS]; case MENU_ENUM_LABEL_THUMBNAILS_UPDATER_LIST: case MENU_ENUM_LABEL_PL_THUMBNAILS_UPDATER_LIST: case MENU_ENUM_LABEL_DOWNLOAD_PL_ENTRY_THUMBNAILS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_DOWNLOAD_THUMBNAILS: return xmb->textures.list[XMB_TEXTURE_IMAGE]; case MENU_ENUM_LABEL_UPDATE_OVERLAYS: case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_OVERLAYS: #ifdef HAVE_VIDEO_LAYOUT case MENU_ENUM_LABEL_ONSCREEN_VIDEO_LAYOUT_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_VIDEO_LAYOUT: #endif return xmb->textures.list[XMB_TEXTURE_OVERLAY]; case MENU_ENUM_LABEL_UPDATE_CG_SHADERS: @@ -3011,6 +3030,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_INFORMATION_LIST: case MENU_ENUM_LABEL_SYSTEM_INFORMATION: case MENU_ENUM_LABEL_UPDATE_CORE_INFO_FILES: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION: return xmb->textures.list[XMB_TEXTURE_INFO]; case MENU_ENUM_LABEL_UPDATE_DATABASES: case MENU_ENUM_LABEL_DATABASE_MANAGER_LIST: @@ -3027,19 +3047,27 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING: return xmb->textures.list[XMB_TEXTURE_HELP]; case MENU_ENUM_LABEL_QUIT_RETROARCH: - case MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE: return xmb->textures.list[XMB_TEXTURE_EXIT]; + + /* Settings icons */ case MENU_ENUM_LABEL_DRIVER_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_DRIVERS: return xmb->textures.list[XMB_TEXTURE_DRIVERS]; case MENU_ENUM_LABEL_VIDEO_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_VIDEO: return xmb->textures.list[XMB_TEXTURE_VIDEO]; case MENU_ENUM_LABEL_AUDIO_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_AUDIO: return xmb->textures.list[XMB_TEXTURE_AUDIO]; case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS: return xmb->textures.list[XMB_TEXTURE_MIXER]; - case MENU_ENUM_LABEL_SCREEN_RESOLUTION: - return xmb->textures.list[XMB_TEXTURE_SUBSETTING]; + case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_CONFIGURATION: + case MENU_ENUM_LABEL_SETTINGS_SHOW_FILE_BROWSER: + return xmb->textures.list[XMB_TEXTURE_SETTING]; case MENU_ENUM_LABEL_INPUT_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_INPUT: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CONTROLS: case MENU_ENUM_LABEL_UPDATE_AUTOCONFIG_PROFILES: case MENU_ENUM_LABEL_INPUT_USER_1_BINDS: case MENU_ENUM_LABEL_INPUT_USER_2_BINDS: @@ -3062,8 +3090,12 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_INPUT_TURBO_FIRE_SETTINGS: return xmb->textures.list[XMB_TEXTURE_INPUT_TURBO]; case MENU_ENUM_LABEL_LATENCY_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY: + case MENU_ENUM_LABEL_SETTINGS_SHOW_LATENCY: + case MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE: return xmb->textures.list[XMB_TEXTURE_LATENCY]; case MENU_ENUM_LABEL_SAVING_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_SAVING: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG: case MENU_ENUM_LABEL_SAVE_NEW_CONFIG: case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: @@ -3071,16 +3103,23 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVESTATE_SUBMENU: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE: return xmb->textures.list[XMB_TEXTURE_SAVING]; case MENU_ENUM_LABEL_LOGGING_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_LOGGING: return xmb->textures.list[XMB_TEXTURE_LOG]; case MENU_ENUM_LABEL_FASTFORWARD_RATIO: case MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_FRAME_THROTTLE: return xmb->textures.list[XMB_TEXTURE_FRAMESKIP]; case MENU_ENUM_LABEL_QUICK_MENU_START_RECORDING: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_RECORDING: case MENU_ENUM_LABEL_RECORDING_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_RECORDING: return xmb->textures.list[XMB_TEXTURE_RECORD]; case MENU_ENUM_LABEL_QUICK_MENU_START_STREAMING: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_STREAMING: return xmb->textures.list[XMB_TEXTURE_STREAM]; case MENU_ENUM_LABEL_QUICK_MENU_STOP_STREAMING: case MENU_ENUM_LABEL_QUICK_MENU_STOP_RECORDING: @@ -3106,14 +3145,17 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, return xmb->textures.list[XMB_TEXTURE_UNDO]; case MENU_ENUM_LABEL_CORE_OPTIONS_FLUSH: case MENU_ENUM_LABEL_REMAP_FILE_FLUSH: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_CORE_OPTIONS_FLUSH: return xmb->textures.list[XMB_TEXTURE_FILE]; case MENU_ENUM_LABEL_CORE_LOCK: case MENU_ENUM_LABEL_CORE_SET_STANDALONE_EXEMPT: return xmb->textures.list[XMB_TEXTURE_CORE]; case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_ONSCREEN_DISPLAY: return xmb->textures.list[XMB_TEXTURE_OSD]; case MENU_ENUM_LABEL_SHOW_WIMP: case MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_USER_INTERFACE: return xmb->textures.list[XMB_TEXTURE_UI]; #ifdef HAVE_LAKKA_SWITCH case MENU_ENUM_LABEL_SWITCH_GPU_PROFILE: @@ -3123,18 +3165,26 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, return xmb->textures.list[XMB_TEXTURE_POWER]; #endif case MENU_ENUM_LABEL_POWER_MANAGEMENT_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_POWER_MANAGEMENT: + case MENU_ENUM_LABEL_FASTFORWARD_FRAMESKIP: return xmb->textures.list[XMB_TEXTURE_POWER]; case MENU_ENUM_LABEL_RETRO_ACHIEVEMENTS_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_ACHIEVEMENTS: return xmb->textures.list[XMB_TEXTURE_ACHIEVEMENTS]; case MENU_ENUM_LABEL_PLAYLIST_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_PLAYLISTS: return xmb->textures.list[XMB_TEXTURE_PLAYLIST]; case MENU_ENUM_LABEL_USER_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_USER: return xmb->textures.list[XMB_TEXTURE_USER]; case MENU_ENUM_LABEL_PRIVACY_SETTINGS: return xmb->textures.list[XMB_TEXTURE_PRIVACY]; case MENU_ENUM_LABEL_REWIND_SETTINGS: + case MENU_ENUM_LABEL_CONTENT_SHOW_REWIND: return xmb->textures.list[XMB_TEXTURE_REWIND]; case MENU_ENUM_LABEL_QUICK_MENU_OVERRIDE_OPTIONS: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES: + case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES: return xmb->textures.list[XMB_TEXTURE_OVERRIDE]; case MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS: return xmb->textures.list[XMB_TEXTURE_NOTIFICATIONS]; @@ -3153,6 +3203,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, #endif case MENU_ENUM_LABEL_NETWORK_INFORMATION: case MENU_ENUM_LABEL_NETWORK_SETTINGS: + case MENU_ENUM_LABEL_SETTINGS_SHOW_NETWORK: case MENU_ENUM_LABEL_WIFI_SETTINGS: case MENU_ENUM_LABEL_NETWORK_INFO_ENTRY: case MENU_ENUM_LABEL_NETWORK_HOSTING_SETTINGS: @@ -3176,7 +3227,6 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_TOGGLE: return xmb->textures.list[XMB_TEXTURE_MENU_APPLY_TOGGLE]; case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_INDEX: return xmb->textures.list[XMB_TEXTURE_MENU_APPLY_COG]; case MENU_ENUM_LABEL_SLOWMOTION_RATIO: return xmb->textures.list[XMB_TEXTURE_RESUME]; @@ -3188,6 +3238,12 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, uintptr_t icon = menu_explore_get_entry_icon(type); if (icon) return icon; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_SAVE_VIEW))) + return xmb->textures.list[XMB_TEXTURE_SAVING]; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_DELETE_VIEW))) + return xmb->textures.list[XMB_TEXTURE_CLOSE]; + else if (type != FILE_TYPE_RDB) + return xmb->textures.list[XMB_TEXTURE_CURSOR]; break; } #endif @@ -3202,7 +3258,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, break; } - switch(type) + switch (type) { case FILE_TYPE_DIRECTORY: return xmb->textures.list[XMB_TEXTURE_FOLDER]; @@ -3872,6 +3928,10 @@ static int xmb_draw_item( { float entry_idx_margin = 12 * xmb->last_scale_factor; +#if 0 + /* Disabled due to overlap with arrow image + * and previous selection icon when enough items */ + /* Calculate position depending on the current * list and if Thumbnail Vertical Disposition * is enabled (branchless version) */ @@ -3888,6 +3948,10 @@ static int xmb_draw_item( (xmb->margins_screen_top + xmb->margins_label_top + xmb->icon_spacing_vertical * xmb->active_item_factor) * menu_xmb_vertical_thumbnails; +#else + float x_position = video_width - entry_idx_margin; + float y_position = video_height - entry_idx_margin; +#endif xmb_draw_text(xmb_shadows_enable, xmb, settings, xmb->entry_index_str, x_position, y_position, @@ -3958,8 +4022,30 @@ static int xmb_draw_item( float y = icon_y; float scale_factor = node->zoom; + /* Explore list correction hack for not showing wrong icons as "back" icon */ + if (xmb->is_explore_list && !xmb->is_quick_menu && texture) + { + if (node->x < -xmb->icon_spacing_horizontal / 3) + texture = xmb->textures.list[XMB_TEXTURE_CURSOR]; + } + /* Playlist manager icons */ + else if (xmb->depth == 3 && entry.enum_idx == MENU_ENUM_LABEL_PLAYLIST_MANAGER_SETTINGS) + { + if (string_is_equal(entry.rich_label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_HISTORY_TAB))) + texture = xmb->textures.list[XMB_TEXTURE_HISTORY]; + else if (string_is_equal(entry.rich_label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES_TAB))) + texture = xmb->textures.list[XMB_TEXTURE_FAVORITES]; + else if (i < xmb->horizontal_list.size) + { + xmb_node_t *sidebar_node = (xmb_node_t*) + file_list_get_userdata_at_offset(&xmb->horizontal_list, i + 1); + + if (sidebar_node && sidebar_node->icon) + texture = sidebar_node->icon; + } + } /* "Load Content" playlists */ - if (xmb->depth == 3 && entry_type == FILE_TYPE_PLAYLIST_COLLECTION) + else if (xmb->depth == 3 && entry_type == FILE_TYPE_PLAYLIST_COLLECTION) { xmb_node_t *sidebar_node = (xmb_node_t*) file_list_get_userdata_at_offset(&xmb->horizontal_list, list->list[i].entry_idx); if (sidebar_node && sidebar_node->icon) @@ -4122,11 +4208,15 @@ static void xmb_draw_items( if (node && (uint8_t)(255 * node->alpha) == 0) return; - i = 0; + /* Draw only current item for "back" icon */ + first = (unsigned)current; + last = (unsigned)current; + } + else + { + first = (unsigned)i; + last = (unsigned)(end - 1); } - - first = (unsigned)i; - last = (unsigned)(end - 1); xmb_calculate_visible_range(xmb, height, end, (unsigned)current, &first, &last); @@ -5041,18 +5131,9 @@ static void xmb_draw_fullscreen_thumbnails( (!xmb->is_quick_menu || xmb->show_fullscreen_thumbnails)) goto error; - /* Get thumbnail pointers - * > Order is swapped when using 'vertical disposition' */ - if (xmb_vertical_thumbnails) - { - right_thumbnail = &xmb->thumbnails.left; - left_thumbnail = &xmb->thumbnails.right; - } - else - { - right_thumbnail = &xmb->thumbnails.right; - left_thumbnail = &xmb->thumbnails.left; - } + /* Get thumbnail pointers */ + right_thumbnail = &xmb->thumbnails.right; + left_thumbnail = &xmb->thumbnails.left; /* Get number of 'active' thumbnails */ show_right_thumbnail = (right_thumbnail->status == GFX_THUMBNAIL_STATUS_AVAILABLE); @@ -5636,7 +5717,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) float thumb_y_base = xmb->margins_title_top + (xmb->icon_size / 4.0f); float thumb_y_offset = (thumb_height - scaled_thumb_height) / 2.0f; float right_thumb_y = thumb_y_base + thumb_y_offset; - float left_thumb_y = thumb_y_base + thumb_height + (xmb->icon_size / 4) + thumb_y_offset; + float left_thumb_y = thumb_y_base + thumb_height + (xmb->icon_size / 8) + thumb_y_offset; gfx_thumbnail_draw( userdata, @@ -5933,8 +6014,8 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) if (dispctx && dispctx->blend_begin) dispctx->blend_begin(userdata); - /* Horizontal tab icons */ - if (!xmb->assets_missing) + /* Horizontal tab icons only needed on root depth */ + if (!xmb->assets_missing && xmb->depth == 1) { for (i = 0; i <= xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) + xmb->system_tab_end; i++) @@ -6023,7 +6104,6 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) &mymat_tmp); } } - } /* Vertical icons */ @@ -6039,9 +6119,9 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) xmb, &xmb->selection_buf_old, xmb->selection_ptr_old, - (xmb_list_get_size(xmb, MENU_LIST_PLAIN) > 1) - ? xmb->categories_selection_ptr : - xmb->categories_selection_ptr_old, + (xmb->depth > 1) + ? xmb->categories_selection_ptr + : xmb->categories_selection_ptr_old, &xmb_item_color[0], video_width, video_height, @@ -6049,6 +6129,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) selection_buf = menu_entries_get_selection_buf_ptr(0); + /* List icons */ xmb_draw_items( userdata, p_disp, @@ -6450,17 +6531,17 @@ static void *xmb_init(void **userdata, bool video_is_threaded) && !settings->bools.kiosk_mode_enable) xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_ADD; -#if defined(HAVE_LIBRETRODB) - if (settings->bools.menu_content_show_explore) - xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_EXPLORE; -#endif - #if defined(HAVE_DYNAMIC) if (settings->uints.menu_content_show_contentless_cores != MENU_CONTENTLESS_CORES_DISPLAY_NONE) xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_CONTENTLESS_CORES; #endif +#if defined(HAVE_LIBRETRODB) + if (settings->bools.menu_content_show_explore) + xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_EXPLORE; +#endif + menu_driver_ctl(RARCH_MENU_CTL_UNSET_PREVENT_POPULATE, NULL); /* TODO/FIXME - we don't use framebuffer at all @@ -6940,20 +7021,20 @@ static bool xmb_context_reset_textures( xmb->add_tab_node.alpha = xmb->categories_active_alpha; xmb->add_tab_node.zoom = xmb->categories_active_zoom; + xmb->contentless_cores_tab_node.icon = xmb->textures.list[XMB_TEXTURE_CORE]; + xmb->contentless_cores_tab_node.alpha = xmb->categories_active_alpha; + xmb->contentless_cores_tab_node.zoom = xmb->categories_active_zoom; + #if defined(HAVE_LIBRETRODB) - xmb->explore_tab_node.icon = xmb->textures.list[XMB_TEXTURE_MAIN_MENU]; + xmb->explore_tab_node.icon = xmb->textures.list[XMB_TEXTURE_RDB]; xmb->explore_tab_node.alpha = xmb->categories_active_alpha; xmb->explore_tab_node.zoom = xmb->categories_active_zoom; #endif - xmb->contentless_cores_tab_node.icon = xmb->textures.list[XMB_TEXTURE_MAIN_MENU]; - xmb->contentless_cores_tab_node.alpha = xmb->categories_active_alpha; - xmb->contentless_cores_tab_node.zoom = xmb->categories_active_zoom; - #ifdef HAVE_NETWORKING - xmb->netplay_tab_node.icon = xmb->textures.list[XMB_TEXTURE_NETPLAY]; - xmb->netplay_tab_node.alpha = xmb->categories_active_alpha; - xmb->netplay_tab_node.zoom = xmb->categories_active_zoom; + xmb->netplay_tab_node.icon = xmb->textures.list[XMB_TEXTURE_NETPLAY]; + xmb->netplay_tab_node.alpha = xmb->categories_active_alpha; + xmb->netplay_tab_node.zoom = xmb->categories_active_zoom; #endif /* Recolor */ @@ -7095,6 +7176,12 @@ static void xmb_context_reset_internal(xmb_handle_t *xmb, if (!xmb_context_reset_textures(xmb, iconpath, menu_xmb_theme)) xmb->assets_missing = true; xmb_context_reset_background(xmb, iconpath); + + xmb_free_list_nodes(&xmb->selection_buf_old, false); + file_list_deinitialize(&xmb->selection_buf_old); + xmb->selection_buf_old.list = NULL; + xmb->selection_buf_old.capacity = 0; + xmb->selection_buf_old.size = 0; } xmb_context_reset_horizontal_list(xmb); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index be3988924d..d0adf210b0 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4081,26 +4081,6 @@ static unsigned menu_displaylist_parse_playlists( MENU_SETTING_ACTION, 0, 0, NULL)) count++; -#if defined(HAVE_LIBRETRODB) - if (settings->bools.menu_content_show_explore) - if (menu_entries_append(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_EXPLORE), - msg_hash_to_str(MENU_ENUM_LABEL_GOTO_EXPLORE), - MENU_ENUM_LABEL_GOTO_EXPLORE, - MENU_EXPLORE_TAB, 0, 0, NULL)) - count++; -#endif - -#if defined(HAVE_DYNAMIC) - if (settings->uints.menu_content_show_contentless_cores != - MENU_CONTENTLESS_CORES_DISPLAY_NONE) - if (menu_entries_append(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_CONTENTLESS_CORES), - msg_hash_to_str(MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES), - MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES, - MENU_CONTENTLESS_CORES_TAB, 0, 0, NULL)) - count++; -#endif if (settings->bools.menu_content_show_favorites) if (menu_entries_append(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES), @@ -4108,6 +4088,7 @@ static unsigned menu_displaylist_parse_playlists( MENU_ENUM_LABEL_GOTO_FAVORITES, MENU_SETTING_ACTION, 0, 0, NULL)) count++; + if (settings->bools.menu_content_show_images) if (menu_entries_append(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_IMAGES), @@ -4133,6 +4114,28 @@ static unsigned menu_displaylist_parse_playlists( MENU_SETTING_ACTION, 0, 0, NULL)) count++; #endif + +#if defined(HAVE_DYNAMIC) + if (settings->uints.menu_content_show_contentless_cores != + MENU_CONTENTLESS_CORES_DISPLAY_NONE) + if (menu_entries_append(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_CONTENTLESS_CORES), + msg_hash_to_str(MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES), + MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES, + MENU_CONTENTLESS_CORES_TAB, 0, 0, NULL)) + count++; +#endif + +#if defined(HAVE_LIBRETRODB) + if (settings->bools.menu_content_show_explore) + if (menu_entries_append(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_EXPLORE), + msg_hash_to_str(MENU_ENUM_LABEL_GOTO_EXPLORE), + MENU_ENUM_LABEL_GOTO_EXPLORE, + MENU_EXPLORE_TAB, 0, 0, NULL)) + count++; +#endif + } if (!dir_list_initialize(&str_list, path, NULL, true, @@ -6872,26 +6875,6 @@ unsigned menu_displaylist_build_list( MENU_SETTING_ACTION_FAVORITES_DIR, 0, 0, NULL)) count++; -#if defined(HAVE_LIBRETRODB) - if (settings->bools.menu_content_show_explore) - if (menu_entries_append(list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_EXPLORE), - msg_hash_to_str(MENU_ENUM_LABEL_GOTO_EXPLORE), - MENU_ENUM_LABEL_GOTO_EXPLORE, - MENU_EXPLORE_TAB, 0, 0, NULL)) - count++; -#endif - -#if defined(HAVE_DYNAMIC) - if (settings->uints.menu_content_show_contentless_cores != - MENU_CONTENTLESS_CORES_DISPLAY_NONE) - if (menu_entries_append(list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_CONTENTLESS_CORES), - msg_hash_to_str(MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES), - MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES, - MENU_CONTENTLESS_CORES_TAB, 0, 0, NULL)) - count++; -#endif if (menu_content_show_favorites) if (menu_entries_append(list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES), @@ -6925,6 +6908,27 @@ unsigned menu_displaylist_build_list( MENU_SETTING_ACTION, 0, 0, NULL)) count++; #endif + +#if defined(HAVE_DYNAMIC) + if (settings->uints.menu_content_show_contentless_cores != + MENU_CONTENTLESS_CORES_DISPLAY_NONE) + if (menu_entries_append(list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_CONTENTLESS_CORES), + msg_hash_to_str(MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES), + MENU_ENUM_LABEL_GOTO_CONTENTLESS_CORES, + MENU_CONTENTLESS_CORES_TAB, 0, 0, NULL)) + count++; +#endif + +#if defined(HAVE_LIBRETRODB) + if (settings->bools.menu_content_show_explore) + if (menu_entries_append(list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_EXPLORE), + msg_hash_to_str(MENU_ENUM_LABEL_GOTO_EXPLORE), + MENU_ENUM_LABEL_GOTO_EXPLORE, + MENU_EXPLORE_TAB, 0, 0, NULL)) + count++; +#endif } { @@ -8906,7 +8910,7 @@ unsigned menu_displaylist_build_list( { menu_displaylist_build_info_selective_t build_list[] = { {MENU_ENUM_LABEL_QUICK_MENU_VIEWS_SETTINGS, PARSE_ACTION, true }, - {MENU_ENUM_LABEL_SETTINGS_VIEWS_SETTINGS, PARSE_ACTION, true }, + {MENU_ENUM_LABEL_SETTINGS_VIEWS_SETTINGS, PARSE_ACTION, true }, {MENU_ENUM_LABEL_MENU_SHOW_LOAD_CORE, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC, PARSE_ONLY_BOOL, true }, @@ -8932,18 +8936,18 @@ unsigned menu_displaylist_build_list( {MENU_ENUM_LABEL_MENU_SHOW_SHUTDOWN, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_SETTINGS, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_SETTINGS_PASSWORD, PARSE_ONLY_STRING, true}, - {MENU_ENUM_LABEL_CONTENT_SHOW_EXPLORE, PARSE_ONLY_BOOL, true }, -#if defined(HAVE_DYNAMIC) - {MENU_ENUM_LABEL_CONTENT_SHOW_CONTENTLESS_CORES, PARSE_ONLY_UINT, true }, -#endif + {MENU_ENUM_LABEL_CONTENT_SHOW_ADD, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_CONTENT_SHOW_ADD_ENTRY, PARSE_ONLY_UINT, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_FAVORITES, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_CONTENT_SHOW_HISTORY, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_IMAGES, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_MUSIC, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_VIDEO, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_NETPLAY, PARSE_ONLY_BOOL, true }, - {MENU_ENUM_LABEL_CONTENT_SHOW_HISTORY, PARSE_ONLY_BOOL, true }, - {MENU_ENUM_LABEL_CONTENT_SHOW_ADD, PARSE_ONLY_BOOL, true }, - {MENU_ENUM_LABEL_CONTENT_SHOW_ADD_ENTRY, PARSE_ONLY_UINT, true }, +#if defined(HAVE_DYNAMIC) + {MENU_ENUM_LABEL_CONTENT_SHOW_CONTENTLESS_CORES, PARSE_ONLY_UINT, true }, +#endif + {MENU_ENUM_LABEL_CONTENT_SHOW_EXPLORE, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_CONTENT_SHOW_PLAYLISTS, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_TIMEDATE_ENABLE, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_TIMEDATE_STYLE, PARSE_ONLY_UINT, true }, diff --git a/menu/menu_explore.c b/menu/menu_explore.c index 04db6cbd56..be06d6a92b 100644 --- a/menu/menu_explore.c +++ b/menu/menu_explore.c @@ -1383,8 +1383,11 @@ unsigned menu_displaylist_explore(file_list_t *list, settings_t *settings) msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RDB_ENTRY_NAME), state->view_search); - state->show_icons = (current_cat == EXPLORE_BY_SYSTEM - ? EXPLORE_ICONS_SYSTEM_CATEGORY : EXPLORE_ICONS_OFF); + state->show_icons = (current_cat == EXPLORE_BY_SYSTEM) + ? EXPLORE_ICONS_SYSTEM_CATEGORY + : (current_type >= EXPLORE_TYPE_FIRSTITEM) + ? EXPLORE_ICONS_CONTENT + : EXPLORE_ICONS_OFF; if ( current_type == MENU_EXPLORE_TAB || current_type == EXPLORE_TYPE_ADDITIONALFILTER) @@ -1537,6 +1540,7 @@ unsigned menu_displaylist_explore(file_list_t *list, settings_t *settings) else { /* Game list */ + state->show_icons = EXPLORE_ICONS_CONTENT; explore_menu_entry(list, state, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_EXPLORE_ADD_ADDITIONAL_FILTER), EXPLORE_TYPE_ADDITIONALFILTER, explore_action_ok); @@ -1544,7 +1548,6 @@ unsigned menu_displaylist_explore(file_list_t *list, settings_t *settings) msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_SAVE_VIEW), EXPLORE_TYPE_VIEW, explore_action_ok_saveview); explore_menu_add_spacer(list); - state->show_icons = EXPLORE_ICONS_CONTENT; } first_list_entry = list->size;