Skip to content

Commit 00a7caf

Browse files
authored
Ozone: Add dynamic header icon option (#18491)
1 parent 17e5336 commit 00a7caf

11 files changed

Lines changed: 319 additions & 35 deletions

File tree

config.def.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,7 @@
667667
/* Ozone colour theme: 1 == Basic Black */
668668
#define DEFAULT_OZONE_COLOR_THEME 1
669669
#define DEFAULT_OZONE_PADDING_FACTOR 1.0f
670+
#define DEFAULT_OZONE_HEADER_ICON 1
670671
#define DEFAULT_OZONE_HEADER_SEPARATOR 1
671672
#define DEFAULT_OZONE_COLLAPSE_SIDEBAR false
672673
#define DEFAULT_OZONE_SCROLL_CONTENT_METADATA false
@@ -1527,7 +1528,7 @@
15271528
#define DEFAULT_PLAYLIST_SHOW_SUBLABELS true
15281529
#endif
15291530

1530-
#define DEFAULT_PLAYLIST_SHOW_HISTORY_ICONS PLAYLIST_SHOW_HISTORY_ICONS_MAIN
1531+
#define DEFAULT_PLAYLIST_SHOW_HISTORY_ICONS PLAYLIST_SHOW_HISTORY_ICONS_CONTENT
15311532

15321533
/* Show the indices of playlist entries in
15331534
* a menu-driver-specific fashion */

configuration.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2465,6 +2465,7 @@ static struct config_uint_setting *populate_settings_uint(
24652465
#endif
24662466
#ifdef HAVE_OZONE
24672467
SETTING_UINT("ozone_menu_color_theme", &settings->uints.menu_ozone_color_theme, true, DEFAULT_OZONE_COLOR_THEME, false);
2468+
SETTING_UINT("ozone_header_icon", &settings->uints.menu_ozone_header_icon, true, DEFAULT_OZONE_HEADER_ICON, false);
24682469
SETTING_UINT("ozone_header_separator", &settings->uints.menu_ozone_header_separator, true, DEFAULT_OZONE_HEADER_SEPARATOR, false);
24692470
SETTING_UINT("ozone_font_scale", &settings->uints.menu_ozone_font_scale, true, DEFAULT_OZONE_FONT_SCALE, false);
24702471
#endif

configuration.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ typedef struct settings
314314
unsigned menu_materialui_thumbnail_view_landscape;
315315
unsigned menu_materialui_landscape_layout_optimization;
316316
unsigned menu_ozone_color_theme;
317+
unsigned menu_ozone_header_icon;
317318
unsigned menu_ozone_header_separator;
318319
unsigned menu_ozone_font_scale;
319320
unsigned menu_font_color_red;

intl/msg_hash_us.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12595,6 +12595,14 @@ MSG_HASH(
1259512595
MENU_ENUM_SUBLABEL_OZONE_PADDING_FACTOR,
1259612596
"Scale the horizontal padding size."
1259712597
)
12598+
MSG_HASH(
12599+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON,
12600+
"Header Icon"
12601+
)
12602+
MSG_HASH(
12603+
MENU_ENUM_SUBLABEL_OZONE_HEADER_ICON,
12604+
"Header logo can be hidden, dynamic depending on navigation or fixed to classic invader."
12605+
)
1259812606
MSG_HASH(
1259912607
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_SEPARATOR,
1260012608
"Header Separator"
@@ -12603,6 +12611,18 @@ MSG_HASH(
1260312611
MENU_ENUM_SUBLABEL_OZONE_HEADER_SEPARATOR,
1260412612
"Alternative width for header and footer separators."
1260512613
)
12614+
MSG_HASH(
12615+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_NONE,
12616+
"None"
12617+
)
12618+
MSG_HASH(
12619+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_DYNAMIC,
12620+
"Dynamic"
12621+
)
12622+
MSG_HASH(
12623+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_FIXED,
12624+
"Fixed"
12625+
)
1260612626
MSG_HASH(
1260712627
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_SEPARATOR_NONE,
1260812628
"None"

menu/cbs/menu_cbs_sublabel.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -958,6 +958,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_thumbnails_rgui, MENU_
958958
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_left_thumbnails_ozone, MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_OZONE)
959959
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_menu_color_theme, MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME)
960960
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_padding_factor, MENU_ENUM_SUBLABEL_OZONE_PADDING_FACTOR)
961+
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_header_icon, MENU_ENUM_SUBLABEL_OZONE_HEADER_ICON)
961962
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_header_separator, MENU_ENUM_SUBLABEL_OZONE_HEADER_SEPARATOR)
962963
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_collapse_sidebar, MENU_ENUM_SUBLABEL_OZONE_COLLAPSE_SIDEBAR)
963964
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_scroll_content_metadata, MENU_ENUM_SUBLABEL_OZONE_SCROLL_CONTENT_METADATA)
@@ -3253,6 +3254,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
32533254
case MENU_ENUM_LABEL_OZONE_PADDING_FACTOR:
32543255
#ifdef HAVE_OZONE
32553256
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ozone_padding_factor);
3257+
#endif
3258+
break;
3259+
case MENU_ENUM_LABEL_OZONE_HEADER_ICON:
3260+
#ifdef HAVE_OZONE
3261+
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ozone_header_icon);
32563262
#endif
32573263
break;
32583264
case MENU_ENUM_LABEL_OZONE_HEADER_SEPARATOR:

menu/drivers/ozone.c

Lines changed: 230 additions & 33 deletions
Large diffs are not rendered by default.

menu/menu_defines.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,14 @@ enum ozone_color_theme
454454
OZONE_COLOR_THEME_LAST
455455
};
456456

