From 328d36d0ca4133411b84a6ace9eb230de5fe9d5d Mon Sep 17 00:00:00 2001 From: SkiHatDuckie <63932363+SkiHatDuckie@users.noreply.github.com> Date: Tue, 19 Mar 2024 19:48:15 -0400 Subject: [PATCH] Refactor window scale menu, add 6x through 9x (squashed PR #3872) resolves #3826 --- .../MainForm.Designer.cs | 49 -------------- src/BizHawk.Client.EmuHawk/MainForm.Events.cs | 36 +---------- src/BizHawk.Client.EmuHawk/MainForm.cs | 64 ++++++++----------- 3 files changed, 28 insertions(+), 121 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/src/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 30dbdf2042..871c1f1d04 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -123,12 +123,6 @@ namespace BizHawk.Client.EmuHawk this.LoadedCoreNameMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.ViewSubMenu = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.WindowSizeSubMenu = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); - this.x1MenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); - this.x2MenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); - this.x3MenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); - this.x4MenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); - this.x5MenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); - this.mzMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.SwitchToFullscreenMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.toolStripSeparator2 = new BizHawk.WinForms.Controls.ToolStripSeparatorEx(); this.DisplayFPSMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); @@ -983,46 +977,9 @@ namespace BizHawk.Client.EmuHawk // // WindowSizeSubMenu // - this.WindowSizeSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.x1MenuItem, - this.x2MenuItem, - this.x3MenuItem, - this.x4MenuItem, - this.x5MenuItem, - this.mzMenuItem}); this.WindowSizeSubMenu.Text = "&Window Size"; this.WindowSizeSubMenu.DropDownOpened += new System.EventHandler(this.WindowSizeSubMenu_DropDownOpened); // - // x1MenuItem - // - this.x1MenuItem.Text = "&1x"; - this.x1MenuItem.Click += new System.EventHandler(this.WindowSize_Click); - // - // x2MenuItem - // - this.x2MenuItem.Text = "&2x"; - this.x2MenuItem.Click += new System.EventHandler(this.WindowSize_Click); - // - // x3MenuItem - // - this.x3MenuItem.Text = "&3x"; - this.x3MenuItem.Click += new System.EventHandler(this.WindowSize_Click); - // - // x4MenuItem - // - this.x4MenuItem.Text = "&4x"; - this.x4MenuItem.Click += new System.EventHandler(this.WindowSize_Click); - // - // x5MenuItem - // - this.x5MenuItem.Text = "&5x"; - this.x5MenuItem.Click += new System.EventHandler(this.WindowSize_Click); - // - // mzMenuItem - // - this.mzMenuItem.Text = "1&0x"; - this.mzMenuItem.Click += new System.EventHandler(this.WindowSize_Click); - // // SwitchToFullscreenMenuItem // this.SwitchToFullscreenMenuItem.Text = "Switch to Fullscreen"; @@ -2524,12 +2481,6 @@ namespace BizHawk.Client.EmuHawk private BizHawk.WinForms.Controls.ToolStripMenuItemEx SaveNamedStateMenuItem; private BizHawk.WinForms.Controls.ToolStripSeparatorEx toolStripSeparator7; private BizHawk.WinForms.Controls.ToolStripMenuItemEx LoadNamedStateMenuItem; - private BizHawk.WinForms.Controls.ToolStripMenuItemEx x1MenuItem; - private BizHawk.WinForms.Controls.ToolStripMenuItemEx x2MenuItem; - private BizHawk.WinForms.Controls.ToolStripMenuItemEx x3MenuItem; - private BizHawk.WinForms.Controls.ToolStripMenuItemEx x4MenuItem; - private BizHawk.WinForms.Controls.ToolStripMenuItemEx x5MenuItem; - private BizHawk.WinForms.Controls.ToolStripMenuItemEx mzMenuItem; private BizHawk.WinForms.Controls.ToolStripMenuItemEx MovieSubMenu; private BizHawk.WinForms.Controls.ToolStripMenuItemEx RecentMovieSubMenu; private BizHawk.WinForms.Controls.ToolStripMenuItemEx RecordMovieMenuItem; diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index 95e8ede67d..397fa53bf1 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -692,45 +692,15 @@ namespace BizHawk.Client.EmuHawk private void WindowSizeSubMenu_DropDownOpened(object sender, EventArgs e) { - x1MenuItem.Checked = - x2MenuItem.Checked = - x3MenuItem.Checked = - x4MenuItem.Checked = - x5MenuItem.Checked = - mzMenuItem.Checked = false; - - switch (Config.TargetZoomFactors[Emulator.SystemId]) + foreach (ToolStripMenuItem item in WindowSizeSubMenu.DropDownItems) { - case 1: - x1MenuItem.Checked = true; - break; - case 2: - x2MenuItem.Checked = true; - break; - case 3: - x3MenuItem.Checked = true; - break; - case 4: - x4MenuItem.Checked = true; - break; - case 5: - x5MenuItem.Checked = true; - break; - case 10: - mzMenuItem.Checked = true; - break; + item.Checked = Config.TargetZoomFactors[Emulator.SystemId] == (int) item.Tag; } } private void WindowSize_Click(object sender, EventArgs e) { - if (sender == x1MenuItem) Config.TargetZoomFactors[Emulator.SystemId] = 1; - if (sender == x2MenuItem) Config.TargetZoomFactors[Emulator.SystemId] = 2; - if (sender == x3MenuItem) Config.TargetZoomFactors[Emulator.SystemId] = 3; - if (sender == x4MenuItem) Config.TargetZoomFactors[Emulator.SystemId] = 4; - if (sender == x5MenuItem) Config.TargetZoomFactors[Emulator.SystemId] = 5; - if (sender == mzMenuItem) Config.TargetZoomFactors[Emulator.SystemId] = 10; - + Config.TargetZoomFactors[Emulator.SystemId] = (int) ((ToolStripMenuItem) sender).Tag; FrameBufferResized(); } diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 8a6d3c9aa8..95cd50396a 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -62,9 +62,29 @@ namespace BizHawk.Client.EmuHawk AppendAllFilesEntry = false, }; + private const int WINDOW_SCALE_MAX = 10; + private void MainForm_Load(object sender, EventArgs e) - { + { UpdateWindowTitle(); + + ToolStripItem[] CreateWindowSizeFactorSubmenus() + { + var items = new ToolStripItem[WINDOW_SCALE_MAX]; + for (int i = 1; i <= WINDOW_SCALE_MAX; i++) + { + long quotient = Math.DivRem(i, 10, out long remainder); + var temp = new ToolStripMenuItemEx + { + Tag = i, + Text = $"{(quotient > 0 ? quotient : "")}&{remainder}x" + }; + temp.Click += this.WindowSize_Click; + items[i - 1] = temp; + } + return items; + } + WindowSizeSubMenu.DropDownItems.AddRange(CreateWindowSizeFactorSubmenus()); foreach (var (groupLabel, appliesTo, coreNames) in Config.CorePickerUIData.Select(static tuple => (GroupLabel: tuple.AppliesTo[0], tuple.AppliesTo, tuple.CoreNames)) .OrderBy(static tuple => tuple.GroupLabel)) @@ -2733,54 +2753,20 @@ namespace BizHawk.Client.EmuHawk private void IncreaseWindowSize() { - switch (Config.TargetZoomFactors[Emulator.SystemId]) + if (Config.TargetZoomFactors[Emulator.SystemId] < WINDOW_SCALE_MAX) { - case 1: - Config.TargetZoomFactors[Emulator.SystemId] = 2; - break; - case 2: - Config.TargetZoomFactors[Emulator.SystemId] = 3; - break; - case 3: - Config.TargetZoomFactors[Emulator.SystemId] = 4; - break; - case 4: - Config.TargetZoomFactors[Emulator.SystemId] = 5; - break; - case 5: - Config.TargetZoomFactors[Emulator.SystemId] = 10; - break; - case 10: - return; + Config.TargetZoomFactors[Emulator.SystemId]++; } - AddOnScreenMessage($"Screensize set to {Config.TargetZoomFactors[Emulator.SystemId]}x"); FrameBufferResized(); } private void DecreaseWindowSize() { - switch (Config.TargetZoomFactors[Emulator.SystemId]) + if (Config.TargetZoomFactors[Emulator.SystemId] > 1) { - case 1: - return; - case 2: - Config.TargetZoomFactors[Emulator.SystemId] = 1; - break; - case 3: - Config.TargetZoomFactors[Emulator.SystemId] = 2; - break; - case 4: - Config.TargetZoomFactors[Emulator.SystemId] = 3; - break; - case 5: - Config.TargetZoomFactors[Emulator.SystemId] = 4; - break; - case 10: - Config.TargetZoomFactors[Emulator.SystemId] = 5; - return; + Config.TargetZoomFactors[Emulator.SystemId]--; } - AddOnScreenMessage($"Screensize set to {Config.TargetZoomFactors[Emulator.SystemId]}x"); FrameBufferResized(); }