Add MaterialUI menu color theme setting

This commit is contained in:
twinaphex 2016-07-09 13:17:29 +02:00
parent e0504bfc62
commit 180c0c87c1
8 changed files with 87 additions and 17 deletions

View File

@ -474,6 +474,7 @@ static void config_set_defaults(void)
settings->menu.xmb.shader_pipeline = menu_shader_pipeline;
settings->menu.xmb.font[0] = '\0';
#endif
settings->menu.materialui.menu_color_theme = 0;
settings->menu.throttle_framerate = true;
settings->menu.linear_filter = true;
@ -1532,6 +1533,7 @@ static bool config_load_file(const char *path, bool set_defaults)
#ifdef HAVE_XMB
CONFIG_GET_INT_BASE(conf, settings, menu.xmb.menu_color_theme, "xmb_menu_color_theme");
#endif
CONFIG_GET_INT_BASE(conf, settings, menu.materialui.menu_color_theme, "materialui_menu_color_theme");
CONFIG_GET_BOOL_BASE(conf, settings, menu.xmb.shadows_enable, "xmb_shadows_enable");
CONFIG_GET_INT_BASE(conf, settings, menu.xmb.shader_pipeline, "menu_shader_pipeline");
if (config_get_path(conf, "xmb_font", tmp_str, sizeof(tmp_str)))
@ -2946,6 +2948,7 @@ bool config_save_file(const char *path)
#ifdef HAVE_XMB
config_set_int(conf, "xmb_menu_color_theme", settings->menu.xmb.menu_color_theme);
#endif
config_set_int(conf, "materialui_menu_color_theme", settings->menu.materialui.menu_color_theme);
config_set_bool(conf, "xmb_shadows_enable", settings->menu.xmb.shadows_enable);
config_set_int(conf, "menu_shader_pipeline", settings->menu.xmb.shader_pipeline);
config_set_path(conf, "xmb_font",

View File

@ -1070,7 +1070,9 @@ const char *msg_hash_to_str_fr(enum msg_hash_enums msg)
return "XMB : Police";
case MENU_ENUM_LABEL_VALUE_XMB_THEME:
return "XMB : Theme";
case MENU_ENUM_LABEL_VALUE_XMB_GRADIENT:
case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME:
return "Dégradé de font d'écran";
case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME:
return "Dégradé de font d'écran";
case MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE:
return "Ombres pour les icones";

View File

@ -1626,8 +1626,10 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
return "xmb_font";
case MENU_ENUM_LABEL_XMB_THEME:
return "xmb_theme";
case MENU_ENUM_LABEL_XMB_GRADIENT:
case MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME:
return "xmb_menu_color_theme";
case MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME:
return "materialui_menu_color_theme";
case MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE:
return "xmb_shadows_enable";
case MENU_ENUM_LABEL_XMB_RIBBON_ENABLE:
@ -2832,7 +2834,9 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg)
return "XMB Font";
case MENU_ENUM_LABEL_VALUE_XMB_THEME:
return "XMB Theme";
case MENU_ENUM_LABEL_VALUE_XMB_GRADIENT:
case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME:
return "Menu Color Theme";
case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME:
return "Menu Color Theme";
case MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE:
return "Icon Shadows Enable";

View File

