Custom output curve GUI changes (new edit field in Output curve tab page) and clickable HTML link to open the custom curve web app editor.

This commit is contained in:
mika-n 2019-07-17 23:20:38 +03:00
parent 5ebe213526
commit d4905227c4
5 changed files with 4217 additions and 3866 deletions

View File

@ -64,7 +64,8 @@ namespace DS4Windows
}
}
// Custom definition set by DS4Windows options screens. This string is not validated, but AsString property returns validated value
// Custom definition set by DS4Windows options screens. This string is not validated (ie. the value is as user entered it and could be even ab invalid curve definition strimg value).
// AsString property returns the currently effective and validated value.
public string CustomDefinition { get; set; }
public string ToString() { return this.CustomDefinition; }

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@ using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
using System.IO;
using Microsoft.Win32; // We need Registry class from here
using static DS4Windows.Global;
namespace DS4Windows.Forms
@ -153,6 +154,10 @@ namespace DS4Windows.Forms
populateHoverIndexDict();
populateHoverImageDict();
populateHoverLabelDict();
tBCustomOutputCurve.Text = String.Empty;
lbCurveEditorURL.Text = $" - {lbCurveEditorURL.Text}";
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = false;
}
private void TriggerCondAndCombo_SelectedIndexChanged(object sender, EventArgs e)
@ -2854,7 +2859,13 @@ namespace DS4Windows.Forms
{
if (!loading)
{
setLsOutCurveMode(device, lsOutCurveComboBox.SelectedIndex);
// This same handler is called when combobox label object is clicked. Update curve mode only when sender is ComboxBox with a new selection index
if(sender is ComboBox)
setLsOutCurveMode(device, lsOutCurveComboBox.SelectedIndex);
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = (lsOutCurveComboBox.SelectedIndex == lsOutCurveComboBox.Items.Count - 1);
tBCustomOutputCurve.Text = (tBCustomOutputCurve.Enabled ? lsOutBezierCurveObj[device].ToString() : lsOutBezierCurveObj[device].AsString);
lbCurveEditorURL.Text = $"LS - {lbCurveEditorURL.Text.Substring(5)}";
}
}
@ -2862,7 +2873,12 @@ namespace DS4Windows.Forms
{
if (!loading)
{
setRsOutCurveMode(device, rsOutCurveComboBox.SelectedIndex);
if (sender is ComboBox)
setRsOutCurveMode(device, rsOutCurveComboBox.SelectedIndex);
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = (rsOutCurveComboBox.SelectedIndex == rsOutCurveComboBox.Items.Count - 1);
tBCustomOutputCurve.Text = (tBCustomOutputCurve.Enabled ? rsOutBezierCurveObj[device].ToString() : rsOutBezierCurveObj[device].AsString);
lbCurveEditorURL.Text = $"RS - {lbCurveEditorURL.Text.Substring(5)}";
}
}
@ -2971,7 +2987,12 @@ namespace DS4Windows.Forms
{
if (loading == false)
{
setL2OutCurveMode(device, cBL2OutputCurve.SelectedIndex);
if (sender is ComboBox)
setL2OutCurveMode(device, cBL2OutputCurve.SelectedIndex);
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = (cBL2OutputCurve.SelectedIndex == cBL2OutputCurve.Items.Count - 1);
tBCustomOutputCurve.Text = (tBCustomOutputCurve.Enabled ? l2OutBezierCurveObj[device].ToString() : l2OutBezierCurveObj[device].AsString);
lbCurveEditorURL.Text = $"L2 - {lbCurveEditorURL.Text.Substring(5)}";
}
}
@ -2979,7 +3000,12 @@ namespace DS4Windows.Forms
{
if (loading == false)
{
setR2OutCurveMode(device, cBR2OutputCurve.SelectedIndex);
if (sender is ComboBox)
setR2OutCurveMode(device, cBR2OutputCurve.SelectedIndex);
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = (cBR2OutputCurve.SelectedIndex == cBR2OutputCurve.Items.Count - 1);
tBCustomOutputCurve.Text = (tBCustomOutputCurve.Enabled ? r2OutBezierCurveObj[device].ToString() : r2OutBezierCurveObj[device].AsString);
lbCurveEditorURL.Text = $"R2 - {lbCurveEditorURL.Text.Substring(5)}";
}
}
@ -2987,7 +3013,12 @@ namespace DS4Windows.Forms
{
if (loading == false)
{
setSXOutCurveMode(device, cBSixaxisXOutputCurve.SelectedIndex);
if (sender is ComboBox)
setSXOutCurveMode(device, cBSixaxisXOutputCurve.SelectedIndex);
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = (cBSixaxisXOutputCurve.SelectedIndex == cBSixaxisXOutputCurve.Items.Count - 1);
tBCustomOutputCurve.Text = (tBCustomOutputCurve.Enabled ? sxOutBezierCurveObj[device].ToString() : sxOutBezierCurveObj[device].AsString);
lbCurveEditorURL.Text = $"SX - {lbCurveEditorURL.Text.Substring(5)}";
}
}
@ -2995,7 +3026,12 @@ namespace DS4Windows.Forms
{
if (loading == false)
{
setSZOutCurveMode(device, cBSixaxisZOutputCurve.SelectedIndex);
if (sender is ComboBox)
setSZOutCurveMode(device, cBSixaxisZOutputCurve.SelectedIndex);
tBCustomOutputCurve.Enabled = lbCurveEditorURL.Enabled = (cBSixaxisZOutputCurve.SelectedIndex == cBSixaxisZOutputCurve.Items.Count - 1);
tBCustomOutputCurve.Text = (tBCustomOutputCurve.Enabled ? szOutBezierCurveObj[device].ToString() : szOutBezierCurveObj[device].AsString);
lbCurveEditorURL.Text = $"SZ - {lbCurveEditorURL.Text.Substring(5)}";
}
}
@ -3187,6 +3223,125 @@ namespace DS4Windows.Forms
}
}
private void lbCurveEditorURL_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
string customDefinition;
switch (lbCurveEditorURL.Text.Substring(0, 2))
{
case "LS": customDefinition = lsOutBezierCurveObj[device].ToString(); break;
case "RS": customDefinition = rsOutBezierCurveObj[device].ToString(); break;
case "L2": customDefinition = l2OutBezierCurveObj[device].ToString(); break;
case "R2": customDefinition = r2OutBezierCurveObj[device].ToString(); break;
case "SX": customDefinition = sxOutBezierCurveObj[device].ToString(); break;
case "SZ": customDefinition = szOutBezierCurveObj[device].ToString(); break;
default: customDefinition = String.Empty; break;
}
// Custom curve editor web link clicked. Open the bezier curve editor web app usign the default browser app and pass on current custom definition as a query string parameter.
// The Process.Start command using HTML page doesn't support query parameters, so if there is a custom curve definition then lookup the default browser executable name from a sysreg.
string defaultBrowserCmd = String.Empty;
try
{
if (!String.IsNullOrEmpty(customDefinition))
{
string progId = String.Empty;
using (RegistryKey userChoiceKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice"))
{
progId = userChoiceKey?.GetValue("Progid")?.ToString();
}
if (!String.IsNullOrEmpty(progId))
{
using (RegistryKey browserPathCmdKey = Registry.ClassesRoot.OpenSubKey($"{progId}\\shell\\open\\command"))
{
defaultBrowserCmd = browserPathCmdKey?.GetValue(null).ToString();
}
if(!String.IsNullOrEmpty(defaultBrowserCmd))
{
int iStartPos = (defaultBrowserCmd[0] == '"' ? 1 : 0);
defaultBrowserCmd = defaultBrowserCmd.Substring(iStartPos, defaultBrowserCmd.LastIndexOf(".exe") + 4 - iStartPos);
if (Path.GetFileName(defaultBrowserCmd).ToLower() == "launchwinapp.exe")
defaultBrowserCmd = String.Empty;
}
// Fallback to IE executable if the default browser HTML shell association is for some reason missing or is not set
if (String.IsNullOrEmpty(defaultBrowserCmd))
defaultBrowserCmd = "C:\\program files\\Internet Explorer\\iexplore.exe";
if (!File.Exists(defaultBrowserCmd))
defaultBrowserCmd = String.Empty;
}
}
// Launch custom bezier editor webapp using a default browser executable command or via a default shell command. The default shell exeution doesn't support query parameters.
if (!String.IsNullOrEmpty(defaultBrowserCmd))
System.Diagnostics.Process.Start(defaultBrowserCmd, $"\"file:///{Global.exepath}\\BezierCurveEditor\\index.html?curve={customDefinition.Replace(" ", "")}\"");
else
System.Diagnostics.Process.Start($"{Global.exepath}\\BezierCurveEditor\\index.html");
}
catch (Exception ex)
{
AppLogger.LogToGui($"ERROR. Failed to open {Global.exepath}\\BezierCurveEditor\\index.html web app. Check that the web file exits or launch it outside of DS4Windows application. {ex.Message}", true);
}
}
private void tBCustomOutputCurve_Leave(object sender, EventArgs e)
{
// Focus leaves the custom output curve editbox. Store the new custom curve value into LS/RS/L2/R2/SX/SZ bezierCurve object
switch (lbCurveEditorURL.Text.Substring(0, 2))
{
case "LS":
if (lsOutCurveComboBox.SelectedIndex == lsOutCurveComboBox.Items.Count - 1)
{
lsOutBezierCurveObj[device].CustomDefinition = tBCustomOutputCurve.Text;
lsOutBezierCurveObj[device].InitBezierCurve(tBCustomOutputCurve.Text, BezierCurve.AxisType.LSRS);
}
break;
case "RS":
if (rsOutCurveComboBox.SelectedIndex == rsOutCurveComboBox.Items.Count - 1)
{
rsOutBezierCurveObj[device].CustomDefinition = tBCustomOutputCurve.Text;
rsOutBezierCurveObj[device].InitBezierCurve(tBCustomOutputCurve.Text, BezierCurve.AxisType.LSRS);
}
break;
case "L2":
if (cBL2OutputCurve.SelectedIndex == cBL2OutputCurve.Items.Count - 1)
{
l2OutBezierCurveObj[device].CustomDefinition = tBCustomOutputCurve.Text;
l2OutBezierCurveObj[device].InitBezierCurve(tBCustomOutputCurve.Text, BezierCurve.AxisType.L2R2);
}
break;
case "R2":
if (cBR2OutputCurve.SelectedIndex == cBR2OutputCurve.Items.Count - 1)
{
r2OutBezierCurveObj[device].CustomDefinition = tBCustomOutputCurve.Text;
r2OutBezierCurveObj[device].InitBezierCurve(tBCustomOutputCurve.Text, BezierCurve.AxisType.L2R2);
}
break;
case "SX":
if (cBSixaxisXOutputCurve.SelectedIndex == cBSixaxisXOutputCurve.Items.Count - 1)
{
sxOutBezierCurveObj[device].CustomDefinition = tBCustomOutputCurve.Text;
sxOutBezierCurveObj[device].InitBezierCurve(tBCustomOutputCurve.Text, BezierCurve.AxisType.SA);
}
break;
case "SZ":
if (cBSixaxisZOutputCurve.SelectedIndex == cBSixaxisZOutputCurve.Items.Count - 1)
{
szOutBezierCurveObj[device].CustomDefinition = tBCustomOutputCurve.Text;
szOutBezierCurveObj[device].InitBezierCurve(tBCustomOutputCurve.Text, BezierCurve.AxisType.SA);
}
break;
}
}
private void trackFrictionNUD_ValueChanged(object sender, EventArgs e)
{
if (loading == false)

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@ -365,7 +365,7 @@
<value>154, 21</value>
</data>
<data name="cBDinput.Text" xml:space="preserve">
<value>käytä vain Dinput:ia</value>
<value>Käytä vain Dinput:ia</value>
</data>
<data name="cBLaunchProgram.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 38</value>
@ -494,7 +494,7 @@
<value>Pidä valittuja näppäimiä pohjassa tehdäksesi valitun toiminnon. Valitse toiminto käyttääksesi sitä tässä profiilissa.</value>
</data>
<data name="tPCurve.Text" xml:space="preserve">
<value>Kurvi</value>
<value>Kurvi (sisään)</value>
</data>
<data name="rBSAControls.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 21</value>
@ -640,4 +640,97 @@
<data name="tPDeadzone.Text" xml:space="preserve">
<value>Deadzone</value>
</data>
<data name="trackballCk.Text" xml:space="preserve">
<value>Pallohiiri</value>
</data>
<data name="trackFrictionLb.Text" xml:space="preserve">
<value>Kitka</value>
</data>
<data name="label25.Text" xml:space="preserve">
<value>Kääntö pois:</value>
</data>
<data name="label15.Text" xml:space="preserve">
<value>Kääntö:</value>
</data>
<data name="rBTPControls.Text" xml:space="preserve">
<value>Käytä ohjaimena:</value>
</data>
<data name="rBTPMouse.Text" xml:space="preserve">
<value>Käytä hiirenä:</value>
</data>
<data name="controlToolStripMenuItem.Text" xml:space="preserve">
<value>Ohjain</value>
</data>
<data name="bnSwipeUp.Text" xml:space="preserve">
<value>Pyyhkäisy ylös</value>
</data>
<data name="lbSwipeUp.Text" xml:space="preserve">
<value>Asetukset</value>
</data>
<data name="bnSwipeDown.Text" xml:space="preserve">
<value>Pyyhkäisy alas</value>
</data>
<data name="lbSwipeDown.Text" xml:space="preserve">
<value>Asetukset</value>
</data>
<data name="bnSwipeLeft.Text" xml:space="preserve">
<value>Pyyhkäisy vasen</value>
</data>
<data name="lbSwipeLeft.Text" xml:space="preserve">
<value>Asetukset</value>
</data>
<data name="bnSwipeRight.Text" xml:space="preserve">
<value>Pyyhkäisy oikea</value>
</data>
<data name="lbSwipeRight.Text" xml:space="preserve">
<value>Asetukset</value>
</data>
<data name="outcontLb.Text" xml:space="preserve">
<value>Ohjain:</value>
</data>
<data name="btPollRateLabel.Text" xml:space="preserve">
<value>BT lukutaajuus</value>
</data>
<data name="enableTouchToggleCheckbox.Text" xml:space="preserve">
<value>Käytä kosketuslevyn kytkentää</value>
</data>
<data name="btnLSTrack.Text" xml:space="preserve">
<value>nappi1</value>
</data>
<data name="btnRSTrack.Text" xml:space="preserve">
<value>nappi1</value>
</data>
<data name="lbL2TrackS.Text" xml:space="preserve">
<value>Ohjaimen tilatiedot</value>
</data>
<data name="lblSteeringWheelEmulationAxis.Text" xml:space="preserve">
<value>Ratin akseli</value>
</data>
<data name="lblSteeringWheelEmulationRange.Text" xml:space="preserve">
<value>Ratin kääntösäde</value>
</data>
<data name="lbCurveEditorURL.Text" xml:space="preserve">
<value>Custom kurvieditointi</value>
</data>
<data name="tPOutCurve.Text" xml:space="preserve">
<value>Kurvi (ulos)</value>
</data>
<data name="tpRotation.Text" xml:space="preserve">
<value>Kierto</value>
</data>
<data name="toggleGyroMCb.Text" xml:space="preserve">
<value>Kytke</value>
</data>
<data name="lbGyroSmooth.Text" xml:space="preserve">
<value>Tasaaminen:</value>
</data>
<data name="lbSmoothWeight.Text" xml:space="preserve">
<value>Tasauksen painotus:</value>
</data>
<data name="label11.Text" xml:space="preserve">
<value>Pystyskaalaus:</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Profiiliasetukset</value>
</data>
</root>

View File

@ -601,7 +601,7 @@
<value>NoControl</value>
</data>
<data name="lbButtonMouseSens.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 17</value>
<value>2, 45</value>
</data>
<data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing">
<value>92, 13</value>
@ -612,9 +612,6 @@
<data name="lbButtonMouseSens.Text" xml:space="preserve">
<value>Mouse Sensitivity:</value>
</data>
<data name="lbButtonMouseSens.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopRight</value>
</data>
<data name="&gt;&gt;lbButtonMouseSens.Name" xml:space="preserve">
<value>lbButtonMouseSens</value>
</data>
@ -760,7 +757,7 @@
<value>NoControl</value>
</data>
<data name="lbIdleMinutes.Location" type="System.Drawing.Point, System.Drawing">
<value>169, 67</value>
<value>171, 172</value>
</data>
<data name="lbIdleMinutes.Size" type="System.Drawing.Size, System.Drawing">
<value>28, 13</value>
@ -784,7 +781,7 @@
<value>18</value>
</data>
<data name="nUDIdleDisconnect.Location" type="System.Drawing.Point, System.Drawing">
<value>115, 64</value>
<value>117, 169</value>
</data>
<data name="nUDIdleDisconnect.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 20</value>
@ -835,7 +832,7 @@
<value>NoControl</value>
</data>
<data name="cBFlushHIDQueue.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 178</value>
<value>142, 144</value>
</data>
<data name="cBFlushHIDQueue.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
@ -1267,10 +1264,10 @@
<value>6</value>
</data>
<data name="numUDMouseSens.Location" type="System.Drawing.Point, System.Drawing">
<value>109, 16</value>
<value>100, 42</value>
</data>
<data name="numUDMouseSens.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 20</value>
<value>44, 20</value>
</data>
<data name="numUDMouseSens.TabIndex" type="System.Int32, mscorlib">
<value>241</value>
@ -2119,7 +2116,7 @@
<value>DualShock 4</value>
</data>
<data name="OutContTypeCb.Location" type="System.Drawing.Point, System.Drawing">
<value>84, 251</value>
<value>84, 220</value>
</data>
<data name="OutContTypeCb.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 21</value>
@ -2143,7 +2140,7 @@
<value>True</value>
</data>
<data name="outcontLb.Location" type="System.Drawing.Point, System.Drawing">
<value>11, 254</value>
<value>4, 223</value>
</data>
<data name="outcontLb.Size" type="System.Drawing.Size, System.Drawing">
<value>54, 13</value>
@ -2173,7 +2170,7 @@
<value>NoControl</value>
</data>
<data name="btPollRateLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 227</value>
<value>3, 197</value>
</data>
<data name="btPollRateLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 13</value>
@ -2248,7 +2245,7 @@
<value>62 Hz (16 ms)</value>
</data>
<data name="btPollRateComboBox.Location" type="System.Drawing.Point, System.Drawing">
<value>85, 224</value>
<value>84, 193</value>
</data>
<data name="btPollRateComboBox.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 21</value>
@ -2275,7 +2272,7 @@
<value>NoControl</value>
</data>
<data name="enableTouchToggleCheckbox.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 202</value>
<value>2, 93</value>
</data>
<data name="enableTouchToggleCheckbox.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
@ -2289,6 +2286,9 @@
<data name="enableTouchToggleCheckbox.Text" xml:space="preserve">
<value>Enable Touchpad Toggle</value>
</data>
<data name="enableTouchToggleCheckbox.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;enableTouchToggleCheckbox.Name" xml:space="preserve">
<value>enableTouchToggleCheckbox</value>
</data>
@ -2308,7 +2308,7 @@
<value>NoControl</value>
</data>
<data name="cBDinput.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 154</value>
<value>2, 144</value>
</data>
<data name="cBDinput.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
@ -2322,6 +2322,9 @@
<data name="cBDinput.Text" xml:space="preserve">
<value>Use Dinput only</value>
</data>
<data name="cBDinput.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;cBDinput.Name" xml:space="preserve">
<value>cBDinput</value>
</data>
@ -2338,7 +2341,7 @@
<value>NoControl</value>
</data>
<data name="pBProgram.Location" type="System.Drawing.Point, System.Drawing">
<value>215, 122</value>
<value>247, 116</value>
</data>
<data name="pBProgram.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 23</value>
@ -2368,20 +2371,22 @@
<value>NoControl</value>
</data>
<data name="cBLaunchProgram.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 118</value>
<value>2, 119</value>
</data>
<data name="cBLaunchProgram.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
</data>
<data name="cBLaunchProgram.Size" type="System.Drawing.Size, System.Drawing">
<value>107, 30</value>
<value>157, 17</value>
</data>
<data name="cBLaunchProgram.TabIndex" type="System.Int32, mscorlib">
<value>254</value>
</data>
<data name="cBLaunchProgram.Text" xml:space="preserve">
<value>Launch Program
with profile</value>
<value>Launch Program with profile</value>
</data>
<data name="cBLaunchProgram.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;cBLaunchProgram.Name" xml:space="preserve">
<value>cBLaunchProgram</value>
@ -2405,7 +2410,7 @@ with profile</value>
<value>NoControl</value>
</data>
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
<value>132, 122</value>
<value>178, 115</value>
</data>
<data name="btnBrowse.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 23</value>
@ -2435,7 +2440,7 @@ with profile</value>
<value>NoControl</value>
</data>
<data name="lbUseController.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 96</value>
<value>2, 17</value>
</data>
<data name="lbUseController.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 13</value>
@ -2465,7 +2470,7 @@ with profile</value>
<value>NoControl</value>
</data>
<data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 42</value>
<value>2, 68</value>
</data>
<data name="cBMouseAccel.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
@ -2479,6 +2484,9 @@ with profile</value>
<data name="cBMouseAccel.Text" xml:space="preserve">
<value>Mouse Acceleration</value>
</data>
<data name="cBMouseAccel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;cBMouseAccel.Name" xml:space="preserve">
<value>cBMouseAccel</value>
</data>
@ -2492,7 +2500,7 @@ with profile</value>
<value>10</value>
</data>
<data name="nUDSixaxis.Location" type="System.Drawing.Point, System.Drawing">
<value>85, 95</value>
<value>87, 14</value>
</data>
<data name="nUDSixaxis.Size" type="System.Drawing.Size, System.Drawing">
<value>29, 20</value>
@ -2519,7 +2527,7 @@ with profile</value>
<value>NoControl</value>
</data>
<data name="cBControllerInput.Location" type="System.Drawing.Point, System.Drawing">
<value>118, 95</value>
<value>122, 16</value>
</data>
<data name="cBControllerInput.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
@ -2552,7 +2560,7 @@ with profile</value>
<value>NoControl</value>
</data>
<data name="cBIdleDisconnect.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 65</value>
<value>2, 170</value>
</data>
<data name="cBIdleDisconnect.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>Yes</value>
@ -2566,6 +2574,9 @@ with profile</value>
<data name="cBIdleDisconnect.Text" xml:space="preserve">
<value>Idle Disconnect</value>
</data>
<data name="cBIdleDisconnect.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;cBIdleDisconnect.Name" xml:space="preserve">
<value>cBIdleDisconnect</value>
</data>
@ -2579,10 +2590,13 @@ with profile</value>
<value>14</value>
</data>
<data name="gBOther.Location" type="System.Drawing.Point, System.Drawing">
<value>281, 221</value>
<value>281, 243</value>
</data>
<data name="gBOther.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 1, 3, 1</value>
</data>
<data name="gBOther.Size" type="System.Drawing.Size, System.Drawing">
<value>272, 278</value>
<value>272, 247</value>
</data>
<data name="gBOther.TabIndex" type="System.Int32, mscorlib">
<value>247</value>
@ -6479,7 +6493,7 @@ with profile</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tPDeadzone.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="tPDeadzone.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -6812,7 +6826,7 @@ with profile</value>
<value>3, 3, 3, 3</value>
</data>
<data name="antiDeadzoneTabPage.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="antiDeadzoneTabPage.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -7145,7 +7159,7 @@ with profile</value>
<value>3, 3, 3, 3</value>
</data>
<data name="maxZoneTabPage.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="maxZoneTabPage.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -7274,7 +7288,7 @@ with profile</value>
<value>3, 3, 3, 3</value>
</data>
<data name="squStickTabPage.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="squStickTabPage.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -7294,6 +7308,60 @@ with profile</value>
<data name="&gt;&gt;squStickTabPage.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="lbCurveEditorURL.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lbCurveEditorURL.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lbCurveEditorURL.Location" type="System.Drawing.Point, System.Drawing">
<value>118, 60</value>
</data>
<data name="lbCurveEditorURL.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 13</value>
</data>
<data name="lbCurveEditorURL.TabIndex" type="System.Int32, mscorlib">
<value>207</value>
</data>
<data name="lbCurveEditorURL.Text" xml:space="preserve">
<value>Custom curve editor</value>
</data>
<data name="&gt;&gt;lbCurveEditorURL.Name" xml:space="preserve">
<value>lbCurveEditorURL</value>
</data>
<data name="&gt;&gt;lbCurveEditorURL.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lbCurveEditorURL.Parent" xml:space="preserve">
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;lbCurveEditorURL.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tBCustomOutputCurve.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 57</value>
</data>
<data name="tBCustomOutputCurve.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 20</value>
</data>
<data name="tBCustomOutputCurve.TabIndex" type="System.Int32, mscorlib">
<value>206</value>
</data>
<data name="tBCustomOutputCurve.Text" xml:space="preserve">
<value>0.00, 0.00, 1.00, 1.00</value>
</data>
<data name="&gt;&gt;tBCustomOutputCurve.Name" xml:space="preserve">
<value>tBCustomOutputCurve</value>
</data>
<data name="&gt;&gt;tBCustomOutputCurve.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tBCustomOutputCurve.Parent" xml:space="preserve">
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;tBCustomOutputCurve.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cBSixaxisZOutputCurve.Items" xml:space="preserve">
<value>Linear</value>
</data>
@ -7334,7 +7402,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;cBSixaxisZOutputCurve.ZOrder" xml:space="preserve">
<value>0</value>
<value>2</value>
</data>
<data name="cBSixaxisXOutputCurve.Items" xml:space="preserve">
<value>Linear</value>
@ -7376,7 +7444,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;cBSixaxisXOutputCurve.ZOrder" xml:space="preserve">
<value>1</value>
<value>3</value>
</data>
<data name="label24.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -7406,7 +7474,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;label24.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="label23.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -7436,7 +7504,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;label23.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="cBR2OutputCurve.Items" xml:space="preserve">
<value>Linear</value>
@ -7478,7 +7546,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;cBR2OutputCurve.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="cBL2OutputCurve.Items" xml:space="preserve">
<value>Linear</value>
@ -7520,7 +7588,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;cBL2OutputCurve.ZOrder" xml:space="preserve">
<value>5</value>
<value>7</value>
</data>
<data name="label22.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -7550,7 +7618,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;label22.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</value>
</data>
<data name="label21.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -7580,7 +7648,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;label21.ZOrder" xml:space="preserve">
<value>7</value>
<value>9</value>
</data>
<data name="rsOutCurveComboBox.Items" xml:space="preserve">
<value>Linear</value>
@ -7622,7 +7690,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;rsOutCurveComboBox.ZOrder" xml:space="preserve">
<value>8</value>
<value>10</value>
</data>
<data name="lsOutCurveComboBox.Items" xml:space="preserve">
<value>Linear</value>
@ -7664,7 +7732,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;lsOutCurveComboBox.ZOrder" xml:space="preserve">
<value>9</value>
<value>11</value>
</data>
<data name="label10.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -7694,7 +7762,7 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;label10.ZOrder" xml:space="preserve">
<value>10</value>
<value>12</value>
</data>
<data name="label9.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -7724,13 +7792,13 @@ with profile</value>
<value>tPOutCurve</value>
</data>
<data name="&gt;&gt;label9.ZOrder" xml:space="preserve">
<value>11</value>
<value>13</value>
</data>
<data name="tPOutCurve.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tPOutCurve.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="tPOutCurve.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -7925,7 +7993,7 @@ with profile</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tPCurve.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="tPCurve.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -8054,7 +8122,7 @@ with profile</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpRotation.Size" type="System.Drawing.Size, System.Drawing">
<value>264, 52</value>
<value>264, 80</value>
</data>
<data name="tpRotation.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -8078,7 +8146,7 @@ with profile</value>
<value>281, 55</value>
</data>
<data name="tCSens.Size" type="System.Drawing.Size, System.Drawing">
<value>272, 78</value>
<value>272, 106</value>
</data>
<data name="tCSens.TabIndex" type="System.Int32, mscorlib">
<value>234</value>
@ -9167,7 +9235,10 @@ with profile</value>
<value>11</value>
</data>
<data name="gBSensitivity.Location" type="System.Drawing.Point, System.Drawing">
<value>281, 139</value>
<value>281, 165</value>
</data>
<data name="gBSensitivity.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 1, 3, 1</value>
</data>
<data name="gBSensitivity.Size" type="System.Drawing.Size, System.Drawing">
<value>272, 76</value>
@ -9353,7 +9424,7 @@ with profile</value>
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<metadata name="cMTouchDisableInvert.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>144, 63</value>
<value>625, 18</value>
</metadata>
<data name="crossTouchInvStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>194, 22</value>
@ -9482,7 +9553,7 @@ with profile</value>
<value>True</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>222</value>
<value>47</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>