From 60d3b22bb6bdcd3394999b453c81f17b13490d80 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 11 Jul 2016 17:41:06 +0200 Subject: [PATCH] Create Menu Header Opacity setting --- config.def.h | 2 ++ configuration.c | 4 ++++ configuration.h | 5 +++++ intl/msg_hash_us.c | 4 ++++ menu/drivers/materialui.c | 23 +++++++++++++++++------ menu/menu_displaylist.c | 3 +++ menu/menu_setting.c | 15 +++++++++++++++ msg_hash.h | 2 ++ 8 files changed, 52 insertions(+), 6 deletions(-) diff --git a/config.def.h b/config.def.h index 0e1fe35ca3..7461bfbbff 100644 --- a/config.def.h +++ b/config.def.h @@ -528,6 +528,8 @@ static float menu_wallpaper_opacity = 0.300; static float menu_footer_opacity = 1.000; +static float menu_header_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 7e2b155040..4705e4e507 100644 --- a/configuration.c +++ b/configuration.c @@ -611,6 +611,7 @@ static void config_set_defaults(void) settings->menu.dynamic_wallpaper_enable = false; settings->menu.wallpaper.opacity = menu_wallpaper_opacity; settings->menu.footer.opacity = menu_footer_opacity; + settings->menu.header.opacity = menu_header_opacity; settings->menu.thumbnails = menu_thumbnails_default; settings->menu.show_advanced_settings = show_advanced_settings; settings->menu.entry_normal_color = menu_entry_normal_color; @@ -1332,6 +1333,7 @@ static bool config_load_file(const char *path, bool set_defaults) "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_FLOAT_BASE(conf, settings, menu.header.opacity, "menu_header_opacity"); CONFIG_GET_INT_BASE(conf, settings, menu.thumbnails, "menu_thumbnails"); CONFIG_GET_BOOL_BASE(conf, settings, menu.navigation.wraparound.enable, @@ -2715,6 +2717,8 @@ bool config_save_file(const char *path) settings->menu.wallpaper.opacity); config_set_float(conf, "menu_footer_opacity", settings->menu.footer.opacity); + config_set_float(conf, "menu_header_opacity", + settings->menu.header.opacity); #endif config_set_string(conf, "video_filter", settings->path.softfilter_plugin); diff --git a/configuration.h b/configuration.h index 943773c2c6..138c5e3f4a 100644 --- a/configuration.h +++ b/configuration.h @@ -131,6 +131,11 @@ typedef struct settings float opacity; } footer; + struct + { + float opacity; + } header; + struct { bool enable; diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index 424cda98c9..42f31da853 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_HEADER_OPACITY: + return "materialui_menu_header_opacity"; case MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY: return "materialui_menu_footer_opacity"; case MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE: @@ -2125,6 +2127,8 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg) return "Ribbon"; case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY: return "Footer Opacity"; + case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_HEADER_OPACITY: + return "Header 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 836b781ea7..d51ee637e7 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -780,6 +780,7 @@ static void mui_frame(void *data) 0.00, 0.00, 0.00, 0.2, 0.00, 0.00, 0.00, 0.2, }; + /* TODO/FIXME - convert this over to new hex format */ float greyish_blue[16] = { 0.22, 0.28, 0.31, 1.00, 0.22, 0.28, 0.31, 1.00, @@ -818,6 +819,7 @@ static void mui_frame(void *data) float color_nv_body[16] = {0}; float color_nv_accent[16] = {0}; float footer_bg_color_real[16] = {0}; + float header_bg_color_real[16] = {0}; unsigned width = 0; unsigned height = 0; unsigned ticker_limit = 0; @@ -853,10 +855,11 @@ static void mui_frame(void *data) { case MATERIALUI_THEME_BLUE: hex32_to_rgba_normalized(0x2196F3, blue_500, 1.00); + hex32_to_rgba_normalized(0x2196F3, header_bg_color_real, 1.00); hex32_to_rgba_normalized(0xE3F2FD, blue_50, 0.90); hex32_to_rgba_normalized(0xFFFFFF, footer_bg_color_real, 1.00); - header_bg_color = blue_500; + header_bg_color = header_bg_color_real; highlighted_entry_color = blue_50; footer_bg_color = footer_bg_color_real; body_bg_color = white_transp_bg; @@ -873,10 +876,11 @@ static void mui_frame(void *data) break; case MATERIALUI_THEME_BLUE_GREY: hex32_to_rgba_normalized(0x607D8B, blue_grey_500, 1.00); + hex32_to_rgba_normalized(0x607D8B, header_bg_color_real, 1.00); hex32_to_rgba_normalized(0xCFD8DC, blue_grey_50, 0.90); hex32_to_rgba_normalized(0xFFFFFF, footer_bg_color_real, 1.00); - header_bg_color = blue_grey_500; + header_bg_color = header_bg_color_real; body_bg_color = white_transp_bg; highlighted_entry_color = blue_grey_50; footer_bg_color = footer_bg_color_real; @@ -893,10 +897,11 @@ static void mui_frame(void *data) break; case MATERIALUI_THEME_GREEN: hex32_to_rgba_normalized(0x4CAF50, green_500, 1.00); + hex32_to_rgba_normalized(0x4CAF50, header_bg_color_real, 1.00); hex32_to_rgba_normalized(0xC8E6C9, green_50, 0.90); hex32_to_rgba_normalized(0xFFFFFF, footer_bg_color_real, 1.00); - header_bg_color = green_500; + header_bg_color = header_bg_color_real; body_bg_color = white_transp_bg; highlighted_entry_color = green_50; footer_bg_color = footer_bg_color_real; @@ -913,10 +918,11 @@ static void mui_frame(void *data) break; case MATERIALUI_THEME_RED: hex32_to_rgba_normalized(0xF44336, red_500, 1.00); + hex32_to_rgba_normalized(0xF44336, header_bg_color_real, 1.00); hex32_to_rgba_normalized(0xFFEBEE, red_50, 0.90); hex32_to_rgba_normalized(0xFFFFFF, footer_bg_color_real, 1.00); - header_bg_color = red_500; + header_bg_color = header_bg_color_real; body_bg_color = white_transp_bg; highlighted_entry_color = red_50; footer_bg_color = footer_bg_color_real; @@ -934,10 +940,12 @@ static void mui_frame(void *data) break; case MATERIALUI_THEME_YELLOW: hex32_to_rgba_normalized(0xFFEB3B, yellow_500, 1.00); + hex32_to_rgba_normalized(0xFFEB3B, header_bg_color_real, 1.00); hex32_to_rgba_normalized(0xFFF9C4, yellow_200, 0.90); hex32_to_rgba_normalized(0xFFFFFF, footer_bg_color_real, 1.00); header_bg_color = yellow_500; + header_bg_color = header_bg_color_real; body_bg_color = white_transp_bg; highlighted_entry_color = yellow_200; footer_bg_color = footer_bg_color_real; @@ -954,7 +962,8 @@ static void mui_frame(void *data) break; case MATERIALUI_THEME_DARK_BLUE: hex32_to_rgba_normalized(0x212121, footer_bg_color_real, 1.00); - header_bg_color = greyish_blue; + memcpy(header_bg_color_real, greyish_blue, sizeof(header_bg_color_real)); + header_bg_color = header_bg_color_real; body_bg_color = almost_black; highlighted_entry_color = grey_bg; footer_bg_color = footer_bg_color_real; @@ -971,11 +980,12 @@ static void mui_frame(void *data) break; case MATERIALUI_THEME_NVIDIA_SHIELD: hex32_to_rgba_normalized(0x282F37, color_nv_header,1.00); + hex32_to_rgba_normalized(0x282F37, header_bg_color_real,1.00); hex32_to_rgba_normalized(0x202427, color_nv_body, 0.90); hex32_to_rgba_normalized(0x77B900, color_nv_accent,0.90); hex32_to_rgba_normalized(0x202427, footer_bg_color_real, 1.00); - header_bg_color = color_nv_header; + header_bg_color = header_bg_color_real; body_bg_color = color_nv_body; highlighted_entry_color = color_nv_accent; footer_bg_color = footer_bg_color_real; @@ -992,6 +1002,7 @@ static void mui_frame(void *data) break; } + menu_display_set_alpha(header_bg_color_real, settings->menu.header.opacity); menu_display_set_alpha(footer_bg_color_real, settings->menu.footer.opacity); video_driver_get_size(&width, &height); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index a02a9fcc80..dbae7c6ffd 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_HEADER_OPACITY, + PARSE_ONLY_FLOAT, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY, PARSE_ONLY_FLOAT, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index f7d9ea3e25..7d4221227c 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -6967,6 +6967,21 @@ static bool setting_append_list( 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.header.opacity, + msg_hash_to_str(MENU_ENUM_LABEL_MATERIALUI_MENU_HEADER_OPACITY), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_HEADER_OPACITY), + menu_header_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_HEADER_OPACITY); + CONFIG_FLOAT( list, list_info, &settings->menu.footer.opacity, diff --git a/msg_hash.h b/msg_hash.h index a3ae0ce82d..1f15571cbc 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_HEADER_OPACITY, + MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_HEADER_OPACITY, MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY, MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY, MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE,