diff --git a/config.def.h b/config.def.h index b4fe3224a5..0e1fe35ca3 100644 --- a/config.def.h +++ b/config.def.h @@ -526,6 +526,8 @@ static bool xmb_shadows_enable = true; static float menu_wallpaper_opacity = 0.300; +static float menu_footer_opacity = 1.000; + static unsigned menu_background_gradient = 4; #if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) || defined(HAVE_VULKAN) diff --git a/configuration.c b/configuration.c index 35d093a77e..7e2b155040 100644 --- a/configuration.c +++ b/configuration.c @@ -610,6 +610,7 @@ static void config_set_defaults(void) settings->menu.core_enable = true; settings->menu.dynamic_wallpaper_enable = false; settings->menu.wallpaper.opacity = menu_wallpaper_opacity; + settings->menu.footer.opacity = menu_footer_opacity; settings->menu.thumbnails = menu_thumbnails_default; settings->menu.show_advanced_settings = show_advanced_settings; settings->menu.entry_normal_color = menu_entry_normal_color; @@ -1330,6 +1331,7 @@ static bool config_load_file(const char *path, bool set_defaults) CONFIG_GET_BOOL_BASE(conf, settings, menu.dynamic_wallpaper_enable, "menu_dynamic_wallpaper_enable"); CONFIG_GET_FLOAT_BASE(conf, settings, menu.wallpaper.opacity, "menu_wallpaper_opacity"); + CONFIG_GET_FLOAT_BASE(conf, settings, menu.footer.opacity, "menu_footer_opacity"); CONFIG_GET_INT_BASE(conf, settings, menu.thumbnails, "menu_thumbnails"); CONFIG_GET_BOOL_BASE(conf, settings, menu.navigation.wraparound.enable, @@ -2711,6 +2713,8 @@ bool config_save_file(const char *path) settings->path.menu_wallpaper); config_set_float(conf, "menu_wallpaper_opacity", settings->menu.wallpaper.opacity); + config_set_float(conf, "menu_footer_opacity", + settings->menu.footer.opacity); #endif config_set_string(conf, "video_filter", settings->path.softfilter_plugin); diff --git a/configuration.h b/configuration.h index 602c1ca400..943773c2c6 100644 --- a/configuration.h +++ b/configuration.h @@ -126,6 +126,11 @@ typedef struct settings float opacity; } wallpaper; + struct + { + float opacity; + } footer; + struct { bool enable; diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index 639a6c9685..424cda98c9 100644 --- a/intl/msg_hash_us.c +++ b/intl/msg_hash_us.c @@ -1643,6 +1643,8 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg) return "xmb_menu_color_theme"; case MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME: return "materialui_menu_color_theme"; + case MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY: + return "materialui_menu_footer_opacity"; case MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE: return "xmb_shadows_enable"; case MENU_ENUM_LABEL_XMB_RIBBON_ENABLE: @@ -2121,6 +2123,8 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg) return "Ribbon (simplified)"; case MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON: return "Ribbon"; + case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY: + return "Footer Opacity"; case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE: return "Blue"; case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE_GREY: diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 8c89191b29..653a7bbf12 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -992,7 +992,7 @@ static void mui_frame(void *data) break; } - menu_display_set_alpha(footer_bg_color, 1.00); + menu_display_set_alpha(footer_bg_color, settings->menu.footer.opacity); video_driver_get_size(&width, &height); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 884fcfc917..a02a9fcc80 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4424,6 +4424,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME, PARSE_ONLY_UINT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY, + PARSE_ONLY_FLOAT, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_RGUI_SHOW_START_SCREEN, PARSE_ONLY_BOOL, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 6fa532a62f..f7d9ea3e25 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -6966,6 +6966,21 @@ static bool setting_append_list( general_read_handler); menu_settings_list_current_add_range(list, list_info, 0, 6, 1, true, true); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME); + + CONFIG_FLOAT( + list, list_info, + &settings->menu.footer.opacity, + msg_hash_to_str(MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY), + menu_footer_opacity, + "%.3f %", + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.010, true, true); + menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY); } CONFIG_BOOL( diff --git a/msg_hash.h b/msg_hash.h index d61cbea71c..a3ae0ce82d 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -304,6 +304,8 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED, MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON, + MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY, + MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY, MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE, MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE_GREY, MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_RED,