diff --git a/RunCat/Program.cs b/RunCat/Program.cs index 4a1355f..30040d3 100644 --- a/RunCat/Program.cs +++ b/RunCat/Program.cs @@ -51,6 +51,7 @@ public class RunCatApplicationContext : ApplicationContext private const int ANIMATE_TIMER_DEFAULT_INTERVAL = 200; private PerformanceCounter cpuUsage; private ToolStripMenuItem runnerMenu; + private ToolStripMenuItem flipMenu; private ToolStripMenuItem themeMenu; private ToolStripMenuItem startupMenu; private ToolStripMenuItem runnerSpeedLimit; @@ -96,6 +97,8 @@ public RunCatApplicationContext() } }); + flipMenu = new ToolStripMenuItem("Flip Horizontally", null, SetFlip); + themeMenu = new ToolStripMenuItem("Theme", null, new ToolStripMenuItem[] { new ToolStripMenuItem("Default", null, SetThemeIcons) @@ -146,6 +149,7 @@ public RunCatApplicationContext() contextMenuStrip.Items.AddRange(new ToolStripItem[] { runnerMenu, + flipMenu, themeMenu, startupMenu, runnerSpeedLimit, @@ -224,7 +228,12 @@ private void SetIcons() List list = new List(capacity); for (int i = 0; i < capacity; i++) { - list.Add((Icon)rm.GetObject($"{prefix}_{runner}_{i}")); + Bitmap bm = ((Icon)rm.GetObject($"{prefix}_{runner}_{i}")).ToBitmap(); + if (flipMenu.Checked) + { + bm.RotateFlip(RotateFlipType.RotateNoneFlipX); + } + list.Add(Icon.FromHandle(bm.GetHicon())); } icons = list.ToArray(); } @@ -307,6 +316,12 @@ private void UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs if (e.Category == UserPreferenceCategory.General) UpdateThemeIcons(); } + private void SetFlip(object sender, EventArgs e) + { + flipMenu.Checked = !flipMenu.Checked; + SetIcons(); + } + private void SetStartup(object sender, EventArgs e) { startupMenu.Checked = !startupMenu.Checked;