From 8032ea3fc714d19fca2aa7592c18a08d5270e867 Mon Sep 17 00:00:00 2001 From: seerge Date: Thu, 16 Mar 2023 15:39:25 +0100 Subject: [PATCH] UI tweaks --- Aura.cs | 20 +++++------- GHelper.csproj | 2 +- RoundedButton.cs | 77 ++++++++++++++++++++++++++++++++++++++++++++ Settings.Designer.cs | 65 +++++++++++++++++++++++++------------ Settings.cs | 60 ++++++++++++++++++---------------- stop-asus-sv.bat | 2 ++ 6 files changed, 165 insertions(+), 61 deletions(-) create mode 100644 RoundedButton.cs diff --git a/Aura.cs b/Aura.cs index 9cab2214..0407b372 100644 --- a/Aura.cs +++ b/Aura.cs @@ -43,7 +43,7 @@ public class Aura { HidDevice[] HidDeviceList; - int[] deviceIds = { 0x1854, 0x1869, 0x1866, 0x19b6 }; + int[] deviceIds = { 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0 }; HidDeviceList = HidDevices.Enumerate(0x0b05, deviceIds).ToArray(); @@ -63,18 +63,14 @@ public class Aura foreach (HidDevice device in HidDeviceList) { - if (device.IsConnected) + if (device.IsConnected && device.Description.Contains("HID")) { - if (device.Description.IndexOf("HID") >= 0) - { - device.OpenDevice(); - byte[] msg = AuraMessage(Mode, Color1, Color2, Speed); - device.Write(msg); - device.Write(MESSAGE_SET); - device.Write(MESSAGE_APPLY); - device.CloseDevice(); - } - + device.OpenDevice(); + byte[] msg = AuraMessage(Mode, Color1, Color2, Speed); + device.Write(msg); + device.Write(MESSAGE_SET); + device.Write(MESSAGE_APPLY); + device.CloseDevice(); } } diff --git a/GHelper.csproj b/GHelper.csproj index 8aa824ce..357b90d7 100644 --- a/GHelper.csproj +++ b/GHelper.csproj @@ -16,7 +16,7 @@ x64 False True - 0.28 + 0.29 diff --git a/RoundedButton.cs b/RoundedButton.cs new file mode 100644 index 00000000..a210a543 --- /dev/null +++ b/RoundedButton.cs @@ -0,0 +1,77 @@ +using System.ComponentModel; +using System.Drawing.Drawing2D; + +namespace CustomControls +{ + public class RoundedButton : Button + { + //Fields + private int borderSize = 5; + private int borderRadius = 5; + private bool activated = false; + private Color borderColor = Color.Transparent; + + public Color BorderColor + { + get { return borderColor; } + set + { + borderColor = value; + } + } + + + public bool Activated + { + get { return activated; } + set + { + if (activated != value) + this.Invalidate(); + activated = value; + } + } + + public RoundedButton() + { + this.FlatStyle = FlatStyle.Flat; + this.FlatAppearance.BorderSize = 0; + } + + private GraphicsPath GetFigurePath(Rectangle rect, int radius) + { + GraphicsPath path = new GraphicsPath(); + float curveSize = radius * 2F; + + path.StartFigure(); + path.AddArc(rect.X, rect.Y, curveSize, curveSize, 180, 90); + path.AddArc(rect.Right - curveSize, rect.Y, curveSize, curveSize, 270, 90); + path.AddArc(rect.Right - curveSize, rect.Bottom - curveSize, curveSize, curveSize, 0, 90); + path.AddArc(rect.X, rect.Bottom - curveSize, curveSize, curveSize, 90, 90); + path.CloseFigure(); + return path; + } + + protected override void OnPaint(PaintEventArgs pevent) + { + base.OnPaint(pevent); + + Rectangle rectSurface = this.ClientRectangle; + Rectangle rectBorder = Rectangle.Inflate(rectSurface, -borderSize, -borderSize); + + Color borderDrawColor = activated ? borderColor : Color.Transparent; + + using (GraphicsPath pathSurface = GetFigurePath(rectSurface, borderRadius+borderSize)) + using (GraphicsPath pathBorder = GetFigurePath(rectBorder, borderRadius)) + using (Pen penSurface = new Pen(this.Parent.BackColor, borderSize)) + using (Pen penBorder = new Pen(borderDrawColor, borderSize)) + { + pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + this.Region = new Region(pathSurface); + pevent.Graphics.DrawPath(penSurface, pathSurface); + pevent.Graphics.DrawPath(penBorder, pathBorder); + } + } + + } +} diff --git a/Settings.Designer.cs b/Settings.Designer.cs index 45c9e8e5..8b0bea00 100644 --- a/Settings.Designer.cs +++ b/Settings.Designer.cs @@ -1,4 +1,6 @@ -namespace GHelper +using CustomControls; + +namespace GHelper { partial class SettingsForm { @@ -52,23 +54,23 @@ labelPerf = new Label(); labelCPUFan = new Label(); tablePerf = new TableLayoutPanel(); - buttonTurbo = new Button(); - buttonBalanced = new Button(); - buttonSilent = new Button(); + buttonTurbo = new RoundedButton(); + buttonBalanced = new RoundedButton(); + buttonSilent = new RoundedButton(); panelGPU = new Panel(); checkGPU = new CheckBox(); pictureGPU = new PictureBox(); labelGPU = new Label(); labelGPUFan = new Label(); tableGPU = new TableLayoutPanel(); - buttonUltimate = new Button(); - buttonStandard = new Button(); - buttonEco = new Button(); + buttonUltimate = new RoundedButton(); + buttonStandard = new RoundedButton(); + buttonEco = new RoundedButton(); panelScreen = new Panel(); checkScreen = new CheckBox(); tableScreen = new TableLayoutPanel(); - button120Hz = new Button(); - button60Hz = new Button(); + button120Hz = new RoundedButton(); + button60Hz = new RoundedButton(); pictureScreen = new PictureBox(); labelSreen = new Label(); panelKeyboard = new Panel(); @@ -402,11 +404,14 @@ // // buttonTurbo // + buttonTurbo.Activated = false; buttonTurbo.BackColor = SystemColors.ControlLightLight; + buttonTurbo.BorderColor = Color.Transparent; buttonTurbo.Dock = DockStyle.Fill; buttonTurbo.FlatAppearance.BorderColor = Color.FromArgb(192, 0, 0); buttonTurbo.FlatAppearance.BorderSize = 0; buttonTurbo.FlatStyle = FlatStyle.Flat; + buttonTurbo.ForeColor = SystemColors.ControlText; buttonTurbo.Location = new Point(464, 12); buttonTurbo.Margin = new Padding(8, 12, 8, 12); buttonTurbo.Name = "buttonTurbo"; @@ -417,11 +422,14 @@ // // buttonBalanced // + buttonBalanced.Activated = false; buttonBalanced.BackColor = SystemColors.ControlLightLight; + buttonBalanced.BorderColor = Color.Transparent; buttonBalanced.Dock = DockStyle.Fill; buttonBalanced.FlatAppearance.BorderColor = Color.FromArgb(0, 0, 192); buttonBalanced.FlatAppearance.BorderSize = 0; buttonBalanced.FlatStyle = FlatStyle.Flat; + buttonBalanced.ForeColor = SystemColors.ControlText; buttonBalanced.Location = new Point(236, 12); buttonBalanced.Margin = new Padding(8, 12, 8, 12); buttonBalanced.Name = "buttonBalanced"; @@ -432,12 +440,15 @@ // // buttonSilent // + buttonSilent.Activated = false; buttonSilent.BackColor = SystemColors.ControlLightLight; + buttonSilent.BorderColor = Color.Transparent; buttonSilent.CausesValidation = false; buttonSilent.Dock = DockStyle.Fill; buttonSilent.FlatAppearance.BorderColor = Color.FromArgb(0, 192, 192); buttonSilent.FlatAppearance.BorderSize = 0; buttonSilent.FlatStyle = FlatStyle.Flat; + buttonSilent.ForeColor = SystemColors.ControlText; buttonSilent.Location = new Point(8, 12); buttonSilent.Margin = new Padding(8, 12, 8, 12); buttonSilent.Name = "buttonSilent"; @@ -527,10 +538,13 @@ // // buttonUltimate // + buttonUltimate.Activated = false; buttonUltimate.BackColor = SystemColors.ControlLightLight; + buttonUltimate.BorderColor = Color.Transparent; buttonUltimate.Dock = DockStyle.Fill; buttonUltimate.FlatAppearance.BorderSize = 0; buttonUltimate.FlatStyle = FlatStyle.Flat; + buttonUltimate.ForeColor = SystemColors.ControlText; buttonUltimate.Location = new Point(464, 12); buttonUltimate.Margin = new Padding(8, 12, 8, 12); buttonUltimate.Name = "buttonUltimate"; @@ -541,10 +555,13 @@ // // buttonStandard // + buttonStandard.Activated = false; buttonStandard.BackColor = SystemColors.ControlLightLight; + buttonStandard.BorderColor = Color.Transparent; buttonStandard.Dock = DockStyle.Fill; buttonStandard.FlatAppearance.BorderSize = 0; buttonStandard.FlatStyle = FlatStyle.Flat; + buttonStandard.ForeColor = SystemColors.ControlText; buttonStandard.Location = new Point(236, 12); buttonStandard.Margin = new Padding(8, 12, 8, 12); buttonStandard.Name = "buttonStandard"; @@ -555,11 +572,14 @@ // // buttonEco // + buttonEco.Activated = false; buttonEco.BackColor = SystemColors.ControlLightLight; + buttonEco.BorderColor = Color.Transparent; buttonEco.CausesValidation = false; buttonEco.Dock = DockStyle.Fill; buttonEco.FlatAppearance.BorderSize = 0; buttonEco.FlatStyle = FlatStyle.Flat; + buttonEco.ForeColor = SystemColors.ControlText; buttonEco.Location = new Point(8, 12); buttonEco.Margin = new Padding(8, 12, 8, 12); buttonEco.Name = "buttonEco"; @@ -614,11 +634,13 @@ // // button120Hz // + button120Hz.Activated = false; button120Hz.BackColor = SystemColors.ControlLightLight; + button120Hz.BorderColor = Color.Transparent; button120Hz.Dock = DockStyle.Fill; - button120Hz.FlatAppearance.BorderColor = SystemColors.ActiveBorder; button120Hz.FlatAppearance.BorderSize = 0; button120Hz.FlatStyle = FlatStyle.Flat; + button120Hz.ForeColor = SystemColors.ControlText; button120Hz.Location = new Point(236, 12); button120Hz.Margin = new Padding(8, 12, 8, 12); button120Hz.Name = "button120Hz"; @@ -629,10 +651,11 @@ // // button60Hz // + button60Hz.Activated = false; button60Hz.BackColor = SystemColors.ControlLightLight; + button60Hz.BorderColor = Color.Transparent; button60Hz.CausesValidation = false; button60Hz.Dock = DockStyle.Fill; - button60Hz.FlatAppearance.BorderColor = SystemColors.ActiveBorder; button60Hz.FlatAppearance.BorderSize = 0; button60Hz.FlatStyle = FlatStyle.Flat; button60Hz.ForeColor = SystemColors.ControlText; @@ -774,10 +797,10 @@ // pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_48; pictureKeyboard.BackgroundImageLayout = ImageLayout.Zoom; - pictureKeyboard.Location = new Point(25, 16); + pictureKeyboard.Location = new Point(27, 16); pictureKeyboard.Margin = new Padding(4, 2, 4, 2); pictureKeyboard.Name = "pictureKeyboard"; - pictureKeyboard.Size = new Size(36, 36); + pictureKeyboard.Size = new Size(32, 36); pictureKeyboard.TabIndex = 33; pictureKeyboard.TabStop = false; // @@ -868,23 +891,23 @@ private Label labelPerf; private Label labelCPUFan; private TableLayoutPanel tablePerf; - private Button buttonTurbo; - private Button buttonBalanced; - private Button buttonSilent; + private RoundedButton buttonTurbo; + private RoundedButton buttonBalanced; + private RoundedButton buttonSilent; private Panel panelGPU; private CheckBox checkGPU; private PictureBox pictureGPU; private Label labelGPU; private Label labelGPUFan; private TableLayoutPanel tableGPU; - private Button buttonUltimate; - private Button buttonStandard; - private Button buttonEco; + private RoundedButton buttonUltimate; + private RoundedButton buttonStandard; + private RoundedButton buttonEco; private Panel panelScreen; private CheckBox checkScreen; private TableLayoutPanel tableScreen; - private Button button120Hz; - private Button button60Hz; + private RoundedButton button120Hz; + private RoundedButton button60Hz; private PictureBox pictureScreen; private Label labelSreen; private Panel panelKeyboard; diff --git a/Settings.cs b/Settings.cs index bfdd7a77..4f9ddafd 100644 --- a/Settings.cs +++ b/Settings.cs @@ -14,9 +14,6 @@ namespace GHelper static Color colorStandard = Color.FromArgb(255, 58, 174, 239); static Color colorTurbo = Color.FromArgb(255, 255, 32, 32); - static int buttonInactive = 0; - static int buttonActive = 5; - static System.Timers.Timer aTimer = default!; static System.Timers.Timer matrixTimer = default!; @@ -36,13 +33,16 @@ namespace GHelper FormClosing += SettingsForm_FormClosing; - buttonSilent.FlatAppearance.BorderColor = colorEco; - buttonBalanced.FlatAppearance.BorderColor = colorStandard; - buttonTurbo.FlatAppearance.BorderColor = colorTurbo; + buttonSilent.BorderColor = colorEco; + buttonBalanced.BorderColor = colorStandard; + buttonTurbo.BorderColor = colorTurbo; - buttonEco.FlatAppearance.BorderColor = colorEco; - buttonStandard.FlatAppearance.BorderColor = colorStandard; - buttonUltimate.FlatAppearance.BorderColor = colorTurbo; + buttonEco.BorderColor = colorEco; + buttonStandard.BorderColor = colorStandard; + buttonUltimate.BorderColor = colorTurbo; + + button60Hz.BorderColor = SystemColors.ActiveBorder; + button120Hz.BorderColor = SystemColors.ActiveBorder; buttonSilent.Click += ButtonSilent_Click; buttonBalanced.Click += ButtonBalanced_Click; @@ -599,12 +599,12 @@ namespace GHelper Logger.WriteLine("Screen Overdrive not supported"); } - button60Hz.FlatAppearance.BorderSize = buttonInactive; - button120Hz.FlatAppearance.BorderSize = buttonInactive; + button60Hz.Activated = false; + button120Hz.Activated = false; if (frequency == 60) { - button60Hz.FlatAppearance.BorderSize = buttonActive; + button60Hz.Activated = true; } else { @@ -612,7 +612,7 @@ namespace GHelper maxFrequency = frequency; Program.config.setConfig("max_frequency", maxFrequency); - button120Hz.FlatAppearance.BorderSize = buttonActive; + button120Hz.Activated = true; } if (maxFrequency > 60) @@ -779,22 +779,23 @@ namespace GHelper public void SetPerformanceMode(int PerformanceMode = ASUSWmi.PerformanceBalanced, bool notify = false) { - buttonSilent.FlatAppearance.BorderSize = buttonInactive; - buttonBalanced.FlatAppearance.BorderSize = buttonInactive; - buttonTurbo.FlatAppearance.BorderSize = buttonInactive; + + buttonSilent.Activated = false; + buttonBalanced.Activated = false; + buttonTurbo.Activated = false; switch (PerformanceMode) { case ASUSWmi.PerformanceSilent: - buttonSilent.FlatAppearance.BorderSize = buttonActive; + buttonSilent.Activated = true; perfName = "Silent"; break; case ASUSWmi.PerformanceTurbo: - buttonTurbo.FlatAppearance.BorderSize = buttonActive; + buttonTurbo.Activated = true; perfName = "Turbo"; break; default: - buttonBalanced.FlatAppearance.BorderSize = buttonActive; + buttonBalanced.Activated = true; PerformanceMode = ASUSWmi.PerformanceBalanced; perfName = "Balanced"; break; @@ -943,7 +944,9 @@ namespace GHelper if (eco == 1) { - foreach (var process in Process.GetProcessesByName("EADesktop")) process.Kill(); + string[] tokill = { "EADesktop" }; + foreach (string kill in tokill) + foreach (var process in Process.GetProcessesByName(kill)) process.Kill(); } Program.wmi.DeviceSet(ASUSWmi.GPUEco, eco); @@ -954,7 +957,10 @@ namespace GHelper Thread.Sleep(500); AutoScreen(SystemInformation.PowerStatus.PowerLineStatus); }); - }).Start(); + }) + { + + }.Start(); } @@ -1037,24 +1043,24 @@ namespace GHelper GPUMode = Program.config.getConfig("gpu_mode"); } - buttonEco.FlatAppearance.BorderSize = buttonInactive; - buttonStandard.FlatAppearance.BorderSize = buttonInactive; - buttonUltimate.FlatAppearance.BorderSize = buttonInactive; + buttonEco.Activated = false; + buttonStandard.Activated = false; + buttonUltimate.Activated = false; switch (GPUMode) { case ASUSWmi.GPUModeEco: - buttonEco.FlatAppearance.BorderSize = buttonActive; + buttonEco.Activated = true; labelGPU.Text = "GPU Mode: iGPU only"; Program.trayIcon.Icon = GHelper.Properties.Resources.eco; break; case ASUSWmi.GPUModeUltimate: - buttonUltimate.FlatAppearance.BorderSize = buttonActive; + buttonUltimate.Activated = true; labelGPU.Text = "GPU Mode: dGPU exclusive"; Program.trayIcon.Icon = GHelper.Properties.Resources.ultimate; break; default: - buttonStandard.FlatAppearance.BorderSize = buttonActive; + buttonStandard.Activated = true; labelGPU.Text = "GPU Mode: iGPU + dGPU"; Program.trayIcon.Icon = GHelper.Properties.Resources.standard; break; diff --git a/stop-asus-sv.bat b/stop-asus-sv.bat index 677e1cdc..3f3437bb 100644 --- a/stop-asus-sv.bat +++ b/stop-asus-sv.bat @@ -5,6 +5,7 @@ sc STOP ASUSSoftwareManager sc STOP ASUSSwitch sc STOP ASUSSystemAnalysis sc STOP ASUSSystemDiagnosis +sc STOP ArmouryCrateControlInterface sc DELETE AsusAppService sc DELETE ASUSLinkNear @@ -13,3 +14,4 @@ sc DELETE ASUSSoftwareManager sc DELETE ASUSSwitch sc DELETE ASUSSystemAnalysis sc DELETE ASUSSystemDiagnosis +sc DELETE ArmouryCrateControlInterface