From 7a510298e1fa441995895981c563e280a68e0d9a Mon Sep 17 00:00:00 2001 From: pathetic meowmeow Date: Mon, 4 Aug 2025 04:34:46 -0400 Subject: [PATCH] Add the ability to scale ItemList icons (#6125) --- .../UserInterface/Controls/ItemList.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Robust.Client/UserInterface/Controls/ItemList.cs b/Robust.Client/UserInterface/Controls/ItemList.cs index 5cd9068c3..b727287bc 100644 --- a/Robust.Client/UserInterface/Controls/ItemList.cs +++ b/Robust.Client/UserInterface/Controls/ItemList.cs @@ -69,7 +69,7 @@ namespace Robust.Client.UserInterface.Controls var itemHeight = 0f; if (item.Icon != null) { - itemHeight = item.IconSize.Y; + itemHeight = item.IconSize.Y * item.IconScale; } itemHeight = Math.Max(itemHeight, ActualFont.GetHeight(UIScale)); @@ -111,21 +111,21 @@ namespace Robust.Client.UserInterface.Controls Recalculate(); } - public void AddItems(IEnumerable texts, Texture? icon = null, bool selectable = true, object? metadata = null) + public void AddItems(IEnumerable texts, Texture? icon = null, bool selectable = true, object? metadata = null, float iconScale = 1) { var items = new ValueList(); foreach (var text in texts) { - items.Add(new Item(this) {Text = text, Icon = icon, Selectable = selectable, Metadata = metadata}); + items.Add(new Item(this) {Text = text, Icon = icon, IconScale = iconScale, Selectable = selectable, Metadata = metadata}); } Add(items); } - public Item AddItem(string text, Texture? icon = null, bool selectable = true, object? metadata = null) + public Item AddItem(string text, Texture? icon = null, bool selectable = true, object? metadata = null, float iconScale = 1) { - var item = new Item(this) {Text = text, Icon = icon, Selectable = selectable, Metadata = metadata}; + var item = new Item(this) {Text = text, Icon = icon, IconScale = iconScale, Selectable = selectable, Metadata = metadata}; Add(item); return item; } @@ -477,7 +477,7 @@ namespace Robust.Client.UserInterface.Controls var itemHeight = 0f; if (item.Icon != null) { - itemHeight = item.IconSize.Y; + itemHeight = item.IconSize.Y * item.IconScale; } itemHeight = Math.Max(itemHeight, font.GetHeight(UIScale)); @@ -496,19 +496,19 @@ namespace Robust.Client.UserInterface.Controls { if (item.IconRegion.Size == Vector2.Zero) { - handle.DrawTextureRect(item.Icon, UIBox2.FromDimensions(drawOffset, item.Icon.Size), + handle.DrawTextureRect(item.Icon, UIBox2.FromDimensions(drawOffset, item.Icon.Size * item.IconScale), item.IconModulate); } else { - handle.DrawTextureRectRegion(item.Icon, UIBox2.FromDimensions(drawOffset, item.Icon.Size), + handle.DrawTextureRectRegion(item.Icon, UIBox2.FromDimensions(drawOffset, item.Icon.Size * item.IconScale), item.IconRegion, item.IconModulate); } } if (item.Text != null) { - var textBox = new UIBox2(contentBox.Left + item.IconSize.X, contentBox.Top, contentBox.Right, + var textBox = new UIBox2(contentBox.Left + item.IconSize.X * item.IconScale, contentBox.Top, contentBox.Right, contentBox.Bottom); DrawTextInternal(handle, item.Text, textBox); } @@ -722,6 +722,7 @@ namespace Robust.Client.UserInterface.Controls public Texture? Icon { get; set; } public UIBox2 IconRegion { get; set; } public Color IconModulate { get; set; } = Color.White; + public float IconScale { get; set; } = 1; public bool Selectable { get; set; } = true; public bool TooltipEnabled { get; set; } = true; public UIBox2? Region { get; set; }