Merge pull request #3341 from gitghostcoder/master

[bugged] Reworked xmb driver to allow tab hiding
This commit is contained in:
Twinaphex 2016-08-17 09:45:47 +02:00 committed by GitHub
commit f26044678d
8 changed files with 349 additions and 115 deletions

View File

@ -528,6 +528,13 @@ static bool xmb_shadows_enable = false;
#else #else
static bool xmb_shadows_enable = true; static bool xmb_shadows_enable = true;
#endif #endif
static bool xmb_hide_main = false;
static bool xmb_hide_settings = false;
static bool xmb_hide_images = false;
static bool xmb_hide_music = false;
static bool xmb_hide_video = false;
static bool xmb_hide_history = false;
static bool xmb_hide_import = false;
#endif #endif
static float menu_wallpaper_opacity = 0.300; static float menu_wallpaper_opacity = 0.300;

View File

@ -494,6 +494,13 @@ static void config_set_defaults(void)
settings->menu.xmb.theme = xmb_icon_theme; settings->menu.xmb.theme = xmb_icon_theme;
settings->menu.xmb.menu_color_theme = menu_background_gradient; settings->menu.xmb.menu_color_theme = menu_background_gradient;
settings->menu.xmb.shadows_enable = xmb_shadows_enable; settings->menu.xmb.shadows_enable = xmb_shadows_enable;
settings->menu.xmb.hide_main = xmb_hide_main;
settings->menu.xmb.hide_settings = xmb_hide_settings;
settings->menu.xmb.hide_images = xmb_hide_images;
settings->menu.xmb.hide_music = xmb_hide_music;
settings->menu.xmb.hide_video = xmb_hide_video;
settings->menu.xmb.hide_history = xmb_hide_history;
settings->menu.xmb.hide_import = xmb_hide_import;
settings->menu.xmb.shader_pipeline = menu_shader_pipeline; settings->menu.xmb.shader_pipeline = menu_shader_pipeline;
settings->menu.xmb.font[0] = '\0'; settings->menu.xmb.font[0] = '\0';
#endif #endif
@ -1318,6 +1325,13 @@ static bool config_load_file(const char *path, bool set_defaults)
#endif #endif
{ "rgui_show_start_screen", &settings->menu_show_start_screen}, { "rgui_show_start_screen", &settings->menu_show_start_screen},
{ "xmb_shadows_enable", &settings->menu.xmb.shadows_enable}, { "xmb_shadows_enable", &settings->menu.xmb.shadows_enable},
{ "xmb_hide_main", &settings->menu.xmb.hide_main},
{ "xmb_hide_settings", &settings->menu.xmb.hide_settings},
{ "xmb_hide_images", &settings->menu.xmb.hide_images},
{ "xmb_hide_music", &settings->menu.xmb.hide_music},
{ "xmb_hide_video", &settings->menu.xmb.hide_video},
{ "xmb_hide_history", &settings->menu.xmb.hide_history},
{ "xmb_hide_import", &settings->menu.xmb.hide_import},
{ "menu_throttle_framerate", &settings->menu.throttle_framerate}, { "menu_throttle_framerate", &settings->menu.throttle_framerate},
{ "menu_linear_filter", &settings->menu.linear_filter}, { "menu_linear_filter", &settings->menu.linear_filter},
{ "menu_pause_libretro", &settings->menu.pause_libretro}, { "menu_pause_libretro", &settings->menu.pause_libretro},
@ -2859,6 +2873,13 @@ bool config_save_file(const char *path)
{ "menu_core_enable", settings->menu.core_enable}, { "menu_core_enable", settings->menu.core_enable},
{ "menu_dynamic_wallpaper_enable",settings->menu.dynamic_wallpaper_enable}, { "menu_dynamic_wallpaper_enable",settings->menu.dynamic_wallpaper_enable},
{ "xmb_shadows_enable", settings->menu.xmb.shadows_enable}, { "xmb_shadows_enable", settings->menu.xmb.shadows_enable},
{ "xmb_hide_main", settings->menu.xmb.hide_main},
{ "xmb_hide_settings", settings->menu.xmb.hide_settings},
{ "xmb_hide_images", settings->menu.xmb.hide_images},
{ "xmb_hide_music", settings->menu.xmb.hide_music},
{ "xmb_hide_video", settings->menu.xmb.hide_video},
{ "xmb_hide_history", settings->menu.xmb.hide_history},
{ "xmb_hide_import", settings->menu.xmb.hide_import},
{ "rgui_show_start_screen", settings->menu_show_start_screen}, { "rgui_show_start_screen", settings->menu_show_start_screen},
{ "menu_navigation_wraparound_enable", settings->menu.navigation.wraparound.enable}, { "menu_navigation_wraparound_enable", settings->menu.navigation.wraparound.enable},
{ "menu_navigation_browser_filter_supported_extensions_enable", { "menu_navigation_browser_filter_supported_extensions_enable",

View File

@ -234,6 +234,13 @@ typedef struct settings
unsigned theme; unsigned theme;
unsigned menu_color_theme; unsigned menu_color_theme;
bool shadows_enable; bool shadows_enable;
bool hide_main;
bool hide_settings;
bool hide_images;
bool hide_music;
bool hide_video;
bool hide_history;
bool hide_import;
} xmb; } xmb;
struct struct

