From 9da3eaf07a320eea5ca8b59475021bbf10642113 Mon Sep 17 00:00:00 2001 From: n00mkrad <61149547+n00mkrad@users.noreply.github.com> Date: Sat, 20 Dec 2025 22:00:39 +0100 Subject: [PATCH] Resizable text in log box, news box, changelog box --- CodeLegacy/Flowframes.csproj | 1 + CodeLegacy/Forms/Main/Form1.Designer.cs | 19 ++-- CodeLegacy/Forms/Main/Form1.cs | 6 ++ CodeLegacy/Forms/Main/Form1.resx | 26 +++--- CodeLegacy/Ui/ControlTextResizer.cs | 112 ++++++++++++++++++++++++ 5 files changed, 142 insertions(+), 22 deletions(-) create mode 100644 CodeLegacy/Ui/ControlTextResizer.cs diff --git a/CodeLegacy/Flowframes.csproj b/CodeLegacy/Flowframes.csproj index 37bbf4e..5ef7f5b 100644 --- a/CodeLegacy/Flowframes.csproj +++ b/CodeLegacy/Flowframes.csproj @@ -530,6 +530,7 @@ + diff --git a/CodeLegacy/Forms/Main/Form1.Designer.cs b/CodeLegacy/Forms/Main/Form1.Designer.cs index d974cf5..f2e3906 100644 --- a/CodeLegacy/Forms/Main/Form1.Designer.cs +++ b/CodeLegacy/Forms/Main/Form1.Designer.cs @@ -360,7 +360,7 @@ this.label23.Location = new System.Drawing.Point(8, 130); this.label23.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(105, 15); + this.label23.Size = new System.Drawing.Size(104, 15); this.label23.TabIndex = 26; this.label23.Text = "Fix Scene Changes"; // @@ -393,7 +393,7 @@ this.label16.Location = new System.Drawing.Point(10, 10); this.label16.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(61, 15); + this.label16.Size = new System.Drawing.Size(62, 15); this.label16.TabIndex = 2; this.label16.Text = "Trim Input"; // @@ -413,6 +413,7 @@ this.runBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.runBtn.Enabled = false; this.runBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.runBtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.runBtn.ForeColor = System.Drawing.Color.White; this.runBtn.Location = new System.Drawing.Point(12, 418); this.runBtn.Name = "runBtn"; @@ -803,9 +804,9 @@ this.welcomeLabel2.Location = new System.Drawing.Point(142, 3); this.welcomeLabel2.Margin = new System.Windows.Forms.Padding(3, 0, 3, 10); this.welcomeLabel2.Name = "welcomeLabel2"; - this.welcomeLabel2.Size = new System.Drawing.Size(478, 40); + this.welcomeLabel2.Size = new System.Drawing.Size(268, 40); this.welcomeLabel2.TabIndex = 5; - this.welcomeLabel2.Text = "Click The Interpolation Tab To Begin."; + this.welcomeLabel2.Text = "Click Here To Begin."; this.welcomeLabel2.Click += new System.EventHandler(this.welcomeLabel2_Click); // // panel8 @@ -814,10 +815,10 @@ this.panel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.panel8.Controls.Add(this.patronsLabel); this.panel8.Controls.Add(this.label21); - this.panel8.Location = new System.Drawing.Point(593, 57); + this.panel8.Location = new System.Drawing.Point(593, 9); this.panel8.Margin = new System.Windows.Forms.Padding(5); this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(300, 193); + this.panel8.Size = new System.Drawing.Size(300, 241); this.panel8.TabIndex = 4; // // patronsLabel @@ -1259,7 +1260,7 @@ this.label24.Location = new System.Drawing.Point(6, 160); this.label24.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7); this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(165, 15); + this.label24.Size = new System.Drawing.Size(164, 15); this.label24.TabIndex = 87; this.label24.Text = "Maximum Output Frame Rate"; // @@ -1448,7 +1449,7 @@ this.label34.Location = new System.Drawing.Point(407, 42); this.label34.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7); this.label34.Name = "label34"; - this.label34.Size = new System.Drawing.Size(308, 15); + this.label34.Size = new System.Drawing.Size(307, 15); this.label34.TabIndex = 69; this.label34.Text = "Maximum Height. Video will be downscaled if it\'s bigger."; // @@ -1480,7 +1481,7 @@ this.label18.Location = new System.Drawing.Point(8, 40); this.label18.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(196, 15); + this.label18.Size = new System.Drawing.Size(195, 15); this.label18.TabIndex = 66; this.label18.Text = "Maximum Video Input Size (Height)"; // diff --git a/CodeLegacy/Forms/Main/Form1.cs b/CodeLegacy/Forms/Main/Form1.cs index cdfd21f..443b565 100644 --- a/CodeLegacy/Forms/Main/Form1.cs +++ b/CodeLegacy/Forms/Main/Form1.cs @@ -36,6 +36,7 @@ namespace Flowframes.Forms.Main public bool ShowModelDownloader = false; private Enums.VfrMode prevVfrMode = (Enums.VfrMode)(-1); + private ControlTextResizer _ctrlTextResizer; protected override CreateParams CreateParams { @@ -59,7 +60,12 @@ namespace Flowframes.Forms.Main { ShowInTaskbar = false; Opacity = 0; + return; } + + _ctrlTextResizer = new ControlTextResizer(); + var resizableTextCtrls = new List() { logBox, newsLabel, patronsLabel }; + _ctrlTextResizer.Register(resizableTextCtrls); } private void Form1_Load(object sender, EventArgs e) diff --git a/CodeLegacy/Forms/Main/Form1.resx b/CodeLegacy/Forms/Main/Form1.resx index 87c7948..a779b46 100644 --- a/CodeLegacy/Forms/Main/Form1.resx +++ b/CodeLegacy/Forms/Main/Form1.resx @@ -144,19 +144,19 @@ Based on: iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAh - NQAAITUBTKZc8wAAAsdJREFUWEftlztoFFEUhtcoiCBaqGCRNIJGxQdYqYgBNY1ERBF3Ky3cDS4oRCxE - Ky0iQSRoERQLKx/4QBEfaCWKDyw0hWLj+wGiYNxdfCvod5azcOfMnWR2yWw1P3ywc85/zr2zzJ17J5Mq - VaoElCuUp+UKlQ5o1VCk8MyBJdRM1lAyYpBZsANuwCf4B2c1XVWuONSSLQ6N0cuq8Ayq9z1chDyMeGOx - RbMVcA2+gwzk8hNOwhW4D4/gIdwFmcx5sDXCFzgF83WYxkSDeeCb2GjxCqbocPWL4qtOs6Q4rMPVJwrX - mkZJ8QsW6rDxlC1UWih64DRJmjM6dDxR0GUaJM1viL9gMF92ipvFIR1+eGGcCUmu3CjexnqZY+wxhc2k - S6cRLUzXTZFFdoTtsAr2wVfw+YSPsBNWwh6QF7TPV2NAp+EXhqkgTX3FggwQeCVwvc7Ju3yDxWqriutO - +KN5H4PZQmms2sPCsNQUWLx3SPyW8QknNB0QcdkWrbdGGdrUGhbJLY7ZR1GtARE/ZnzCbk0HRPyg8Vk6 - 1BoWyV5jtuxXa0DEfVti1L992vgsm9QaFsnjxmx5CYHNnetF4HstfYDAsYrrdihpPopdag+L5AVj9nEH - 5FmdDmvgOfh8ghy95GArXlkgT8Dnc+nT6YRFsp7TizzQvriPerzROwrJ4VZYs+jX6YRFMuoE3Ex6dTph - kew3ZhdZCNtgAGrfJPXwBmTn2evEfBR0OmGxWU/EIO+pv06Byz3YCLNhAxwB+RZ5B/Kc/VBkpb6G2yA3 - vRrmQjc8BV/vCvRku0vjdDrRwshnYuWmFvrYrNaquLFJxNpATkJCq9yspqsidgB8vYRz0K7W+KJoPci/ - 4DZ7bAePI2pmUPvZ6SOH1EuwXC2NiybL4Ci8gE4N1y1qt8Iz6IMFGh495fLlCfqzYeXypfH6M1WqVKlS - jahM5j96J9xPI80nHwAAAABJRU5ErkJggg== + NQAAITUBTKZc8wAAAspJREFUWEftl0uoTXEYxa9LSYkByuCaKM88ygjJLY+JrkRy14iBu25uUWQgRgyu + JImByMDII49IHjESeWTAHZCJ96NEuc5ZeVP0z96n//7ut699cs4dnV+tyd5rff9vn7P/j93U1KBBg9oD + lseAagXVYu9ZQE0BNQcsj7T3agqoiaA2gboK6j2o36BOZTxdvc3tXb2DMteonsT7BtQ5UB1FHqwwoBaA + ugzqSzJQrG+gjoG6COoOqPug7oG6lTRzxskEfQR1HNR0O15VgJqW01it9BzUKDtuYUBdcorWWvvtuIUA + tcwpVg99BzXTjt8v7VQzqLtOsXrppO2hX0C1OUXqqR9VTRhQF5wi9dY+24cLqAl1nrl5elVoMQe10QkP + lNpsP30AdcUJxgo7wgZQi0DtAPXJ8aR6B2ozqIWgtiULtPXEOmD7yQBqdFLUBlOFATJLAqjlji/oM6jZ + xrsY1E/Hm6qnnaXBcSYDqLlOKJb7hKCuO96j1hdItkXrTVUGNc5mKoBa64RiddlMANRhx7vV+gKg9jje + WK02UwFUtxOItdNmAjlbYt6vfcLxxlptMxVAHXECsZ7ZzR3UrJxl6a09VoGaBKrkeGNtiTMZQJ11AlY3 + k3d1LKiloJ44nlTh6BUOtsEbJshDx2O1y/ZVIeevylN4oe21PFXjzd9R/jHDBkp7bV8V+jkBD6S6bV8V + QvdOIFWYCOvD7Iy+SarRy2Tn2e7ci0XbVwWwPDxZp345waDboFaBmgxqJaiDybfI6+Q9+5oozNQXoG4k + D70E1FRQnaAeOXWDFM4B7Z2lIbavPvz9TNQ1p0iqNVl/eUTYAZKTUFBLeNisR7udOqlOhyUo9hcC1Irk + V4iLPbCDFwEsjwf1IaoTDqnnQc233qoBNQ/UIVBPw3pm7xcF1DpQj8NaB2qGvf/foKM8zF6rFnSUhtpr + DRo0aNAgnz96J9xPpXlFDAAAAABJRU5ErkJggg== diff --git a/CodeLegacy/Ui/ControlTextResizer.cs b/CodeLegacy/Ui/ControlTextResizer.cs new file mode 100644 index 0000000..a236ef8 --- /dev/null +++ b/CodeLegacy/Ui/ControlTextResizer.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Windows.Forms; + +namespace Flowframes.Ui +{ + internal class ControlTextResizer + { + // Dictionary to store the initial font size for every tracked Control + private readonly Dictionary _initialFontSizes = new Dictionary(); + + /// + /// Registers a list of Control objects to enable mouse wheel resizing and middle-click reset. + /// + /// List of Controls to enhance. + public void Register(IEnumerable controls) + { + if (controls == null) return; + + foreach (var ctrl in controls) + { + // Avoid registering the same Control twice + if (_initialFontSizes.ContainsKey(ctrl)) continue; + + // 1. Store the initial size so we can reset to it later + _initialFontSizes[ctrl] = ctrl.Font.Size; + + // 2. Subscribe to the necessary events + ctrl.MouseWheel += Ctrl_MouseWheel; + ctrl.MouseDown += Ctrl_MouseDown; + } + } + + /// + /// Handles the MouseWheel event to increase or decrease font size. + /// Note: In WinForms, the control usually needs focus to receive MouseWheel events. + /// + private void Ctrl_MouseWheel(object sender, MouseEventArgs e) + { + // Only resize if Ctrl is held down + if ((Control.ModifierKeys & Keys.Control) != Keys.Control) + return; + + if (sender is Control ctrl) + { + float currentSize = ctrl.Font.Size; + float newSize = currentSize; + + if (e.Delta > 0) + { + newSize *= 1.1f; // Increase size + } + else if (e.Delta < 0) + { + newSize *= 0.9f; // Decrease size + } + + // Retrieve initial size to calculate bounds + if (_initialFontSizes.TryGetValue(ctrl, out float initialSize)) + { + float minSize = initialSize * 0.75f; + float maxSize = initialSize * 2.0f; + + // Clamp the new size + if (newSize < minSize) newSize = minSize; + if (newSize > maxSize) newSize = maxSize; + } + else + { + // Fallback if initial size isn't found (shouldn't happen if registered correctly) + if (newSize < 1.0f) newSize = 1.0f; + } + + // Only apply if the size actually changed + if (Math.Abs(newSize - currentSize) > 0.01f) + { + ctrl.Font = new Font(ctrl.Font.FontFamily, newSize, ctrl.Font.Style, ctrl.Font.Unit); + } + } + } + + /// + /// Handles the MouseDown event to check for Middle Mouse Button clicks. + /// + private void Ctrl_MouseDown(object sender, MouseEventArgs e) + { + // Check if the Middle button (scroll wheel click) was pressed + if (e.Button == MouseButtons.Middle && sender is Control ctrl) + { + // Retrieve the initial size if we have it stored + if (_initialFontSizes.TryGetValue(ctrl, out float initialSize)) + { + ctrl.Font = new Font(ctrl.Font.FontFamily, initialSize, ctrl.Font.Style, ctrl.Font.Unit); + } + } + } + + /// + /// Optional: Call this to clean up events if you are disposing controls dynamically. + /// + public void Unregister(Control ctrl) + { + if (_initialFontSizes.ContainsKey(ctrl)) + { + ctrl.MouseWheel -= Ctrl_MouseWheel; + ctrl.MouseDown -= Ctrl_MouseDown; + _initialFontSizes.Remove(ctrl); + } + } + } +}