mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
commit
cf0dd7f5e8
@ -511,6 +511,7 @@ static bool default_block_config_read = true;
|
||||
|
||||
static unsigned xmb_scale_factor = 100;
|
||||
static unsigned xmb_alpha_factor = 75;
|
||||
static unsigned xmb_theme = 0;
|
||||
|
||||
static bool show_advanced_settings = true;
|
||||
static const uint32_t menu_entry_normal_color = 0xffffffff;
|
||||
|
@ -480,6 +480,7 @@ static void config_set_defaults(void)
|
||||
def_menu, sizeof(settings->menu.driver));
|
||||
settings->menu.xmb_scale_factor = xmb_scale_factor;
|
||||
settings->menu.xmb_alpha_factor = xmb_alpha_factor;
|
||||
settings->menu.xmb_theme = xmb_theme;
|
||||
settings->menu.xmb_font[0] = '\0';
|
||||
settings->menu.throttle_framerate = true;
|
||||
settings->menu.linear_filter = true;
|
||||
@ -1530,6 +1531,7 @@ static bool config_load_file(const char *path, bool set_defaults)
|
||||
config_get_array(conf, "menu_driver", settings->menu.driver, sizeof(settings->menu.driver));
|
||||
CONFIG_GET_INT_BASE(conf, settings, menu.xmb_scale_factor, "xmb_scale_factor");
|
||||
CONFIG_GET_INT_BASE(conf, settings, menu.xmb_alpha_factor, "xmb_alpha_factor");
|
||||
CONFIG_GET_INT_BASE(conf, settings, menu.xmb_theme, "xmb_theme");
|
||||
config_get_path(conf, "xmb_font", settings->menu.xmb_font, sizeof(settings->menu.xmb_font));
|
||||
#endif
|
||||
config_get_array(conf, "video_context_driver", settings->video.context_driver, sizeof(settings->video.context_driver));
|
||||
@ -2754,6 +2756,7 @@ bool config_save_file(const char *path)
|
||||
#ifdef HAVE_MENU
|
||||
config_set_int(conf, "xmb_scale_factor", settings->menu.xmb_scale_factor);
|
||||
config_set_int(conf, "xmb_alpha_factor", settings->menu.xmb_alpha_factor);
|
||||
config_set_int(conf, "xmb_theme", settings->menu.xmb_theme);
|
||||
config_set_path(conf, "xmb_font",
|
||||
!string_is_empty(settings->menu.xmb_font) ? settings->menu.xmb_font : "");
|
||||
config_set_path(conf, "rgui_browser_directory",
|
||||
|
@ -166,6 +166,7 @@ typedef struct settings
|
||||
unsigned title_color;
|
||||
unsigned xmb_scale_factor;
|
||||
unsigned xmb_alpha_factor;
|
||||
unsigned xmb_theme;
|
||||
char xmb_font[PATH_MAX_LENGTH];
|
||||
bool throttle_framerate;
|
||||
bool linear_filter;
|
||||
|
@ -585,6 +585,36 @@ static void menu_action_setting_disp_set_label_poll_type_behavior(
|
||||
}
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_xmb_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();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
strlcpy(s2, path, len2);
|
||||
*w = 19;
|
||||
switch (settings->menu.xmb_theme)
|
||||
{
|
||||
case 0:
|
||||
snprintf(s, len, "%s", "Monochrome");
|
||||
break;
|
||||
case 1:
|
||||
snprintf(s, len, "%s", "FlatUI");
|
||||
break;
|
||||
case 2:
|
||||
snprintf(s, len, "%s", "Custom");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_menu_toggle_gamepad_combo(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
@ -1139,6 +1169,10 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_poll_type_behavior);
|
||||
break;
|
||||
case MENU_LABEL_XMB_THEME:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_theme);
|
||||
break;
|
||||
case MENU_LABEL_INPUT_MENU_TOGGLE_GAMEPAD_COMBO:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_menu_toggle_gamepad_combo);
|
||||
|
@ -48,10 +48,6 @@
|
||||
|
||||
#include "../../tasks/tasks_internal.h"
|
||||
|
||||
#ifndef XMB_THEME
|
||||
#define XMB_THEME "monochrome"
|
||||
#endif
|
||||
|
||||
#ifndef XMB_DELAY
|
||||
#define XMB_DELAY 10
|
||||
#endif
|
||||
@ -231,6 +227,22 @@ typedef struct xmb_handle
|
||||
gfx_font_raster_block_t raster_block;
|
||||
} xmb_handle_t;
|
||||
|
||||
static char* xmb_theme()
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
switch (settings->menu.xmb_theme)
|
||||
{
|
||||
case 0:
|
||||
return "monochrome";
|
||||
case 1:
|
||||
return "flatui";
|
||||
case 2:
|
||||
return "custom";
|
||||
default:
|
||||
return "monochrome";
|
||||
}
|
||||
}
|
||||
|
||||
static void xmb_fill_default_background_path(xmb_handle_t *xmb,
|
||||
char *path, size_t size)
|
||||
{
|
||||
@ -243,7 +255,7 @@ static void xmb_fill_default_background_path(xmb_handle_t *xmb,
|
||||
|
||||
fill_pathname_join(mediapath, settings->assets_directory,
|
||||
"xmb", sizeof(mediapath));
|
||||
fill_pathname_join(themepath, mediapath, XMB_THEME, sizeof(themepath));
|
||||
fill_pathname_join(themepath, mediapath, xmb_theme(), sizeof(themepath));
|
||||
fill_pathname_join(iconpath, themepath, xmb->icon.dir, sizeof(iconpath));
|
||||
fill_pathname_slash(iconpath, sizeof(iconpath));
|
||||
|
||||
@ -1265,7 +1277,7 @@ static void xmb_refresh_horizontal_list(xmb_handle_t *xmb)
|
||||
|
||||
fill_pathname_join(mediapath, settings->assets_directory,
|
||||
"xmb", sizeof(mediapath));
|
||||
fill_pathname_join(themepath, mediapath, XMB_THEME, sizeof(themepath));
|
||||
fill_pathname_join(themepath, mediapath, xmb_theme(), sizeof(themepath));
|
||||
|
||||
xmb_context_destroy_horizontal_list(xmb);
|
||||
if (xmb->horizontal_list)
|
||||
@ -2062,7 +2074,7 @@ static void xmb_font(xmb_handle_t *xmb)
|
||||
fill_pathname_join(mediapath,
|
||||
settings->assets_directory, "xmb", sizeof(mediapath));
|
||||
fill_pathname_join(themepath,
|
||||
mediapath, XMB_THEME, sizeof(themepath));
|
||||
mediapath, xmb_theme(), sizeof(themepath));
|
||||
if (string_is_empty(settings->menu.xmb_font))
|
||||
fill_pathname_join(fontpath, themepath, "font.ttf", sizeof(fontpath));
|
||||
else
|
||||
@ -2484,7 +2496,7 @@ static void xmb_context_reset(void *data)
|
||||
|
||||
fill_pathname_join(mediapath, settings->assets_directory,
|
||||
"xmb", sizeof(mediapath));
|
||||
fill_pathname_join(themepath, mediapath, XMB_THEME, sizeof(themepath));
|
||||
fill_pathname_join(themepath, mediapath, xmb_theme(), sizeof(themepath));
|
||||
fill_pathname_join(iconpath, themepath, xmb->icon.dir, sizeof(iconpath));
|
||||
fill_pathname_slash(iconpath, sizeof(iconpath));
|
||||
|
||||
|
@ -292,6 +292,8 @@ static const char *menu_hash_to_str_us_label(uint32_t hash)
|
||||
return "dpi_override_value";
|
||||
case MENU_LABEL_XMB_FONT:
|
||||
return "xmb_font";
|
||||
case MENU_LABEL_XMB_THEME:
|
||||
return "xmb_theme";
|
||||
case MENU_LABEL_XMB_SCALE_FACTOR:
|
||||
return "xmb_scale_factor";
|
||||
case MENU_LABEL_XMB_ALPHA_FACTOR:
|
||||
@ -1040,6 +1042,8 @@ const char *menu_hash_to_str_us(uint32_t hash)
|
||||
return "XMB Alpha Factor";
|
||||
case MENU_LABEL_VALUE_XMB_FONT:
|
||||
return "XMB Font";
|
||||
case MENU_LABEL_VALUE_XMB_THEME:
|
||||
return "XMB Theme";
|
||||
case MENU_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE:
|
||||
return "Suspend Screensaver";
|
||||
case MENU_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION:
|
||||
|
@ -287,6 +287,9 @@ static const char *menu_hash_to_str_us_label(uint32_t hash)
|
||||
return "dpi_override_value";
|
||||
case MENU_LABEL_XMB_FONT:
|
||||
return "xmb_font";
|
||||
case MENU_LABEL_XMB_THEME:
|
||||
return "xmb_theme";
|
||||
case MENU_LABEL_XMB_SCALE_FACTOR:
|
||||
case MENU_LABEL_XMB_SCALE_FACTOR:
|
||||
return "xmb_scale_factor";
|
||||
case MENU_LABEL_XMB_ALPHA_FACTOR:
|
||||
@ -1027,6 +1030,8 @@ const char *menu_hash_to_str_us(uint32_t hash)
|
||||
return "XMB Alphá Factor";
|
||||
case MENU_LABEL_VALUE_XMB_FONT:
|
||||
return "XMB Foñt";
|
||||
case MENU_LABEL_VALUE_XMB_THEME:
|
||||
return "XMB Thèmê";
|
||||
case MENU_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE:
|
||||
return "Suspeñd Scrêénsàver";
|
||||
case MENU_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION:
|
||||
|
@ -386,6 +386,8 @@ extern "C" {
|
||||
#define MENU_LABEL_VALUE_XMB_ALPHA_FACTOR 0x0D5A712F1
|
||||
#define MENU_LABEL_XMB_FONT 0x0ECA56CA2
|
||||
#define MENU_LABEL_VALUE_XMB_FONT 0x0020337E7
|
||||
#define MENU_LABEL_XMB_THEME 0x824c5a7eU
|
||||
#define MENU_LABEL_VALUE_XMB_THEME 0x3603f65fU
|
||||
#define MENU_LABEL_VOLUME_UP 0xa66e9681U
|
||||
#define MENU_LABEL_VOLUME_DOWN 0xfc64f3d4U
|
||||
#define MENU_LABEL_LOG_VERBOSITY 0x6648c96dU
|
||||
|
@ -5897,6 +5897,19 @@ static bool setting_append_list(
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_EMPTY);
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb_theme,
|
||||
menu_hash_to_str(MENU_LABEL_XMB_THEME),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_XMB_THEME),
|
||||
xmb_theme,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0, 2, 1, true, true);
|
||||
}
|
||||
|
||||
CONFIG_BOOL(
|
||||
|
Loading…
x
Reference in New Issue
Block a user