mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 12:40:23 +00:00
(XMB) Add options for hiding header and horizontal title margin (#14439)
This commit is contained in:
parent
614e502b41
commit
e902df3b0d
@ -764,9 +764,12 @@ static const bool content_show_playlists = true;
|
||||
#define DEFAULT_MENU_CONTENT_SHOW_CONTENTLESS_CORES MENU_CONTENTLESS_CORES_DISPLAY_SINGLE_PURPOSE
|
||||
|
||||
#ifdef HAVE_XMB
|
||||
#define DEFAULT_XMB_ANIMATION 0
|
||||
#define DEFAULT_XMB_VERTICAL_FADE_FACTOR 100
|
||||
#define DEFAULT_XMB_TITLE_MARGIN 5
|
||||
#define DEFAULT_XMB_ANIMATION 0
|
||||
#define DEFAULT_XMB_VERTICAL_FADE_FACTOR 100
|
||||
#define DEFAULT_XMB_SHOW_TITLE_HEADER true
|
||||
#define DEFAULT_XMB_TITLE_MARGIN 5
|
||||
#define DEFAULT_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET 0
|
||||
#define MAXIMUM_XMB_TITLE_MARGIN 12
|
||||
|
||||
static const unsigned xmb_alpha_factor = 75;
|
||||
static const unsigned menu_font_color_red = 255;
|
||||
|
@ -1914,6 +1914,7 @@ static struct config_bool_setting *populate_settings_bool(
|
||||
#ifdef HAVE_XMB
|
||||
SETTING_BOOL("xmb_shadows_enable", &settings->bools.menu_xmb_shadows_enable, true, DEFAULT_XMB_SHADOWS_ENABLE, false);
|
||||
SETTING_BOOL("xmb_vertical_thumbnails", &settings->bools.menu_xmb_vertical_thumbnails, true, xmb_vertical_thumbnails, false);
|
||||
SETTING_BOOL("menu_xmb_show_title_header", &settings->bools.menu_xmb_show_title_header, true, DEFAULT_XMB_SHOW_TITLE_HEADER, false);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HAVE_CHEEVOS
|
||||
@ -2238,7 +2239,6 @@ static struct config_uint_setting *populate_settings_uint(
|
||||
SETTING_UINT("menu_font_color_blue", &settings->uints.menu_font_color_blue, true, menu_font_color_blue, false);
|
||||
SETTING_UINT("menu_xmb_thumbnail_scale_factor", &settings->uints.menu_xmb_thumbnail_scale_factor, true, xmb_thumbnail_scale_factor, false);
|
||||
SETTING_UINT("menu_xmb_vertical_fade_factor",&settings->uints.menu_xmb_vertical_fade_factor, true, DEFAULT_XMB_VERTICAL_FADE_FACTOR, false);
|
||||
SETTING_UINT("menu_xmb_title_margin", &settings->uints.menu_xmb_title_margin, true, DEFAULT_XMB_TITLE_MARGIN, false);
|
||||
#endif
|
||||
SETTING_UINT("materialui_menu_color_theme", &settings->uints.menu_materialui_color_theme, true, DEFAULT_MATERIALUI_THEME, false);
|
||||
SETTING_UINT("materialui_menu_transition_animation", &settings->uints.menu_materialui_transition_animation, true, DEFAULT_MATERIALUI_TRANSITION_ANIM, false);
|
||||
@ -2425,6 +2425,10 @@ static struct config_int_setting *populate_settings_int(
|
||||
SETTING_INT("bottom_font_color_green", &settings->ints.bottom_font_color_green, true, DEFAULT_BOTTOM_FONT_COLOR, false);
|
||||
SETTING_INT("bottom_font_color_blue", &settings->ints.bottom_font_color_blue, true, DEFAULT_BOTTOM_FONT_COLOR, false);
|
||||
SETTING_INT("bottom_font_color_opacity", &settings->ints.bottom_font_color_opacity, true, DEFAULT_BOTTOM_FONT_COLOR, false);
|
||||
#endif
|
||||
#ifdef HAVE_XMB
|
||||
SETTING_INT("menu_xmb_title_margin", &settings->ints.menu_xmb_title_margin, true, DEFAULT_XMB_TITLE_MARGIN, false);
|
||||
SETTING_INT("menu_xmb_title_margin_horizontal_offset", &settings->ints.menu_xmb_title_margin_horizontal_offset, true, DEFAULT_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET, false);
|
||||
#endif
|
||||
*size = count;
|
||||
|
||||
|
@ -129,6 +129,10 @@ typedef struct settings
|
||||
int bottom_font_color_green;
|
||||
int bottom_font_color_blue;
|
||||
int bottom_font_color_opacity;
|
||||
#endif
|
||||
#ifdef HAVE_XMB
|
||||
int menu_xmb_title_margin;
|
||||
int menu_xmb_title_margin_horizontal_offset;
|
||||
#endif
|
||||
} ints;
|
||||
|
||||
@ -266,7 +270,6 @@ typedef struct settings
|
||||
unsigned menu_xmb_color_theme;
|
||||
unsigned menu_xmb_thumbnail_scale_factor;
|
||||
unsigned menu_xmb_vertical_fade_factor;
|
||||
unsigned menu_xmb_title_margin;
|
||||
unsigned menu_materialui_color_theme;
|
||||
unsigned menu_materialui_transition_animation;
|
||||
unsigned menu_materialui_thumbnail_view_portrait;
|
||||
@ -704,6 +707,7 @@ typedef struct settings
|
||||
bool menu_rgui_particle_effect_screensaver;
|
||||
bool menu_xmb_shadows_enable;
|
||||
bool menu_xmb_vertical_thumbnails;
|
||||
bool menu_xmb_show_title_header;
|
||||
bool menu_content_show_settings;
|
||||
bool menu_content_show_favorites;
|
||||
bool menu_content_show_images;
|
||||
|
@ -3300,10 +3300,18 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_MENU_XMB_VERTICAL_FADE_FACTOR,
|
||||
"menu_xmb_vertical_fade_factor"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_MENU_XMB_SHOW_TITLE_HEADER,
|
||||
"menu_xmb_show_title_header"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN,
|
||||
"menu_xmb_title_margin"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET,
|
||||
"menu_xmb_title_margin_horizontal_offset"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_MENU_THUMBNAIL_UPSCALE_THRESHOLD,
|
||||
"menu_thumbnail_upscale_threshold"
|
||||
|
@ -9837,10 +9837,18 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_VERTICAL_FADE_FACTOR,
|
||||
"Vertical Fade Factor"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_SHOW_TITLE_HEADER,
|
||||
"Show Title Header"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_TITLE_MARGIN,
|
||||
"Title Margin"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET,
|
||||
"Title Margin Horizontal Offset"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MAIN_MENU_ENABLE_SETTINGS,
|
||||
"Enable Settings Tab (Restart Required)"
|
||||
|
@ -370,7 +370,9 @@ typedef struct xmb_handle
|
||||
float margins_title_top;
|
||||
float margins_title_bottom;
|
||||
float margins_title;
|
||||
float margins_title_horizontal_offset;
|
||||
float last_margins_title;
|
||||
float last_margins_title_horizontal_offset;
|
||||
float margins_label_left;
|
||||
float margins_label_top;
|
||||
float icon_spacing_horizontal;
|
||||
@ -4380,16 +4382,17 @@ static void xmb_render(void *data,
|
||||
settings->floats.menu_scale_factor,
|
||||
xmb->use_ps3_layout, width);
|
||||
|
||||
if ((xmb->use_ps3_layout != xmb->last_use_ps3_layout) ||
|
||||
(xmb->margins_title != xmb->last_margins_title) ||
|
||||
(scale_factor != xmb->last_scale_factor))
|
||||
if ((xmb->use_ps3_layout != xmb->last_use_ps3_layout) ||
|
||||
(xmb->margins_title != xmb->last_margins_title) ||
|
||||
(xmb->margins_title_horizontal_offset != xmb->last_margins_title_horizontal_offset) ||
|
||||
(scale_factor != xmb->last_scale_factor))
|
||||
{
|
||||
xmb->last_use_ps3_layout = xmb->use_ps3_layout;
|
||||
xmb->last_margins_title = xmb->margins_title;
|
||||
xmb->last_scale_factor = scale_factor;
|
||||
xmb->last_use_ps3_layout = xmb->use_ps3_layout;
|
||||
xmb->last_margins_title = xmb->margins_title;
|
||||
xmb->last_margins_title_horizontal_offset = xmb->margins_title_horizontal_offset;
|
||||
xmb->last_scale_factor = scale_factor;
|
||||
|
||||
xmb_context_reset_internal(xmb, video_driver_is_threaded(),
|
||||
false);
|
||||
xmb_context_reset_internal(xmb, video_driver_is_threaded(), false);
|
||||
}
|
||||
|
||||
/* This must be set every frame when using a pointer,
|
||||
@ -5268,6 +5271,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||
float fade_tab_icons_x_threshold = 0.0f;
|
||||
bool menu_core_enable = settings->bools.menu_core_enable;
|
||||
float thumbnail_scale_factor = (float)settings->uints.menu_xmb_thumbnail_scale_factor / 100.0f;
|
||||
bool menu_xmb_show_title_header = settings->bools.menu_xmb_show_title_header;
|
||||
bool menu_xmb_vertical_thumbnails = settings->bools.menu_xmb_vertical_thumbnails;
|
||||
unsigned menu_xmb_vertical_fade_factor = settings->uints.menu_xmb_vertical_fade_factor;
|
||||
void *userdata = video_info->userdata;
|
||||
@ -5317,7 +5321,8 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||
thumbnail_margin_height_full = (float)video_height - xmb->margins_title_top - ((xmb->icon_size / 4.0f) * 2.0f);
|
||||
left_thumbnail_margin_x = xmb->icon_size / 6.0f;
|
||||
right_thumbnail_margin_x = (float)video_width - (xmb->icon_size / 6.0f) - right_thumbnail_margin_width;
|
||||
xmb->margins_title = (float)settings->uints.menu_xmb_title_margin * 10.0f;
|
||||
xmb->margins_title = (float)settings->ints.menu_xmb_title_margin * 10.0f;
|
||||
xmb->margins_title_horizontal_offset = (float)settings->ints.menu_xmb_title_margin_horizontal_offset * 10.0f;
|
||||
|
||||
/* Configure shadow effect */
|
||||
if (xmb_shadows_enable)
|
||||
@ -5386,11 +5391,12 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||
}
|
||||
|
||||
/* Title text */
|
||||
xmb_draw_text(xmb_shadows_enable, xmb, settings,
|
||||
title_truncated, xmb->margins_title_left,
|
||||
xmb->margins_title_top,
|
||||
1, 1, TEXT_ALIGN_LEFT,
|
||||
video_width, video_height, xmb->font);
|
||||
if (menu_xmb_show_title_header)
|
||||
xmb_draw_text(xmb_shadows_enable, xmb, settings,
|
||||
title_truncated, xmb->margins_title_left,
|
||||
xmb->margins_title_top,
|
||||
1, 1, TEXT_ALIGN_LEFT,
|
||||
video_width, video_height, xmb->font);
|
||||
|
||||
if (menu_core_enable)
|
||||
{
|
||||
@ -6003,6 +6009,7 @@ static void xmb_layout_ps3(xmb_handle_t *xmb, int width)
|
||||
{
|
||||
float scale_factor = xmb->last_scale_factor;
|
||||
float margins_title = xmb->margins_title;
|
||||
float margins_title_h_offset = xmb->margins_title_horizontal_offset;
|
||||
unsigned new_font_size = 32.0 * scale_factor;
|
||||
|
||||
xmb->above_subitem_offset = 1.5;
|
||||
@ -6021,32 +6028,33 @@ static void xmb_layout_ps3(xmb_handle_t *xmb, int width)
|
||||
xmb->items_passive_alpha = 0.85;
|
||||
|
||||
xmb->shadow_offset = 2.0;
|
||||
xmb->font_size = new_font_size;
|
||||
xmb->font2_size = 24.0 * scale_factor;
|
||||
xmb->cursor_size = 64.0 * scale_factor;
|
||||
xmb->icon_size = 128.0 * scale_factor;
|
||||
xmb->icon_spacing_horizontal = 200.0 * scale_factor;
|
||||
xmb->icon_spacing_vertical = 64.0 * scale_factor;
|
||||
|
||||
xmb->margins_screen_top = (256+32) * scale_factor;
|
||||
xmb->margins_screen_left = 336.0 * scale_factor;
|
||||
xmb->margins_title_left = (margins_title * scale_factor)
|
||||
+ (4 * scale_factor);
|
||||
xmb->margins_title_top = (margins_title * scale_factor)
|
||||
+ (new_font_size - (new_font_size / 6) * scale_factor);
|
||||
xmb->margins_title_bottom = (margins_title * scale_factor)
|
||||
+ (4 * scale_factor);
|
||||
|
||||
xmb->margins_title_left = (margins_title * scale_factor) + (4 * scale_factor) + (margins_title_h_offset * scale_factor);
|
||||
xmb->margins_title_top = (margins_title * scale_factor) + (new_font_size - (new_font_size / 6) * scale_factor);
|
||||
xmb->margins_title_bottom = (margins_title * scale_factor) + (4 * scale_factor);
|
||||
|
||||
xmb->margins_label_left = 85.0 * scale_factor;
|
||||
xmb->margins_label_top = new_font_size / 3.0;
|
||||
xmb->margins_setting_left = 600.0 * scale_factor
|
||||
* xmb_scale_mod[6];
|
||||
|
||||
xmb->margins_setting_left = 600.0 * scale_factor * xmb_scale_mod[6];
|
||||
xmb->margins_dialog = 48 * scale_factor;
|
||||
xmb->margins_slice = 16 * scale_factor;
|
||||
xmb->icon_size = 128.0 * scale_factor;
|
||||
xmb->font_size = new_font_size;
|
||||
}
|
||||
|
||||
static void xmb_layout_psp(xmb_handle_t *xmb, int width)
|
||||
{
|
||||
float scale_factor = xmb->last_scale_factor;
|
||||
float margins_title = xmb->margins_title;
|
||||
float margins_title_h_offset = xmb->margins_title_horizontal_offset;
|
||||
unsigned new_font_size = 32.0 * scale_factor;
|
||||
|
||||
xmb->above_subitem_offset = 1.5;
|
||||
@ -6065,18 +6073,17 @@ static void xmb_layout_psp(xmb_handle_t *xmb, int width)
|
||||
xmb->items_passive_alpha = 0.85;
|
||||
|
||||
xmb->shadow_offset = 1.0;
|
||||
|
||||
xmb->font_size = new_font_size;
|
||||
xmb->font2_size = 24.0 * scale_factor;
|
||||
|
||||
xmb->cursor_size = 64.0;
|
||||
|
||||
xmb->icon_size = 128.0 * scale_factor;
|
||||
xmb->icon_spacing_horizontal = 250.0 * scale_factor;
|
||||
xmb->icon_spacing_vertical = 108.0 * scale_factor;
|
||||
|
||||
xmb->margins_screen_top = (256+32) * scale_factor;
|
||||
xmb->margins_screen_left = 136.0 * scale_factor;
|
||||
|
||||
xmb->margins_title_left = (margins_title * scale_factor) + (4 * scale_factor);
|
||||
xmb->margins_title_left = (margins_title * scale_factor) + (4 * scale_factor) + (margins_title_h_offset * scale_factor);
|
||||
xmb->margins_title_top = (margins_title * scale_factor) + (new_font_size - (new_font_size / 6) * scale_factor);
|
||||
xmb->margins_title_bottom = (margins_title * scale_factor) + (4 * scale_factor);
|
||||
|
||||
@ -6085,11 +6092,7 @@ static void xmb_layout_psp(xmb_handle_t *xmb, int width)
|
||||
|
||||
xmb->margins_setting_left = 600.0 * scale_factor;
|
||||
xmb->margins_dialog = 48 * scale_factor;
|
||||
|
||||
xmb->margins_slice = 16 * scale_factor;
|
||||
|
||||
xmb->icon_size = 128.0 * scale_factor;
|
||||
xmb->font_size = new_font_size;
|
||||
}
|
||||
|
||||
static void xmb_layout(xmb_handle_t *xmb)
|
||||
|
@ -10230,8 +10230,10 @@ unsigned menu_displaylist_build_list(
|
||||
{MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT, PARSE_ONLY_UINT, true},
|
||||
{MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT_SPEED, PARSE_ONLY_FLOAT, false},
|
||||
{MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT_SCREENSAVER, PARSE_ONLY_BOOL, false},
|
||||
{MENU_ENUM_LABEL_MENU_XMB_SHOW_TITLE_HEADER, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN, PARSE_ONLY_INT, true},
|
||||
{MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET, PARSE_ONLY_INT, true},
|
||||
{MENU_ENUM_LABEL_MENU_XMB_VERTICAL_FADE_FACTOR, PARSE_ONLY_UINT, true},
|
||||
{MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN, PARSE_ONLY_UINT, true},
|
||||
{MENU_ENUM_LABEL_XMB_ALPHA_FACTOR, PARSE_ONLY_UINT, true},
|
||||
{MENU_ENUM_LABEL_XMB_FONT, PARSE_ONLY_PATH, true},
|
||||
{MENU_ENUM_LABEL_MENU_FONT_COLOR_RED, PARSE_ONLY_UINT, true},
|
||||
|
@ -16522,9 +16522,24 @@ static bool setting_append_list(
|
||||
menu_settings_list_current_add_range(list, list_info, 0, 500, 1, true, true);
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
|
||||
CONFIG_UINT(
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->uints.menu_xmb_title_margin,
|
||||
&settings->bools.menu_xmb_show_title_header,
|
||||
MENU_ENUM_LABEL_MENU_XMB_SHOW_TITLE_HEADER,
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_SHOW_TITLE_HEADER,
|
||||
DEFAULT_XMB_SHOW_TITLE_HEADER,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_INT(
|
||||
list, list_info,
|
||||
&settings->ints.menu_xmb_title_margin,
|
||||
MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN,
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_TITLE_MARGIN,
|
||||
DEFAULT_XMB_TITLE_MARGIN,
|
||||
@ -16534,7 +16549,23 @@ static bool setting_append_list(
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||
menu_settings_list_current_add_range(list, list_info, 0, 12, 1, true, true);
|
||||
(*list)[list_info->index - 1].offset_by = -MAXIMUM_XMB_TITLE_MARGIN;
|
||||
menu_settings_list_current_add_range(list, list_info, -MAXIMUM_XMB_TITLE_MARGIN, MAXIMUM_XMB_TITLE_MARGIN, 1, true, true);
|
||||
|
||||
CONFIG_INT(
|
||||
list, list_info,
|
||||
&settings->ints.menu_xmb_title_margin_horizontal_offset,
|
||||
MENU_ENUM_LABEL_MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET,
|
||||
MENU_ENUM_LABEL_VALUE_MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET,
|
||||
DEFAULT_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET,
|
||||
&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 = -MAXIMUM_XMB_TITLE_MARGIN;
|
||||
menu_settings_list_current_add_range(list, list_info, -MAXIMUM_XMB_TITLE_MARGIN, MAXIMUM_XMB_TITLE_MARGIN, 1, true, true);
|
||||
|
||||
CONFIG_PATH(
|
||||
list, list_info,
|
||||
|
@ -1291,7 +1291,9 @@ enum msg_hash_enums
|
||||
MENU_LABEL(XMB_VERTICAL_THUMBNAILS),
|
||||
MENU_LABEL(MENU_XMB_THUMBNAIL_SCALE_FACTOR),
|
||||
MENU_LABEL(MENU_XMB_VERTICAL_FADE_FACTOR),
|
||||
MENU_LABEL(MENU_XMB_SHOW_TITLE_HEADER),
|
||||
MENU_LABEL(MENU_XMB_TITLE_MARGIN),
|
||||
MENU_LABEL(MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET),
|
||||
MENU_LABEL(MENU_THUMBNAIL_UPSCALE_THRESHOLD),
|
||||
MENU_LABEL(MENU_RGUI_INLINE_THUMBNAILS),
|
||||
MENU_LABEL(MENU_RGUI_SWAP_THUMBNAILS),
|
||||
|
Loading…
x
Reference in New Issue
Block a user