View File

@ -2428,6 +2428,20 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
return "materialui_menu_footer_opacity"; return "materialui_menu_footer_opacity";
case MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE: case MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE:
return "xmb_shadows_enable"; return "xmb_shadows_enable";
case MENU_ENUM_LABEL_XMB_HIDE_MAIN:
return "xmb_hide_main";
case MENU_ENUM_LABEL_XMB_HIDE_SETTINGS:
return "xmb_hide_history";
case MENU_ENUM_LABEL_XMB_HIDE_IMAGES:
return "xmb_hide_images";
case MENU_ENUM_LABEL_XMB_HIDE_MUSIC:
return "xmb_hide_music";
case MENU_ENUM_LABEL_XMB_HIDE_VIDEO:
return "xmb_hide_video";
case MENU_ENUM_LABEL_XMB_HIDE_HISTORY:
return "xmb_hide_settings";
case MENU_ENUM_LABEL_XMB_HIDE_IMPORT:
return "xmb_hide_import";
case MENU_ENUM_LABEL_XMB_RIBBON_ENABLE: case MENU_ENUM_LABEL_XMB_RIBBON_ENABLE:
return "xmb_ribbon_enable"; return "xmb_ribbon_enable";
case MENU_ENUM_LABEL_XMB_SCALE_FACTOR: case MENU_ENUM_LABEL_XMB_SCALE_FACTOR:
@ -3715,6 +3729,20 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg)
return "Menu Color Theme"; return "Menu Color Theme";
case MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE: case MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE:
return "Icon Shadows Enable"; return "Icon Shadows Enable";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_MAIN:
return "Hide Main Tab";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_SETTINGS:
return "Hide Settings Tab";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_IMAGES:
return "Hide Images Tab";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_MUSIC:
return "Hide Music Tab";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_VIDEO:
return "Hide Video Tab";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_HISTORY:
return "Hide History Tab";
case MENU_ENUM_LABEL_VALUE_XMB_HIDE_IMPORT:
return "Hide Import Content Tab";
case MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE: case MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE:
return "Menu Shader Pipeline"; return "Menu Shader Pipeline";
case MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME: case MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME:

View File

