diff --git a/Aura.cs b/Aura.cs index 7ad3dcb7..68c12817 100644 --- a/Aura.cs +++ b/Aura.cs @@ -12,9 +12,9 @@ public class Aura public const int Rainbow = 3; public const int Dingding = 10; - public const int SpeedSlow = 0; - public const int SpeedMedium = 1; - public const int SpeedHigh = 2; + public const int SpeedSlow = 0xe1; + public const int SpeedMedium = 0xeb; + public const int SpeedHigh = 0xf5; public static int Mode = Static; public static Color Color1 = Color.White; diff --git a/Fans.Designer.cs b/Fans.Designer.cs index 71edd27c..9f92e92b 100644 --- a/Fans.Designer.cs +++ b/Fans.Designer.cs @@ -44,13 +44,13 @@ chartCPU.ChartAreas.Add(chartArea1); chartCPU.Location = new Point(16, 13); chartCPU.Name = "chartCPU"; - chartCPU.Size = new Size(900, 446); + chartCPU.Size = new Size(900, 480); chartCPU.TabIndex = 0; chartCPU.Text = "chartCPU"; // // buttonApply // - buttonApply.Location = new Point(662, 944); + buttonApply.Location = new Point(661, 1016); buttonApply.Name = "buttonApply"; buttonApply.Size = new Size(254, 46); buttonApply.TabIndex = 1; @@ -59,7 +59,7 @@ // // buttonReset // - buttonReset.Location = new Point(402, 944); + buttonReset.Location = new Point(16, 1016); buttonReset.Name = "buttonReset"; buttonReset.Size = new Size(254, 46); buttonReset.TabIndex = 2; @@ -70,9 +70,9 @@ // chartArea2.Name = "ChartArea1"; chartGPU.ChartAreas.Add(chartArea2); - chartGPU.Location = new Point(16, 477); + chartGPU.Location = new Point(16, 513); chartGPU.Name = "chartGPU"; - chartGPU.Size = new Size(900, 448); + chartGPU.Size = new Size(900, 480); chartGPU.TabIndex = 3; chartGPU.Text = "chart1"; // @@ -80,7 +80,7 @@ // AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(940, 1020); + ClientSize = new Size(940, 1089); Controls.Add(chartGPU); Controls.Add(buttonReset); Controls.Add(buttonApply); diff --git a/Fans.cs b/Fans.cs index c701b293..84c8f6f3 100644 --- a/Fans.cs +++ b/Fans.cs @@ -35,6 +35,9 @@ namespace GHelper chart.ChartAreas[0].AxisY.Minimum = 0; chart.ChartAreas[0].AxisY.Maximum = 100; + chart.ChartAreas[0].AxisX.Interval = 10; + chart.ChartAreas[0].AxisY.Interval = 10; + if (chart.Legends.Count > 0) chart.Legends[0].Enabled = false; @@ -43,7 +46,7 @@ namespace GHelper private void Fans_Shown(object? sender, EventArgs e) { Top = Program.settingsForm.Top; - Left = Program.settingsForm.Left - Width - 10; + Left = Program.settingsForm.Left - Width - 5; } public Fans() @@ -194,18 +197,33 @@ namespace GHelper if (curPoint != null) { + Series s = hit.Series; - double dx = ax.PixelPositionToValue(e.X); - double dy = ay.PixelPositionToValue(e.Y); + double dx, dy, dymin; - if (dx < 0) dx = 0; - if (dx > 100) dx = 100; + try + { + dx = ax.PixelPositionToValue(e.X); + dy = ay.PixelPositionToValue(e.Y); - if (dy < 0) dy = 0; - if (dy > 100) dy = 100; + if (dx < 20) dx = 20; + if (dx > 100) dx = 100; - curPoint.XValue = dx; - curPoint.YValues[0] = dy; + if (dy < 0) dy = 0; + if (dy > 100) dy = 100; + + dymin = (dx - 60) * 1.2; + + if (dy < dymin) dy = dymin; + + curPoint.XValue = dx; + curPoint.YValues[0] = dy; + + } + catch + { + Debug.WriteLine(e.Y); + } } } } diff --git a/GHelper.csproj b/GHelper.csproj index c7c962a3..0c179617 100644 --- a/GHelper.csproj +++ b/GHelper.csproj @@ -37,6 +37,7 @@ + diff --git a/Keyboard.Designer.cs b/Keyboard.Designer.cs new file mode 100644 index 00000000..e0c58709 --- /dev/null +++ b/Keyboard.Designer.cs @@ -0,0 +1,139 @@ +namespace GHelper +{ + partial class Keyboard + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + groupBox1 = new GroupBox(); + textM4 = new TextBox(); + textM3 = new TextBox(); + comboM4 = new ComboBox(); + labelM4 = new Label(); + comboM3 = new ComboBox(); + labelM3 = new Label(); + groupBox1.SuspendLayout(); + SuspendLayout(); + // + // groupBox1 + // + groupBox1.Controls.Add(textM4); + groupBox1.Controls.Add(textM3); + groupBox1.Controls.Add(comboM4); + groupBox1.Controls.Add(labelM4); + groupBox1.Controls.Add(comboM3); + groupBox1.Controls.Add(labelM3); + groupBox1.Dock = DockStyle.Top; + groupBox1.Location = new Point(10, 10); + groupBox1.Name = "groupBox1"; + groupBox1.Size = new Size(751, 196); + groupBox1.TabIndex = 0; + groupBox1.TabStop = false; + groupBox1.Text = "Key Bindings"; + // + // textM4 + // + textM4.Location = new Point(411, 113); + textM4.Name = "textM4"; + textM4.PlaceholderText = "notepad /p \"file.txt\""; + textM4.Size = new Size(320, 39); + textM4.TabIndex = 5; + // + // textM3 + // + textM3.Location = new Point(411, 54); + textM3.Name = "textM3"; + textM3.PlaceholderText = "notepad /p \"file.txt\""; + textM3.Size = new Size(320, 39); + textM3.TabIndex = 4; + // + // comboM4 + // + comboM4.FormattingEnabled = true; + comboM4.Items.AddRange(new object[] { "Performance Mode", "Open G-Helper window", "Custom" }); + comboM4.Location = new Point(93, 112); + comboM4.Name = "comboM4"; + comboM4.Size = new Size(312, 40); + comboM4.TabIndex = 3; + // + // labelM4 + // + labelM4.AutoSize = true; + labelM4.Location = new Point(25, 116); + labelM4.Name = "labelM4"; + labelM4.Size = new Size(54, 32); + labelM4.TabIndex = 2; + labelM4.Text = "M4:"; + // + // comboM3 + // + comboM3.FormattingEnabled = true; + comboM3.Items.AddRange(new object[] { "Volume Mute", "Play / Pause", "Toggle Aura", "Custom" }); + comboM3.Location = new Point(93, 54); + comboM3.Name = "comboM3"; + comboM3.Size = new Size(312, 40); + comboM3.TabIndex = 1; + // + // labelM3 + // + labelM3.AutoSize = true; + labelM3.Location = new Point(25, 58); + labelM3.Name = "labelM3"; + labelM3.Size = new Size(54, 32); + labelM3.TabIndex = 0; + labelM3.Text = "M3:"; + // + // Keyboard + // + AutoScaleDimensions = new SizeF(13F, 32F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(771, 858); + Controls.Add(groupBox1); + FormBorderStyle = FormBorderStyle.FixedSingle; + MaximizeBox = false; + MdiChildrenMinimizedAnchorBottom = false; + MinimizeBox = false; + Name = "Keyboard"; + Padding = new Padding(10); + ShowIcon = false; + ShowInTaskbar = false; + Text = "Keyboard"; + groupBox1.ResumeLayout(false); + groupBox1.PerformLayout(); + ResumeLayout(false); + } + + #endregion + + private GroupBox groupBox1; + private Label labelM3; + private ComboBox comboM3; + private ComboBox comboM4; + private Label labelM4; + private TextBox textM4; + private TextBox textM3; + } +} \ No newline at end of file diff --git a/Keyboard.cs b/Keyboard.cs new file mode 100644 index 00000000..da9fc701 --- /dev/null +++ b/Keyboard.cs @@ -0,0 +1,72 @@ +namespace GHelper +{ + public partial class Keyboard : Form + { + public Keyboard() + { + InitializeComponent(); + + comboM3.DropDownStyle = ComboBoxStyle.DropDownList; + comboM3.SelectedIndex = 0; + + comboM4.DropDownStyle = ComboBoxStyle.DropDownList; + comboM4.SelectedIndex = 0; + + comboM3.SelectedValueChanged += ComboM3_SelectedValueChanged; + comboM4.SelectedValueChanged += ComboM4_SelectedValueChanged; + + textM3.TextChanged += TextM3_TextChanged; + textM4.TextChanged += TextM4_TextChanged; + + Shown += Keyboard_Shown; + } + + private void TextM3_TextChanged(object? sender, EventArgs e) + { + if (sender is null) return; + TextBox tb = (TextBox)sender; + Program.config.setConfig("m3_custom", tb.Text); + } + + private void TextM4_TextChanged(object? sender, EventArgs e) + { + if (sender is null) return; + TextBox tb = (TextBox)sender; + Program.config.setConfig("m4_custom", tb.Text); + } + + private void ComboM4_SelectedValueChanged(object? sender, EventArgs e) + { + if (sender is null) return; + ComboBox cmb = (ComboBox)sender; + Program.config.setConfig("m4", cmb.SelectedIndex); + } + + private void ComboM3_SelectedValueChanged(object? sender, EventArgs e) + { + if (sender is null) return; + ComboBox cmb = (ComboBox)sender; + Program.config.setConfig("m3", cmb.SelectedIndex); + } + + private void Keyboard_Shown(object? sender, EventArgs e) + { + + Top = Program.settingsForm.Top; + Left = Program.settingsForm.Left - Width - 5; + + int m3 = Program.config.getConfig("m3"); + int m4 = Program.config.getConfig("m4"); + + if (m3 != -1) + comboM3.SelectedIndex = m3; + + if (m4 != -1) + comboM4.SelectedIndex = m4; + + textM3.Text = Program.config.getConfigString("m3_custom"); + textM4.Text = Program.config.getConfigString("m4_custom"); + + } + } +} diff --git a/Keyboard.resx b/Keyboard.resx new file mode 100644 index 00000000..f298a7be --- /dev/null +++ b/Keyboard.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/NativeMethods.cs b/NativeMethods.cs index 4eb9adc3..c8f5b887 100644 --- a/NativeMethods.cs +++ b/NativeMethods.cs @@ -4,6 +4,22 @@ using System.Runtime.InteropServices; public class NativeMethods { + public const int KEYEVENTF_EXTENDEDKEY = 1; + public const int KEYEVENTF_KEYUP = 2; + + public const int VK_MEDIA_NEXT_TRACK = 0xB0; + public const int VK_MEDIA_PLAY_PAUSE = 0xB3; + public const int VK_MEDIA_PREV_TRACK = 0xB1; + public const int VK_VOLUME_MUTE = 0xAD; + + [DllImport("user32.dll", SetLastError = true)] + public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo); + + public static void KeyPress(int key = VK_MEDIA_PLAY_PAUSE) + { + keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero); + } + [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); diff --git a/OSDBase.cs b/OSDBase.cs index ba80df7e..f1895ee1 100644 --- a/OSDBase.cs +++ b/OSDBase.cs @@ -273,22 +273,7 @@ namespace OSD } #region # Win32 # - internal struct PAINTSTRUCT - { - public IntPtr hdc; - public int fErase; - public Rectangle rcPaint; - public int fRestore; - public int fIncUpdate; - public int Reserved1; - public int Reserved2; - public int Reserved3; - public int Reserved4; - public int Reserved5; - public int Reserved6; - public int Reserved7; - public int Reserved8; - } + [StructLayout(LayoutKind.Sequential)] internal struct POINT { @@ -362,16 +347,12 @@ namespace OSD [DllImport("User32.dll", CharSet = CharSet.Auto)] internal static extern bool AnimateWindow(IntPtr hWnd, uint dwTime, uint dwFlags); [DllImport("User32.dll", CharSet = CharSet.Auto)] - internal static extern IntPtr BeginPaint(IntPtr hWnd, ref PAINTSTRUCT ps); - [DllImport("User32.dll", CharSet = CharSet.Auto)] internal static extern bool ClientToScreen(IntPtr hWnd, ref POINT pt); [DllImport("User32.dll", CharSet = CharSet.Auto)] internal static extern bool DispatchMessage(ref MSG msg); [DllImport("User32.dll", CharSet = CharSet.Auto)] internal static extern bool DrawFocusRect(IntPtr hWnd, ref RECT rect); [DllImport("User32.dll", CharSet = CharSet.Auto)] - internal static extern bool EndPaint(IntPtr hWnd, ref PAINTSTRUCT ps); - [DllImport("User32.dll", CharSet = CharSet.Auto)] internal static extern IntPtr GetDC(IntPtr hWnd); [DllImport("User32.dll", CharSet = CharSet.Auto)] internal static extern IntPtr GetFocus(); diff --git a/Program.cs b/Program.cs index 988f8171..a9870bc3 100644 --- a/Program.cs +++ b/Program.cs @@ -1,8 +1,7 @@ +using System.Reflection; using Microsoft.Win32; using System.Diagnostics; using System.Management; -using System.Runtime.InteropServices; -using System.Security.Principal; using System.Text.Json; @@ -124,7 +123,7 @@ namespace GHelper public static ASUSWmi wmi = new ASUSWmi(); public static AppConfig config = new AppConfig(); - + public static SettingsForm settingsForm = new SettingsForm(); public static ToastForm toast = new ToastForm(); @@ -162,9 +161,31 @@ namespace GHelper private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) { + bool isPlugged = (System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online); + settingsForm.AutoGPUMode(isPlugged ? 1 : 0); + settingsForm.AutoScreen(isPlugged ? 1 : 0); + settingsForm.SetBatteryChargeLimit(config.getConfig("charge_limit")); } + + static void LaunchProcess(string fileName = "") + { + ProcessStartInfo start = new ProcessStartInfo(); + start.FileName = fileName; + start.WindowStyle = ProcessWindowStyle.Hidden; + start.CreateNoWindow = true; + try + { + Process proc = Process.Start(start); + } catch + { + Debug.WriteLine("Failed to run " + fileName); + } + + + } + static void WatcherEventArrived(object sender, EventArrivedEventArgs e) { var collection = (ManagementEventWatcher)sender; @@ -177,14 +198,39 @@ namespace GHelper switch (EventID) { - case 56: // Rog button - case 174: // FN+F5 - - settingsForm.BeginInvoke(delegate + case 124: // M3 + switch (config.getConfig("m3")) { - settingsForm.CyclePerformanceMode(); - }); - + case 1: + NativeMethods.KeyPress(NativeMethods.VK_MEDIA_PLAY_PAUSE); + break; + case 2: + settingsForm.BeginInvoke(settingsForm.CycleAuraMode); + break; + case 3: + LaunchProcess(config.getConfigString("m3_custom")); + break; + default: + NativeMethods.KeyPress(NativeMethods.VK_VOLUME_MUTE); + break; + } + return; + case 56: // M4 / Rog button + switch (config.getConfig("m4")) + { + case 1: + settingsForm.BeginInvoke(SettingsToggle); + break; + case 2: + LaunchProcess(config.getConfigString("m4_custom")); + break; + default: + settingsForm.BeginInvoke(settingsForm.CyclePerformanceMode); + break; + } + return; + case 174: // FN+F5 + settingsForm.BeginInvoke(settingsForm.CyclePerformanceMode); return; case 179: // FN+F4 settingsForm.BeginInvoke(delegate @@ -193,18 +239,22 @@ namespace GHelper }); return; case 87: // Battery + /* settingsForm.BeginInvoke(delegate { settingsForm.AutoGPUMode(0); settingsForm.AutoScreen(0); }); + */ return; case 88: // Plugged + /* settingsForm.BeginInvoke(delegate { settingsForm.AutoScreen(1); settingsForm.AutoGPUMode(1); }); + */ return; } @@ -212,19 +262,22 @@ namespace GHelper } + static void SettingsToggle() + { + if (settingsForm.Visible) + settingsForm.Hide(); + else + { + settingsForm.Show(); + settingsForm.Activate(); + } + } + static void TrayIcon_MouseClick(object? sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left || e.Button == MouseButtons.Right) { - if (settingsForm.Visible) - settingsForm.Hide(); - else - { - settingsForm.Show(); - settingsForm.Activate(); - } - - trayIcon.Icon = trayIcon.Icon; // refreshing icon as it get's blurred when screen resolution changes + SettingsToggle(); } } diff --git a/Settings.Designer.cs b/Settings.Designer.cs index 37ed495d..f2d84ef6 100644 --- a/Settings.Designer.cs +++ b/Settings.Designer.cs @@ -62,6 +62,10 @@ buttonKeyboardColor = new Button(); labelBattery = new Label(); buttonFans = new Button(); + buttonKeyboard = new Button(); + pictureColor = new PictureBox(); + pictureColor2 = new PictureBox(); + labelVersion = new Label(); ((System.ComponentModel.ISupportInitialize)trackBattery).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureBattery).BeginInit(); tableGPU.SuspendLayout(); @@ -71,12 +75,14 @@ ((System.ComponentModel.ISupportInitialize)pictureScreen).BeginInit(); tableScreen.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureColor).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureColor2).BeginInit(); SuspendLayout(); // // checkStartup // checkStartup.AutoSize = true; - checkStartup.Location = new Point(40, 1016); + checkStartup.Location = new Point(33, 1016); checkStartup.Margin = new Padding(4, 2, 4, 2); checkStartup.Name = "checkStartup"; checkStartup.Size = new Size(206, 36); @@ -105,7 +111,7 @@ // labelBatteryTitle.AutoSize = true; labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelBatteryTitle.Location = new Point(76, 870); + labelBatteryTitle.Location = new Point(78, 870); labelBatteryTitle.Margin = new Padding(4, 0, 4, 0); labelBatteryTitle.Name = "labelBatteryTitle"; labelBatteryTitle.Size = new Size(248, 32); @@ -116,7 +122,7 @@ // pictureBattery.BackgroundImage = (Image)resources.GetObject("pictureBattery.BackgroundImage"); pictureBattery.BackgroundImageLayout = ImageLayout.Zoom; - pictureBattery.Location = new Point(32, 868); + pictureBattery.Location = new Point(36, 868); pictureBattery.Margin = new Padding(4, 2, 4, 2); pictureBattery.Name = "pictureBattery"; pictureBattery.Size = new Size(36, 38); @@ -199,7 +205,7 @@ // labelGPU.AutoSize = true; labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelGPU.Location = new Point(76, 264); + labelGPU.Location = new Point(78, 264); labelGPU.Margin = new Padding(4, 0, 4, 0); labelGPU.Name = "labelGPU"; labelGPU.Size = new Size(136, 32); @@ -210,7 +216,7 @@ // pictureGPU.BackgroundImage = (Image)resources.GetObject("pictureGPU.BackgroundImage"); pictureGPU.BackgroundImageLayout = ImageLayout.Zoom; - pictureGPU.Location = new Point(32, 262); + pictureGPU.Location = new Point(36, 262); pictureGPU.Margin = new Padding(4, 2, 4, 2); pictureGPU.Name = "pictureGPU"; pictureGPU.Size = new Size(36, 38); @@ -297,7 +303,7 @@ picturePerf.BackgroundImage = (Image)resources.GetObject("picturePerf.BackgroundImage"); picturePerf.BackgroundImageLayout = ImageLayout.Zoom; picturePerf.InitialImage = null; - picturePerf.Location = new Point(32, 36); + picturePerf.Location = new Point(36, 36); picturePerf.Margin = new Padding(4, 2, 4, 2); picturePerf.Name = "picturePerf"; picturePerf.Size = new Size(36, 38); @@ -308,7 +314,7 @@ // labelPerf.AutoSize = true; labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelPerf.Location = new Point(76, 38); + labelPerf.Location = new Point(78, 38); labelPerf.Margin = new Padding(4, 0, 4, 0); labelPerf.Name = "labelPerf"; labelPerf.Size = new Size(234, 32); @@ -344,7 +350,7 @@ // pictureScreen.BackgroundImage = (Image)resources.GetObject("pictureScreen.BackgroundImage"); pictureScreen.BackgroundImageLayout = ImageLayout.Zoom; - pictureScreen.Location = new Point(32, 496); + pictureScreen.Location = new Point(36, 496); pictureScreen.Margin = new Padding(4, 2, 4, 2); pictureScreen.Name = "pictureScreen"; pictureScreen.Size = new Size(36, 38); @@ -355,7 +361,7 @@ // labelSreen.AutoSize = true; labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelSreen.Location = new Point(76, 496); + labelSreen.Location = new Point(78, 496); labelSreen.Margin = new Padding(4, 0, 4, 0); labelSreen.Name = "labelSreen"; labelSreen.Size = new Size(176, 32); @@ -439,7 +445,7 @@ // pictureBox1.BackgroundImage = Properties.Resources.icons8_keyboard_48; pictureBox1.BackgroundImageLayout = ImageLayout.Zoom; - pictureBox1.Location = new Point(32, 724); + pictureBox1.Location = new Point(36, 724); pictureBox1.Margin = new Padding(4, 2, 4, 2); pictureBox1.Name = "pictureBox1"; pictureBox1.Size = new Size(36, 36); @@ -450,7 +456,7 @@ // label1.AutoSize = true; label1.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - label1.Location = new Point(76, 724); + label1.Location = new Point(78, 724); label1.Margin = new Padding(4, 0, 4, 0); label1.Name = "label1"; label1.Size = new Size(210, 32); @@ -459,15 +465,14 @@ // // comboKeyboard // - comboKeyboard.FlatStyle = FlatStyle.Flat; - comboKeyboard.Font = new Font("Segoe UI", 10F, FontStyle.Regular, GraphicsUnit.Point); + comboKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point); comboKeyboard.FormattingEnabled = true; - comboKeyboard.ItemHeight = 37; + comboKeyboard.ItemHeight = 32; comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Strobe", "Rainbow" }); - comboKeyboard.Location = new Point(36, 777); + comboKeyboard.Location = new Point(32, 778); comboKeyboard.Margin = new Padding(0); comboKeyboard.Name = "comboKeyboard"; - comboKeyboard.Size = new Size(200, 45); + comboKeyboard.Size = new Size(200, 40); comboKeyboard.TabIndex = 24; comboKeyboard.TabStop = false; // @@ -477,14 +482,13 @@ buttonKeyboardColor.BackColor = SystemColors.ButtonHighlight; buttonKeyboardColor.FlatAppearance.BorderColor = Color.Red; buttonKeyboardColor.FlatAppearance.BorderSize = 2; - buttonKeyboardColor.FlatStyle = FlatStyle.Flat; buttonKeyboardColor.ForeColor = SystemColors.ControlText; - buttonKeyboardColor.Location = new Point(256, 775); + buttonKeyboardColor.Location = new Point(255, 774); buttonKeyboardColor.Margin = new Padding(0); buttonKeyboardColor.Name = "buttonKeyboardColor"; - buttonKeyboardColor.Size = new Size(212, 50); + buttonKeyboardColor.Size = new Size(209, 48); buttonKeyboardColor.TabIndex = 25; - buttonKeyboardColor.Text = "Color"; + buttonKeyboardColor.Text = "Color "; buttonKeyboardColor.UseVisualStyleBackColor = false; // // labelBattery @@ -511,11 +515,55 @@ buttonFans.Text = "Fan Profile"; buttonFans.UseVisualStyleBackColor = false; // + // buttonKeyboard + // + buttonKeyboard.Anchor = AnchorStyles.Top | AnchorStyles.Right; + buttonKeyboard.BackColor = SystemColors.ButtonFace; + buttonKeyboard.FlatAppearance.BorderSize = 0; + buttonKeyboard.Location = new Point(480, 773); + buttonKeyboard.Margin = new Padding(4, 2, 4, 2); + buttonKeyboard.Name = "buttonKeyboard"; + buttonKeyboard.Size = new Size(209, 48); + buttonKeyboard.TabIndex = 29; + buttonKeyboard.Text = "Extra"; + buttonKeyboard.UseVisualStyleBackColor = false; + // + // pictureColor + // + pictureColor.Location = new Point(431, 789); + pictureColor.Name = "pictureColor"; + pictureColor.Size = new Size(20, 20); + pictureColor.TabIndex = 30; + pictureColor.TabStop = false; + // + // pictureColor2 + // + pictureColor2.Location = new Point(405, 789); + pictureColor2.Name = "pictureColor2"; + pictureColor2.Size = new Size(20, 20); + pictureColor2.TabIndex = 31; + pictureColor2.TabStop = false; + // + // labelVersion + // + labelVersion.AutoSize = true; + labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point); + labelVersion.ForeColor = SystemColors.ControlDark; + labelVersion.Location = new Point(34, 966); + labelVersion.Name = "labelVersion"; + labelVersion.Size = new Size(44, 32); + labelVersion.TabIndex = 32; + labelVersion.Text = "v.0"; + // // SettingsForm // AutoScaleDimensions = new SizeF(192F, 192F); AutoScaleMode = AutoScaleMode.Dpi; - ClientSize = new Size(730, 1086); + ClientSize = new Size(730, 1089); + Controls.Add(labelVersion); + Controls.Add(pictureColor2); + Controls.Add(pictureColor); + Controls.Add(buttonKeyboard); Controls.Add(buttonFans); Controls.Add(labelBattery); Controls.Add(buttonKeyboardColor); @@ -561,6 +609,8 @@ ((System.ComponentModel.ISupportInitialize)pictureScreen).EndInit(); tableScreen.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureColor).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureColor2).EndInit(); ResumeLayout(false); PerformLayout(); } @@ -599,5 +649,9 @@ private Button buttonKeyboardColor; private Label labelBattery; private Button buttonFans; + private Button buttonKeyboard; + private PictureBox pictureColor; + private PictureBox pictureColor2; + private Label labelVersion; } } \ No newline at end of file diff --git a/Settings.cs b/Settings.cs index 055546fb..9d8b85e4 100644 --- a/Settings.cs +++ b/Settings.cs @@ -1,6 +1,7 @@ using System.Diagnostics; +using System.Reflection; using System.Timers; - +using System.Windows.Forms.DataVisualization.Charting; namespace GHelper { @@ -17,9 +18,10 @@ namespace GHelper static System.Timers.Timer aTimer = default!; - public string perfName; + public string perfName = "Balanced"; Fans fans; + Keyboard keyb; public SettingsForm() { @@ -65,6 +67,13 @@ namespace GHelper buttonKeyboardColor.Click += ButtonKeyboardColor_Click; buttonFans.Click += ButtonFans_Click; + buttonKeyboard.Click += ButtonKeyboard_Click; + + pictureColor.Click += PictureColor_Click; + pictureColor2.Click += PictureColor2_Click; + + labelVersion.Text = "Version " + Assembly.GetExecutingAssembly().GetName().Version.ToString(); + labelVersion.Click += LabelVersion_Click; SetTimer(); @@ -72,6 +81,42 @@ namespace GHelper } + private void LabelVersion_Click(object? sender, EventArgs e) + { + Process.Start(new ProcessStartInfo("http://github.com/seerge/g-helper/releases") { UseShellExecute = true }); + } + + private void PictureColor2_Click(object? sender, EventArgs e) + { + + ColorDialog colorDlg = new ColorDialog(); + colorDlg.AllowFullOpen = false; + colorDlg.Color = pictureColor2.BackColor; + + if (colorDlg.ShowDialog() == DialogResult.OK) + { + SetAuraColor(color2: colorDlg.Color); + } + } + + private void PictureColor_Click(object? sender, EventArgs e) + { + buttonKeyboardColor.PerformClick(); + } + + private void ButtonKeyboard_Click(object? sender, EventArgs e) + { + if (keyb == null || keyb.Text == "") + { + keyb = new Keyboard(); + keyb.Show(); + } + else + { + keyb.Close(); + } + } + private void ButtonFans_Click(object? sender, EventArgs e) { if (fans == null || fans.Text == "") @@ -96,11 +141,11 @@ namespace GHelper ColorDialog colorDlg = new ColorDialog(); colorDlg.AllowFullOpen = false; - colorDlg.Color = but.FlatAppearance.BorderColor; + colorDlg.Color = pictureColor.BackColor; if (colorDlg.ShowDialog() == DialogResult.OK) { - SetAuraColor(colorDlg.Color); + SetAuraColor(color1: colorDlg.Color); } } @@ -108,9 +153,12 @@ namespace GHelper { int mode = Program.config.getConfig("aura_mode"); int colorCode = Program.config.getConfig("aura_color"); + int colorCode2 = Program.config.getConfig("aura_color2"); + int speed = Program.config.getConfig("aura_speed"); Color color = Color.FromArgb(255, 255, 255); + Color color2 = Color.FromArgb(0, 0, 0); if (mode == -1) mode = 0; @@ -118,8 +166,10 @@ namespace GHelper if (colorCode != -1) color = Color.FromArgb(colorCode); + if (colorCode2 != -1) + color2 = Color.FromArgb(colorCode2); - SetAuraColor(color, false); + SetAuraColor(color, color2, false); SetAuraMode(mode, false); Aura.Mode = mode; @@ -127,15 +177,27 @@ namespace GHelper } - public void SetAuraColor(Color color, bool apply = true) + public void SetAuraColor(Color? color1 = null, Color? color2 = null, bool apply = true) { - Aura.Color1 = color; - Program.config.setConfig("aura_color", color.ToArgb()); + + if (color1 is not null) + { + Aura.Color1 = (Color)color1; + Program.config.setConfig("aura_color", Aura.Color1.ToArgb()); + + } + + if (color2 is not null) + { + Aura.Color2 = (Color)color2; + Program.config.setConfig("aura_color2", Aura.Color2.ToArgb()); + } if (apply) Aura.ApplyAura(); - buttonKeyboardColor.FlatAppearance.BorderColor = color; + pictureColor.BackColor = Aura.Color1; + pictureColor2.BackColor = Aura.Color2; } public void SetAuraMode(int mode = 0, bool apply = true) @@ -145,8 +207,11 @@ namespace GHelper if (mode > 3) mode = 0; + pictureColor2.Visible = (mode == Aura.Breathe); + if (Aura.Mode == mode) return; // same mode + Aura.Mode = mode; Program.config.setConfig("aura_mode", mode); @@ -181,7 +246,7 @@ namespace GHelper CheckBox chk = (CheckBox)sender; if (chk.Checked) - NativeMethods.SetCPUBoost(3); + NativeMethods.SetCPUBoost(2); else NativeMethods.SetCPUBoost(0); } @@ -421,17 +486,19 @@ namespace GHelper if (fans != null && fans.Text != "") fans.LoadFans(); - if (notify) { + if (notify) + { try { Program.toast.RunToast(perfName); - } catch + } + catch { Debug.WriteLine("Toast error"); } } -} + } public void CyclePerformanceMode()