From 624698d2d9b47fde24a0e275cea5a5a04d07fa29 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 27 Oct 2018 16:50:48 +0200 Subject: [PATCH] (Ozone) Add menu color theme --- configuration.c | 3 +++ configuration.h | 1 + gfx/video_driver.c | 1 + gfx/video_driver.h | 1 + intl/msg_hash_ar.h | 14 ++++++++++ intl/msg_hash_chs.h | 14 ++++++++++ intl/msg_hash_cht.h | 14 ++++++++++ intl/msg_hash_de.h | 14 ++++++++++ intl/msg_hash_el.h | 16 ++++++++++++ intl/msg_hash_eo.h | 14 ++++++++++ intl/msg_hash_es.h | 16 ++++++++++++ intl/msg_hash_fr.h | 14 ++++++++++ intl/msg_hash_it.h | 14 ++++++++++ intl/msg_hash_ja.h | 14 ++++++++++ intl/msg_hash_ko.h | 14 ++++++++++ intl/msg_hash_lbl.h | 2 ++ intl/msg_hash_nl.h | 14 ++++++++++ intl/msg_hash_pl.h | 14 ++++++++++ intl/msg_hash_pt_br.h | 16 ++++++++++++ intl/msg_hash_pt_pt.h | 14 ++++++++++ intl/msg_hash_ru.h | 14 ++++++++++ intl/msg_hash_us.h | 16 ++++++++++++ intl/msg_hash_vn.h | 16 ++++++++++++ menu/cbs/menu_cbs_sublabel.c | 4 +++ menu/drivers/ozone.c | 46 ++++++++++++++++++++++++--------- menu/menu_displaylist.c | 4 +++ menu/menu_setting.c | 50 ++++++++++++++++++++++++++++++++++++ msg_hash.h | 6 ++++- 28 files changed, 367 insertions(+), 13 deletions(-) diff --git a/configuration.c b/configuration.c index 1ab4bb23fe..4b391bcd2a 100644 --- a/configuration.c +++ b/configuration.c @@ -1603,6 +1603,9 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings, #endif SETTING_UINT("materialui_menu_color_theme", &settings->uints.menu_materialui_color_theme, true, MATERIALUI_THEME_BLUE, false); SETTING_UINT("menu_shader_pipeline", &settings->uints.menu_xmb_shader_pipeline, true, menu_shader_pipeline, false); +#ifdef HAVE_OZONE + SETTING_UINT("ozone_menu_color_theme", &settings->uints.menu_ozone_color_theme, true, 0, false); +#endif #endif SETTING_UINT("audio_out_rate", &settings->uints.audio_out_rate, true, out_rate, false); SETTING_UINT("custom_viewport_width", &settings->video_viewport_custom.width, false, 0 /* TODO */, false); diff --git a/configuration.h b/configuration.h index ec4dc7dce4..be17dcdbd3 100644 --- a/configuration.h +++ b/configuration.h @@ -407,6 +407,7 @@ typedef struct settings unsigned menu_xmb_theme; unsigned menu_xmb_color_theme; unsigned menu_materialui_color_theme; + unsigned menu_ozone_color_theme; unsigned menu_font_color_red; unsigned menu_font_color_green; unsigned menu_font_color_blue; diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 42316c54c7..d7824f6429 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -2786,6 +2786,7 @@ void video_driver_build_info(video_frame_info_t *video_info) video_info->menu_footer_opacity = settings->floats.menu_footer_opacity; video_info->menu_header_opacity = settings->floats.menu_header_opacity; video_info->materialui_color_theme = settings->uints.menu_materialui_color_theme; + video_info->ozone_color_theme = settings->uints.menu_ozone_color_theme; video_info->menu_shader_pipeline = settings->uints.menu_xmb_shader_pipeline; video_info->xmb_theme = settings->uints.menu_xmb_theme; video_info->xmb_color_theme = settings->uints.menu_xmb_color_theme; diff --git a/gfx/video_driver.h b/gfx/video_driver.h index de028e4900..4c151afbbb 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -445,6 +445,7 @@ typedef struct video_frame_info unsigned xmb_color_theme; unsigned menu_shader_pipeline; unsigned materialui_color_theme; + unsigned ozone_color_theme; unsigned custom_vp_width; unsigned custom_vp_height; unsigned custom_vp_full_width; diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index 079ffd8eff..735fc4b348 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -3678,3 +3678,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Menu Color Theme") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index 23e1fda66c..372b064faa 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -4697,3 +4697,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "菜单颜色主题") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index 5ab5d0ffd8..823e6ef5d7 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -3454,3 +3454,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "選單顏色主題") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index a89fc2a391..83af071a0f 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -3590,3 +3590,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Menü-Farbschema") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_el.h b/intl/msg_hash_el.h index bd005db366..90c17e6578 100644 --- a/intl/msg_hash_el.h +++ b/intl/msg_hash_el.h @@ -7679,3 +7679,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Χρώμα Θέματος Μενού" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 520a48c0e2..e5bd3a414f 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -3329,3 +3329,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Menu Color Theme") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 6c034d9292..eee1deba98 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -7617,3 +7617,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Tema de color del menú" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 9dbc67b5ae..d4ac5377df 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -3488,3 +3488,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Couleur du thème du menu") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index b0f56210f9..22cd3dea9c 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -3548,3 +3548,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Colore del tema di Menu ") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index f84b29b3ab..c055952a4e 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -3997,3 +3997,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "メニューの色テーマ") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 18a66cbcd7..799a1ee190 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -3449,3 +3449,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "메뉴 테마 색상") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 1be69e735f..3e5b127709 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -643,6 +643,8 @@ MSG_HASH(MENU_ENUM_LABEL_MAIN_MENU, "main_menu") MSG_HASH(MENU_ENUM_LABEL_MANAGEMENT, "database_settings") +MSG_HASH(MENU_ENUM_LABEL_OZONE_MENU_COLOR_THEME, + "ozone_menu_color_theme") MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME, "materialui_menu_color_theme") MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index d82696f30c..0fa9f7584c 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -3335,3 +3335,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "Oke" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Menu Kleur Thema") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index e566952638..76598fcfec 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -3751,3 +3751,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Kolor menu") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index a5ef3d98b4..c7dd694772 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -7711,3 +7711,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Tema de Cor do Menu" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index 823cd0252d..eb15d1330e 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -3415,3 +3415,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Tema da cor do menu") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 1f5e2e6710..c597017496 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -3618,3 +3618,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Цветовая тема меню") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 2dfb3ff14a..7978149985 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -7711,3 +7711,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Menu Color Theme" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index 0cb6d32bce..0adedcd8be 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -3486,3 +3486,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK, "OK" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + "Menu Color Theme" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + "Basic White" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + "Basic Black" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME, + "Select a different color theme." + ) diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 8953602cbd..214dd3fbe2 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -374,6 +374,7 @@ default_sublabel_macro(action_bind_sublabel_xmb_icon_theme, default_sublabel_macro(action_bind_sublabel_xmb_shadows_enable, MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE) default_sublabel_macro(action_bind_sublabel_xmb_vertical_thumbnails, MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS) default_sublabel_macro(action_bind_sublabel_menu_color_theme, MENU_ENUM_SUBLABEL_MATERIALUI_MENU_COLOR_THEME) +default_sublabel_macro(action_bind_sublabel_ozone_menu_color_theme, MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME) default_sublabel_macro(action_bind_sublabel_menu_wallpaper_opacity, MENU_ENUM_SUBLABEL_MENU_WALLPAPER_OPACITY) default_sublabel_macro(action_bind_sublabel_menu_framebuffer_opacity, MENU_ENUM_SUBLABEL_MENU_FRAMEBUFFER_OPACITY) default_sublabel_macro(action_bind_sublabel_menu_ribbon_enable, MENU_ENUM_SUBLABEL_XMB_RIBBON_ENABLE) @@ -1075,6 +1076,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_MENU_WALLPAPER_OPACITY: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_wallpaper_opacity); break; + case MENU_ENUM_LABEL_OZONE_MENU_COLOR_THEME: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ozone_menu_color_theme); + break; case MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME: case MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_color_theme); diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c index fd77e559f9..a403750cf5 100644 --- a/menu/drivers/ozone.c +++ b/menu/drivers/ozone.c @@ -422,6 +422,7 @@ ozone_theme_t ozone_theme_dark = { "dark" }; +static unsigned last_color_theme = 0; static ozone_theme_t *ozone_default_theme = &ozone_theme_light; typedef struct ozone_handle @@ -1105,26 +1106,43 @@ static void ozone_draw_text( 1.0); } -static void ozone_set_theme(ozone_handle_t *ozone, ozone_theme_t *theme) +static void ozone_set_color_theme(ozone_handle_t *ozone, unsigned color_theme) { + ozone_theme_t *theme = ozone_default_theme; + + if (!ozone) + return; + + switch (color_theme) + { + case 1: + theme = &ozone_theme_dark; + break; + case 0: + default: + break; + } + ozone->theme = theme; memcpy(ozone->theme_dynamic.selection_border, ozone->theme->selection_border, sizeof(ozone->theme_dynamic.selection_border)); memcpy(ozone->theme_dynamic.selection, ozone->theme->selection, sizeof(ozone->theme_dynamic.selection)); memcpy(ozone->theme_dynamic.entries_border, ozone->theme->entries_border, sizeof(ozone->theme_dynamic.entries_border)); memcpy(ozone->theme_dynamic.entries_icon, ozone->theme->entries_icon, sizeof(ozone->theme_dynamic.entries_icon)); + + last_color_theme = color_theme; } static void *ozone_init(void **userdata, bool video_is_threaded) { - unsigned width, height; #ifdef HAVE_LIBNX Result rc; ColorSetId theme; #endif - ozone_handle_t *ozone = NULL; - settings_t *settings = config_get_ptr(); - menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); + unsigned width, height, color_theme = 0; + ozone_handle_t *ozone = NULL; + settings_t *settings = config_get_ptr(); + menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); if (!menu) goto error; @@ -1183,19 +1201,19 @@ static void *ozone_init(void **userdata, bool video_is_threaded) rc = setsysInitialize(); if (R_SUCCEEDED(rc)) { + color_theme = (theme == ColorSetId_Dark) ? 1 : 0; setsysGetColorSetId(&theme); - ozone_set_theme(ozone, theme == ColorSetId_Dark ? &ozone_theme_dark : &ozone_theme_light); + ozone_set_color_theme(ozone, color_theme); setsysExit(); } else - { - ozone_set_theme(ozone, ozone_default_theme); - } -#else - ozone_set_theme(ozone, ozone_default_theme); #endif + { + color_theme = settings->uints.menu_ozone_color_theme; + ozone_set_color_theme(ozone, color_theme); + } - ozone->need_compute = false; + ozone->need_compute = false; ozone->animations.scroll_y = 0.0f; /* Assets path */ @@ -2396,10 +2414,14 @@ static void ozone_frame(void *data, video_frame_info_t *video_info) menu_display_ctx_clearcolor_t clearcolor; ozone_handle_t* ozone = (ozone_handle_t*) data; settings_t *settings = config_get_ptr(); + unsigned color_theme = video_info->ozone_color_theme; if (!ozone) return; + if (color_theme != last_color_theme) + ozone_set_color_theme(ozone, color_theme); + ozone->frame_count++; menu_display_set_viewport(video_info->width, video_info->height); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index f7b00d07dc..b4c3d6c3a0 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5968,6 +5968,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME, PARSE_ONLY_UINT, false) == 0) count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_OZONE_MENU_COLOR_THEME, + PARSE_ONLY_UINT, false) == 0) + count++; if (menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MATERIALUI_ICONS_ENABLE, PARSE_ONLY_BOOL, false) == 0) diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 5361a70302..88f8e3d739 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -683,6 +683,7 @@ static void setting_get_string_representation_uint_materialui_menu_color_theme( } #endif +#ifdef HAVE_XMB static void setting_get_string_representation_uint_xmb_menu_color_theme( rarch_setting_t *setting, char *s, size_t len) @@ -766,6 +767,34 @@ static void setting_get_string_representation_uint_xmb_menu_color_theme( break; } } +#endif + + + +#ifdef HAVE_OZONE +static void setting_get_string_representation_uint_ozone_menu_color_theme( + rarch_setting_t *setting, + char *s, size_t len) +{ + if (!setting) + return; + + switch (*setting->value.target.unsigned_integer) + { + case 1: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK), len); + break; + case 0: + default: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE), len); + break; + } +} +#endif #ifdef HAVE_SHADERPIPELINE static void setting_get_string_representation_uint_xmb_shader_pipeline( @@ -8287,6 +8316,27 @@ static bool setting_append_list( } #endif +#ifdef HAVE_OZONE + if (string_is_equal(settings->arrays.menu_driver, "ozone")) + { + CONFIG_UINT( + list, list_info, + &settings->uints.menu_ozone_color_theme, + MENU_ENUM_LABEL_OZONE_MENU_COLOR_THEME, + MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME, + 0, + &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].get_string_representation = + &setting_get_string_representation_uint_ozone_menu_color_theme; + menu_settings_list_current_add_range(list, list_info, 0, 1, 1, true, true); + } +#endif + CONFIG_BOOL( list, list_info, &settings->bools.menu_show_start_screen, diff --git a/msg_hash.h b/msg_hash.h index 84f87a94b8..7a6f2722bd 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -467,6 +467,9 @@ enum msg_hash_enums MENU_LABEL(MATERIALUI_ICONS_ENABLE), + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE, + MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK, + MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME, MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME_INVERTED, MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_FLATUI, @@ -813,7 +816,6 @@ enum msg_hash_enums MENU_LABEL(XMB_LAYOUT), MENU_LABEL(XMB_THEME), MENU_LABEL(XMB_MAIN_MENU_ENABLE_SETTINGS), - MENU_LABEL(XMB_MENU_COLOR_THEME), MENU_LABEL(XMB_SHADOWS_ENABLE), MENU_LABEL(CONTENT_SHOW_REWIND), MENU_LABEL(CONTENT_SHOW_LATENCY), @@ -835,6 +837,8 @@ enum msg_hash_enums MENU_LABEL(TIMEDATE_ENABLE), MENU_LABEL(TIMEDATE_STYLE), MENU_LABEL(BATTERY_LEVEL_ENABLE), + MENU_LABEL(XMB_MENU_COLOR_THEME), + MENU_LABEL(OZONE_MENU_COLOR_THEME), MENU_LABEL(MATERIALUI_MENU_COLOR_THEME), MENU_LABEL(QUICK_MENU_OVERRIDE_OPTIONS), MENU_LABEL(QUICK_MENU_SHOW_TAKE_SCREENSHOT),