@ -113,27 +113,6 @@ enum
XMB_TEXTURE_LAST XMB_TEXTURE_LAST
}; };
enum
{
XMB_SYSTEM_TAB_MAIN = 0,
XMB_SYSTEM_TAB_SETTINGS,
#ifdef HAVE_IMAGEVIEWER
XMB_SYSTEM_TAB_IMAGES,
#endif
#ifdef HAVE_FFMPEG
XMB_SYSTEM_TAB_MUSIC,
XMB_SYSTEM_TAB_VIDEO,
#endif
XMB_SYSTEM_TAB_HISTORY,
XMB_SYSTEM_TAB_ADD
};
#ifdef HAVE_LIBRETRODB
#define XMB_SYSTEM_TAB_END XMB_SYSTEM_TAB_ADD
#else
#define XMB_SYSTEM_TAB_END XMB_SYSTEM_TAB_HISTORY
#endif
typedef struct xmb_handle typedef struct xmb_handle
{ {
file_list_t *menu_stack_old; file_list_t *menu_stack_old;
@ -251,6 +230,22 @@ typedef struct xmb_handle
} passive; } passive;
} items; } items;
struct
{
unsigned main;
unsigned settings;
#ifdef HAVE_IMAGEVIEWER
unsigned images;
#endif
#ifdef HAVE_FFMPEG
unsigned music;
unsigned video;
#endif
unsigned history;
unsigned import;
unsigned end;
} tabs;
xmb_node_t main_menu_node; xmb_node_t main_menu_node;
#ifdef HAVE_IMAGEVIEWER #ifdef HAVE_IMAGEVIEWER
xmb_node_t images_tab_node; xmb_node_t images_tab_node;
@ -424,7 +419,7 @@ static size_t xmb_list_get_size(void *data, enum menu_list_type type)
return file_list_get_size(xmb->horizontal_list); return file_list_get_size(xmb->horizontal_list);
break; break;
case MENU_LIST_TABS: case MENU_LIST_TABS:
return XMB_SYSTEM_TAB_END; return xmb->tabs.end - 1;
} }
return 0; return 0;
@ -997,7 +992,7 @@ static xmb_node_t *xmb_node_allocate_userdata(xmb_handle_t *xmb, unsigned i)
node->alpha = xmb->categories.passive.alpha; node->alpha = xmb->categories.passive.alpha;
node->zoom = xmb->categories.passive.zoom; node->zoom = xmb->categories.passive.zoom;
if ((i + XMB_SYSTEM_TAB_END) == xmb->categories.active.idx) if ((i + xmb->tabs.end) == xmb->categories.active.idx)
{ {
node->alpha = xmb->categories.active.alpha; node->alpha = xmb->categories.active.alpha;
node->zoom = xmb->categories.active.zoom; node->zoom = xmb->categories.active.zoom;
@ -1125,7 +1120,7 @@ static void xmb_list_switch_new(xmb_handle_t *xmb,
static void xmb_set_title(xmb_handle_t *xmb) static void xmb_set_title(xmb_handle_t *xmb)
{ {
if (xmb->categories.selection_ptr <= XMB_SYSTEM_TAB_END) if (xmb->categories.selection_ptr < xmb->tabs.end)
{ {
menu_entries_get_title(xmb->title_name, sizeof(xmb->title_name)); menu_entries_get_title(xmb->title_name, sizeof(xmb->title_name));
} }
@ -1134,7 +1129,7 @@ static void xmb_set_title(xmb_handle_t *xmb)
const char *path = NULL; const char *path = NULL;
menu_entries_get_at_offset( menu_entries_get_at_offset(
xmb->horizontal_list, xmb->horizontal_list,
xmb->categories.selection_ptr - (XMB_SYSTEM_TAB_END + 1), xmb->categories.selection_ptr - xmb->tabs.end,
&path, NULL, NULL, NULL, NULL); &path, NULL, NULL, NULL, NULL);
if (!path) if (!path)
@ -1146,38 +1141,34 @@ static void xmb_set_title(xmb_handle_t *xmb)
static xmb_node_t* xmb_get_node(xmb_handle_t *xmb, unsigned i) static xmb_node_t* xmb_get_node(xmb_handle_t *xmb, unsigned i)
{ {
switch (i) if (i == xmb->tabs.main) //ZSV
{ return &xmb->main_menu_node;
case XMB_SYSTEM_TAB_SETTINGS: else if (i == xmb->tabs.settings)
return &xmb->settings_tab_node; return &xmb->settings_tab_node;
#ifdef HAVE_IMAGEVIEWER #ifdef HAVE_IMAGEVIEWER
case XMB_SYSTEM_TAB_IMAGES: else if (i == xmb->tabs.images)
return &xmb->images_tab_node; return &xmb->images_tab_node;
#endif #endif
#ifdef HAVE_FFMPEG #ifdef HAVE_FFMPEG
case XMB_SYSTEM_TAB_VIDEO: else if (i == xmb->tabs.music)
return &xmb->video_tab_node; return &xmb->video_tab_node;
case XMB_SYSTEM_TAB_MUSIC: else if (i == xmb->tabs.video)
return &xmb->music_tab_node; return &xmb->music_tab_node;
#endif #endif
case XMB_SYSTEM_TAB_HISTORY: else if (i == xmb->tabs.history)
return &xmb->history_tab_node; return &xmb->history_tab_node;
case XMB_SYSTEM_TAB_ADD: else if (i == xmb->tabs.import)
return &xmb->add_tab_node; return &xmb->add_tab_node;
default: else
if (i > XMB_SYSTEM_TAB_END) return xmb_get_userdata_from_horizontal_list(
return xmb_get_userdata_from_horizontal_list( xmb, i - xmb->tabs.end);
xmb, i - (XMB_SYSTEM_TAB_END + 1));
}
return &xmb->main_menu_node;
} }
static void xmb_list_switch_horizontal_list(xmb_handle_t *xmb) static void xmb_list_switch_horizontal_list(xmb_handle_t *xmb)
{ {
unsigned j; unsigned j;
size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
+ XMB_SYSTEM_TAB_END; + xmb->tabs.end;
for (j = 0; j <= list_size; j++) for (j = 0; j <= list_size; j++)
{ {
@ -1257,7 +1248,7 @@ static void xmb_list_open_horizontal_list(xmb_handle_t *xmb)
{ {
unsigned j; unsigned j;
size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
+ XMB_SYSTEM_TAB_END; + xmb->tabs.end;
for (j = 0; j <= list_size; j++) for (j = 0; j <= list_size; j++)
{ {
@ -1340,7 +1331,7 @@ static void xmb_toggle_horizontal_list(xmb_handle_t *xmb)
{ {
unsigned i; unsigned i;
size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
+ XMB_SYSTEM_TAB_END; + xmb->tabs.end;
for (i = 0; i <= list_size; i++) for (i = 0; i <= list_size; i++)
{ {
@ -1607,22 +1598,15 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
if (core_node) if (core_node)
return core_node->content_icon; return core_node->content_icon;
#if defined(HAVE_IMAGEVIEWER) || defined(HAVE_FFMPEG)
switch (xmb->categories.selection_ptr)
{
#ifdef HAVE_IMAGEVIEWER #ifdef HAVE_IMAGEVIEWER
case XMB_SYSTEM_TAB_IMAGES: if (xmb->categories.selection_ptr == xmb->tabs.images)
return xmb->textures.list[XMB_TEXTURE_IMAGE]; return xmb->textures.list[XMB_TEXTURE_IMAGE];
#endif #endif
#ifdef HAVE_FFMPEG #ifdef HAVE_FFMPEG
case XMB_SYSTEM_TAB_MUSIC: if (xmb->categories.selection_ptr == xmb->tabs.music)
return xmb->textures.list[XMB_TEXTURE_MUSIC]; return xmb->textures.list[XMB_TEXTURE_MUSIC];
case XMB_SYSTEM_TAB_VIDEO: else if (xmb->categories.selection_ptr == xmb->tabs.video)
return xmb->textures.list[XMB_TEXTURE_MOVIE]; return xmb->textures.list[XMB_TEXTURE_MOVIE];
#endif
default:
break;
}
#endif #endif
return xmb->textures.list[XMB_TEXTURE_FILE]; return xmb->textures.list[XMB_TEXTURE_FILE];
case FILE_TYPE_CARCHIVE: case FILE_TYPE_CARCHIVE:
@ -1694,9 +1678,9 @@ static void xmb_draw_items(xmb_handle_t *xmb,
if (!list || !list->size) if (!list || !list->size)
return; return;
if (cat_selection_ptr > XMB_SYSTEM_TAB_END) if (cat_selection_ptr >= xmb->tabs.end)
core_node = xmb_get_userdata_from_horizontal_list( core_node = xmb_get_userdata_from_horizontal_list(
xmb, cat_selection_ptr - (XMB_SYSTEM_TAB_END + 1)); xmb, cat_selection_ptr - xmb->tabs.end);
end = file_list_get_size(list); end = file_list_get_size(list);
@ -2228,7 +2212,7 @@ static void xmb_frame(void *data)
/* Horizontal tab icons */ /* Horizontal tab icons */
for (i = 0; i <= xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) for (i = 0; i <= xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
+ XMB_SYSTEM_TAB_END; i++) + xmb->tabs.end; i++)
{ {
xmb_node_t *node = xmb_get_node(xmb, i); xmb_node_t *node = xmb_get_node(xmb, i);
@ -2561,6 +2545,7 @@ static void *xmb_init(void **userdata)
unsigned width, height; unsigned width, height;
xmb_handle_t *xmb = NULL; xmb_handle_t *xmb = NULL;
menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu));
settings_t *settings = config_get_ptr();
if (!menu) if (!menu)
goto error; goto error;
@ -2595,6 +2580,40 @@ static void *xmb_init(void **userdata)
xmb->depth = 1; xmb->depth = 1;
xmb->old_depth = 1; xmb->old_depth = 1;
xmb->alpha = 0; xmb->alpha = 0;
xmb->tabs.main = ~0;
xmb->tabs.settings = ~0;
#ifdef HAVE_IMAGEVIEWER
xmb->tabs.images = ~0;
#endif
#ifdef HAVE_FFMPEG
xmb->tabs.music = ~0;
xmb->tabs.video = ~0;
#endif
xmb->tabs.history = ~0;
xmb->tabs.import = ~0;
xmb->tabs.end = 0;
if (!settings->menu.xmb.hide_main) //ZSV
xmb->tabs.main = xmb->tabs.end++;
if (!settings->menu.xmb.hide_settings)
xmb->tabs.settings = xmb->tabs.end++;
#ifdef HAVE_IMAGEVIEWER
if (!settings->menu.xmb.hide_images)
xmb->tabs.images = xmb->tabs.end++;
#endif
#ifdef HAVE_FFMPEG
if (!settings->menu.xmb.hide_music)
xmb->tabs.music = xmb->tabs.end++;
if (!settings->menu.xmb.hide_video)
xmb->tabs.video = xmb->tabs.end++;
#endif
if (!settings->menu.xmb.hide_history)
xmb->tabs.history = xmb->tabs.end++;
#ifdef HAVE_LIBRETRODB
if (!settings->menu.xmb.hide_import)
xmb->tabs.import = xmb->tabs.end++;
#endif
menu_driver_ctl(RARCH_MENU_CTL_UNSET_PREVENT_POPULATE, NULL); menu_driver_ctl(RARCH_MENU_CTL_UNSET_PREVENT_POPULATE, NULL);
/* TODO/FIXME - we don't use framebuffer at all /* TODO/FIXME - we don't use framebuffer at all
@ -3043,7 +3062,7 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action
xmb->selection_ptr_old = selection; xmb->selection_ptr_old = selection;
list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
+ XMB_SYSTEM_TAB_END; + xmb->tabs.end - 1;
switch (type) switch (type)
{ {
@ -3080,60 +3099,65 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action
free(menu_stack->list[stack_size - 1].label); free(menu_stack->list[stack_size - 1].label);
menu_stack->list[stack_size - 1].label = NULL; menu_stack->list[stack_size - 1].label = NULL;
switch (xmb->categories.selection_ptr) if (xmb->categories.selection_ptr == xmb->tabs.main) //ZSV
{ {
case XMB_SYSTEM_TAB_MAIN: menu_stack->list[stack_size - 1].label =
menu_stack->list[stack_size - 1].label = strdup(msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU));
strdup(msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU)); menu_stack->list[stack_size - 1].type =
menu_stack->list[stack_size - 1].type = MENU_SETTINGS;
MENU_SETTINGS; }
break; else if (xmb->categories.selection_ptr == xmb->tabs.settings)
case XMB_SYSTEM_TAB_SETTINGS: {
menu_stack->list[stack_size - 1].label = menu_stack->list[stack_size - 1].label =
strdup(msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB)); strdup(msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB));
menu_stack->list[stack_size - 1].type = menu_stack->list[stack_size - 1].type =
MENU_SETTINGS_TAB; MENU_SETTINGS_TAB;
break; }
#ifdef HAVE_IMAGEVIEWER #ifdef HAVE_IMAGEVIEWER
case XMB_SYSTEM_TAB_IMAGES: else if (xmb->categories.selection_ptr == xmb->tabs.images)
menu_stack->list[stack_size - 1].label = {
strdup(msg_hash_to_str(MENU_ENUM_LABEL_IMAGES_TAB)); menu_stack->list[stack_size - 1].label =
menu_stack->list[stack_size - 1].type = strdup(msg_hash_to_str(MENU_ENUM_LABEL_IMAGES_TAB));
MENU_IMAGES_TAB; menu_stack->list[stack_size - 1].type =
break; MENU_IMAGES_TAB;
}
#endif #endif
#ifdef HAVE_FFMPEG #ifdef HAVE_FFMPEG
case XMB_SYSTEM_TAB_VIDEO: else if (xmb->categories.selection_ptr == xmb->tabs.music)
menu_stack->list[stack_size - 1].label = {
strdup(msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_TAB)); menu_stack->list[stack_size - 1].label =
menu_stack->list[stack_size - 1].type = strdup(msg_hash_to_str(MENU_ENUM_LABEL_MUSIC_TAB));
MENU_VIDEO_TAB; menu_stack->list[stack_size - 1].type =
break; MENU_MUSIC_TAB;
case XMB_SYSTEM_TAB_MUSIC: }
menu_stack->list[stack_size - 1].label = else if (xmb->categories.selection_ptr == xmb->tabs.video)
strdup(msg_hash_to_str(MENU_ENUM_LABEL_MUSIC_TAB)); {
menu_stack->list[stack_size - 1].type = menu_stack->list[stack_size - 1].label =
MENU_MUSIC_TAB; strdup(msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_TAB));
break; menu_stack->list[stack_size - 1].type =
MENU_VIDEO_TAB;
}
#endif #endif
case XMB_SYSTEM_TAB_HISTORY: else if (xmb->categories.selection_ptr == xmb->tabs.history)
menu_stack->list[stack_size - 1].label = {
strdup(msg_hash_to_str(MENU_ENUM_LABEL_HISTORY_TAB)); menu_stack->list[stack_size - 1].label =
menu_stack->list[stack_size - 1].type = strdup(msg_hash_to_str(MENU_ENUM_LABEL_HISTORY_TAB));
MENU_HISTORY_TAB; menu_stack->list[stack_size - 1].type =
break; MENU_HISTORY_TAB;
case XMB_SYSTEM_TAB_ADD: }
menu_stack->list[stack_size - 1].label = else if (xmb->categories.selection_ptr == xmb->tabs.import)
strdup(msg_hash_to_str(MENU_ENUM_LABEL_ADD_TAB)); {
menu_stack->list[stack_size - 1].type = menu_stack->list[stack_size - 1].label =
MENU_ADD_TAB; strdup(msg_hash_to_str(MENU_ENUM_LABEL_ADD_TAB));
break; menu_stack->list[stack_size - 1].type =
default: MENU_ADD_TAB;
menu_stack->list[stack_size - 1].label = }
strdup(msg_hash_to_str(MENU_ENUM_LABEL_HORIZONTAL_MENU)); else
menu_stack->list[stack_size - 1].type = {
MENU_SETTING_HORIZONTAL_MENU; menu_stack->list[stack_size - 1].label =
break; strdup(msg_hash_to_str(MENU_ENUM_LABEL_HORIZONTAL_MENU));
menu_stack->list[stack_size - 1].type =
MENU_SETTING_HORIZONTAL_MENU;
} }
break; break;
default: default:

View File

@ -4648,6 +4648,27 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
menu_displaylist_parse_settings_enum(menu, info, menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE, MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE,
PARSE_ONLY_BOOL, false); PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_MAIN,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_SETTINGS,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_IMAGES,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_MUSIC,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_VIDEO,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_HISTORY,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_HIDE_IMPORT,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info, menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_RIBBON_ENABLE, MENU_ENUM_LABEL_XMB_RIBBON_ENABLE,
PARSE_ONLY_UINT, false); PARSE_ONLY_UINT, false);

View File

@ -6991,6 +6991,118 @@ static bool setting_append_list(
SD_FLAG_NONE); SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_main,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_MAIN),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_MAIN),
xmb_hide_main,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_MAIN);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_settings,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_SETTINGS),
xmb_hide_settings,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_SETTINGS);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_images,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_IMAGES),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_IMAGES),
xmb_hide_images,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_IMAGES);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_music,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_MUSIC),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_MUSIC),
xmb_hide_music,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_MUSIC);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_video,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_VIDEO),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_VIDEO),
xmb_hide_video,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_VIDEO);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_history,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_HISTORY),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_HISTORY),
xmb_hide_history,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_HISTORY);
CONFIG_BOOL(
list, list_info,
&settings->menu.xmb.hide_import,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_HIDE_IMPORT),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_HIDE_IMPORT),
xmb_hide_import,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_HIDE_IMPORT);
#ifdef HAVE_SHADERPIPELINE #ifdef HAVE_SHADERPIPELINE
CONFIG_UINT( CONFIG_UINT(
list, list_info, list, list_info,

View File

@ -562,6 +562,13 @@ enum msg_hash_enums
MENU_ENUM_LABEL_XMB_THEME, MENU_ENUM_LABEL_XMB_THEME,
MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME, MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME,
MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE, MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE,
MENU_ENUM_LABEL_XMB_HIDE_MAIN,
MENU_ENUM_LABEL_XMB_HIDE_SETTINGS,
MENU_ENUM_LABEL_XMB_HIDE_IMAGES,
MENU_ENUM_LABEL_XMB_HIDE_MUSIC,
MENU_ENUM_LABEL_XMB_HIDE_VIDEO,
MENU_ENUM_LABEL_XMB_HIDE_HISTORY,
MENU_ENUM_LABEL_XMB_HIDE_IMPORT,
MENU_ENUM_LABEL_XMB_RIBBON_ENABLE, MENU_ENUM_LABEL_XMB_RIBBON_ENABLE,
MENU_ENUM_LABEL_THUMBNAILS, MENU_ENUM_LABEL_THUMBNAILS,
MENU_ENUM_LABEL_TIMEDATE_ENABLE, MENU_ENUM_LABEL_TIMEDATE_ENABLE,
@ -584,6 +591,13 @@ enum msg_hash_enums
MENU_ENUM_LABEL_VALUE_XMB_THEME, MENU_ENUM_LABEL_VALUE_XMB_THEME,
MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME, MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME,
MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_MAIN,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_SETTINGS,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_IMAGES,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_MUSIC,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_VIDEO,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_HISTORY,
MENU_ENUM_LABEL_VALUE_XMB_HIDE_IMPORT,
MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE,
MENU_ENUM_LABEL_VALUE_THUMBNAILS, MENU_ENUM_LABEL_VALUE_THUMBNAILS,
MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE, MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,