@ -682,7 +682,7 @@ static void menu_action_setting_disp_set_label_xmb_theme(
}
}
static void menu_action_setting_disp_set_label_xmb_gradient(
static void menu_action_setting_disp_set_label_xmb_menu_color_theme(
file_list_t* list,
unsigned *w, unsigned type, unsigned i,
const char *label,
@ -731,6 +731,36 @@ static void menu_action_setting_disp_set_label_xmb_gradient(
}
}
static void menu_action_setting_disp_set_label_materialui_menu_color_theme(
file_list_t* list,
unsigned *w, unsigned type, unsigned i,
const char *label,
char *s, size_t len,
const char *entry_label,
const char *path,
char *s2, size_t len2)
{
settings_t *settings = config_get_ptr();
strlcpy(s2, path, len2);
*w = 19;
if (!settings)
return;
switch (settings->menu.materialui.menu_color_theme)
{
case 0:
strlcpy(s, "White", len);
break;
case 1:
strlcpy(s, "Dark", len);
break;
default:
break;
}
}
static void menu_action_setting_disp_set_label_thumbnails(
file_list_t* list,
unsigned *w, unsigned type, unsigned i,
@ -1413,9 +1443,13 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
BIND_ACTION_GET_VALUE(cbs,
menu_action_setting_disp_set_label_xmb_theme);
break;
case MENU_ENUM_LABEL_XMB_GRADIENT:
case MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME:
BIND_ACTION_GET_VALUE(cbs,
menu_action_setting_disp_set_label_xmb_gradient);
menu_action_setting_disp_set_label_xmb_menu_color_theme);
break;
case MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME:
BIND_ACTION_GET_VALUE(cbs,
menu_action_setting_disp_set_label_materialui_menu_color_theme);
break;
case MENU_ENUM_LABEL_THUMBNAILS:
BIND_ACTION_GET_VALUE(cbs,
@ -1517,7 +1551,7 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
break;
case MENU_LABEL_XMB_GRADIENT:
BIND_ACTION_GET_VALUE(cbs,
menu_action_setting_disp_set_label_xmb_gradient);
menu_action_setting_disp_set_label_xmb_menu_color_theme);
break;
case MENU_LABEL_THUMBNAILS:
BIND_ACTION_GET_VALUE(cbs,

View File

@ -780,10 +780,10 @@ static void mui_frame(void *data)
0.22, 0.28, 0.31, 1,
};
float almost_black[16] = {
0.13, 0.13, 0.13, 1,
0.13, 0.13, 0.13, 1,
0.13, 0.13, 0.13, 1,
0.13, 0.13, 0.13, 1,
0.13, 0.13, 0.13, 0.90,
0.13, 0.13, 0.13, 0.90,
0.13, 0.13, 0.13, 0.90,
0.13, 0.13, 0.13, 0.90,
};
/* This controls the main background color */
@ -811,6 +811,7 @@ static void mui_frame(void *data)
float *highlighted_entry_color = lightblue_bg;
float *footer_bg_color = white_bg;
float *body_bg_color = white_transp_bg;
settings_t *settings = config_get_ptr();
uint32_t font_normal_color = 0x212121ff;
uint32_t font_hover_color = 0x212121ff;
@ -822,6 +823,8 @@ static void mui_frame(void *data)
if (!mui)
return;
DARK_THEME = settings->menu.materialui.menu_color_theme;
clearcolor.r = 1.0f;
clearcolor.g = 1.0f;
clearcolor.b = 1.0f;

View File

@ -4433,7 +4433,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
MENU_ENUM_LABEL_XMB_RIBBON_ENABLE,
PARSE_ONLY_UINT, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_XMB_GRADIENT,
MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME,
PARSE_ONLY_UINT, false);
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_RGUI_SHOW_START_SCREEN,

View File

@ -6923,8 +6923,8 @@ static bool setting_append_list(
CONFIG_UINT(
list, list_info,
&settings->menu.xmb.menu_color_theme,
msg_hash_to_str(MENU_ENUM_LABEL_XMB_GRADIENT),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_GRADIENT),
msg_hash_to_str(MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME),
menu_background_gradient,
&group_info,
&subgroup_info,
@ -6932,7 +6932,25 @@ static bool setting_append_list(
general_write_handler,
general_read_handler);
menu_settings_list_current_add_range(list, list_info, 0, 8, 1, true, true);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_GRADIENT);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME);
}
/* only MaterialUI uses these values, don't show them on other drivers */
if (string_is_equal(settings->menu.driver, "glui"))
{
CONFIG_UINT(
list, list_info,
&settings->menu.materialui.menu_color_theme,
msg_hash_to_str(MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME),
menu_background_gradient,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
menu_settings_list_current_add_range(list, list_info, 0, 1, 1, true, true);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME);
}
CONFIG_BOOL(

View File

@ -496,11 +496,12 @@ enum msg_hash_enums
MENU_ENUM_LABEL_XMB_ALPHA_FACTOR,
MENU_ENUM_LABEL_XMB_FONT,
MENU_ENUM_LABEL_XMB_THEME,
MENU_ENUM_LABEL_XMB_GRADIENT,
MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME,
MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE,
MENU_ENUM_LABEL_XMB_RIBBON_ENABLE,
MENU_ENUM_LABEL_THUMBNAILS,
MENU_ENUM_LABEL_TIMEDATE_ENABLE,
MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME,
MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER,
MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPER,
@ -517,12 +518,14 @@ enum msg_hash_enums
MENU_ENUM_LABEL_VALUE_XMB_ALPHA_FACTOR,
MENU_ENUM_LABEL_VALUE_XMB_FONT,
MENU_ENUM_LABEL_VALUE_XMB_THEME,
MENU_ENUM_LABEL_VALUE_XMB_GRADIENT,
MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME,
MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE,
MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE,
MENU_ENUM_LABEL_VALUE_THUMBNAILS,
MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME,
/* UI settings */
MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION,
MENU_ENUM_LABEL_UI_COMPANION_ENABLE,