diff --git a/app/AsusMouseSettings.Designer.cs b/app/AsusMouseSettings.Designer.cs
new file mode 100644
index 00000000..3cbed06e
--- /dev/null
+++ b/app/AsusMouseSettings.Designer.cs
@@ -0,0 +1,1045 @@
+namespace GHelper
+{
+ partial class AsusMouseSettings
+ {
+ ///
+ /// 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()
+ {
+ panelProfiles = new Panel();
+ comboProfile = new UI.RComboBox();
+ labelProfile = new Label();
+ panelPerformance = new Panel();
+ panelPerformanceOther = new Panel();
+ comboBoxLiftOffDistance = new UI.RComboBox();
+ labelLiftOffDistance = new Label();
+ labelAngleAdjustmentValue = new Label();
+ sliderAngleAdjustment = new UI.Slider();
+ checkBoxAngleSnapping = new CheckBox();
+ comboBoxPollingRate = new UI.RComboBox();
+ labelPollingRate = new Label();
+ panelDPISettings = new Panel();
+ sliderDPI = new UI.Slider();
+ tableLayoutPanel1 = new TableLayoutPanel();
+ labelMinDPI = new Label();
+ labelDPIValue = new Label();
+ labelMaxDPI = new Label();
+ panelDPITile = new Panel();
+ pictureDPIColor = new PictureBox();
+ buttonDPIColor = new UI.RButton();
+ labelDPI = new Label();
+ tableDPI = new TableLayoutPanel();
+ buttonDPI2 = new UI.RButton();
+ buttonDPI1 = new UI.RButton();
+ buttonDPI3 = new UI.RButton();
+ buttonDPI4 = new UI.RButton();
+ panelPerformanceHeader = new Panel();
+ pictureKeyboard = new PictureBox();
+ labelPerformance = new Label();
+ panelLighting = new Panel();
+ panelLightingContent = new Panel();
+ comboBoxAnimationDirection = new UI.RComboBox();
+ labelAnimationDirection = new Label();
+ checkBoxRandomColor = new CheckBox();
+ comboBoxAnimationSpeed = new UI.RComboBox();
+ labelAnimationSpeed = new Label();
+ pictureBoxLightingColor = new PictureBox();
+ buttonLightingColor = new UI.RButton();
+ comboBoxLightingMode = new UI.RComboBox();
+ labelLightingMode = new Label();
+ panelLightingHeader = new Panel();
+ sliderBrightness = new UI.Slider();
+ pictureBoxLighting = new PictureBox();
+ labelLighting = new Label();
+ panelEnergy = new Panel();
+ labelLowBatteryWarningValue = new Label();
+ comboBoxAutoPowerOff = new UI.RComboBox();
+ sliderLowBatteryWarning = new UI.Slider();
+ labelLowBatteryWarning = new Label();
+ labelAutoPowerOff = new Label();
+ panelEnergyHeader = new Panel();
+ pictureBoxEnergy = new PictureBox();
+ labelEnergy = new Label();
+ tableLayoutProfiles = new TableLayoutPanel();
+ panelBatteryState = new Panel();
+ labelChargingState = new Label();
+ labelBatteryState = new Label();
+ pictureBoxBatteryState = new PictureBox();
+ buttonSync = new UI.RButton();
+ panelBottomButtons = new Panel();
+ panelProfiles.SuspendLayout();
+ panelPerformance.SuspendLayout();
+ panelPerformanceOther.SuspendLayout();
+ panelDPISettings.SuspendLayout();
+ tableLayoutPanel1.SuspendLayout();
+ panelDPITile.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureDPIColor).BeginInit();
+ tableDPI.SuspendLayout();
+ panelPerformanceHeader.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureKeyboard).BeginInit();
+ panelLighting.SuspendLayout();
+ panelLightingContent.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxLightingColor).BeginInit();
+ panelLightingHeader.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxLighting).BeginInit();
+ panelEnergy.SuspendLayout();
+ panelEnergyHeader.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxEnergy).BeginInit();
+ tableLayoutProfiles.SuspendLayout();
+ panelBatteryState.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxBatteryState).BeginInit();
+ panelBottomButtons.SuspendLayout();
+ SuspendLayout();
+ //
+ // panelProfiles
+ //
+ panelProfiles.Controls.Add(comboProfile);
+ panelProfiles.Controls.Add(labelProfile);
+ panelProfiles.Location = new Point(330, 3);
+ panelProfiles.MinimumSize = new Size(340, 0);
+ panelProfiles.Name = "panelProfiles";
+ panelProfiles.Size = new Size(340, 51);
+ panelProfiles.TabIndex = 0;
+ //
+ // comboProfile
+ //
+ comboProfile.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
+ comboProfile.BorderColor = Color.White;
+ comboProfile.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboProfile.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboProfile.FlatStyle = FlatStyle.Flat;
+ comboProfile.FormattingEnabled = true;
+ comboProfile.Location = new Point(98, 10);
+ comboProfile.Margin = new Padding(0);
+ comboProfile.Name = "comboProfile";
+ comboProfile.Size = new Size(228, 33);
+ comboProfile.TabIndex = 43;
+ //
+ // labelProfile
+ //
+ labelProfile.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
+ labelProfile.AutoSize = true;
+ labelProfile.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ labelProfile.Location = new Point(3, 13);
+ labelProfile.Name = "labelProfile";
+ labelProfile.Size = new Size(68, 25);
+ labelProfile.TabIndex = 41;
+ labelProfile.Text = "Profile";
+ //
+ // panelPerformance
+ //
+ panelPerformance.AutoSize = true;
+ panelPerformance.Controls.Add(panelPerformanceOther);
+ panelPerformance.Controls.Add(panelDPISettings);
+ panelPerformance.Controls.Add(tableDPI);
+ panelPerformance.Controls.Add(panelPerformanceHeader);
+ panelPerformance.Dock = DockStyle.Top;
+ panelPerformance.Location = new Point(11, 68);
+ panelPerformance.Name = "panelPerformance";
+ panelPerformance.Padding = new Padding(0, 11, 0, 25);
+ panelPerformance.Size = new Size(654, 401);
+ panelPerformance.TabIndex = 1;
+ //
+ // panelPerformanceOther
+ //
+ panelPerformanceOther.AutoSize = true;
+ panelPerformanceOther.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ panelPerformanceOther.Controls.Add(comboBoxLiftOffDistance);
+ panelPerformanceOther.Controls.Add(labelLiftOffDistance);
+ panelPerformanceOther.Controls.Add(labelAngleAdjustmentValue);
+ panelPerformanceOther.Controls.Add(sliderAngleAdjustment);
+ panelPerformanceOther.Controls.Add(checkBoxAngleSnapping);
+ panelPerformanceOther.Controls.Add(comboBoxPollingRate);
+ panelPerformanceOther.Controls.Add(labelPollingRate);
+ panelPerformanceOther.Dock = DockStyle.Top;
+ panelPerformanceOther.Location = new Point(0, 233);
+ panelPerformanceOther.Name = "panelPerformanceOther";
+ panelPerformanceOther.Padding = new Padding(0, 11, 0, 11);
+ panelPerformanceOther.Size = new Size(654, 143);
+ panelPerformanceOther.TabIndex = 49;
+ //
+ // comboBoxLiftOffDistance
+ //
+ comboBoxLiftOffDistance.BorderColor = Color.White;
+ comboBoxLiftOffDistance.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboBoxLiftOffDistance.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxLiftOffDistance.FlatStyle = FlatStyle.Flat;
+ comboBoxLiftOffDistance.FormattingEnabled = true;
+ comboBoxLiftOffDistance.Location = new Point(368, 99);
+ comboBoxLiftOffDistance.Margin = new Padding(16, 0, 16, 0);
+ comboBoxLiftOffDistance.Name = "comboBoxLiftOffDistance";
+ comboBoxLiftOffDistance.Size = new Size(281, 33);
+ comboBoxLiftOffDistance.TabIndex = 49;
+ //
+ // labelLiftOffDistance
+ //
+ labelLiftOffDistance.Location = new Point(6, 99);
+ labelLiftOffDistance.Margin = new Padding(6, 0, 6, 0);
+ labelLiftOffDistance.Name = "labelLiftOffDistance";
+ labelLiftOffDistance.Size = new Size(348, 33);
+ labelLiftOffDistance.TabIndex = 48;
+ labelLiftOffDistance.Text = "Lift Off Distance";
+ //
+ // labelAngleAdjustmentValue
+ //
+ labelAngleAdjustmentValue.Location = new Point(598, 61);
+ labelAngleAdjustmentValue.Margin = new Padding(6, 0, 6, 0);
+ labelAngleAdjustmentValue.Name = "labelAngleAdjustmentValue";
+ labelAngleAdjustmentValue.Size = new Size(48, 30);
+ labelAngleAdjustmentValue.TabIndex = 47;
+ labelAngleAdjustmentValue.Text = "0°";
+ labelAngleAdjustmentValue.TextAlign = ContentAlignment.MiddleRight;
+ //
+ // sliderAngleAdjustment
+ //
+ sliderAngleAdjustment.AccessibleName = "DPI Slider";
+ sliderAngleAdjustment.Location = new Point(397, 61);
+ sliderAngleAdjustment.Max = 20;
+ sliderAngleAdjustment.Min = -20;
+ sliderAngleAdjustment.Name = "sliderAngleAdjustment";
+ sliderAngleAdjustment.Size = new Size(208, 30);
+ sliderAngleAdjustment.Step = 5;
+ sliderAngleAdjustment.TabIndex = 46;
+ sliderAngleAdjustment.TabStop = false;
+ sliderAngleAdjustment.Text = "sliderBattery";
+ sliderAngleAdjustment.Value = 0;
+ //
+ // checkBoxAngleSnapping
+ //
+ checkBoxAngleSnapping.CheckAlign = ContentAlignment.MiddleRight;
+ checkBoxAngleSnapping.Location = new Point(6, 61);
+ checkBoxAngleSnapping.Margin = new Padding(6, 0, 6, 0);
+ checkBoxAngleSnapping.Name = "checkBoxAngleSnapping";
+ checkBoxAngleSnapping.Size = new Size(384, 30);
+ checkBoxAngleSnapping.TabIndex = 45;
+ checkBoxAngleSnapping.Text = "Angle Snapping";
+ checkBoxAngleSnapping.TextAlign = ContentAlignment.TopLeft;
+ checkBoxAngleSnapping.UseVisualStyleBackColor = true;
+ //
+ // comboBoxPollingRate
+ //
+ comboBoxPollingRate.BorderColor = Color.White;
+ comboBoxPollingRate.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboBoxPollingRate.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxPollingRate.FlatStyle = FlatStyle.Flat;
+ comboBoxPollingRate.FormattingEnabled = true;
+ comboBoxPollingRate.Location = new Point(368, 8);
+ comboBoxPollingRate.Margin = new Padding(16, 0, 16, 0);
+ comboBoxPollingRate.Name = "comboBoxPollingRate";
+ comboBoxPollingRate.Size = new Size(281, 33);
+ comboBoxPollingRate.TabIndex = 44;
+ //
+ // labelPollingRate
+ //
+ labelPollingRate.Location = new Point(6, 9);
+ labelPollingRate.Margin = new Padding(6, 0, 6, 0);
+ labelPollingRate.Name = "labelPollingRate";
+ labelPollingRate.Size = new Size(348, 30);
+ labelPollingRate.TabIndex = 45;
+ labelPollingRate.Text = "Polling Rate";
+ //
+ // panelDPISettings
+ //
+ panelDPISettings.AutoSize = true;
+ panelDPISettings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ panelDPISettings.Controls.Add(sliderDPI);
+ panelDPISettings.Controls.Add(tableLayoutPanel1);
+ panelDPISettings.Controls.Add(panelDPITile);
+ panelDPISettings.Dock = DockStyle.Top;
+ panelDPISettings.Location = new Point(0, 137);
+ panelDPISettings.Name = "panelDPISettings";
+ panelDPISettings.Size = new Size(654, 96);
+ panelDPISettings.TabIndex = 44;
+ //
+ // sliderDPI
+ //
+ sliderDPI.AccessibleName = "DPI Slider";
+ sliderDPI.Dock = DockStyle.Top;
+ sliderDPI.Location = new Point(0, 66);
+ sliderDPI.Max = 35000;
+ sliderDPI.Min = 100;
+ sliderDPI.Name = "sliderDPI";
+ sliderDPI.Size = new Size(654, 30);
+ sliderDPI.Step = 50;
+ sliderDPI.TabIndex = 43;
+ sliderDPI.TabStop = false;
+ sliderDPI.Text = "sliderBattery";
+ sliderDPI.Value = 2000;
+ //
+ // tableLayoutPanel1
+ //
+ tableLayoutPanel1.AutoSize = true;
+ tableLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ tableLayoutPanel1.ColumnCount = 3;
+ tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
+ tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
+ tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
+ tableLayoutPanel1.Controls.Add(labelMinDPI, 0, 0);
+ tableLayoutPanel1.Controls.Add(labelDPIValue, 1, 0);
+ tableLayoutPanel1.Controls.Add(labelMaxDPI, 2, 0);
+ tableLayoutPanel1.Dock = DockStyle.Top;
+ tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.FixedSize;
+ tableLayoutPanel1.Location = new Point(0, 40);
+ tableLayoutPanel1.Name = "tableLayoutPanel1";
+ tableLayoutPanel1.RowCount = 1;
+ tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+ tableLayoutPanel1.Size = new Size(654, 26);
+ tableLayoutPanel1.TabIndex = 47;
+ //
+ // labelMinDPI
+ //
+ labelMinDPI.ForeColor = SystemColors.GrayText;
+ labelMinDPI.Location = new Point(6, 0);
+ labelMinDPI.Margin = new Padding(6, 0, 6, 0);
+ labelMinDPI.Name = "labelMinDPI";
+ labelMinDPI.Size = new Size(105, 26);
+ labelMinDPI.TabIndex = 45;
+ labelMinDPI.Text = "100";
+ //
+ // labelDPIValue
+ //
+ labelDPIValue.Anchor = AnchorStyles.Top;
+ labelDPIValue.Location = new Point(271, 0);
+ labelDPIValue.Margin = new Padding(6, 0, 6, 0);
+ labelDPIValue.Name = "labelDPIValue";
+ labelDPIValue.Size = new Size(111, 26);
+ labelDPIValue.TabIndex = 44;
+ labelDPIValue.Text = "2000";
+ labelDPIValue.TextAlign = ContentAlignment.TopCenter;
+ //
+ // labelMaxDPI
+ //
+ labelMaxDPI.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ labelMaxDPI.ForeColor = SystemColors.GrayText;
+ labelMaxDPI.Location = new Point(543, 0);
+ labelMaxDPI.Margin = new Padding(6, 0, 6, 0);
+ labelMaxDPI.Name = "labelMaxDPI";
+ labelMaxDPI.Size = new Size(105, 26);
+ labelMaxDPI.TabIndex = 46;
+ labelMaxDPI.Text = " 35000";
+ labelMaxDPI.TextAlign = ContentAlignment.TopRight;
+ //
+ // panelDPITile
+ //
+ panelDPITile.Controls.Add(pictureDPIColor);
+ panelDPITile.Controls.Add(buttonDPIColor);
+ panelDPITile.Controls.Add(labelDPI);
+ panelDPITile.Dock = DockStyle.Top;
+ panelDPITile.Location = new Point(0, 0);
+ panelDPITile.Name = "panelDPITile";
+ panelDPITile.Padding = new Padding(0, 5, 0, 5);
+ panelDPITile.Size = new Size(654, 40);
+ panelDPITile.TabIndex = 48;
+ //
+ // pictureDPIColor
+ //
+ pictureDPIColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ pictureDPIColor.Location = new Point(617, 11);
+ pictureDPIColor.Margin = new Padding(6);
+ pictureDPIColor.Name = "pictureDPIColor";
+ pictureDPIColor.Size = new Size(15, 15);
+ pictureDPIColor.TabIndex = 46;
+ pictureDPIColor.TabStop = false;
+ //
+ // buttonDPIColor
+ //
+ buttonDPIColor.AccessibleName = "Keyboard Color";
+ buttonDPIColor.Activated = false;
+ buttonDPIColor.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
+ buttonDPIColor.AutoSize = true;
+ buttonDPIColor.BackColor = SystemColors.ButtonHighlight;
+ buttonDPIColor.BorderColor = Color.Transparent;
+ buttonDPIColor.BorderRadius = 2;
+ buttonDPIColor.FlatStyle = FlatStyle.Flat;
+ buttonDPIColor.ForeColor = SystemColors.ControlText;
+ buttonDPIColor.Location = new Point(460, 1);
+ buttonDPIColor.Margin = new Padding(3, 6, 3, 6);
+ buttonDPIColor.Name = "buttonDPIColor";
+ buttonDPIColor.Secondary = false;
+ buttonDPIColor.Size = new Size(191, 37);
+ buttonDPIColor.TabIndex = 45;
+ buttonDPIColor.Text = Properties.Strings.Color;
+ buttonDPIColor.UseVisualStyleBackColor = false;
+ //
+ // labelDPI
+ //
+ labelDPI.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
+ labelDPI.AutoSize = true;
+ labelDPI.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ labelDPI.Location = new Point(6, 5);
+ labelDPI.Margin = new Padding(6, 0, 6, 0);
+ labelDPI.Name = "labelDPI";
+ labelDPI.Size = new Size(40, 25);
+ labelDPI.TabIndex = 34;
+ labelDPI.Text = "DPI";
+ //
+ // tableDPI
+ //
+ tableDPI.AutoSize = true;
+ tableDPI.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ tableDPI.ColumnCount = 4;
+ tableDPI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+ tableDPI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+ tableDPI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+ tableDPI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+ tableDPI.Controls.Add(buttonDPI2, 0, 0);
+ tableDPI.Controls.Add(buttonDPI1, 0, 0);
+ tableDPI.Controls.Add(buttonDPI3, 1, 0);
+ tableDPI.Controls.Add(buttonDPI4, 2, 0);
+ tableDPI.Dock = DockStyle.Top;
+ tableDPI.Location = new Point(0, 41);
+ tableDPI.Margin = new Padding(6, 3, 6, 3);
+ tableDPI.Name = "tableDPI";
+ tableDPI.RowCount = 1;
+ tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 96F));
+ tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 96F));
+ tableDPI.Size = new Size(654, 96);
+ tableDPI.TabIndex = 42;
+ //
+ // buttonDPI2
+ //
+ buttonDPI2.AccessibleName = "DPI Setting 2";
+ buttonDPI2.Activated = false;
+ buttonDPI2.BackColor = SystemColors.ControlLightLight;
+ buttonDPI2.BorderColor = Color.Transparent;
+ buttonDPI2.BorderRadius = 5;
+ buttonDPI2.Dock = DockStyle.Top;
+ buttonDPI2.FlatAppearance.BorderSize = 0;
+ buttonDPI2.FlatStyle = FlatStyle.Flat;
+ buttonDPI2.ForeColor = SystemColors.ControlText;
+ buttonDPI2.Image = Properties.Resources.lighting_dot_32;
+ buttonDPI2.ImageAlign = ContentAlignment.BottomCenter;
+ buttonDPI2.Location = new Point(166, 3);
+ buttonDPI2.Name = "buttonDPI2";
+ buttonDPI2.Secondary = false;
+ buttonDPI2.Size = new Size(157, 90);
+ buttonDPI2.TabIndex = 4;
+ buttonDPI2.Text = "DPI 2\r\n1000";
+ buttonDPI2.TextImageRelation = TextImageRelation.ImageAboveText;
+ buttonDPI2.UseVisualStyleBackColor = false;
+ //
+ // buttonDPI1
+ //
+ buttonDPI1.AccessibleName = "DPI Setting 1";
+ buttonDPI1.Activated = false;
+ buttonDPI1.BackColor = SystemColors.ControlLightLight;
+ buttonDPI1.BorderColor = Color.Transparent;
+ buttonDPI1.BorderRadius = 5;
+ buttonDPI1.CausesValidation = false;
+ buttonDPI1.Dock = DockStyle.Top;
+ buttonDPI1.FlatAppearance.BorderSize = 0;
+ buttonDPI1.FlatStyle = FlatStyle.Flat;
+ buttonDPI1.ForeColor = SystemColors.ControlText;
+ buttonDPI1.Image = Properties.Resources.lighting_dot_32;
+ buttonDPI1.Location = new Point(3, 3);
+ buttonDPI1.Name = "buttonDPI1";
+ buttonDPI1.Secondary = false;
+ buttonDPI1.Size = new Size(157, 90);
+ buttonDPI1.TabIndex = 4;
+ buttonDPI1.Text = "DPI 1\r\n800";
+ buttonDPI1.TextImageRelation = TextImageRelation.ImageAboveText;
+ buttonDPI1.UseVisualStyleBackColor = false;
+ //
+ // buttonDPI3
+ //
+ buttonDPI3.AccessibleName = "DPI Setting 3";
+ buttonDPI3.Activated = false;
+ buttonDPI3.BackColor = SystemColors.ControlLightLight;
+ buttonDPI3.BorderColor = Color.Transparent;
+ buttonDPI3.BorderRadius = 5;
+ buttonDPI3.Dock = DockStyle.Top;
+ buttonDPI3.FlatAppearance.BorderSize = 0;
+ buttonDPI3.FlatStyle = FlatStyle.Flat;
+ buttonDPI3.ForeColor = SystemColors.ControlText;
+ buttonDPI3.Image = Properties.Resources.lighting_dot_32;
+ buttonDPI3.ImageAlign = ContentAlignment.BottomCenter;
+ buttonDPI3.Location = new Point(329, 3);
+ buttonDPI3.Name = "buttonDPI3";
+ buttonDPI3.Secondary = false;
+ buttonDPI3.Size = new Size(157, 90);
+ buttonDPI3.TabIndex = 5;
+ buttonDPI3.Text = "DPI 3\r\n1200";
+ buttonDPI3.TextImageRelation = TextImageRelation.ImageAboveText;
+ buttonDPI3.UseVisualStyleBackColor = false;
+ //
+ // buttonDPI4
+ //
+ buttonDPI4.AccessibleName = "DPI Setting 4";
+ buttonDPI4.Activated = false;
+ buttonDPI4.BackColor = SystemColors.ControlLightLight;
+ buttonDPI4.BorderColor = Color.Transparent;
+ buttonDPI4.BorderRadius = 5;
+ buttonDPI4.Dock = DockStyle.Top;
+ buttonDPI4.FlatAppearance.BorderSize = 0;
+ buttonDPI4.FlatStyle = FlatStyle.Flat;
+ buttonDPI4.ForeColor = SystemColors.ControlText;
+ buttonDPI4.Image = Properties.Resources.lighting_dot_32;
+ buttonDPI4.ImageAlign = ContentAlignment.BottomCenter;
+ buttonDPI4.Location = new Point(492, 3);
+ buttonDPI4.Name = "buttonDPI4";
+ buttonDPI4.Secondary = false;
+ buttonDPI4.Size = new Size(159, 90);
+ buttonDPI4.TabIndex = 6;
+ buttonDPI4.Text = "DPI 4\r\n1400";
+ buttonDPI4.TextImageRelation = TextImageRelation.ImageAboveText;
+ buttonDPI4.UseVisualStyleBackColor = false;
+ //
+ // panelPerformanceHeader
+ //
+ panelPerformanceHeader.BackColor = SystemColors.ControlLight;
+ panelPerformanceHeader.Controls.Add(pictureKeyboard);
+ panelPerformanceHeader.Controls.Add(labelPerformance);
+ panelPerformanceHeader.Dock = DockStyle.Top;
+ panelPerformanceHeader.Location = new Point(0, 11);
+ panelPerformanceHeader.Name = "panelPerformanceHeader";
+ panelPerformanceHeader.Size = new Size(654, 30);
+ panelPerformanceHeader.TabIndex = 41;
+ //
+ // pictureKeyboard
+ //
+ pictureKeyboard.BackgroundImage = Properties.Resources.icons8_mauszeiger_50;
+ pictureKeyboard.BackgroundImageLayout = ImageLayout.Zoom;
+ pictureKeyboard.Location = new Point(4, 0);
+ pictureKeyboard.Name = "pictureKeyboard";
+ pictureKeyboard.Size = new Size(24, 24);
+ pictureKeyboard.TabIndex = 35;
+ pictureKeyboard.TabStop = false;
+ //
+ // labelPerformance
+ //
+ labelPerformance.AutoSize = true;
+ labelPerformance.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ labelPerformance.Location = new Point(33, 0);
+ labelPerformance.Margin = new Padding(6, 0, 6, 0);
+ labelPerformance.Name = "labelPerformance";
+ labelPerformance.Size = new Size(120, 25);
+ labelPerformance.TabIndex = 34;
+ labelPerformance.Text = "Performance";
+ //
+ // panelLighting
+ //
+ panelLighting.AutoSize = true;
+ panelLighting.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ panelLighting.Controls.Add(panelLightingContent);
+ panelLighting.Controls.Add(panelLightingHeader);
+ panelLighting.Dock = DockStyle.Top;
+ panelLighting.Location = new Point(11, 469);
+ panelLighting.Name = "panelLighting";
+ panelLighting.Padding = new Padding(0, 0, 0, 25);
+ panelLighting.Size = new Size(654, 271);
+ panelLighting.TabIndex = 42;
+ //
+ // panelLightingContent
+ //
+ panelLightingContent.AutoSize = true;
+ panelLightingContent.Controls.Add(comboBoxAnimationDirection);
+ panelLightingContent.Controls.Add(labelAnimationDirection);
+ panelLightingContent.Controls.Add(checkBoxRandomColor);
+ panelLightingContent.Controls.Add(comboBoxAnimationSpeed);
+ panelLightingContent.Controls.Add(labelAnimationSpeed);
+ panelLightingContent.Controls.Add(pictureBoxLightingColor);
+ panelLightingContent.Controls.Add(buttonLightingColor);
+ panelLightingContent.Controls.Add(comboBoxLightingMode);
+ panelLightingContent.Controls.Add(labelLightingMode);
+ panelLightingContent.Dock = DockStyle.Top;
+ panelLightingContent.Location = new Point(0, 30);
+ panelLightingContent.Name = "panelLightingContent";
+ panelLightingContent.Padding = new Padding(0, 0, 0, 11);
+ panelLightingContent.Size = new Size(654, 216);
+ panelLightingContent.TabIndex = 42;
+ //
+ // comboBoxAnimationDirection
+ //
+ comboBoxAnimationDirection.BorderColor = Color.White;
+ comboBoxAnimationDirection.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboBoxAnimationDirection.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxAnimationDirection.FlatStyle = FlatStyle.Flat;
+ comboBoxAnimationDirection.FormattingEnabled = true;
+ comboBoxAnimationDirection.Location = new Point(366, 172);
+ comboBoxAnimationDirection.Margin = new Padding(16, 0, 16, 0);
+ comboBoxAnimationDirection.Name = "comboBoxAnimationDirection";
+ comboBoxAnimationDirection.Size = new Size(284, 33);
+ comboBoxAnimationDirection.TabIndex = 54;
+ //
+ // labelAnimationDirection
+ //
+ labelAnimationDirection.Location = new Point(6, 172);
+ labelAnimationDirection.Margin = new Padding(6, 0, 6, 0);
+ labelAnimationDirection.Name = "labelAnimationDirection";
+ labelAnimationDirection.Size = new Size(316, 33);
+ labelAnimationDirection.TabIndex = 55;
+ labelAnimationDirection.Text = "Animation Direction";
+ //
+ // checkBoxRandomColor
+ //
+ checkBoxRandomColor.Location = new Point(520, 53);
+ checkBoxRandomColor.Margin = new Padding(6, 0, 6, 0);
+ checkBoxRandomColor.Name = "checkBoxRandomColor";
+ checkBoxRandomColor.Size = new Size(128, 37);
+ checkBoxRandomColor.TabIndex = 53;
+ checkBoxRandomColor.Text = "Random";
+ checkBoxRandomColor.UseVisualStyleBackColor = true;
+ //
+ // comboBoxAnimationSpeed
+ //
+ comboBoxAnimationSpeed.BorderColor = Color.White;
+ comboBoxAnimationSpeed.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboBoxAnimationSpeed.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxAnimationSpeed.FlatStyle = FlatStyle.Flat;
+ comboBoxAnimationSpeed.FormattingEnabled = true;
+ comboBoxAnimationSpeed.Location = new Point(366, 130);
+ comboBoxAnimationSpeed.Margin = new Padding(16, 0, 16, 0);
+ comboBoxAnimationSpeed.Name = "comboBoxAnimationSpeed";
+ comboBoxAnimationSpeed.Size = new Size(284, 33);
+ comboBoxAnimationSpeed.TabIndex = 51;
+ //
+ // labelAnimationSpeed
+ //
+ labelAnimationSpeed.Location = new Point(6, 130);
+ labelAnimationSpeed.Margin = new Padding(6, 0, 6, 0);
+ labelAnimationSpeed.Name = "labelAnimationSpeed";
+ labelAnimationSpeed.Size = new Size(316, 33);
+ labelAnimationSpeed.TabIndex = 52;
+ labelAnimationSpeed.Text = "Animation Speed";
+ //
+ // pictureBoxLightingColor
+ //
+ pictureBoxLightingColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ pictureBoxLightingColor.Location = new Point(480, 62);
+ pictureBoxLightingColor.Margin = new Padding(6);
+ pictureBoxLightingColor.Name = "pictureBoxLightingColor";
+ pictureBoxLightingColor.Size = new Size(20, 20);
+ pictureBoxLightingColor.TabIndex = 50;
+ pictureBoxLightingColor.TabStop = false;
+ //
+ // buttonLightingColor
+ //
+ buttonLightingColor.AccessibleName = "Keyboard Color";
+ buttonLightingColor.Activated = false;
+ buttonLightingColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonLightingColor.BackColor = SystemColors.ButtonHighlight;
+ buttonLightingColor.BorderColor = Color.Transparent;
+ buttonLightingColor.BorderRadius = 2;
+ buttonLightingColor.FlatStyle = FlatStyle.Flat;
+ buttonLightingColor.ForeColor = SystemColors.ControlText;
+ buttonLightingColor.Location = new Point(373, 53);
+ buttonLightingColor.Margin = new Padding(3, 6, 3, 6);
+ buttonLightingColor.Name = "buttonLightingColor";
+ buttonLightingColor.Secondary = false;
+ buttonLightingColor.Size = new Size(141, 37);
+ buttonLightingColor.TabIndex = 49;
+ buttonLightingColor.Text = Properties.Strings.Color;
+ buttonLightingColor.TextAlign = ContentAlignment.MiddleLeft;
+ buttonLightingColor.UseVisualStyleBackColor = false;
+ //
+ // comboBoxLightingMode
+ //
+ comboBoxLightingMode.BorderColor = Color.White;
+ comboBoxLightingMode.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboBoxLightingMode.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxLightingMode.FlatStyle = FlatStyle.Flat;
+ comboBoxLightingMode.FormattingEnabled = true;
+ comboBoxLightingMode.Location = new Point(367, 14);
+ comboBoxLightingMode.Margin = new Padding(16, 0, 16, 0);
+ comboBoxLightingMode.Name = "comboBoxLightingMode";
+ comboBoxLightingMode.Size = new Size(284, 33);
+ comboBoxLightingMode.TabIndex = 46;
+ //
+ // labelLightingMode
+ //
+ labelLightingMode.Location = new Point(7, 14);
+ labelLightingMode.Margin = new Padding(6, 0, 6, 0);
+ labelLightingMode.Name = "labelLightingMode";
+ labelLightingMode.Size = new Size(316, 33);
+ labelLightingMode.TabIndex = 47;
+ labelLightingMode.Text = "Lighting Mode";
+ //
+ // panelLightingHeader
+ //
+ panelLightingHeader.BackColor = SystemColors.ControlLight;
+ panelLightingHeader.Controls.Add(sliderBrightness);
+ panelLightingHeader.Controls.Add(pictureBoxLighting);
+ panelLightingHeader.Controls.Add(labelLighting);
+ panelLightingHeader.Dock = DockStyle.Top;
+ panelLightingHeader.Location = new Point(0, 0);
+ panelLightingHeader.Name = "panelLightingHeader";
+ panelLightingHeader.Size = new Size(654, 30);
+ panelLightingHeader.TabIndex = 41;
+ //
+ // sliderBrightness
+ //
+ sliderBrightness.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
+ sliderBrightness.Location = new Point(367, 1);
+ sliderBrightness.Margin = new Padding(2);
+ sliderBrightness.Max = 100;
+ sliderBrightness.Min = 0;
+ sliderBrightness.Name = "sliderBrightness";
+ sliderBrightness.Size = new Size(283, 27);
+ sliderBrightness.Step = 1;
+ sliderBrightness.TabIndex = 51;
+ sliderBrightness.Text = "sliderBrightness";
+ sliderBrightness.Value = 25;
+ //
+ // pictureBoxLighting
+ //
+ pictureBoxLighting.BackgroundImage = Properties.Resources.backlight;
+ pictureBoxLighting.BackgroundImageLayout = ImageLayout.Zoom;
+ pictureBoxLighting.Location = new Point(4, 0);
+ pictureBoxLighting.Name = "pictureBoxLighting";
+ pictureBoxLighting.Size = new Size(24, 24);
+ pictureBoxLighting.TabIndex = 35;
+ pictureBoxLighting.TabStop = false;
+ //
+ // labelLighting
+ //
+ labelLighting.AutoSize = true;
+ labelLighting.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ labelLighting.Location = new Point(33, 0);
+ labelLighting.Margin = new Padding(6, 0, 6, 0);
+ labelLighting.Name = "labelLighting";
+ labelLighting.Size = new Size(82, 25);
+ labelLighting.TabIndex = 34;
+ labelLighting.Text = "Lighting";
+ //
+ // panelEnergy
+ //
+ panelEnergy.AutoSize = true;
+ panelEnergy.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ panelEnergy.Controls.Add(labelLowBatteryWarningValue);
+ panelEnergy.Controls.Add(comboBoxAutoPowerOff);
+ panelEnergy.Controls.Add(sliderLowBatteryWarning);
+ panelEnergy.Controls.Add(labelLowBatteryWarning);
+ panelEnergy.Controls.Add(labelAutoPowerOff);
+ panelEnergy.Controls.Add(panelEnergyHeader);
+ panelEnergy.Dock = DockStyle.Top;
+ panelEnergy.Location = new Point(11, 740);
+ panelEnergy.Name = "panelEnergy";
+ panelEnergy.Padding = new Padding(0, 0, 0, 25);
+ panelEnergy.Size = new Size(654, 143);
+ panelEnergy.TabIndex = 43;
+ //
+ // labelLowBatteryWarningValue
+ //
+ labelLowBatteryWarningValue.Location = new Point(601, 85);
+ labelLowBatteryWarningValue.Margin = new Padding(6, 0, 6, 0);
+ labelLowBatteryWarningValue.Name = "labelLowBatteryWarningValue";
+ labelLowBatteryWarningValue.Size = new Size(48, 30);
+ labelLowBatteryWarningValue.TabIndex = 51;
+ labelLowBatteryWarningValue.Text = "20%";
+ labelLowBatteryWarningValue.TextAlign = ContentAlignment.MiddleRight;
+ //
+ // comboBoxAutoPowerOff
+ //
+ comboBoxAutoPowerOff.BorderColor = Color.White;
+ comboBoxAutoPowerOff.ButtonColor = Color.FromArgb(255, 255, 255);
+ comboBoxAutoPowerOff.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxAutoPowerOff.FlatStyle = FlatStyle.Flat;
+ comboBoxAutoPowerOff.FormattingEnabled = true;
+ comboBoxAutoPowerOff.Location = new Point(362, 43);
+ comboBoxAutoPowerOff.Margin = new Padding(16, 0, 16, 0);
+ comboBoxAutoPowerOff.Name = "comboBoxAutoPowerOff";
+ comboBoxAutoPowerOff.Size = new Size(284, 33);
+ comboBoxAutoPowerOff.TabIndex = 56;
+ //
+ // sliderLowBatteryWarning
+ //
+ sliderLowBatteryWarning.AccessibleName = "DPI Slider";
+ sliderLowBatteryWarning.Location = new Point(362, 85);
+ sliderLowBatteryWarning.Max = 50;
+ sliderLowBatteryWarning.Min = 0;
+ sliderLowBatteryWarning.Name = "sliderLowBatteryWarning";
+ sliderLowBatteryWarning.Size = new Size(243, 30);
+ sliderLowBatteryWarning.Step = 10;
+ sliderLowBatteryWarning.TabIndex = 50;
+ sliderLowBatteryWarning.TabStop = false;
+ sliderLowBatteryWarning.Text = "sliderBattery";
+ sliderLowBatteryWarning.Value = 0;
+ //
+ // labelLowBatteryWarning
+ //
+ labelLowBatteryWarning.Location = new Point(7, 82);
+ labelLowBatteryWarning.Margin = new Padding(6, 0, 6, 0);
+ labelLowBatteryWarning.Name = "labelLowBatteryWarning";
+ labelLowBatteryWarning.Size = new Size(316, 33);
+ labelLowBatteryWarning.TabIndex = 57;
+ labelLowBatteryWarning.Text = "Low Battery Warning";
+ //
+ // labelAutoPowerOff
+ //
+ labelAutoPowerOff.Location = new Point(7, 43);
+ labelAutoPowerOff.Margin = new Padding(6, 0, 6, 0);
+ labelAutoPowerOff.Name = "labelAutoPowerOff";
+ labelAutoPowerOff.Size = new Size(316, 33);
+ labelAutoPowerOff.TabIndex = 56;
+ labelAutoPowerOff.Text = "Auto Power Off";
+ //
+ // panelEnergyHeader
+ //
+ panelEnergyHeader.BackColor = SystemColors.ControlLight;
+ panelEnergyHeader.Controls.Add(pictureBoxEnergy);
+ panelEnergyHeader.Controls.Add(labelEnergy);
+ panelEnergyHeader.Dock = DockStyle.Top;
+ panelEnergyHeader.Location = new Point(0, 0);
+ panelEnergyHeader.Name = "panelEnergyHeader";
+ panelEnergyHeader.Size = new Size(654, 30);
+ panelEnergyHeader.TabIndex = 41;
+ //
+ // pictureBoxEnergy
+ //
+ pictureBoxEnergy.BackgroundImage = Properties.Resources.icons8_charging_battery_32;
+ pictureBoxEnergy.BackgroundImageLayout = ImageLayout.Zoom;
+ pictureBoxEnergy.Location = new Point(4, 0);
+ pictureBoxEnergy.Name = "pictureBoxEnergy";
+ pictureBoxEnergy.Size = new Size(24, 24);
+ pictureBoxEnergy.TabIndex = 35;
+ pictureBoxEnergy.TabStop = false;
+ //
+ // labelEnergy
+ //
+ labelEnergy.AutoSize = true;
+ labelEnergy.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ labelEnergy.Location = new Point(33, 0);
+ labelEnergy.Margin = new Padding(6, 0, 6, 0);
+ labelEnergy.Name = "labelEnergy";
+ labelEnergy.Size = new Size(71, 25);
+ labelEnergy.TabIndex = 34;
+ labelEnergy.Text = "Energy";
+ //
+ // tableLayoutProfiles
+ //
+ tableLayoutProfiles.AutoSize = true;
+ tableLayoutProfiles.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ tableLayoutProfiles.ColumnCount = 2;
+ tableLayoutProfiles.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutProfiles.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutProfiles.Controls.Add(panelProfiles, 1, 0);
+ tableLayoutProfiles.Controls.Add(panelBatteryState, 0, 0);
+ tableLayoutProfiles.Dock = DockStyle.Top;
+ tableLayoutProfiles.Location = new Point(11, 11);
+ tableLayoutProfiles.Name = "tableLayoutProfiles";
+ tableLayoutProfiles.RowCount = 1;
+ tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
+ tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
+ tableLayoutProfiles.Size = new Size(654, 57);
+ tableLayoutProfiles.TabIndex = 44;
+ //
+ // panelBatteryState
+ //
+ panelBatteryState.Controls.Add(labelChargingState);
+ panelBatteryState.Controls.Add(labelBatteryState);
+ panelBatteryState.Controls.Add(pictureBoxBatteryState);
+ panelBatteryState.Location = new Point(3, 3);
+ panelBatteryState.Name = "panelBatteryState";
+ panelBatteryState.Size = new Size(300, 50);
+ panelBatteryState.TabIndex = 1;
+ //
+ // labelChargingState
+ //
+ labelChargingState.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
+ labelChargingState.AutoSize = true;
+ labelChargingState.Font = new Font("Segoe UI", 10F, FontStyle.Bold, GraphicsUnit.Point);
+ labelChargingState.Location = new Point(116, 10);
+ labelChargingState.Name = "labelChargingState";
+ labelChargingState.Size = new Size(97, 28);
+ labelChargingState.TabIndex = 38;
+ labelChargingState.Text = "Charging";
+ labelChargingState.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // labelBatteryState
+ //
+ labelBatteryState.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
+ labelBatteryState.AutoSize = true;
+ labelBatteryState.Font = new Font("Segoe UI", 10F, FontStyle.Bold, GraphicsUnit.Point);
+ labelBatteryState.Location = new Point(45, 10);
+ labelBatteryState.Name = "labelBatteryState";
+ labelBatteryState.Size = new Size(65, 28);
+ labelBatteryState.TabIndex = 37;
+ labelBatteryState.Text = "100%";
+ labelBatteryState.TextAlign = ContentAlignment.MiddleRight;
+ //
+ // pictureBoxBatteryState
+ //
+ pictureBoxBatteryState.BackgroundImage = Properties.Resources.icons8_ladende_batterie_48;
+ pictureBoxBatteryState.BackgroundImageLayout = ImageLayout.Zoom;
+ pictureBoxBatteryState.Dock = DockStyle.Left;
+ pictureBoxBatteryState.Location = new Point(0, 0);
+ pictureBoxBatteryState.Name = "pictureBoxBatteryState";
+ pictureBoxBatteryState.Size = new Size(39, 50);
+ pictureBoxBatteryState.TabIndex = 36;
+ pictureBoxBatteryState.TabStop = false;
+ //
+ // buttonSync
+ //
+ buttonSync.AccessibleName = "Keyboard Color";
+ buttonSync.Activated = false;
+ buttonSync.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonSync.BackColor = SystemColors.ButtonHighlight;
+ buttonSync.BorderColor = Color.Transparent;
+ buttonSync.BorderRadius = 2;
+ buttonSync.FlatStyle = FlatStyle.Flat;
+ buttonSync.ForeColor = SystemColors.ControlText;
+ buttonSync.Location = new Point(358, 8);
+ buttonSync.Margin = new Padding(3, 6, 3, 6);
+ buttonSync.Name = "buttonSync";
+ buttonSync.Secondary = false;
+ buttonSync.Size = new Size(292, 37);
+ buttonSync.TabIndex = 46;
+ buttonSync.Text = "Synchronize with Mouse";
+ buttonSync.UseVisualStyleBackColor = false;
+ buttonSync.Click += ButtonSync_Click;
+ //
+ // panelBottomButtons
+ //
+ panelBottomButtons.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ panelBottomButtons.Controls.Add(buttonSync);
+ panelBottomButtons.Dock = DockStyle.Top;
+ panelBottomButtons.Location = new Point(11, 883);
+ panelBottomButtons.Name = "panelBottomButtons";
+ panelBottomButtons.Size = new Size(654, 67);
+ panelBottomButtons.TabIndex = 47;
+ //
+ // AsusMouseSettings
+ //
+ AutoScaleDimensions = new SizeF(144F, 144F);
+ AutoScaleMode = AutoScaleMode.Dpi;
+ AutoScroll = true;
+ AutoSize = true;
+ AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ ClientSize = new Size(676, 1030);
+ Controls.Add(panelBottomButtons);
+ Controls.Add(panelEnergy);
+ Controls.Add(panelLighting);
+ Controls.Add(panelPerformance);
+ Controls.Add(tableLayoutProfiles);
+ MaximizeBox = false;
+ MdiChildrenMinimizedAnchorBottom = false;
+ MinimizeBox = false;
+ MinimumSize = new Size(690, 600);
+ Name = "AsusMouseSettings";
+ Padding = new Padding(11);
+ ShowIcon = false;
+ ShowInTaskbar = false;
+ Text = "Mouse Settings";
+ panelProfiles.ResumeLayout(false);
+ panelProfiles.PerformLayout();
+ panelPerformance.ResumeLayout(false);
+ panelPerformance.PerformLayout();
+ panelPerformanceOther.ResumeLayout(false);
+ panelDPISettings.ResumeLayout(false);
+ panelDPISettings.PerformLayout();
+ tableLayoutPanel1.ResumeLayout(false);
+ panelDPITile.ResumeLayout(false);
+ panelDPITile.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureDPIColor).EndInit();
+ tableDPI.ResumeLayout(false);
+ panelPerformanceHeader.ResumeLayout(false);
+ panelPerformanceHeader.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureKeyboard).EndInit();
+ panelLighting.ResumeLayout(false);
+ panelLighting.PerformLayout();
+ panelLightingContent.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)pictureBoxLightingColor).EndInit();
+ panelLightingHeader.ResumeLayout(false);
+ panelLightingHeader.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxLighting).EndInit();
+ panelEnergy.ResumeLayout(false);
+ panelEnergyHeader.ResumeLayout(false);
+ panelEnergyHeader.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxEnergy).EndInit();
+ tableLayoutProfiles.ResumeLayout(false);
+ panelBatteryState.ResumeLayout(false);
+ panelBatteryState.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxBatteryState).EndInit();
+ panelBottomButtons.ResumeLayout(false);
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private Panel panelProfiles;
+ private Label labelProfile;
+ private UI.RComboBox comboProfile;
+ private Panel panelPerformance;
+ private Panel panelPerformanceHeader;
+ private PictureBox pictureKeyboard;
+ private Label labelPerformance;
+ private Panel panelLighting;
+ private Panel panelLightingHeader;
+ private PictureBox pictureBoxLighting;
+ private Label labelLighting;
+ private Panel panelEnergy;
+ private Panel panelEnergyHeader;
+ private PictureBox pictureBoxEnergy;
+ private Label labelEnergy;
+ private TableLayoutPanel tableDPI;
+ private UI.RButton buttonDPI2;
+ private UI.RButton buttonDPI1;
+ private UI.RButton buttonDPI3;
+ private UI.RButton buttonDPI4;
+ private UI.Slider sliderDPI;
+ private Panel panelDPISettings;
+ private TableLayoutPanel tableLayoutPanel1;
+ private Label labelMinDPI;
+ private Label labelDPIValue;
+ private Label labelMaxDPI;
+ private Panel panelDPITile;
+ private Label labelDPI;
+ private TableLayoutPanel tableLayoutPollingRate;
+ private UI.RComboBox comboBoxPollingRate;
+ private UI.Slider sliderAngleAdjustment;
+ private CheckBox checkBoxAngleSnapping;
+ private Panel panelPerformanceOther;
+ private TableLayoutPanel tableLayoutProfiles;
+ private UI.RButton buttonDPIColor;
+ private PictureBox pictureDPIColor;
+ private UI.Slider sliderBrightness;
+ private Label labelPollingRate;
+ private Label labelAngleAdjustmentValue;
+ private Panel panelLightingContent;
+ private UI.RComboBox comboBoxLightingMode;
+ private Label labelLightingMode;
+ private PictureBox pictureBoxLightingColor;
+ private UI.RButton buttonLightingColor;
+ private CheckBox checkBoxRandomColor;
+ private UI.RComboBox comboBoxAnimationSpeed;
+ private Label labelAnimationSpeed;
+ private UI.RComboBox comboBoxAnimationDirection;
+ private Label labelAnimationDirection;
+ private UI.RComboBox comboBoxLiftOffDistance;
+ private Label labelLiftOffDistance;
+ private Label labelLowBatteryWarningValue;
+ private UI.RComboBox comboBoxAutoPowerOff;
+ private UI.Slider sliderLowBatteryWarning;
+ private Label labelLowBatteryWarning;
+ private Label labelAutoPowerOff;
+ private Panel panelBatteryState;
+ private Label labelChargingState;
+ private Label labelBatteryState;
+ private PictureBox pictureBoxBatteryState;
+ private UI.RButton buttonSync;
+ private Panel panelBottomButtons;
+ }
+}
\ No newline at end of file
diff --git a/app/AsusMouseSettings.cs b/app/AsusMouseSettings.cs
new file mode 100644
index 00000000..7c5dfc72
--- /dev/null
+++ b/app/AsusMouseSettings.cs
@@ -0,0 +1,569 @@
+using GHelper.Peripherals.Mouse;
+using GHelper.UI;
+using System.Windows.Forms;
+
+namespace GHelper
+{
+ public partial class AsusMouseSettings : RForm
+ {
+ private static Dictionary lightingModeNames = new Dictionary()
+ {
+ { LightingMode.Static,Properties.Strings.AuraStatic},
+ { LightingMode.Breathing, Properties.Strings.AuraBreathe},
+ { LightingMode.ColorCycle, Properties.Strings.AuraColorCycle},
+ { LightingMode.Rainbow, Properties.Strings.AuraRainbow},
+ { LightingMode.React, Properties.Strings.AuraReact},
+ { LightingMode.Comet, Properties.Strings.AuraComet},
+ { LightingMode.BatteryState, Properties.Strings.AuraBatteryState},
+ };
+ private List supportedLightingModes = new List();
+
+ private readonly AsusMouse mouse;
+ private readonly RButton[] dpiButtons;
+
+ public AsusMouseSettings(AsusMouse mouse)
+ {
+ this.mouse = mouse;
+ InitializeComponent();
+
+ dpiButtons = new RButton[] { buttonDPI1, buttonDPI2, buttonDPI3, buttonDPI4 };
+
+
+ labelPollingRate.Text = Properties.Strings.PollingRate;
+ labelLighting.Text = Properties.Strings.Lighting;
+ labelEnergy.Text = Properties.Strings.EnergySettings;
+ labelPerformance.Text = Properties.Strings.MousePerformance;
+ checkBoxRandomColor.Text = Properties.Strings.AuraRandomColor;
+ labelLowBatteryWarning.Text = Properties.Strings.MouseLowBatteryWarning;
+ labelAutoPowerOff.Text = Properties.Strings.MouseAutoPowerOff;
+ buttonSync.Text = Properties.Strings.MouseSynchronize;
+ checkBoxAngleSnapping.Text = Properties.Strings.MouseAngleSnapping;
+ labelLiftOffDistance.Text = Properties.Strings.MouseLiftOffDistance;
+ labelChargingState.Text = Properties.Strings.Charging;
+ labelProfile.Text = Properties.Strings.Profile;
+
+ InitTheme();
+
+ this.Text = mouse.GetDisplayName();
+
+ Shown += AsusMouseSettings_Shown;
+
+ mouse.Disconnect += Mouse_Disconnect;
+ mouse.BatteryUpdated += Mouse_BatteryUpdated;
+ comboProfile.DropDownClosed += ComboProfile_DropDownClosed;
+
+ sliderDPI.ValueChanged += SliderDPI_ValueChanged;
+ sliderDPI.MouseUp += SliderDPI_MouseUp;
+ buttonDPIColor.Click += ButtonDPIColor_Click;
+ buttonDPI1.Click += ButtonDPI_Click;
+ buttonDPI2.Click += ButtonDPI_Click;
+ buttonDPI3.Click += ButtonDPI_Click;
+ buttonDPI4.Click += ButtonDPI_Click;
+
+ comboBoxPollingRate.DropDownClosed += ComboBoxPollingRate_DropDownClosed;
+ checkBoxAngleSnapping.CheckedChanged += CheckAngleSnapping_CheckedChanged;
+ sliderAngleAdjustment.ValueChanged += SliderAngleAdjustment_ValueChanged;
+ sliderAngleAdjustment.MouseUp += SliderAngleAdjustment_MouseUp;
+ comboBoxLiftOffDistance.DropDownClosed += ComboBoxLiftOffDistance_DropDownClosed;
+
+ buttonLightingColor.Click += ButtonLightingColor_Click;
+ comboBoxLightingMode.DropDownClosed += ComboBoxLightingMode_DropDownClosed;
+ sliderBrightness.MouseUp += SliderBrightness_MouseUp;
+ comboBoxAnimationSpeed.DropDownClosed += ComboBoxAnimationSpeed_DropDownClosed;
+ comboBoxAnimationDirection.DropDownClosed += ComboBoxAnimationDirection_DropDownClosed;
+ checkBoxRandomColor.CheckedChanged += CheckBoxRandomColor_CheckedChanged;
+
+ sliderLowBatteryWarning.ValueChanged += SliderLowBatteryWarning_ValueChanged;
+ sliderLowBatteryWarning.MouseUp += SliderLowBatteryWarning_MouseUp;
+ comboBoxAutoPowerOff.DropDownClosed += ComboBoxAutoPowerOff_DropDownClosed;
+
+ InitMouseCapabilities();
+ RefreshMouseData();
+ }
+
+ private void Mouse_BatteryUpdated(object? sender, EventArgs e)
+ {
+ this.Invoke(delegate
+ {
+ VisualizeBatteryState();
+ });
+
+ }
+
+ private void ComboProfile_DropDownClosed(object? sender, EventArgs e)
+ {
+ mouse.SetProfile(comboProfile.SelectedIndex);
+ RefreshMouseData();
+ }
+
+ private void ComboBoxPollingRate_DropDownClosed(object? sender, EventArgs e)
+ {
+ mouse.SetPollingRate(comboBoxPollingRate.SelectedIndex + 1);
+ }
+
+ private void ButtonDPIColor_Click(object? sender, EventArgs e)
+ {
+ ColorDialog colorDlg = new ColorDialog
+ {
+ AllowFullOpen = true,
+ Color = pictureDPIColor.BackColor
+ };
+
+ if (colorDlg.ShowDialog() == DialogResult.OK)
+ {
+ AsusMouseDPI dpi = mouse.DpiSettings[mouse.DpiProfile - 1];
+ dpi.Color = colorDlg.Color;
+
+ mouse.SetDPIForProfile(dpi, mouse.DpiProfile);
+
+ VisualizeDPIButtons();
+ VisualizeCurrentDPIProfile();
+ }
+ }
+
+ private void ButtonDPI_Click(object? sender, EventArgs e)
+ {
+ int index = -1;
+
+ for (int i = 0; i < dpiButtons.Length; ++i)
+ {
+ if (sender == dpiButtons[i])
+ {
+ index = i;
+ break;
+ }
+ }
+
+ if (index == -1)
+ {
+ //huh?
+ return;
+ }
+
+ mouse.SetDPIProfile(index + 1);
+ VisualizeDPIButtons();
+ VisualizeCurrentDPIProfile();
+ }
+
+
+ private void CheckBoxRandomColor_CheckedChanged(object? sender, EventArgs e)
+ {
+ LightingSetting? ls = mouse.LightingSetting;
+ ls.RandomColor = checkBoxRandomColor.Checked;
+
+ mouse.SetLightingSetting(ls);
+ VisusalizeLightingSettings();
+ }
+
+ private void ComboBoxAnimationDirection_DropDownClosed(object? sender, EventArgs e)
+ {
+ LightingSetting? ls = mouse.LightingSetting;
+ ls.AnimationDirection = (AnimationDirection)comboBoxAnimationDirection.SelectedIndex;
+
+ mouse.SetLightingSetting(ls);
+ VisusalizeLightingSettings();
+ }
+
+ private void ComboBoxAnimationSpeed_DropDownClosed(object? sender, EventArgs e)
+ {
+ LightingSetting? ls = mouse.LightingSetting;
+ ls.AnimationSpeed = (AnimationSpeed)comboBoxAnimationSpeed.SelectedIndex;
+
+ mouse.SetLightingSetting(ls);
+ VisusalizeLightingSettings();
+ }
+
+ private void SliderBrightness_MouseUp(object? sender, MouseEventArgs e)
+ {
+ LightingSetting? ls = mouse.LightingSetting;
+ ls.Brightness = sliderBrightness.Value;
+
+ mouse.SetLightingSetting(ls);
+ }
+
+ private void ComboBoxLightingMode_DropDownClosed(object? sender, EventArgs e)
+ {
+ LightingMode lm = supportedLightingModes[comboBoxLightingMode.SelectedIndex];
+
+ LightingSetting? ls = mouse.LightingSetting;
+ ls.LightingMode = lm;
+
+ mouse.SetLightingSetting(ls);
+ VisusalizeLightingSettings();
+ }
+
+ private void ButtonLightingColor_Click(object? sender, EventArgs e)
+ {
+ ColorDialog colorDlg = new ColorDialog
+ {
+ AllowFullOpen = true,
+ Color = pictureBoxLightingColor.BackColor
+ };
+
+ if (colorDlg.ShowDialog() == DialogResult.OK)
+ {
+ LightingSetting? ls = mouse.LightingSetting;
+ ls.RGBColor = colorDlg.Color;
+
+ mouse.SetLightingSetting(ls);
+ VisusalizeLightingSettings();
+ }
+ }
+
+ private void SliderLowBatteryWarning_ValueChanged(object? sender, EventArgs e)
+ {
+ labelLowBatteryWarningValue.Text = sliderLowBatteryWarning.Value.ToString() + "%";
+ }
+
+ private void SliderLowBatteryWarning_MouseUp(object? sender, MouseEventArgs e)
+ {
+ mouse.SetEnergySettings(sliderLowBatteryWarning.Value, mouse.PowerOffSetting);
+ }
+
+
+ private void ComboBoxAutoPowerOff_DropDownClosed(object? sender, EventArgs e)
+ {
+ object? obj = Enum.GetValues(typeof(PowerOffSetting)).GetValue(comboBoxAutoPowerOff.SelectedIndex);
+ if (obj is null)
+ {
+ return;
+ }
+ PowerOffSetting pos = (PowerOffSetting)obj;
+
+
+ mouse.SetEnergySettings(mouse.LowBatteryWarning, pos);
+ }
+
+ private void SliderAngleAdjustment_ValueChanged(object? sender, EventArgs e)
+ {
+ labelAngleAdjustmentValue.Text = sliderAngleAdjustment.Value.ToString() + "°";
+ }
+
+ private void SliderAngleAdjustment_MouseUp(object? sender, MouseEventArgs e)
+ {
+ mouse.SetAngleAdjustment((short)sliderAngleAdjustment.Value);
+ }
+
+ private void ComboBoxLiftOffDistance_DropDownClosed(object? sender, EventArgs e)
+ {
+ mouse.SetLiftOffDistance((LiftOffDistance)comboBoxLiftOffDistance.SelectedIndex);
+ }
+
+ private void CheckAngleSnapping_CheckedChanged(object? sender, EventArgs e)
+ {
+ mouse.SetAngleSnapping(checkBoxAngleSnapping.Checked);
+ mouse.SetAngleAdjustment((short)sliderAngleAdjustment.Value);
+ }
+
+ private void SliderDPI_ValueChanged(object? sender, EventArgs e)
+ {
+ labelDPIValue.Text = sliderDPI.Value.ToString();
+ }
+
+ private void SliderDPI_MouseUp(object? sender, MouseEventArgs e)
+ {
+ AsusMouseDPI dpi = mouse.DpiSettings[mouse.DpiProfile - 1];
+ dpi.DPI = (uint)sliderDPI.Value;
+
+ mouse.SetDPIForProfile(dpi, mouse.DpiProfile);
+
+ VisualizeDPIButtons();
+ VisualizeCurrentDPIProfile();
+ }
+
+ private void Mouse_Disconnect(object? sender, EventArgs e)
+ {
+ //Mouse disconnected. Bye bye.
+ this.Invoke(delegate
+ {
+ this.Close();
+ });
+
+ }
+
+ private void RefreshMouseData()
+ {
+ mouse.SynchronizeDevice();
+ if (!mouse.IsDeviceReady)
+ {
+ this.Invoke(delegate
+ {
+ this.Close();
+ });
+ return;
+ }
+
+
+ VisualizeMouseSettings();
+ VisualizeBatteryState();
+ }
+
+ private void InitMouseCapabilities()
+ {
+ for (int i = 0; i < mouse.ProfileCount(); ++i)
+ {
+ String prf = Properties.Strings.Profile + " " + (i + 1);
+ comboProfile.Items.Add(prf);
+ }
+
+ labelMinDPI.Text = mouse.MinDPI().ToString();
+ labelMaxDPI.Text = mouse.MaxDPI().ToString();
+
+ sliderDPI.Max = mouse.MaxDPI();
+ sliderDPI.Min = mouse.MinDPI();
+
+
+ if (!mouse.HasDPIColors())
+ {
+ buttonDPIColor.Visible = false;
+ pictureDPIColor.Visible = false;
+ buttonDPI1.Image = ControlHelper.TintImage(Properties.Resources.lighting_dot_24, Color.Red);
+ buttonDPI2.Image = ControlHelper.TintImage(Properties.Resources.lighting_dot_24, Color.Purple);
+ buttonDPI3.Image = ControlHelper.TintImage(Properties.Resources.lighting_dot_24, Color.Blue);
+ buttonDPI4.Image = ControlHelper.TintImage(Properties.Resources.lighting_dot_24, Color.Green);
+
+ buttonDPI1.BorderColor = Color.Red;
+ buttonDPI1.BorderColor = Color.Purple;
+ buttonDPI1.BorderColor = Color.Blue;
+ buttonDPI1.BorderColor = Color.Green;
+ }
+
+ if (mouse.CanSetPollingRate())
+ {
+ comboBoxPollingRate.Items.AddRange(mouse.PollingRateDisplayStrings());
+ }
+ else
+ {
+ comboBoxPollingRate.Visible = false;
+ labelPollingRate.Visible = false;
+ }
+
+ if (!mouse.HasAngleSnapping())
+ {
+ checkBoxAngleSnapping.Visible = false;
+ labelAngleAdjustmentValue.Visible = false;
+ sliderAngleAdjustment.Visible = false;
+ }
+
+ if (mouse.HasLiftOffSetting())
+ {
+ comboBoxLiftOffDistance.Items.AddRange(new string[] {
+ Properties.Strings.Low,
+ Properties.Strings.High,
+ });
+ }
+ else
+ {
+ comboBoxLiftOffDistance.Visible = false;
+ labelLiftOffDistance.Visible = false;
+ }
+
+ if (mouse.DPIProfileCount() < 4)
+ {
+ for (int i = 3; i > mouse.DPIProfileCount() - 1; --i)
+ {
+ dpiButtons[i].Visible = false;
+ }
+ }
+
+ if (!mouse.HasBattery())
+ {
+ panelBatteryState.Visible = false;
+ }
+
+ if (mouse.HasEnergySettings())
+ {
+ comboBoxAutoPowerOff.Items.AddRange(new string[]{
+ " 1 "+ Properties.Strings.Minute,
+ " 2 "+ Properties.Strings.Minutes,
+ " 3 "+ Properties.Strings.Minutes,
+ " 5 "+ Properties.Strings.Minutes,
+ "10 "+ Properties.Strings.Minutes,
+ Properties.Strings.Never,
+ });
+ }
+ else
+ {
+ panelEnergy.Visible = false;
+ }
+
+ if (mouse.HasRGB())
+ {
+ foreach (LightingMode lm in Enum.GetValues(typeof(LightingMode)))
+ {
+ if (mouse.IsLightingModeSupported(lm))
+ {
+ comboBoxLightingMode.Items.Add(lightingModeNames.GetValueOrDefault(lm));
+ supportedLightingModes.Add(lm);
+ }
+ }
+
+ comboBoxAnimationDirection.Items.AddRange(new string[] {
+ Properties.Strings.AuraClockwise,
+ Properties.Strings.AuraCounterClockwise,
+ });
+
+ comboBoxAnimationSpeed.Items.AddRange(new string[] {
+ Properties.Strings.AuraSlow,
+ Properties.Strings.AuraNormal,
+ Properties.Strings.AuraFast
+ });
+ }
+ else
+ {
+ panelLighting.Visible = false;
+ }
+ }
+
+
+ private void VisualizeMouseSettings()
+ {
+ comboProfile.SelectedIndex = mouse.Profile;
+
+ VisualizeDPIButtons();
+ VisualizeCurrentDPIProfile();
+ VisusalizeLightingSettings();
+
+ if (mouse.CanSetPollingRate())
+ {
+ comboBoxPollingRate.SelectedIndex = mouse.PollingRate - 1;
+ }
+
+ if (mouse.HasAngleSnapping())
+ {
+ checkBoxAngleSnapping.Checked = mouse.AngleSnapping;
+ sliderAngleAdjustment.Value = mouse.AngleAdjustmentDegrees;
+ }
+
+ if (mouse.HasEnergySettings())
+ {
+ if (mouse.PowerOffSetting == PowerOffSetting.Never)
+ {
+ comboBoxAutoPowerOff.SelectedIndex = comboBoxAutoPowerOff.Items.Count - 1;
+ }
+ else
+ {
+ comboBoxAutoPowerOff.SelectedIndex = (int)mouse.PowerOffSetting;
+ }
+
+ sliderLowBatteryWarning.Value = mouse.LowBatteryWarning;
+
+ }
+
+ if (mouse.HasLiftOffSetting())
+ {
+ comboBoxLiftOffDistance.SelectedIndex = (int)mouse.LiftOffDistance;
+ }
+ }
+
+ private void VisualizeBatteryState()
+ {
+ if (!mouse.HasBattery())
+ {
+ return;
+ }
+
+ labelBatteryState.Text = mouse.Battery + "%";
+ labelChargingState.Visible = mouse.Charging;
+
+ if (mouse.Charging)
+ {
+ pictureBoxBatteryState.BackgroundImage = ControlHelper.TintImage(Properties.Resources.icons8_ladende_batterie_48, foreMain);
+ }
+ else
+ {
+ pictureBoxBatteryState.BackgroundImage = ControlHelper.TintImage(Properties.Resources.icons8_batterie_voll_geladen_48, foreMain);
+ }
+ }
+
+ private void VisusalizeLightingSettings()
+ {
+ if (!mouse.HasRGB())
+ {
+ return;
+ }
+
+ LightingSetting? ls = mouse.LightingSetting;
+
+ if (ls is null)
+ {
+ //Lighting settings not loaded?
+ return;
+ }
+
+ sliderBrightness.Value = ls.Brightness;
+
+ checkBoxRandomColor.Visible = mouse.SupportsRandomColor(ls.LightingMode);
+
+ pictureBoxLightingColor.Visible = mouse.SupportsColorSetting(ls.LightingMode);
+ pictureBoxLightingColor.Visible = mouse.SupportsColorSetting(ls.LightingMode);
+
+ comboBoxAnimationSpeed.Visible = mouse.SupportsAnimationSpeed(ls.LightingMode);
+ labelAnimationSpeed.Visible = mouse.SupportsAnimationSpeed(ls.LightingMode);
+ comboBoxAnimationDirection.Visible = mouse.SupportsAnimationDirection(ls.LightingMode);
+ labelAnimationDirection.Visible = mouse.SupportsAnimationDirection(ls.LightingMode);
+
+ comboBoxLightingMode.SelectedIndex = supportedLightingModes.IndexOf(ls.LightingMode);
+
+ if (mouse.SupportsRandomColor(ls.LightingMode))
+ {
+ checkBoxRandomColor.Checked = ls.RandomColor;
+ buttonLightingColor.Visible = !ls.RandomColor;
+
+ }
+
+ if (ls.RandomColor && mouse.SupportsRandomColor(ls.LightingMode))
+ pictureBoxLightingColor.BackColor = Color.Transparent;
+ else
+ pictureBoxLightingColor.BackColor = ls.RGBColor;
+
+
+ comboBoxAnimationSpeed.SelectedIndex = (((int)ls.AnimationSpeed) - 5) / 2;
+ comboBoxAnimationDirection.SelectedIndex = (int)ls.AnimationDirection;
+ }
+
+
+ private void VisualizeDPIButtons()
+ {
+ if (mouse.HasDPIColors())
+ {
+ for (int i = 0; i < mouse.DPIProfileCount() && i < 4; ++i)
+ {
+ AsusMouseDPI dpi = mouse.DpiSettings[i];
+ dpiButtons[i].Image = ControlHelper.TintImage(Properties.Resources.lighting_dot_24, dpi.Color);
+ dpiButtons[i].Activated = (mouse.DpiProfile - 1) == i;
+ dpiButtons[i].BorderColor = dpi.Color;
+ dpiButtons[i].Text = "DPI " + (i + 1) + "\n" + dpi.DPI;
+ }
+ }
+
+ }
+
+ private void VisualizeCurrentDPIProfile()
+ {
+ AsusMouseDPI dpi = mouse.DpiSettings[mouse.DpiProfile - 1];
+ sliderDPI.Value = (int)dpi.DPI;
+ pictureDPIColor.BackColor = dpi.Color;
+ }
+
+ private void AsusMouseSettings_Shown(object? sender, EventArgs e)
+ {
+
+ if (Height > Program.settingsForm.Height)
+ {
+ Top = Program.settingsForm.Top + Program.settingsForm.Height - Height;
+ }
+ else
+ {
+ Top = Program.settingsForm.Top;
+ }
+
+ Left = Program.settingsForm.Left - Width - 5;
+ }
+
+ private void ButtonSync_Click(object sender, EventArgs e)
+ {
+ RefreshMouseData();
+ }
+ }
+}
diff --git a/app/AsusMouseSettings.resx b/app/AsusMouseSettings.resx
new file mode 100644
index 00000000..a395bffc
--- /dev/null
+++ b/app/AsusMouseSettings.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/app/Properties/Resources.Designer.cs b/app/Properties/Resources.Designer.cs
index 387961ba..48a7f8ec 100644
--- a/app/Properties/Resources.Designer.cs
+++ b/app/Properties/Resources.Designer.cs
@@ -140,6 +140,16 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_batterie_voll_geladen_48 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_batterie_voll_geladen_48", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -280,6 +290,16 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_ladende_batterie_48 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_ladende_batterie_48", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -339,7 +359,17 @@ namespace GHelper.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
-
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_mauszeiger_50 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_mauszeiger_50", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -521,7 +551,37 @@ namespace GHelper.Properties {
}
///
- /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
+ /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap lighting_dot_24 {
+ get {
+ object obj = ResourceManager.GetObject("lighting_dot_24", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap lighting_dot_32 {
+ get {
+ object obj = ResourceManager.GetObject("lighting_dot_32", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap lighting_dot_48 {
+ get {
+ object obj = ResourceManager.GetObject("lighting_dot_48", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Icon ähnlich wie (Symbol).
///
internal static System.Drawing.Icon standard {
get {
diff --git a/app/Properties/Resources.resx b/app/Properties/Resources.resx
index f36d49f1..c9595ed8 100644
--- a/app/Properties/Resources.resx
+++ b/app/Properties/Resources.resx
@@ -262,4 +262,22 @@
..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons8-batterie-voll-geladen-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons8-ladende-batterie-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\lighting_dot_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\lighting_dot_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\lighting_dot_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs
index a5c19305..77290fe0 100644
--- a/app/Properties/Strings.Designer.cs
+++ b/app/Properties/Strings.Designer.cs
@@ -195,6 +195,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Battery State.
+ ///
+ internal static string AuraBatteryState {
+ get {
+ return ResourceManager.GetString("AuraBatteryState", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Breathe.
///
@@ -204,6 +213,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Clockwise.
+ ///
+ internal static string AuraClockwise {
+ get {
+ return ResourceManager.GetString("AuraClockwise", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Color Cycle.
///
@@ -213,6 +231,24 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Comet.
+ ///
+ internal static string AuraComet {
+ get {
+ return ResourceManager.GetString("AuraComet", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Counterclockwise.
+ ///
+ internal static string AuraCounterClockwise {
+ get {
+ return ResourceManager.GetString("AuraCounterClockwise", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Fast.
///
@@ -240,6 +276,24 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Random.
+ ///
+ internal static string AuraRandomColor {
+ get {
+ return ResourceManager.GetString("AuraRandomColor", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to React.
+ ///
+ internal static string AuraReact {
+ get {
+ return ResourceManager.GetString("AuraReact", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Slow.
///
@@ -503,6 +557,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Energy Settings.
+ ///
+ internal static string EnergySettings {
+ get {
+ return ResourceManager.GetString("EnergySettings", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Extra.
///
@@ -701,6 +764,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to High.
+ ///
+ internal static string High {
+ get {
+ return ResourceManager.GetString("High", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Key Bindings.
///
@@ -773,6 +845,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Lighting.
+ ///
+ internal static string Lighting {
+ get {
+ return ResourceManager.GetString("Lighting", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Logo.
///
@@ -782,6 +863,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Low.
+ ///
+ internal static string Low {
+ get {
+ return ResourceManager.GetString("Low", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Audio Visualizer.
///
@@ -881,6 +971,78 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Minute.
+ ///
+ internal static string Minute {
+ get {
+ return ResourceManager.GetString("Minute", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Minutes.
+ ///
+ internal static string Minutes {
+ get {
+ return ResourceManager.GetString("Minutes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Angle Snapping.
+ ///
+ internal static string MouseAngleSnapping {
+ get {
+ return ResourceManager.GetString("MouseAngleSnapping", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto Power Off After.
+ ///
+ internal static string MouseAutoPowerOff {
+ get {
+ return ResourceManager.GetString("MouseAutoPowerOff", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Lift Off Distance.
+ ///
+ internal static string MouseLiftOffDistance {
+ get {
+ return ResourceManager.GetString("MouseLiftOffDistance", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Low Battery Warning at.
+ ///
+ internal static string MouseLowBatteryWarning {
+ get {
+ return ResourceManager.GetString("MouseLowBatteryWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Performance.
+ ///
+ internal static string MousePerformance {
+ get {
+ return ResourceManager.GetString("MousePerformance", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Synchronize with mouse.
+ ///
+ internal static string MouseSynchronize {
+ get {
+ return ResourceManager.GetString("MouseSynchronize", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Multizone.
///
@@ -899,6 +1061,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Never.
+ ///
+ internal static string Never {
+ get {
+ return ResourceManager.GetString("Never", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to New updates.
///
@@ -918,7 +1089,7 @@ namespace GHelper.Properties {
}
///
- /// Sucht eine lokalisierte Zeichenfolge, die Not Connected ähnelt.
+ /// Looks up a localized string similar to Not Connected.
///
internal static string NotConnected {
get {
@@ -990,7 +1161,7 @@ namespace GHelper.Properties {
}
///
- /// Sucht eine lokalisierte Zeichenfolge, die Peripherals ähnelt.
+ /// Looks up a localized string similar to Peripherals.
///
internal static string Peripherals {
get {
@@ -1016,6 +1187,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Polling Rate.
+ ///
+ internal static string PollingRate {
+ get {
+ return ResourceManager.GetString("PollingRate", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Power Limits.
///
@@ -1043,6 +1223,15 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Profile.
+ ///
+ internal static string Profile {
+ get {
+ return ResourceManager.GetString("Profile", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Quit.
///
diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx
index aa381582..52715934 100644
--- a/app/Properties/Strings.resx
+++ b/app/Properties/Strings.resx
@@ -162,12 +162,24 @@
Asus Services Running
+
+ Battery State
+
Breathe
+
+ Clockwise
+
Color Cycle
+
+ Comet
+
+
+ Counterclockwise
+
Fast
@@ -177,6 +189,12 @@
Rainbow
+
+ Random
+
+
+ React
+
Slow
@@ -266,6 +284,9 @@ Do you still want to continue?
NVIDIA Display Mode is not set to Optimus
+
+ Energy Settings
+
Extra
@@ -332,6 +353,9 @@ Do you still want to continue?
Temperature Target
+
+ High
+
Key Bindings
@@ -356,9 +380,15 @@ Do you still want to continue?
Lightbar
+
+ Lighting
+
Logo
+
+ Low
+
Audio Visualizer
@@ -392,12 +422,39 @@ Do you still want to continue?
60Hz refresh rate to save battery
+
+ Minute
+
+
+ Minutes
+
+
+ Angle Snapping
+
+
+ Auto Power Off After
+
+
+ Lift Off Distance
+
+
+ Low Battery Warning at
+
+
+ Performance
+
+
+ Synchronize with mouse
+
Multizone
Mute Mic
+
+ Never
+
New updates
@@ -437,6 +494,9 @@ Do you still want to continue?
Play / Pause
+
+ Polling Rate
+
Power Limits
@@ -446,6 +506,9 @@ Do you still want to continue?
PrintScreen
+
+ Profile
+
Quit
diff --git a/app/Resources/icons8-batterie-voll-geladen-48.png b/app/Resources/icons8-batterie-voll-geladen-48.png
new file mode 100644
index 00000000..96477f33
Binary files /dev/null and b/app/Resources/icons8-batterie-voll-geladen-48.png differ
diff --git a/app/Resources/icons8-ladende-batterie-48.png b/app/Resources/icons8-ladende-batterie-48.png
new file mode 100644
index 00000000..a1be3718
Binary files /dev/null and b/app/Resources/icons8-ladende-batterie-48.png differ
diff --git a/app/Resources/icons8-mauszeiger-50.png b/app/Resources/icons8-mauszeiger-50.png
new file mode 100644
index 00000000..90cbdaa3
Binary files /dev/null and b/app/Resources/icons8-mauszeiger-50.png differ
diff --git a/app/Resources/lighting_dot_24.png b/app/Resources/lighting_dot_24.png
new file mode 100644
index 00000000..24942616
Binary files /dev/null and b/app/Resources/lighting_dot_24.png differ
diff --git a/app/Resources/lighting_dot_32.png b/app/Resources/lighting_dot_32.png
new file mode 100644
index 00000000..382ed5f5
Binary files /dev/null and b/app/Resources/lighting_dot_32.png differ
diff --git a/app/Resources/lighting_dot_48.png b/app/Resources/lighting_dot_48.png
new file mode 100644
index 00000000..1520857e
Binary files /dev/null and b/app/Resources/lighting_dot_48.png differ
diff --git a/app/Settings.cs b/app/Settings.cs
index 0b4d9a10..8f93c00f 100644
--- a/app/Settings.cs
+++ b/app/Settings.cs
@@ -1131,7 +1131,31 @@ namespace GHelper
if (sender == buttonPeripheral2) index = 1;
if (sender == buttonPeripheral3) index = 2;
- //TODO: Open Configuration Panel
+ IPeripheral iph = PeripheralsProvider.AllPeripherals().ElementAt(index);
+
+ if (iph is null)
+ {
+ //Can only happen when the user hits the button in the exact moment a device is disconnected.
+ return;
+ }
+
+ if (iph.DeviceType() == PeripheralType.Mouse)
+ {
+ AsusMouse? am = iph as AsusMouse;
+ if (am is null)
+ {
+ //Should not happen if all device classes are implemented correctly. But better safe than sorry.
+ return;
+ }
+ AsusMouseSettings s = new AsusMouseSettings(am);
+ if (!s.IsDisposed)
+ {
+ s.Show();
+ }
+
+ }
+
+
}
}