From 8c3a74a9917f72f5ec2d4100ac6ba7bd01e1574f Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Fri, 11 Aug 2023 14:27:38 +0200 Subject: [PATCH] FN-Lock Toggle --- app/AsusUSB.cs | 2 +- app/Extra.Designer.cs | 47 ++++++++++++------------------------ app/Extra.cs | 14 ----------- app/Input/InputDispatcher.cs | 4 ++- app/Program.cs | 1 + app/Settings.Designer.cs | 28 +++++++++++++++++++-- app/Settings.cs | 28 ++++++++++++++++++++- app/Settings.resx | 2 +- 8 files changed, 74 insertions(+), 52 deletions(-) diff --git a/app/AsusUSB.cs b/app/AsusUSB.cs index a1d63f73..ed5aaf77 100644 --- a/app/AsusUSB.cs +++ b/app/AsusUSB.cs @@ -536,7 +536,7 @@ namespace GHelper Mode = AppConfig.Get("aura_mode"); Speed = AppConfig.Get("aura_speed"); - SetColor(AppConfig.Get("aura_color", Color.Red.ToArgb())); + SetColor(AppConfig.Get("aura_color")); SetColor2(AppConfig.Get("aura_color2")); if (Mode == HEATMAP) diff --git a/app/Extra.Designer.cs b/app/Extra.Designer.cs index 153205cc..fb773189 100644 --- a/app/Extra.Designer.cs +++ b/app/Extra.Designer.cs @@ -110,7 +110,6 @@ namespace GHelper checkVariBright = new CheckBox(); checkGpuApps = new CheckBox(); checkGPUFix = new CheckBox(); - checkFnLock = new CheckBox(); panelPower = new Panel(); numericHibernateAfter = new NumericUpDown(); labelHibernateAfter = new Label(); @@ -147,7 +146,7 @@ namespace GHelper panelServices.Controls.Add(labelServices); panelServices.Controls.Add(buttonServices); panelServices.Dock = DockStyle.Top; - panelServices.Location = new Point(15, 1383); + panelServices.Location = new Point(15, 1321); panelServices.Name = "panelServices"; panelServices.Size = new Size(983, 75); panelServices.TabIndex = 5; @@ -1070,19 +1069,18 @@ namespace GHelper panelSettings.Controls.Add(checkVariBright); panelSettings.Controls.Add(checkGpuApps); panelSettings.Controls.Add(checkGPUFix); - panelSettings.Controls.Add(checkFnLock); panelSettings.Dock = DockStyle.Top; panelSettings.Location = new Point(15, 921); panelSettings.Name = "panelSettings"; panelSettings.Padding = new Padding(20, 5, 11, 5); - panelSettings.Size = new Size(983, 388); + panelSettings.Size = new Size(983, 346); panelSettings.TabIndex = 3; // // checkAutoToggleClamshellMode // checkAutoToggleClamshellMode.AutoSize = true; checkAutoToggleClamshellMode.Dock = DockStyle.Top; - checkAutoToggleClamshellMode.Location = new Point(20, 341); + checkAutoToggleClamshellMode.Location = new Point(20, 299); checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode"; checkAutoToggleClamshellMode.Padding = new Padding(3); checkAutoToggleClamshellMode.Size = new Size(952, 42); @@ -1094,7 +1092,7 @@ namespace GHelper // checkAutoApplyWindowsPowerMode.AutoSize = true; checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top; - checkAutoApplyWindowsPowerMode.Location = new Point(20, 299); + checkAutoApplyWindowsPowerMode.Location = new Point(20, 257); checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 3, 4, 3); checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode"; checkAutoApplyWindowsPowerMode.Padding = new Padding(3); @@ -1107,7 +1105,7 @@ namespace GHelper // checkTopmost.AutoSize = true; checkTopmost.Dock = DockStyle.Top; - checkTopmost.Location = new Point(20, 257); + checkTopmost.Location = new Point(20, 215); checkTopmost.Margin = new Padding(4, 3, 4, 3); checkTopmost.Name = "checkTopmost"; checkTopmost.Padding = new Padding(3); @@ -1120,7 +1118,7 @@ namespace GHelper // checkNoOverdrive.AutoSize = true; checkNoOverdrive.Dock = DockStyle.Top; - checkNoOverdrive.Location = new Point(20, 215); + checkNoOverdrive.Location = new Point(20, 173); checkNoOverdrive.Margin = new Padding(4, 3, 4, 3); checkNoOverdrive.Name = "checkNoOverdrive"; checkNoOverdrive.Padding = new Padding(3); @@ -1133,7 +1131,7 @@ namespace GHelper // checkUSBC.AutoSize = true; checkUSBC.Dock = DockStyle.Top; - checkUSBC.Location = new Point(20, 173); + checkUSBC.Location = new Point(20, 131); checkUSBC.Margin = new Padding(4, 3, 4, 3); checkUSBC.Name = "checkUSBC"; checkUSBC.Padding = new Padding(3); @@ -1146,7 +1144,7 @@ namespace GHelper // checkVariBright.AutoSize = true; checkVariBright.Dock = DockStyle.Top; - checkVariBright.Location = new Point(20, 131); + checkVariBright.Location = new Point(20, 89); checkVariBright.Margin = new Padding(4, 3, 4, 3); checkVariBright.Name = "checkVariBright"; checkVariBright.Padding = new Padding(3); @@ -1159,7 +1157,7 @@ namespace GHelper // checkGpuApps.AutoSize = true; checkGpuApps.Dock = DockStyle.Top; - checkGpuApps.Location = new Point(20, 89); + checkGpuApps.Location = new Point(20, 47); checkGpuApps.Margin = new Padding(4, 3, 4, 3); checkGpuApps.Name = "checkGpuApps"; checkGpuApps.Padding = new Padding(3); @@ -1172,7 +1170,7 @@ namespace GHelper // checkGPUFix.AutoSize = true; checkGPUFix.Dock = DockStyle.Top; - checkGPUFix.Location = new Point(20, 47); + checkGPUFix.Location = new Point(20, 5); checkGPUFix.Margin = new Padding(4, 3, 4, 3); checkGPUFix.Name = "checkGPUFix"; checkGPUFix.Padding = new Padding(3); @@ -1181,29 +1179,15 @@ namespace GHelper checkGPUFix.Text = "Enable GPU on shutdown (prevents issue with Eco mode)"; checkGPUFix.UseVisualStyleBackColor = true; // - // checkFnLock - // - checkFnLock.AutoSize = true; - checkFnLock.Dock = DockStyle.Top; - checkFnLock.Location = new Point(20, 5); - checkFnLock.Margin = new Padding(4, 3, 4, 3); - checkFnLock.MaximumSize = new Size(800, 0); - checkFnLock.Name = "checkFnLock"; - checkFnLock.Padding = new Padding(3); - checkFnLock.Size = new Size(800, 42); - checkFnLock.TabIndex = 1; - checkFnLock.Text = "Process Fn+F hotkeys without Fn"; - checkFnLock.UseVisualStyleBackColor = true; - // // panelPower // panelPower.Controls.Add(numericHibernateAfter); panelPower.Controls.Add(labelHibernateAfter); panelPower.Controls.Add(pictureHibernate); panelPower.Dock = DockStyle.Top; - panelPower.Location = new Point(15, 1309); + panelPower.Location = new Point(15, 1267); panelPower.Name = "panelPower"; - panelPower.Size = new Size(983, 74); + panelPower.Size = new Size(983, 54); panelPower.TabIndex = 4; // // numericHibernateAfter @@ -1211,7 +1195,7 @@ namespace GHelper numericHibernateAfter.AccessibleName = "Minutes till Hibernation in sleep"; numericHibernateAfter.Anchor = AnchorStyles.Top | AnchorStyles.Right; numericHibernateAfter.Increment = new decimal(new int[] { 10, 0, 0, 0 }); - numericHibernateAfter.Location = new Point(810, 21); + numericHibernateAfter.Location = new Point(810, 7); numericHibernateAfter.Margin = new Padding(4, 3, 4, 3); numericHibernateAfter.Maximum = new decimal(new int[] { 3000000, 0, 0, 0 }); numericHibernateAfter.Name = "numericHibernateAfter"; @@ -1221,7 +1205,7 @@ namespace GHelper // labelHibernateAfter // labelHibernateAfter.AutoSize = true; - labelHibernateAfter.Location = new Point(59, 21); + labelHibernateAfter.Location = new Point(59, 10); labelHibernateAfter.Margin = new Padding(4, 0, 4, 0); labelHibernateAfter.Name = "labelHibernateAfter"; labelHibernateAfter.Size = new Size(457, 32); @@ -1232,7 +1216,7 @@ namespace GHelper // pictureHibernate.BackgroundImage = Resources.icons8_hibernate_32; pictureHibernate.BackgroundImageLayout = ImageLayout.Zoom; - pictureHibernate.Location = new Point(20, 21); + pictureHibernate.Location = new Point(20, 10); pictureHibernate.Name = "pictureHibernate"; pictureHibernate.Size = new Size(32, 32); pictureHibernate.TabIndex = 22; @@ -1370,7 +1354,6 @@ namespace GHelper private CheckBox checkUSBC; private CheckBox checkVariBright; private CheckBox checkGpuApps; - private CheckBox checkFnLock; private PictureBox pictureBacklight; private Label labelBacklightTitle; private PictureBox pictureService; diff --git a/app/Extra.cs b/app/Extra.cs index 6e10a72b..5502e9fa 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -119,7 +119,6 @@ namespace GHelper checkTopmost.Text = Properties.Strings.WindowTop; checkUSBC.Text = Properties.Strings.OptimizedUSBC; checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan; - checkFnLock.Text = Properties.Strings.FnLock; checkAutoToggleClamshellMode.Text = Properties.Strings.ToggleClamshellMode; labelBacklightKeyboard.Text = Properties.Strings.Keyboard; @@ -313,11 +312,7 @@ namespace GHelper checkGpuApps.Checked = AppConfig.Is("kill_gpu_apps"); checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged; - checkFnLock.Checked = AppConfig.Is("fn_lock"); - checkFnLock.CheckedChanged += CheckFnLock_CheckedChanged; ; - pictureHelp.Click += PictureHelp_Click; - buttonServices.Click += ButtonServices_Click; pictureLog.Click += PictureLog_Click; @@ -480,15 +475,6 @@ namespace GHelper } } - private void CheckFnLock_CheckedChanged(object? sender, EventArgs e) - { - int fnLock = checkFnLock.Checked ? 1 : 0; - AppConfig.Set("fn_lock", fnLock); - Program.acpi.DeviceSet(AsusACPI.FnLock, (fnLock == 1) ? 0 : 1, "FnLock"); - - Program.inputDispatcher.RegisterKeys(); - } - private void CheckGpuApps_CheckedChanged(object? sender, EventArgs e) { AppConfig.Set("kill_gpu_apps", (checkGpuApps.Checked ? 1 : 0)); diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs index 75a2e880..96ace32d 100644 --- a/app/Input/InputDispatcher.cs +++ b/app/Input/InputDispatcher.cs @@ -401,7 +401,7 @@ namespace GHelper.Input } } - static void ToggleFnLock() + public static void ToggleFnLock() { int fnLock = AppConfig.Is("fn_lock") ? 0 : 1; AppConfig.Set("fn_lock", fnLock); @@ -411,6 +411,8 @@ namespace GHelper.Input else Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys); + Program.settingsForm.BeginInvoke(Program.settingsForm.VisualiseFnLock); + Program.toast.RunToast("Fn-Lock " + (fnLock == 1 ? "On" : "Off"), ToastIcon.FnLock); } diff --git a/app/Program.cs b/app/Program.cs index 9b7c9334..a100adfa 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -128,6 +128,7 @@ namespace GHelper private static void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) { gpuControl.StandardModeFix(); + BatteryControl.SetBatteryChargeLimit(); } private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e) diff --git a/app/Settings.Designer.cs b/app/Settings.Designer.cs index ca7d1df8..429298f7 100644 --- a/app/Settings.Designer.cs +++ b/app/Settings.Designer.cs @@ -94,6 +94,7 @@ namespace GHelper buttonKeyboardColor = new RButton(); comboKeyboard = new RComboBox(); panelKeyboardTitle = new Panel(); + buttonFnLock = new RButton(); pictureKeyboard = new PictureBox(); labelKeyboard = new Label(); panelVersion = new Panel(); @@ -1173,15 +1174,37 @@ namespace GHelper // // panelKeyboardTitle // + panelKeyboardTitle.Controls.Add(buttonFnLock); panelKeyboardTitle.Controls.Add(pictureKeyboard); panelKeyboardTitle.Controls.Add(labelKeyboard); panelKeyboardTitle.Dock = DockStyle.Top; panelKeyboardTitle.Location = new Point(20, 20); - panelKeyboardTitle.Margin = new Padding(4); + panelKeyboardTitle.Margin = new Padding(0); panelKeyboardTitle.Name = "panelKeyboardTitle"; + panelKeyboardTitle.Padding = new Padding(0, 2, 4, 2); panelKeyboardTitle.Size = new Size(787, 40); panelKeyboardTitle.TabIndex = 40; // + // buttonFnLock + // + buttonFnLock.Activated = false; + buttonFnLock.BackColor = SystemColors.ControlLight; + buttonFnLock.BorderColor = Color.Transparent; + buttonFnLock.BorderRadius = 2; + buttonFnLock.Dock = DockStyle.Right; + buttonFnLock.FlatAppearance.BorderSize = 0; + buttonFnLock.FlatStyle = FlatStyle.Flat; + buttonFnLock.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold, GraphicsUnit.Point); + buttonFnLock.ForeColor = SystemColors.ControlDark; + buttonFnLock.Location = new Point(676, 2); + buttonFnLock.Margin = new Padding(0); + buttonFnLock.Name = "buttonFnLock"; + buttonFnLock.Secondary = true; + buttonFnLock.Size = new Size(107, 36); + buttonFnLock.TabIndex = 4; + buttonFnLock.Text = "FN-Lock"; + buttonFnLock.UseVisualStyleBackColor = false; + // // pictureKeyboard // pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_32__1_; @@ -1197,7 +1220,7 @@ namespace GHelper // labelKeyboard.AutoSize = true; labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelKeyboard.Location = new Point(44, 0); + labelKeyboard.Location = new Point(40, -2); labelKeyboard.Margin = new Padding(8, 0, 8, 0); labelKeyboard.Name = "labelKeyboard"; labelKeyboard.Size = new Size(210, 32); @@ -1526,5 +1549,6 @@ namespace GHelper private RButton buttonKeyboard; private RButton buttonUpdates; private Label labelCharge; + private RButton buttonFnLock; } } \ No newline at end of file diff --git a/app/Settings.cs b/app/Settings.cs index 68cb8dd0..8a65c637 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -196,9 +196,13 @@ namespace GHelper this.Resize += SettingsForm_Resize; SetContextMenu(); + VisualiseFnLock(); + buttonFnLock.Click += ButtonFnLock_Click; + panelPerformance.Focus(); } + private void SettingsForm_Resize(object? sender, EventArgs e) { Left = Screen.FromControl(this).WorkingArea.Width - 10 - Width; @@ -622,7 +626,7 @@ namespace GHelper { AsusUSB.Mode = AppConfig.Get("aura_mode"); AsusUSB.Speed = AppConfig.Get("aura_speed"); - AsusUSB.SetColor(AppConfig.Get("aura_color", Color.Red.ToArgb())); + AsusUSB.SetColor(AppConfig.Get("aura_color")); AsusUSB.SetColor2(AppConfig.Get("aura_color2")); comboKeyboard.DropDownStyle = ComboBoxStyle.DropDownList; @@ -1194,6 +1198,28 @@ namespace GHelper } + + public void VisualiseFnLock() + { + + if (AppConfig.Is("fn_lock")) + { + buttonFnLock.BackColor = colorStandard; + buttonFnLock.ForeColor = SystemColors.ControlLightLight; + } + else + { + buttonFnLock.BackColor = buttonSecond; + buttonFnLock.ForeColor = SystemColors.ControlDark; + } + } + + + private void ButtonFnLock_Click(object? sender, EventArgs e) + { + InputDispatcher.ToggleFnLock(); + } + } diff --git a/app/Settings.resx b/app/Settings.resx index a395bffc..af32865e 100644 --- a/app/Settings.resx +++ b/app/Settings.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceReader, System.Windows.Forms, ... System.Resources.ResXResourceWriter, System.Windows.Forms, ... this is my long stringthis is a comment - Blue + Blue [base64 mime encoded serialized .NET Framework object]