From c5cbb8a39db6ce7cc722b92aaeddd76c4d879319 Mon Sep 17 00:00:00 2001 From: VirtualKley Date: Tue, 22 Jul 2025 19:06:30 -0500 Subject: [PATCH 1/2] feature: images of runners are placed in menu --- RunCat365/Program.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/RunCat365/Program.cs b/RunCat365/Program.cs index ea426e7f..edc620ea 100644 --- a/RunCat365/Program.cs +++ b/RunCat365/Program.cs @@ -146,6 +146,19 @@ public RunCat365ApplicationContext() cpuTimer.Start(); } + private static Image? GetIconImageForMenu(string title) + { + Theme systemTheme = GetSystemTheme(); + string prefix = systemTheme.GetString(); + string iconName = $"{prefix}_{title}_0".ToLower(); + var obj = Resources.ResourceManager.GetObject(iconName); + return obj switch + { + Icon icon => icon.ToBitmap(), + _ => null + } ?? null; + } + private static ToolStripMenuItem CreateMenuFromEnum( string title, Func getTitle, @@ -156,7 +169,8 @@ Func isChecked var items = new List(); foreach (T value in Enum.GetValues(typeof(T))) { - var item = new ToolStripMenuItem(getTitle(value), null, onClickEvent) + string entityName = getTitle(value); + var item = new ToolStripMenuItem(entityName, GetIconImageForMenu(entityName), onClickEvent) { Checked = isChecked(value) }; From f3c67794605d3336cbfae827a482d1084c7ce398 Mon Sep 17 00:00:00 2001 From: VirtualKley Date: Wed, 23 Jul 2025 10:41:41 -0500 Subject: [PATCH 2/2] The method for bringing in the bitmap directly is changed, and the light theme is used directly for the miniaturized icons in the menu. --- RunCat365/Program.cs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/RunCat365/Program.cs b/RunCat365/Program.cs index edc620ea..81e680ab 100644 --- a/RunCat365/Program.cs +++ b/RunCat365/Program.cs @@ -146,17 +146,11 @@ public RunCat365ApplicationContext() cpuTimer.Start(); } - private static Image? GetIconImageForMenu(string title) + private static Bitmap? GetRunnerThumbnailBitmap(Runner runner) { - Theme systemTheme = GetSystemTheme(); - string prefix = systemTheme.GetString(); - string iconName = $"{prefix}_{title}_0".ToLower(); + var iconName = $"{Theme.Light.GetString()}_{runner.GetString()}_0".ToLower(); var obj = Resources.ResourceManager.GetObject(iconName); - return obj switch - { - Icon icon => icon.ToBitmap(), - _ => null - } ?? null; + return obj is Icon icon ? icon.ToBitmap() : null; } private static ToolStripMenuItem CreateMenuFromEnum( @@ -170,7 +164,8 @@ Func isChecked foreach (T value in Enum.GetValues(typeof(T))) { string entityName = getTitle(value); - var item = new ToolStripMenuItem(entityName, GetIconImageForMenu(entityName), onClickEvent) + Image? iconImage = value is Runner runner ? GetRunnerThumbnailBitmap(runner) : null; + var item = new ToolStripMenuItem(entityName, iconImage, onClickEvent) { Checked = isChecked(value) };