From 4a2c9a1f016870c9f94cc264bf145bef13619162 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:59:30 +0200 Subject: [PATCH] Truncate text on logic gates --- .../UserInterface/Screens/WorldScreen.cs | 4 ++-- .../Utilities/StringExtensions.cs | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 StoneRed.LogicSimulator/Utilities/StringExtensions.cs diff --git a/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs b/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs index 1294f70..a5c90c7 100644 --- a/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs +++ b/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs @@ -135,7 +135,7 @@ internal class WorldScreen : SrlsScreen srls.SpriteBatch.DrawRectangle(logicGate.WorldData.Position * srls.Scale, logicGateSize * srls.Scale, Color.DarkGray, 2 * srls.Scale, 0.2f); // Draw text for components - richTextLayout.Text = logicGate.WorldData.Name; + richTextLayout.Text = logicGate.WorldData.Name.Truncate(10); richTextLayout.Draw(srls.SpriteBatch, (logicGate.WorldData.Position + new Vector2(2, 2)) * srls.Scale, Color.Black, new Vector2(srls.Scale, srls.Scale), layerDepth: 0); // Draw logic gate connections @@ -154,7 +154,7 @@ internal class WorldScreen : SrlsScreen if (selectedLogicGate is not null) { - richTextLayout.Text = selectedLogicGate.WorldData.Name; + richTextLayout.Text = selectedLogicGate.WorldData.Name.Truncate(10); richTextLayout.Draw(srls.SpriteBatch, selectedLogicGate.WorldData.Position + (new Vector2(2, 2) * srls.Scale), Color.White, new Vector2(srls.Scale, srls.Scale), layerDepth: 0); srls.SpriteBatch.DrawRectangle(selectedLogicGate.WorldData.Position, logicGateSize * srls.Scale, Color.Red, 2 * srls.Scale); } diff --git a/StoneRed.LogicSimulator/Utilities/StringExtensions.cs b/StoneRed.LogicSimulator/Utilities/StringExtensions.cs new file mode 100644 index 0000000..aa84400 --- /dev/null +++ b/StoneRed.LogicSimulator/Utilities/StringExtensions.cs @@ -0,0 +1,14 @@ +namespace StoneRed.LogicSimulator.Utilities; + +internal static class StringExtensions +{ + public static string Truncate(this string value, int maxLength) + { + if (string.IsNullOrEmpty(value)) + { + return value; + } + + return value.Length <= maxLength ? value : value[..maxLength]; + } +} \ No newline at end of file