457+
enum ozone_header_icon
458+
{
459+
OZONE_HEADER_ICON_NONE = 0,
460+
OZONE_HEADER_ICON_DYNAMIC,
461+
OZONE_HEADER_ICON_FIXED,
462+
OZONE_HEADER_ICON_LAST
463+
};
464+
457465
enum ozone_header_separator
458466
{
459467
OZONE_HEADER_SEPARATOR_NONE = 0,

menu/menu_displaylist.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11874,6 +11874,7 @@ unsigned menu_displaylist_build_list(
1187411874
{MENU_ENUM_LABEL_XMB_SWITCH_ICONS, PARSE_ONLY_BOOL, true},
1187511875
{MENU_ENUM_LABEL_MENU_RGUI_SWITCH_ICONS, PARSE_ONLY_BOOL, true},
1187611876
{MENU_ENUM_LABEL_MATERIALUI_SWITCH_ICONS, PARSE_ONLY_BOOL, true},
11877+
{MENU_ENUM_LABEL_OZONE_HEADER_ICON, PARSE_ONLY_UINT, true},
1187711878
{MENU_ENUM_LABEL_OZONE_HEADER_SEPARATOR, PARSE_ONLY_UINT, true},
1187811879
{MENU_ENUM_LABEL_OZONE_COLLAPSE_SIDEBAR, PARSE_ONLY_BOOL, true},
1187911880
{MENU_ENUM_LABEL_MATERIALUI_LANDSCAPE_LAYOUT_OPTIMIZATION, PARSE_ONLY_UINT, true},

menu/menu_setting.c

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4690,6 +4690,32 @@ static size_t setting_get_string_representation_uint_ozone_menu_color_theme(
46904690
}
46914691
return 0;
46924692
}
4693+
4694+
static size_t setting_get_string_representation_uint_ozone_header_icon(
4695+
rarch_setting_t *setting, char *s, size_t len)
4696+
{
4697+
if (setting)
4698+
{
4699+
switch (*setting->value.target.unsigned_integer)
4700+
{
4701+
case 0:
4702+
return strlcpy(s,
4703+
msg_hash_to_str(
4704+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_NONE), len);
4705+
case 2:
4706+
return strlcpy(s,
4707+
msg_hash_to_str(
4708+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_FIXED), len);
4709+
case 1:
4710+
default:
4711+
return strlcpy(s,
4712+
msg_hash_to_str(
4713+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_DYNAMIC), len);
4714+
}
4715+
}
4716+
return 0;
4717+
}
4718+
46934719
static size_t setting_get_string_representation_uint_ozone_header_separator(
46944720
rarch_setting_t *setting, char *s, size_t len)
46954721
{
@@ -4714,6 +4740,7 @@ static size_t setting_get_string_representation_uint_ozone_header_separator(
47144740
}
47154741
return 0;
47164742
}
4743+
47174744
static size_t setting_get_string_representation_uint_ozone_font_scale(
47184745
rarch_setting_t *setting, char *s, size_t len)
47194746
{
@@ -20090,6 +20117,22 @@ static bool setting_append_list(
2009020117
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
2009120118
menu_settings_list_current_add_range(list, list_info, 0.0, 2.0, 0.01, true, true);
2009220119

20120+
CONFIG_UINT(
20121+
list, list_info,
20122+
&settings->uints.menu_ozone_header_icon,
20123+
MENU_ENUM_LABEL_OZONE_HEADER_ICON,
20124+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON,
20125+
DEFAULT_OZONE_HEADER_ICON,
20126+
&group_info,
20127+
&subgroup_info,
20128+
parent_group,
20129+
general_write_handler,
20130+
general_read_handler);
20131+
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
20132+
(*list)[list_info->index - 1].get_string_representation =
20133+
&setting_get_string_representation_uint_ozone_header_icon;
20134+
menu_settings_list_current_add_range(list, list_info, 0, OZONE_HEADER_ICON_LAST-1, 1, true, true);
20135+
2009320136
CONFIG_UINT(
2009420137
list, list_info,
2009520138
&settings->uints.menu_ozone_header_separator,
@@ -20104,7 +20147,7 @@ static bool setting_append_list(
2010420147
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
2010520148
(*list)[list_info->index - 1].get_string_representation =
2010620149
&setting_get_string_representation_uint_ozone_header_separator;
20107-
menu_settings_list_current_add_range(list, list_info, 0, 2, 1, true, true);
20150+
menu_settings_list_current_add_range(list, list_info, 0, OZONE_HEADER_SEPARATOR_LAST-1, 1, true, true);
2010820151
}
2010920152
#endif
2011020153

msg_hash.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,10 @@ enum msg_hash_enums
752752
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_PURPLE_RAIN,
753753
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_SELENIUM,
754754

755+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_NONE,
756+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_DYNAMIC,
757+
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_ICON_FIXED,
758+
755759
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_SEPARATOR_NONE,
756760
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_SEPARATOR_NORMAL,
757761
MENU_ENUM_LABEL_VALUE_OZONE_HEADER_SEPARATOR_MAXIMUM,
@@ -1669,6 +1673,7 @@ enum msg_hash_enums
16691673
MENU_LABEL(XMB_MENU_COLOR_THEME),
16701674
MENU_LABEL(OZONE_MENU_COLOR_THEME),
16711675
MENU_LABEL(OZONE_PADDING_FACTOR),
1676+
MENU_LABEL(OZONE_HEADER_ICON),
16721677
MENU_LABEL(OZONE_HEADER_SEPARATOR),
16731678
MENU_LABEL(OZONE_COLLAPSE_SIDEBAR),
16741679
MENU_LABEL(OZONE_FONT),

0 commit comments

Comments
 (0)