diff --git a/ActivationModes.xlsx b/ActivationModes.xlsx
deleted file mode 100644
index 9bb7c45..0000000
Binary files a/ActivationModes.xlsx and /dev/null differ
diff --git a/AppSettings.cs b/AppSettings.cs
index eaaf5c9..53a7380 100644
--- a/AppSettings.cs
+++ b/AppSettings.cs
@@ -320,6 +320,14 @@ namespace SCJMapper_V2
set { this["UseLanguage"] = value; }
}
+ [UserScopedSetting( )]
+ [DefaultSettingValue( "False" )]
+ public bool ShowTreeTips
+ {
+ get { return (bool)this["ShowTreeTips"]; }
+ set { this["ShowTreeTips"] = value; }
+ }
+
//**** Form Table
diff --git a/Devices/DeviceCls.cs b/Devices/DeviceCls.cs
index 1354ee9..513d123 100644
--- a/Devices/DeviceCls.cs
+++ b/Devices/DeviceCls.cs
@@ -27,6 +27,8 @@ namespace SCJMapper_V2.Devices
static public string DevInput( string input ) { return input; }
static public bool DevMatch( string devInput ) { return false; }
+ static public bool IsAxisCommand( string command ) { return false; }
+
///
/// Return the CIG instance number (which is the jsN number) - 1 based
///
diff --git a/Devices/Gamepad/GamepadCls.cs b/Devices/Gamepad/GamepadCls.cs
index 6de2a9c..7ee2822 100644
--- a/Devices/Gamepad/GamepadCls.cs
+++ b/Devices/Gamepad/GamepadCls.cs
@@ -92,6 +92,18 @@ namespace SCJMapper_V2.Devices.Gamepad
return devInput.StartsWith( DeviceID );
}
+ ///
+ /// Returns true if a command is an axis command
+ ///
+ /// The command string
+ /// True if it is an axis command
+ static public new bool IsAxisCommand( string command )
+ {
+ string cLower = command.ToLowerInvariant( );
+ return ( cLower.EndsWith( "_thumblx" ) || cLower.EndsWith( "_thumbly" )
+ || cLower.EndsWith( "_thumbrx" ) || cLower.EndsWith( "_thumbry" ) );
+ }
+
const string xil_pattern = @"^xi_thumb[lr][xy]$";
static Regex rgx_xil = new Regex( xil_pattern, RegexOptions.IgnoreCase );
diff --git a/Devices/Joystick/JoystickCls.cs b/Devices/Joystick/JoystickCls.cs
index b79fa21..e7f8cca 100644
--- a/Devices/Joystick/JoystickCls.cs
+++ b/Devices/Joystick/JoystickCls.cs
@@ -112,6 +112,23 @@ namespace SCJMapper_V2.Devices.Joystick
return IsJsN( devInput );
}
+ ///
+ /// Returns true if a command is an axis command
+ ///
+ /// The command string
+ /// True if it is an axis command
+ static public new bool IsAxisCommand( string command )
+ {
+ string cLower = command.ToLowerInvariant( );
+ if ( IsJsN( command ) )
+ return ( cLower.EndsWith( "_x" ) || cLower.EndsWith( "_rotx" ) || cLower.EndsWith( "_throttlex" )
+ || cLower.EndsWith( "_y" ) || cLower.EndsWith( "_roty" ) || cLower.EndsWith( "_throttley" )
+ || cLower.EndsWith( "_Z" ) || cLower.EndsWith( "_rotz" ) || cLower.EndsWith( "_throttlez" )
+ || cLower.EndsWith( "_slider1" ) || cLower.EndsWith( "_slider2" ) );
+ else
+ return false;
+ }
+
///
/// Returns the jsN part from a joystick command
@@ -139,9 +156,6 @@ namespace SCJMapper_V2.Devices.Joystick
return sAction;
}
-
-
-
///
/// Returns properly formatted jsn_ string (jsx_ if the input is UNKNOWN)
///
@@ -153,7 +167,6 @@ namespace SCJMapper_V2.Devices.Joystick
return JsUnknown;
}
-
///
/// Extract the JS number from a JS string (jsx_ returns 0 - UNKNOWN)
/// AC 1.1 can be something as "rctrl+js2_nn"
@@ -172,13 +185,15 @@ namespace SCJMapper_V2.Devices.Joystick
retNum = JSnum_UNKNOWN; // neither double nor single digit found
}
}
- } else if ( jsTag.StartsWith( "js" ) ) {
+ }
+ else if ( jsTag.StartsWith( "js" ) ) {
if ( !int.TryParse( ( jsTag + "XX" ).Substring( 2, 2 ), out retNum ) ) { // cheap .. test for double digits ( have to extend the string to parse)
if ( !int.TryParse( jsTag.Substring( 2, 1 ), out retNum ) ) { // now for only single ones
retNum = JSnum_UNKNOWN; // neither double nor single digit found
}
}
- } else {
+ }
+ else {
retNum = JSnum_UNKNOWN; // neither double nor single digit found
}
}
@@ -223,11 +238,13 @@ namespace SCJMapper_V2.Devices.Joystick
int inJsN = JSNum( input );
if ( inJsN < 10 ) {
return input.Replace( input.Substring( 0, 3 ), JSTag( newJsN ) );
- } else {
+ }
+ else {
// 2 digit input JsN
return input.Replace( input.Substring( 0, 4 ), JSTag( newJsN ) );
}
- } else {
+ }
+ else {
return input;
}
}
@@ -255,7 +272,8 @@ namespace SCJMapper_V2.Devices.Joystick
int inJsN = JSNum( control );
if ( inJsN < 10 ) {
retVal = retVal.Insert( 4, "throttle" );
- } else {
+ }
+ else {
// 2 digit input JsN
retVal = retVal.Insert( 5, "throttle" );
}
@@ -316,7 +334,7 @@ namespace SCJMapper_V2.Devices.Joystick
private bool[] m_modifierButtons;
private UC_JoyPanel m_jPanel = null; // the GUI panel
- internal int MyTabPageIndex = -1;
+ internal int MyTabPageIndex = -1;
///
/// Returns a CryEngine compatible hat direction
@@ -382,7 +400,7 @@ namespace SCJMapper_V2.Devices.Joystick
public override List AnalogCommands
{
get {
- List cmds = new List();
+ List cmds = new List( );
try {
// Enumerate all the objects on the device.
@@ -406,7 +424,8 @@ namespace SCJMapper_V2.Devices.Joystick
}
}
}
- } catch ( Exception ex ) {
+ }
+ catch ( Exception ex ) {
log.Error( "AnalogCommands - Get JS Objects failed", ex );
}
cmds.Sort( );
@@ -445,7 +464,7 @@ namespace SCJMapper_V2.Devices.Joystick
m_device = device;
m_hwnd = hwnd;
m_joystickNumber = joystickNum; // this remains fixed
- m_xmlInstance = joystickNum+1; // initial assignment (is 1 based..)
+ m_xmlInstance = joystickNum + 1; // initial assignment (is 1 based..)
m_jPanel = panel;
MyTabPageIndex = tabIndex;
Activated_low = false;
@@ -484,7 +503,8 @@ namespace SCJMapper_V2.Devices.Joystick
// Update the controls to reflect what objects the device supports.
UpdateControls( d );
}
- } catch ( Exception ex ) {
+ }
+ catch ( Exception ex ) {
log.Error( "Get JS Objects failed", ex );
}
@@ -499,7 +519,7 @@ namespace SCJMapper_V2.Devices.Joystick
///
/// Shutdown device access
///
- public override void FinishDX( )
+ public override void FinishDX()
{
if ( null != m_device ) {
log.DebugFormat( "Release DirectInput device: {0}", m_device.Information.ProductName );
@@ -517,7 +537,7 @@ namespace SCJMapper_V2.Devices.Joystick
ApplySettings_low( );
}
- private void ApplySettings_low( )
+ private void ApplySettings_low()
{
AppSettings.Instance.Reload( );
@@ -571,7 +591,7 @@ namespace SCJMapper_V2.Devices.Joystick
if ( !ValidModifier( modS ) ) return; // sanity..
// check if it is applicable
- int jsn = JSNum(modS);
+ int jsn = JSNum( modS );
if ( jsn == m_joystickNumber ) {
// format is jsN_buttonM i.e. get button number at the end
int bNr = 0;
@@ -656,7 +676,7 @@ namespace SCJMapper_V2.Devices.Joystick
/// Find the last change the user did on that device
///
/// The last action as CryEngine compatible string
- public override string GetLastChange( )
+ public override string GetLastChange()
{
int[] slider = m_state.Sliders;
int[] pslider = m_prevState.Sliders;
@@ -740,7 +760,7 @@ namespace SCJMapper_V2.Devices.Joystick
///
/// Show the current props in the GUI
///
- private void UpdateUI( )
+ private void UpdateUI()
{
// This function updated the UI with joystick state information.
string strText = null;
@@ -793,18 +813,21 @@ namespace SCJMapper_V2.Devices.Joystick
// Poll the device for info.
try {
m_device.Poll( );
- } catch ( SharpDXException e ) {
+ }
+ catch ( SharpDXException e ) {
if ( ( e.ResultCode == ResultCode.NotAcquired ) || ( e.ResultCode == ResultCode.InputLost ) ) {
// Check to see if either the app needs to acquire the device, or
// if the app lost the device to another process.
try {
// Acquire the device.
m_device.Acquire( );
- } catch ( SharpDXException ) {
+ }
+ catch ( SharpDXException ) {
// Failed to acquire the device. This could be because the app doesn't have focus.
return; // EXIT unaquired
}
- } else {
+ }
+ else {
log.Error( "Unexpected Poll Exception", e );
return; // EXIT see ex code
}
@@ -851,18 +874,21 @@ namespace SCJMapper_V2.Devices.Joystick
// Poll the device for info.
try {
m_device.Poll( );
- } catch ( SharpDXException e ) {
+ }
+ catch ( SharpDXException e ) {
if ( ( e.ResultCode == ResultCode.NotAcquired ) || ( e.ResultCode == ResultCode.InputLost ) ) {
// Check to see if either the app needs to acquire the device, or
// if the app lost the device to another process.
try {
// Acquire the device.
m_device.Acquire( );
- } catch ( SharpDXException ) {
+ }
+ catch ( SharpDXException ) {
// Failed to acquire the device. This could be because the app doesn't have focus.
return; // EXIT unaquired
}
- } else {
+ }
+ else {
log.Error( "Unexpected Poll Exception", e );
return; // EXIT see ex code
}
@@ -880,8 +906,9 @@ namespace SCJMapper_V2.Devices.Joystick
try {
PropertyInfo axisProperty = typeof( JoystickState ).GetProperty( axies[cmd] );
- data = ( int )axisProperty.GetValue( this.m_state, null );
- } catch {
+ data = (int)axisProperty.GetValue( this.m_state, null );
+ }
+ catch {
data = 0;
}
}
@@ -892,7 +919,7 @@ namespace SCJMapper_V2.Devices.Joystick
///
/// Collect the current data from the device
///
- public override void GetData( )
+ public override void GetData()
{
// Make sure there is a valid device.
if ( null == m_device )
@@ -901,18 +928,21 @@ namespace SCJMapper_V2.Devices.Joystick
// Poll the device for info.
try {
m_device.Poll( );
- } catch ( SharpDXException e ) {
+ }
+ catch ( SharpDXException e ) {
if ( ( e.ResultCode == ResultCode.NotAcquired ) || ( e.ResultCode == ResultCode.InputLost ) ) {
// Check to see if either the app needs to acquire the device, or
// if the app lost the device to another process.
try {
// Acquire the device - if the (main)window is active
if ( Activated ) m_device.Acquire( );
- } catch ( SharpDXException ) {
+ }
+ catch ( SharpDXException ) {
// Failed to acquire the device. This could be because the app doesn't have focus.
return; // EXIT unaquired
}
- } else {
+ }
+ else {
log.Error( "Unexpected Poll Exception", e );
return; // EXIT see ex code
}
diff --git a/Devices/Mouse/MouseCls.cs b/Devices/Mouse/MouseCls.cs
index 8e59d89..7322ab2 100644
--- a/Devices/Mouse/MouseCls.cs
+++ b/Devices/Mouse/MouseCls.cs
@@ -39,7 +39,7 @@ namespace SCJMapper_V2.Devices.Mouse
/// Returns the currently valid color
///
/// A color
- static public System.Drawing.Color MouseColor( )
+ static public System.Drawing.Color MouseColor()
{
return MyColors.MouseColor;
}
@@ -91,6 +91,16 @@ namespace SCJMapper_V2.Devices.Mouse
return devInput.StartsWith( DeviceID );
}
+ ///
+ /// Returns true if a command is an axis command
+ ///
+ /// The command string
+ /// True if it is an axis command
+ static public new bool IsAxisCommand( string command )
+ {
+ string cLower = command.ToLowerInvariant( );
+ return ( cLower.EndsWith( "_maxis_x" ) || cLower.EndsWith( "_maxis_y" ) );
+ }
///
/// Reformat the input from AC1 style to AC2 style
@@ -101,7 +111,7 @@ namespace SCJMapper_V2.Devices.Mouse
{
// input is something like a mouse1 (TODO compositions like lctrl+mouse1 ??)
// try easy: add mo1_ at the beginning
- string retVal = input.Replace(" ","");
+ string retVal = input.Replace( " ", "" );
if ( IsDisabledInput( input ) ) return input;
return "mo1_" + retVal;
@@ -146,7 +156,7 @@ namespace SCJMapper_V2.Devices.Mouse
///
/// The JS ProductName property
///
- public override string DevName { get { return m_device.Properties.ProductName; } }
+ public override string DevName { get { return "Mouse"; } } // no props in directX
///
/// The JS Instance GUID for multiple device support (VJoy gets 2 of the same name)
///
@@ -170,8 +180,7 @@ namespace SCJMapper_V2.Devices.Mouse
private bool Activated_low
{
get { return m_activated; }
- set
- {
+ set {
m_activated = value;
if ( m_activated == false ) m_device.Unacquire( ); // explicitely if not longer active
}
@@ -214,11 +223,11 @@ namespace SCJMapper_V2.Devices.Mouse
- public void Deactivate( )
+ public void Deactivate()
{
this.Activated = false;
}
- public void Activate( )
+ public void Activate()
{
this.Activated = true;
}
@@ -233,7 +242,7 @@ namespace SCJMapper_V2.Devices.Mouse
/// Z-axis, typically a wheel. If the mouse does not have a z-axis, the value is 0.
///
/// The last action as CryEngine compatible string
- public override string GetLastChange( )
+ public override string GetLastChange()
{
// TODO: Expand this out into a joystick class (see commit for details)
Dictionary axies = new Dictionary( )
@@ -246,11 +255,11 @@ namespace SCJMapper_V2.Devices.Mouse
foreach ( KeyValuePair entry in axies ) {
PropertyInfo axisProperty = typeof( MouseState ).GetProperty( entry.Key );
- if ( DidAxisChange2( ( int )axisProperty.GetValue( this.m_state, null ), ( int )axisProperty.GetValue( this.m_prevState, null ), true ) ) {
+ if ( DidAxisChange2( (int)axisProperty.GetValue( this.m_state, null ), (int)axisProperty.GetValue( this.m_prevState, null ), true ) ) {
this.m_lastItem = entry.Value;
if ( entry.Key == "Z" ) this.m_lastItem += "down";
}
- else if ( DidAxisChange2( ( int )axisProperty.GetValue( this.m_state, null ), ( int )axisProperty.GetValue( this.m_prevState, null ), false ) ) {
+ else if ( DidAxisChange2( (int)axisProperty.GetValue( this.m_state, null ), (int)axisProperty.GetValue( this.m_prevState, null ), false ) ) {
this.m_lastItem = entry.Value;
if ( entry.Key == "Z" ) this.m_lastItem += "up";
}
@@ -290,21 +299,45 @@ namespace SCJMapper_V2.Devices.Mouse
}
-
+ System.Drawing.Rectangle m_targetRect = Screen.PrimaryScreen.Bounds;
+ ///
+ /// Fudge - must have a target rectangle to scale the mouse input into the target
+ ///
+ ///
+ public void SetTargetRectForCmdData( System.Drawing.Rectangle target )
+ {
+ m_targetRect = target;
+ }
///
- /// Collect the current data from the device (DUMMY for Mouse)
+ /// Collect the current data from the device (using WinForms.Cursor)
///
public override void GetCmdData( string cmd, out int data )
{
- // Make sure there is a valid device.
- data = 0;
+ System.Drawing.Point cPt = Cursor.Position;
+ // somewhere on all screens
+ if ( m_targetRect.Contains( cPt ) ) {
+ cPt = cPt - new System.Drawing.Size( m_targetRect.X, m_targetRect.Y ); // move the point relative to the target rect origin
+ switch ( cmd ) {
+ case "maxis_x": data = (int)( 2000 * cPt.X / m_targetRect.Width ) - 1000; break; // data should be -1000..1000
+ case "maxis_y": data = -1 * ( (int)( 2000 * cPt.Y / m_targetRect.Height ) - 1000 ); break; // data should be -1000..1000
+ default: data = 0; break;
+ }
+ }
+ else {
+ data = 0;
+ }
+
+ System.Diagnostics.Debug.Print( string.Format( "C:({0})-T({1})({2}) - data: {3}",
+ Cursor.Position.ToString( ),
+ m_targetRect.Location.ToString( ), m_targetRect.Size.ToString( ),
+ data.ToString( ) ) );
}
///
/// Collect the current data from the device
///
- public override void GetData( )
+ public override void GetData()
{
// Make sure there is a valid device.
if ( null == m_device )
diff --git a/Devices/Options/DeviceTuningParameter.cs b/Devices/Options/DeviceTuningParameter.cs
index 9cb8a48..dce20b1 100644
--- a/Devices/Options/DeviceTuningParameter.cs
+++ b/Devices/Options/DeviceTuningParameter.cs
@@ -5,6 +5,8 @@ using System.Xml;
using System.Xml.Linq;
using SCJMapper_V2.Actions;
using SCJMapper_V2.Devices.Joystick;
+using SCJMapper_V2.Devices.Keyboard;
+using SCJMapper_V2.Devices.Mouse;
namespace SCJMapper_V2.Devices.Options
{
@@ -19,7 +21,7 @@ namespace SCJMapper_V2.Devices.Options
private string m_nodetext = ""; // v_pitch - js1_x
private string m_action = ""; // v_pitch
private string m_cmdCtrl = ""; // js1_x, js1_y, js1_rotz ...
- private string m_class = ""; // joystick OR xboxpad
+ private string m_devClass = ""; // joystick OR xboxpad OR mouse
private int m_devInstanceNo = -1; // jsN - instance in XML
string m_option = ""; // the option name (level where it applies)
@@ -67,7 +69,7 @@ namespace SCJMapper_V2.Devices.Options
ret &= ( this.m_nodetext == clone.m_nodetext ); // immutable string - shallow copy is OK
ret &= ( this.m_action == clone.m_action ); // immutable string - shallow copy is OK
ret &= ( this.m_cmdCtrl == clone.m_cmdCtrl );// immutable string - shallow copy is OK
- ret &= ( this.m_class == clone.m_class ); // immutable string - shallow copy is OK
+ ret &= ( this.m_devClass == clone.m_devClass ); // immutable string - shallow copy is OK
ret &= ( this.m_devInstanceNo == clone.m_devInstanceNo );
ret &= ( this.m_option == clone.m_option );
ret &= ( this.m_deviceName == clone.m_deviceName );
@@ -106,11 +108,11 @@ namespace SCJMapper_V2.Devices.Options
get { return m_deviceRef; }
set {
m_deviceRef = value;
- m_class = "";
+ m_devClass = "";
m_devInstanceNo = -1;
if ( m_deviceRef == null ) return; // got a null device
- m_class = m_deviceRef.DevClass;
+ m_devClass = m_deviceRef.DevClass;
m_devInstanceNo = m_deviceRef.XmlInstance;
}
}
@@ -129,7 +131,7 @@ namespace SCJMapper_V2.Devices.Options
public string DeviceClass
{
- get { return m_class; }
+ get { return m_devClass; }
}
@@ -256,6 +258,16 @@ namespace SCJMapper_V2.Devices.Options
m_cmdCtrl = "xi_thumbry";
m_deviceName = m_deviceRef.DevName;
}
+ else if ( cmd.Contains( "maxis_x" ) ) {
+ // mouse
+ m_cmdCtrl = "maxis_x";
+ m_deviceName = m_deviceRef.DevName;
+ }
+ else if ( cmd.Contains( "maxis_y" ) ) {
+ // mouse
+ m_cmdCtrl = "maxis_y";
+ m_deviceName = m_deviceRef.DevName;
+ }
// assume joystick
else {
// get parts
@@ -291,7 +303,12 @@ namespace SCJMapper_V2.Devices.Options
if ( DevInstanceNo < 1 ) return ""; // no device to assign it to..
string tmp = "";
- tmp += string.Format( "\t\n", m_class, m_devInstanceNo.ToString( ) );
+
+ // again we have to translate from internal deviceClass mouse to CIG type keyboard ...
+ string type = m_devClass;
+ if ( MouseCls.IsDeviceClass( type ) ) type = KeyboardCls.DeviceClass;
+
+ tmp += string.Format( "\t\n", type, m_devInstanceNo.ToString( ) );
tmp += string.Format( "\t\t<{0} ", m_option );
if ( InvertUsed ) {
@@ -334,7 +351,7 @@ namespace SCJMapper_V2.Devices.Options
/// A prepared XML reader
/// the Joystick instance number
///
- public bool Options_fromXML( XElement option, string type, int instance )
+ public bool Options_fromXML( XElement option, string deviceClass, int instance )
{
/*
@@ -345,7 +362,7 @@ namespace SCJMapper_V2.Devices.Options
*/
- m_class = type;
+ m_devClass = deviceClass;
m_devInstanceNo = instance;
m_option = option.Name.LocalName;
@@ -377,6 +394,8 @@ namespace SCJMapper_V2.Devices.Options
string ptOut = RoundString( (string)point.Attribute( "out" ) );
m_PtsIn.Add( ptIn ); m_PtsOut.Add( ptOut ); m_ptsEnabled = true;
}
+ ExponentUsed = false; // despite having the Expo=1.00 in the options - it is not used with nonlin curve
+ Exponent = RoundString( "1.00" );
}
// sanity check - we've have to have 3 pts here - else we subst
// add 2nd
diff --git a/Devices/Options/Deviceoptions.cs b/Devices/Options/Deviceoptions.cs
index 4fde804..51f9742 100644
--- a/Devices/Options/Deviceoptions.cs
+++ b/Devices/Options/Deviceoptions.cs
@@ -6,12 +6,15 @@ using System.Xml.Linq;
using SCJMapper_V2.Devices.Joystick;
using SCJMapper_V2.Devices.Gamepad;
using System.Linq;
+using SCJMapper_V2.Devices.Mouse;
namespace SCJMapper_V2.Devices.Options
{
///
- /// Maintains an Deviceoptions - something like:
- ///
+ /// Maintains all Deviceoptions i.e. Analog controls of all devices connected
+ /// There are dynamic parts (actions) only for the GUI
+ /// those are derived from the current mapping which need to be updated before use
+ ///
///
///
///
@@ -27,8 +30,7 @@ namespace SCJMapper_V2.Devices.Options
public class Deviceoptions : CloneableDictionary
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
-
-
+
#region Static parts
// DevOptions GUI Slider properties - have them in one place only
@@ -99,10 +101,7 @@ namespace SCJMapper_V2.Devices.Options
#endregion
-
- private List m_stringOptions = new List( ); // collected options from XML that are not parsed
-
-
+ #region Cloning support
///
/// Clone this object
@@ -147,8 +146,14 @@ namespace SCJMapper_V2.Devices.Options
}
#endif
+ #endregion
+ private List m_stringOptions = new List( ); // collected options from XML that are not parsed
+ ///
+ /// cTor: Private - Init from a given Directory
+ ///
+ /// Dev parameters to init from
private Deviceoptions( CloneableDictionary init )
{
foreach ( KeyValuePair kvp in init ) {
@@ -157,7 +162,9 @@ namespace SCJMapper_V2.Devices.Options
}
- // ctor
+ ///
+ /// cTor: collects the Analog commands from the devices on order to apply Deadzone and Saturation properties for them
+ ///
public Deviceoptions()
{
// create all devOptions for all devices found (they may or may no be used)
@@ -185,9 +192,24 @@ namespace SCJMapper_V2.Devices.Options
}
}
}
- }
+ // add mouse if there is any
+ if ( DeviceInst.MouseRef != null ) {
+ foreach ( string input in DeviceInst.MouseRef.AnalogCommands ) {
+ string doid = DevOptionID( MouseCls.DeviceClass, DeviceInst.MouseRef.DevName, input );
+ if ( !this.ContainsKey( doid ) ) {
+ this.Add( doid, new DeviceOptionParameter( DeviceInst.MouseRef, input, "", "" ) ); // init with disabled defaults
+ }
+ else {
+ log.WarnFormat( "cTor - Mouse DO_ID {0} exists", doid );
+ }
+ }
+ }
+ }
+ ///
+ /// Returns the number of items in this
+ ///
new public int Count
{
get { return ( m_stringOptions.Count + base.Count ); }
@@ -203,8 +225,7 @@ namespace SCJMapper_V2.Devices.Options
kv.Value.Action = "";
}
}
-
-
+
///
/// Rounds a string to 3 decimals (if it is a number..)
///
@@ -221,7 +242,11 @@ namespace SCJMapper_V2.Devices.Options
}
}
-
+ ///
+ /// Lowlevel formatting
+ ///
+ ///
+ ///
private string[] FormatXml( string xml )
{
try {
@@ -252,7 +277,6 @@ namespace SCJMapper_V2.Devices.Options
r += string.Format( "\n" );
}
-
// dump Tuning
foreach ( KeyValuePair kv in this ) {
r += kv.Value.Deviceoptions_toXML( );
diff --git a/Devices/Options/FormOptions.cs b/Devices/Options/FormOptions.cs
index cc3148f..2c5c0c4 100644
--- a/Devices/Options/FormOptions.cs
+++ b/Devices/Options/FormOptions.cs
@@ -13,6 +13,8 @@ using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using SCJMapper_V2.Actions;
+using SCJMapper_V2.Devices.Mouse;
+using SCJMapper_V2.SC;
namespace SCJMapper_V2.Devices.Options
{
@@ -155,7 +157,8 @@ namespace SCJMapper_V2.Devices.Options
UpdateLiveTuning( );
UpdateLiveDevOption( );
}
- } catch {
+ }
+ catch {
;
}
@@ -283,175 +286,53 @@ namespace SCJMapper_V2.Devices.Options
ListViewGroup lvg = null;
ListViewItem lvi;
List devNamesDone = new List( );
+ string devClass = DeviceCls.DeviceClass;
- // first the analog controls for the device
- string gpGUID = "";
+ // scan for DeviceOptions to be added for this device(GUID)
foreach ( KeyValuePair kv in m_devOptRef ) {
- if ( GamepadCls.IsDeviceClass( kv.Value.DevClass ) )
- gpGUID = kv.Value.DevInstanceGUID; // save for later below
-
if ( kv.Value.DevInstanceGUID == devGUID ) {
+ devClass = kv.Value.DevClass;
if ( !devNamesDone.Contains( kv.Value.DevName ) ) {
lvg = new ListViewGroup( "Device Options" ); lview.Groups.Add( lvg );
devNamesDone.Add( kv.Value.DevName );
}
- lvi = new ListViewItem( kv.Value.CommandCtrl, lvg ); lvi.Name = kv.Value.DoID; lview.Items.Add( lvi );
+ lvi = new ListViewItem( kv.Value.CommandCtrl, lvg ) { Name = kv.Value.DoID };
+ lview.Items.Add( lvi );
ListViewItemSetup( lvi );
UpdateLvDevOptionFromLiveValues( kv.Value );
}
}
- // then the functions
- lvg = new ListViewGroup( "0", "flight_move " ); lview.Groups.Add( lvg );
- {
- option = "flight_move_pitch"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_move_yaw"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_move_roll"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_move_strafe_vertical"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_move_strafe_lateral"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_move_strafe_longitudinal"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- }
-
- lvg = new ListViewGroup( "1", "flight_throttle" ); lview.Groups.Add( lvg );
- {
- option = "flight_throttle_abs"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_throttle_rel"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- }
-
- lvg = new ListViewGroup( "2", "flight_aim" ); lview.Groups.Add( lvg );
- {
- option = "flight_aim_pitch"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_aim_yaw"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
+ if ( DeviceCls.IsUndefined(devClass) ) {
+ // still undefined - solve here
+ if ( devGUID == DeviceInst.GamepadRef?.DevInstanceGUID )
+ devClass = GamepadCls.DeviceClass;
+ else if ( devGUID == DeviceInst.MouseRef?.DevInstanceGUID )
+ devClass = MouseCls.DeviceClass;
}
- lvg = new ListViewGroup( "3", "flight_view" ); lview.Groups.Add( lvg );
- {
- option = "flight_view_pitch"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "flight_view_yaw"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
+ int lvCount = 0;
+ // then the functions
+ string group = "";
+ foreach ( var pOpt in OptionTree.ProfileOptions.Where( x => x.DeviceClass == devClass ) ) {
+ if ( pOpt.OptGroup != group ) {
+ group = pOpt.OptGroup;
+ lvg = new ListViewGroup( lvCount++.ToString( ), SCUiText.Instance.Text( group ) ); lview.Groups.Add( lvg );
}
- }
- lvg = new ListViewGroup( "4", "Turret_aim" ); lview.Groups.Add( lvg );
- {
- option = "turret_aim_pitch"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "turret_aim_yaw"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
+ option = pOpt.OptName; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
+ lvi = new ListViewItem( SCUiText.Instance.Text( option ), lvg ) { Name = option };
+ lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
UpdateLvOptionFromLiveValues( m_live );
}
}
- // GP only
- if ( devGUID == gpGUID ) { // now this selector is murks but then it works...
- lvg = new ListViewGroup( "5", "fps_view" ); lview.Groups.Add( lvg );
- {
- option = "fps_view_pitch"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "fps_view_yaw"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- }
-
- lvg = new ListViewGroup( "6", "fps_move" ); lview.Groups.Add( lvg );
- {
- option = "fps_move_lateral"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "fps_move_longitudinal"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- }
-
- lvg = new ListViewGroup( "7", "manned_ground_vehicle" ); lview.Groups.Add( lvg );
- {
- option = "mgv_view_pitch"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- option = "mgv_view_yaw"; tuning = m_tuningRef.TuningItem( (string)lview.Tag, option ); m_live.Load( tuning );
- if ( m_live.used ) {
- lvi = new ListViewItem( option, lvg ); lvi.Name = option; lview.Items.Add( lvi ); ListViewItemSetup( lvi );
- UpdateLvOptionFromLiveValues( m_live );
- }
- }
- }// if GP
-
-
-
-
log.Debug( "OptionTreeSetup - Exit" );
}
#endregion
-
-
- public void SetTuningRecord( DeviceTuningParameter tp )
- {
-
- }
-
private void button2_Click( object sender, EventArgs e )
{
; // break
@@ -895,7 +776,7 @@ namespace SCJMapper_V2.Devices.Options
}
ListViewItem lvi = lv.Items[dp.DoID];
- lvi.SubItems[LV_DevCtrl].Text = dp.Action; // Action
+ lvi.SubItems[LV_DevCtrl].Text = SCUiText.Instance.Text( dp.Action ); // Action
if ( dp.SaturationSupported && dp.SaturationUsed )
lvi.SubItems[LV_Saturation].Text = dp.Saturation; // saturation
else if ( dp.SaturationSupported )
@@ -1329,7 +1210,8 @@ namespace SCJMapper_V2.Devices.Options
UpdateGUIFromLiveValues( m_live );
UpdateChartItems( );
- } catch {
+ }
+ catch {
;
}
log.Debug( "lvOptionTree_SelectedIndexChanged - Exit" );
diff --git a/Devices/Options/OptionTree.cs b/Devices/Options/OptionTree.cs
index 22ec2a3..59c774b 100644
--- a/Devices/Options/OptionTree.cs
+++ b/Devices/Options/OptionTree.cs
@@ -6,11 +6,15 @@ using System.Xml;
using System.IO;
using System.Xml.Linq;
using System.Windows.Forms;
+using SCJMapper_V2.SC;
+using SCJMapper_V2.Devices.Mouse;
+using SCJMapper_V2.Devices.Keyboard;
+using System.Collections;
namespace SCJMapper_V2.Devices.Options
{
///
- /// Maintains an Options - something like:
+ /// Maintains Options - something like:
///
///
///
@@ -21,7 +25,7 @@ namespace SCJMapper_V2.Devices.Options
///
///
///
- /// [type] : set to shared, keyboard, xboxpad, or joystick
+ /// [type] : set to shared, mouse, xboxpad, or joystick (NOTE the CIG type used is keyboard .. for the mouse....(Grrr) - we use MOUSE
/// [instance] : set to the device number; js1=1, js2=2, etc
/// [optiongroup] : set to what group the option should affect (for available groups see default actionmap)
/// [option] : instance, sensitivity, exponent, nonlinearity *instance is a bug that will be fixed to 'invert' in the future
@@ -37,11 +41,11 @@ namespace SCJMapper_V2.Devices.Options
// Support only one set of independent options (string storage)
List m_stringOptions = new List( );
+ #region Clonable support
+
// bag for all tuning items - key is the option name
CloneableDictionary m_tuning = new CloneableDictionary( );
-
-
///
/// Clone this object
///
@@ -80,41 +84,21 @@ namespace SCJMapper_V2.Devices.Options
return ret;
}
+ #endregion
// ctor
public OptionTree( DeviceCls device )
{
- m_tuning.Add( "flight_move_pitch", new DeviceTuningParameter( "flight_move_pitch", device ) );
- m_tuning.Add( "flight_move_yaw", new DeviceTuningParameter( "flight_move_yaw", device ) );
- m_tuning.Add( "flight_move_roll", new DeviceTuningParameter( "flight_move_roll", device ) );
- m_tuning.Add( "flight_move_strafe_vertical", new DeviceTuningParameter( "flight_move_strafe_vertical", device ) );
- m_tuning.Add( "flight_move_strafe_lateral", new DeviceTuningParameter( "flight_move_strafe_lateral", device ) );
- m_tuning.Add( "flight_move_strafe_longitudinal", new DeviceTuningParameter( "flight_move_strafe_longitudinal", device ) );
-
- m_tuning.Add( "flight_throttle_abs", new DeviceTuningParameter( "flight_throttle_abs", device ) );
- m_tuning.Add( "flight_throttle_rel", new DeviceTuningParameter( "flight_throttle_rel", device ) );
-
- m_tuning.Add( "flight_aim_pitch", new DeviceTuningParameter( "flight_aim_pitch", device ) );
- m_tuning.Add( "flight_aim_yaw", new DeviceTuningParameter( "flight_aim_yaw", device ) );
-
- m_tuning.Add( "flight_view_pitch", new DeviceTuningParameter( "flight_view_pitch", device ) );
- m_tuning.Add( "flight_view_yaw", new DeviceTuningParameter( "flight_view_yaw", device ) );
-
- m_tuning.Add( "turret_aim_pitch", new DeviceTuningParameter( "turret_aim_pitch", device ) );
- m_tuning.Add( "turret_aim_yaw", new DeviceTuningParameter( "turret_aim_yaw", device ) );
-
- // Gamepad specific
- if ( Devices.Gamepad.GamepadCls.IsDeviceClass( device.DevClass ) ) {
- m_tuning.Add( "fps_view_pitch", new DeviceTuningParameter( "fps_view_pitch", device ) );
- m_tuning.Add( "fps_view_yaw", new DeviceTuningParameter( "fps_view_yaw", device ) );
-
- m_tuning.Add( "fps_move_lateral", new DeviceTuningParameter( "fps_move_lateral", device ) );
- m_tuning.Add( "fps_move_longitudinal", new DeviceTuningParameter( "fps_move_longitudinal", device ) );
+ if ( m_profileOptions.Count( ) == 0 ) {
+ log.Error( "cTor OptionTree - profile not yet read" );
+ }
- m_tuning.Add( "mgv_view_pitch", new DeviceTuningParameter( "mgv_view_pitch", device ) );
- m_tuning.Add( "mgv_view_yaw", new DeviceTuningParameter( "mgv_view_yaw", device ) );
+ // get options for the device class
+ var devOpts = m_profileOptions.Where( x => x.DeviceClass == device.DevClass );
+ foreach (ProfileOptionRec rec in devOpts ) {
+ m_tuning.Add( rec.OptName, new DeviceTuningParameter( rec.OptName, device ) );
}
}
@@ -228,97 +212,139 @@ namespace SCJMapper_V2.Devices.Options
*/
string instance = (string)options.Attribute( "instance" ); // mandadory
string type = (string)options.Attribute( "type" ); // mandadory
- if ( !int.TryParse( instance, out int nInstance ) ) nInstance = 0;
+ if ( !int.TryParse( instance, out int nInstance ) ) nInstance = 0; // get the one from the map if given (else it's a map error...)
- // try to disassemble the items
- /*
- * instance="0/1" sensitivity="n.nn" exponent="n.nn" (instance should be invert)
- *
- *
- *
- *
- *
- *
- *
- * invert="0/1"
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
-
-
- * ..
-
- *
- *
- *
- */
+ string devClass = DeviceCls.DeviceClass; // the generic one
+ if ( !string.IsNullOrEmpty(type)) devClass = type; // get the one from the map if given (else it's a map error...)
+
+ // mouse arrives as type keyboard - fix it to deviceClass mouse here
+ if ( KeyboardCls.IsDeviceClass( devClass ) )
+ devClass = MouseCls.DeviceClass;
+
+ // check if the profile contains the one we found in the map - then parse the element
foreach ( XElement item in options.Elements( ) ) {
- if ( item.Name.LocalName == "flight_move_pitch" ) {
- m_tuning["flight_move_pitch"].Options_fromXML( item, type, int.Parse( instance ) );
+ if ( m_profileOptions.Contains( new ProfileOptionRec( ) { DeviceClass = devClass, OptName = item.Name.LocalName } ) ) {
+ m_tuning[item.Name.LocalName].Options_fromXML( item, devClass, int.Parse( instance ) );
}
- else if ( item.Name.LocalName == "flight_move_yaw" ) {
- m_tuning["flight_move_yaw"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_move_roll" ) {
- m_tuning["flight_move_roll"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_move_strafe_vertical" ) {
- m_tuning["flight_move_strafe_vertical"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_move_strafe_lateral" ) {
- m_tuning["flight_move_strafe_lateral"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_move_strafe_longitudinal" ) {
- m_tuning["flight_move_strafe_longitudinal"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_throttle_abs" ) {
- m_tuning["flight_throttle_abs"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_throttle_rel" ) {
- m_tuning["flight_throttle_rel"].Options_fromXML( item, type, int.Parse( instance ) );
+ }
- }
- else if ( item.Name.LocalName == "flight_aim_pitch" ) {
- m_tuning["flight_aim_pitch"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_aim_yaw" ) {
- m_tuning["flight_aim_yaw"].Options_fromXML( item, type, int.Parse( instance ) );
+ return true;
+ }
+ #region static - Profile Handling
+
+ public class ProfileOptionRec : IEquatable
+ {
+ public string DeviceClass { get; set; }
+ public string OptGroup { get; set; }
+ public string OptName { get; set; }
+ public bool ShowCurve { get; set; }
+ public bool ShowInvert { get; set; }
+ public ProfileOptionRec()
+ {
+ DeviceClass = DeviceCls.DeviceClass; OptGroup = ""; OptName = ""; ShowCurve = false; ShowInvert = false;
+ }
+ // same class and name means records match
+ public bool Equals( ProfileOptionRec other )
+ {
+ return ( ( this.DeviceClass == other.DeviceClass ) && ( this.OptName == other.OptName ) );
+ }
+ }
+
+ private static List m_profileOptions = new List( );
+ ///
+ /// Returns a list of ProfileOptions found in the defaultProfile
+ ///
+ public static IList ProfileOptions { get => m_profileOptions; }
+
+ ///
+ /// Clears the stored optiontree items from the profile
+ /// must be cleared before re-reading them from profile
+ ///
+ public static void InitOptionReader()
+ {
+ m_profileOptions = new List( );
+ }
+
+ ///
+ /// Reads optiongroup nodes
+ /// the tree is composed of such nodes - we dive recursively
+ ///
+ /// The optiongroup to parse
+ /// The deviceclass it belongs to
+ /// True if OK
+ private static bool ReadOptiongroup( XElement optiongroupIn, string devClass, string optGroup )
+ {
+ bool retVal = true;
+
+ // collect content and process further groups
+ string name = (string)optiongroupIn.Attribute( "name" );
+ string uiLabel = (string)optiongroupIn.Attribute( "UILabel" );
+ if ( string.IsNullOrEmpty( uiLabel ) )
+ uiLabel = name; // subst if not found in Action node
+ SCUiText.Instance.Add( name, uiLabel ); // Register item for translation
+
+ // further groups
+ IEnumerable optiongroups = from x in optiongroupIn.Elements( )
+ where ( x.Name == "optiongroup" )
+ select x;
+ foreach ( XElement optiongroup in optiongroups ) {
+ retVal &= ReadOptiongroup( optiongroup, devClass, name ); // current is the group if we dive one down
+ }
+ // murks.. determine if it is a terminal node, then get items
+ if ( optiongroups.Count() == 0 ) {
+ ProfileOptionRec optRec = new ProfileOptionRec { DeviceClass = devClass, OptGroup=optGroup, OptName = name }; // create a new one
+ // override props if they arrive in the node
+ string attr = (string)optiongroupIn.Attribute( "UIShowCurve" );
+ if ( !string.IsNullOrEmpty( attr ) ) {
+ if ( int.TryParse( attr, out int showCurve ) ) {
+ optRec.ShowCurve = ( showCurve == 1 );
+ }
}
- else if ( item.Name.LocalName == "flight_view_pitch" ) {
- m_tuning["flight_view_pitch"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "flight_view_yaw" ) {
- m_tuning["flight_view_yaw"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "fps_view_pitch" ) {
- m_tuning["fps_view_pitch"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "fps_view__yaw" ) {
- m_tuning["fps_view__yaw"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "fps_move_lateral" ) {
- m_tuning["fps_move_lateral"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "fps_move_longitudinal" ) {
- m_tuning["fps_move_longitudinal"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "mgv_view_pitch" ) {
- m_tuning["mgv_view_pitch"].Options_fromXML( item, type, int.Parse( instance ) );
- }
- else if ( item.Name.LocalName == "mgv_view_yaw" ) {
- m_tuning["mgv_view_yaw"].Options_fromXML( item, type, int.Parse( instance ) );
+ attr = (string)optiongroupIn.Attribute( "UIShowInvert" );
+ if ( !string.IsNullOrEmpty( attr ) ) {
+ if ( int.TryParse( attr, out int showInvert ) ) {
+ optRec.ShowInvert = ( showInvert == 1 );
+ }
}
+ if ( optRec.ShowCurve || optRec.ShowInvert)
+ m_profileOptions.Add( optRec ); // add only if something is to tweak..
}
- return true;
+ return retVal;
}
+ ///
+ /// Collects items from the profile optiontree
+ ///
+ /// The optiontree node
+ /// True if OK
+ public static bool fromProfileXML( XElement optiontree )
+ {
+ /*
+ //
+ //
+ //
+ */
+ log.Debug( "fromProfileXML - Entry" );
+
+ bool retVal = true;
+
+ string devClass = (string)optiontree.Attribute( "type" );
+ // mouse arrives as type keyboard - fix it to deviceClass mouse here
+ if ( KeyboardCls.IsDeviceClass( devClass ) )
+ devClass = MouseCls.DeviceClass;
+
+ IEnumerable optiongroups = from x in optiontree.Elements( )
+ where ( x.Name == "optiongroup" )
+ select x;
+ foreach ( XElement optiongroup in optiongroups ) {
+ retVal &= ReadOptiongroup( optiongroup, devClass, "master" );
+ }
+
+ return retVal;
+ }
+
+ #endregion
+
}
}
diff --git a/Devices/Options/OptionsInvert.cs b/Devices/Options/OptionsInvert.cs
deleted file mode 100644
index c7aa60d..0000000
--- a/Devices/Options/OptionsInvert.cs
+++ /dev/null
@@ -1,164 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
-using System.Windows.Forms;
-using SCJMapper_V2.Devices.Joystick;
-using SCJMapper_V2.Devices.Gamepad;
-
-namespace SCJMapper_V2.Devices.Options
-{
- public class OptionsInvert
- {
-
- public enum Inversions
- {
- flight_aim_pitch = 0, // used also as array index - MUST remain 0,
- flight_view_pitch,
- flight_aim_yaw,
- flight_view_yaw,
- flight_throttle,
-// flight_move_strafe_vertical,
-// flight_move_strafe_lateral,
-// flight_move_strafe_longitudinal,
-
- I_LAST // designates the last item for loop handling
- }
-
- public struct MappedActionRec
- {
- public MappedActionRec( string m, string a ) { Map = m; Action = a; }
- public string Map;
- public string Action;
- }
-
- // setup of mapped actions as of AC 1.0 (may need a change once in a while...)
- //Note: sequence is matched with the Enum above
- static public MappedActionRec[] MappedActions = {
- new MappedActionRec("spaceship_targeting", "v_aim_pitch"),
- new MappedActionRec("spaceship_view", "v_view_pitch"),
- new MappedActionRec("spaceship_targeting", "v_aim_yaw"),
- new MappedActionRec("spaceship_view", "v_view_yaw"),
- new MappedActionRec("spaceship_movement", "v_throttle_abs"),
-// new MappedActionRec("spaceship_movement", "v_strafe_vertical"),
-// new MappedActionRec("spaceship_movement", "v_strafe_lateral"),
-// new MappedActionRec("spaceship_movement", "v_strafe_longitudinal"),
- };
-
- private CheckBox m_cbInvert = null;
- private DeviceCls m_device = null;
- private string m_type = ""; // joystick OR xboxpad
- private int m_devInstanceNo = -1; // jsN - instance in XML
-
- string m_option = ""; // the option name (level where it applies)
-
- // ctor
- public OptionsInvert( Inversions item )
- {
- m_option = item.ToString();
- }
-
-
- #region Properties
-
- public DeviceCls GameDevice
- {
- get { return m_device; }
- set
- {
- m_device = value;
- m_type = "";
- m_devInstanceNo = -1;
- if ( m_device == null ) return; // got a null device
-
- if ( JoystickCls.IsDeviceClass( m_device.DevClass ) ) {
- m_type = m_device.DevClass;
- m_devInstanceNo = ( m_device as JoystickCls ).JSAssignment;
- }
- else if ( GamepadCls.IsDeviceClass( m_device.DevClass ) ) {
- m_type = m_device.DevClass;
- m_devInstanceNo = 1; // supports ONE gamepad
- }
- }
- }
-
-
- public int DevInstanceNo
- {
- get { return m_devInstanceNo; }
- }
-
- public bool InvertUsed
- {
- get { return m_cbInvert.Checked; }
- set { m_cbInvert.Checked = value; }
- }
-
- public CheckBox CBInvert
- {
- set { m_cbInvert = value; }
- }
-
- #endregion
-
- public void Reset( )
- {
- m_cbInvert.Checked = false;
- }
-
-
- ///
- /// Format an XML -options- node from the tuning contents
- ///
- /// The XML string or an empty string
- public string Options_toXML( )
- {
- if ( InvertUsed == false ) return ""; // not used
- if ( DevInstanceNo <= 0 ) return ""; // not assigned or not valid...
-
- string tmp = "";
- tmp += string.Format( "\t\n", m_type, m_devInstanceNo.ToString( ) );
- tmp += string.Format( "\t\t<{0} ", m_option );
-
- if ( InvertUsed ) { // leave this IF in - to allow to extend the code for sensitivity
- tmp += string.Format( "invert=\"1\" " );
- }
- tmp += string.Format( "/> \n" );// CIG get to default expo 2.something if not set to 1 here
-
- tmp += string.Format( "\t\n \n" );
-
- return tmp;
- }
-
-
- ///
- /// Read the options from the XML
- ///
- /// A prepared XML reader
- /// the Joystick instance number
- ///
- public bool Options_fromXML( XmlReader reader, string type, int instance )
- {
- m_type = type;
-
- string invert = "";
- m_option = reader.Name;
- m_devInstanceNo = instance;
-
- if ( reader.HasAttributes ) {
- invert = reader["invert"];
- if ( !string.IsNullOrWhiteSpace( invert ) ) {
- InvertUsed = false;
- if ( invert == "1" ) InvertUsed = true;
- }
-
- }
- reader.Read( );
-
- return true;
- }
-
-
- }
-}
diff --git a/Devices/Options/Tuningoptions.cs b/Devices/Options/Tuningoptions.cs
index bb1d198..347f571 100644
--- a/Devices/Options/Tuningoptions.cs
+++ b/Devices/Options/Tuningoptions.cs
@@ -1,5 +1,7 @@
using SCJMapper_V2.Devices.Gamepad;
using SCJMapper_V2.Devices.Joystick;
+using SCJMapper_V2.Devices.Keyboard;
+using SCJMapper_V2.Devices.Mouse;
using System;
using System.Collections.Generic;
using System.IO;
@@ -11,14 +13,16 @@ using System.Xml.Linq;
namespace SCJMapper_V2.Devices.Options
{
+ ///
+ /// One tuning item - curves, saturation
+ ///
public class Tuningoptions : CloneableDictionary, ICloneable
{
+ private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
#region Static parts
- private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
-
- private static char ID_Delimiter = '⁞';
+ private static char ID_Delimiter = '⁞'; // rarely used char to build lists
// Translate toID keys to the proper OptionTree.. (reassing stuff)
// index is the DevNumber (DX enum) - value is the JsN/XmlInstance from reassign
@@ -49,10 +53,17 @@ namespace SCJMapper_V2.Devices.Options
return string.Format( "{0}{1}{2}", deviceClass, ID_Delimiter, -1 ); // will not be found in the collection
}
- else {
+ else if ( GamepadCls.IsDeviceClass( deviceClass ) ) {
// gamepad
return string.Format( "{0}{1}{2}", deviceClass, ID_Delimiter, instance );
}
+ else if ( MouseCls.IsDeviceClass( deviceClass ) ) {
+ // mouse
+ return string.Format( "{0}{1}{2}", deviceClass, ID_Delimiter, instance );
+ }
+ else {
+ return string.Format( "{0}{1}{2}", deviceClass, ID_Delimiter, instance );
+ }
}
@@ -71,7 +82,7 @@ namespace SCJMapper_V2.Devices.Options
return "";
}
else {
- // gamepad
+ // gamepad, mouse
return toIDjs;
}
}
@@ -108,7 +119,7 @@ namespace SCJMapper_V2.Devices.Options
else return inst;
}
else {
- //Gamepad
+ //Gamepad, mouse
return inst;
}
}
@@ -218,6 +229,17 @@ namespace SCJMapper_V2.Devices.Options
log.WarnFormat( "cTor - Gamepad DO_ID {0} exists", toid );
}
}
+
+ // add mouse if there is any
+ if ( DeviceInst.MouseRef != null ) {
+ string toid = TuneOptionID( MouseCls.DeviceClass, 1 );// const -
+ if ( !this.ContainsKey( toid ) ) {
+ this.Add( toid, new OptionTree( DeviceInst.MouseRef ) ); // init with disabled defaults
+ }
+ else {
+ log.WarnFormat( "cTor - Mouse DO_ID {0} exists", toid );
+ }
+ }
}
///
@@ -341,6 +363,15 @@ namespace SCJMapper_V2.Devices.Options
log.InfoFormat( "Read XML Options - xboxpad instance {0} is not available - dropped this content", nInstance );
}
}
+ else if ( KeyboardCls.IsDeviceClass( type ) ) { // CIG names mouse - keyboard
+ string toID = TuneOptionID( MouseCls.DeviceClass, nInstance );
+ if ( this.ContainsKey( toID ) ) {
+ this[toID].fromXML( options );
+ }
+ else {
+ log.InfoFormat( "Read XML Options - keyboard(mouse) instance {0} is not available - dropped this content", nInstance );
+ }
+ }
return true;
}
diff --git a/FormMain.Designer.cs b/FormMain.Designer.cs
index 4d41c15..9e1a8d1 100644
--- a/FormMain.Designer.cs
+++ b/FormMain.Designer.cs
@@ -544,7 +544,6 @@
this.tdiAddMod3});
this.cmAddDel.Name = "cmAddDel";
this.cmAddDel.Size = new System.Drawing.Size(221, 457);
- this.cmAddDel.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.cmAddDel_Closed);
this.cmAddDel.Opening += new System.ComponentModel.CancelEventHandler(this.cmAddDel_Opening);
//
// tdiCollapseAll
diff --git a/FormMain.cs b/FormMain.cs
index 01f23b9..8452c71 100644
--- a/FormMain.cs
+++ b/FormMain.cs
@@ -139,12 +139,36 @@ namespace SCJMapper_V2
AppSettings.Instance.DefMappingName = mapName; AppSettings.Instance.Save( );
}
+ ///
+ /// Indicates if the SC directory is a valid one
+ ///
+ private void SCFileIndication()
+ {
+ if ( string.IsNullOrEmpty( SCPath.SCClientMappingPath ) ) msSelectMapping.BackColor = MyColors.InvalidColor;
+ else msSelectMapping.BackColor = MyColors.MappingColor;
+ }
+
+ ///
+ /// Checks if a rectangle is visible on any screen
+ ///
+ ///
+ /// True if visible
+ private static bool IsOnScreen( Rectangle formRect )
+ {
+ Screen[] screens = Screen.AllScreens;
+ foreach ( Screen screen in screens ) {
+ if ( screen.WorkingArea.Contains( formRect ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
#endregion
#region Main Form Handling
-
public MainForm()
{
@@ -176,6 +200,29 @@ namespace SCJMapper_V2
}
+ private void MainForm_FormClosing( object sender, FormClosingEventArgs e )
+ {
+ log.Debug( "MainForm_FormClosing - Entry" );
+
+ // don't record minimized, maximized forms
+ if ( this.WindowState == FormWindowState.Normal ) {
+ AppSettings.Instance.FormSize = this.Size;
+ AppSettings.Instance.FormLocation = this.Location;
+ }
+
+ if ( FTAB != null ) {
+ AppSettings.Instance.FormTableLocation = FTAB.LastLocation;
+ AppSettings.Instance.FormTableSize = FTAB.LastSize;
+ AppSettings.Instance.FormTableColumnWidth = FTAB.LastColSize;
+
+ FTAB.Close( );
+ FTAB = null;
+ }
+
+ AppSettings.Instance.Save( );
+ }
+
+
private void LoadMappingDD()
{
SCMappings.UpdateMappingNames( );
@@ -190,16 +237,6 @@ namespace SCJMapper_V2
}
}
- ///
- /// Indicates if the SC directory is a valid one
- ///
- private void SCFileIndication()
- {
- if ( string.IsNullOrEmpty( SCPath.SCClientMappingPath ) ) msSelectMapping.BackColor = MyColors.InvalidColor;
- else msSelectMapping.BackColor = MyColors.MappingColor;
- }
-
-
///
/// Handle the load event
///
@@ -210,10 +247,11 @@ namespace SCJMapper_V2
log.Debug( "MainForm_Load - Entry" );
// some applic initialization
- // Assign Size property, since databinding to Size doesn't work well.
-
- this.Size = AppSettings.Instance.FormSize;
- this.Location = AppSettings.Instance.FormLocation;
+ // Assign Size property - check if on screen, else use defaults
+ if ( IsOnScreen( new Rectangle( AppSettings.Instance.FormLocation, AppSettings.Instance.FormSize ) ) ) {
+ this.Size = AppSettings.Instance.FormSize;
+ this.Location = AppSettings.Instance.FormLocation;
+ }
string version = Application.ProductVersion; // get the version information
// BETA VERSION; TODO - comment out if not longer
@@ -237,6 +275,7 @@ namespace SCJMapper_V2
if ( Enum.TryParse( AppSettings.Instance.UseLanguage, out SCUiText.Languages lang ) ) {
SCUiText.Instance.Language = lang;
}
+ treeView1.ShowNodeToolTips = AppSettings.Instance.ShowTreeTips;
// load mappings
log.Debug( "Loading Mappings" );
@@ -437,7 +476,6 @@ namespace SCJMapper_V2
// apply a default JS to Joystick mapping - can be changed and reloaded from XML mappings
// must take care of Gamepads if there are (but we take care of one only...)
- //@@@@@@@
int joyStickIndex = 0; // Joystick List Index
for ( int deviceTabIndex = 0; deviceTabIndex < JoystickCls.JSnum_MAX; deviceTabIndex++ ) {
if ( tc1.TabPages.Count > deviceTabIndex ) {
@@ -457,8 +495,6 @@ namespace SCJMapper_V2
m_AT.FilterTree( txFilter.Text );
}
-
-
// Helper: collect the joysticks here
struct myDxJoystick
{
@@ -472,45 +508,44 @@ namespace SCJMapper_V2
///
public bool InitDirectInput()
{
- log.Debug( "Entry" );
+ log.Debug( "InitDirectInput - Entry" );
// Enumerate gamepads in the system.
SharpDX.XInput.UserIndex gpDeviceIndex = SharpDX.XInput.UserIndex.Any;
// Initialize DirectInput
- log.Debug( "Instantiate DirectInput" );
+ log.Debug( " - Instantiate DirectInput" );
var directInput = new DirectInput( );
try {
- log.Debug( "Get Keyboard device" );
+ log.Debug( " - Get Keyboard device" );
DeviceInst.KeyboardInst = new KeyboardCls( new SharpDX.DirectInput.Keyboard( directInput ), this );
- log.Debug( "Get Mouse device" );
+ log.Debug( " - Get Mouse device" );
DeviceInst.MouseInst = new MouseCls( new SharpDX.DirectInput.Mouse( directInput ), this );
}
catch ( Exception ex ) {
- log.Debug( "InitDirectInput phase 1 failed unexpectedly", ex );
+ log.Debug( " *** InitDirectInput phase 1 failed unexpectedly", ex );
return false;
}
-
List dxJoysticks = new List( );
SharpDX.XInput.Controller dxGamepad = null;
try {
// scan the Input for attached devices
- log.Debug( "Scan GameControl devices" );
+ log.Debug( " - Scan GameControl devices" );
foreach ( DeviceInstance instance in directInput.GetDevices( DeviceClass.GameControl, DeviceEnumerationFlags.AttachedOnly ) ) {
- log.InfoFormat( "GameControl: Type:{0} Device:{1}", instance.Type.ToString( ), instance.ProductName );
+ log.InfoFormat( " - GameControl: Type:{0} Device:{1}", instance.Type.ToString( ), instance.ProductName );
// Create the device interface
- log.Debug( "Create the device interface" );
+ log.Debug( " - Create the device interface" );
if ( AppSettings.Instance.DetectGamepad && ( instance.Usage == SharpDX.Multimedia.UsageId.GenericGamepad ) ) {
// detect Gamepad only if the user wishes to do so
for ( SharpDX.XInput.UserIndex i = SharpDX.XInput.UserIndex.One; i < SharpDX.XInput.UserIndex.Four; i++ ) {
dxGamepad = new SharpDX.XInput.Controller( i );
if ( dxGamepad.IsConnected ) {
- log.InfoFormat( "Scan Input {0} for gamepad - {1}", i, dxGamepad.GetCapabilities( SharpDX.XInput.DeviceQueryType.Gamepad ).ToString( ) );
+ log.InfoFormat( " - Scan Input {0} for gamepad - {1}", i, dxGamepad.GetCapabilities( SharpDX.XInput.DeviceQueryType.Gamepad ).ToString( ) );
gpDeviceIndex = i;
break; // get only the first one
}
@@ -521,25 +556,24 @@ namespace SCJMapper_V2
myJs.js = new SharpDX.DirectInput.Joystick( directInput, instance.InstanceGuid );
myJs.prodName = instance.ProductName;
dxJoysticks.Add( myJs );
- log.DebugFormat( "Create the device interface for: {0}", myJs.prodName );
+ log.DebugFormat( " - Create the device interface for: {0}", myJs.prodName );
}
}
}
catch ( Exception ex ) {
- log.Debug( "InitDirectInput phase 2 failed unexpectedly", ex );
+ log.Debug( " *** InitDirectInput phase 2 failed unexpectedly", ex );
return false;
}
-
int tabs = 0;
// make the GP the first device if there is one.
if ( dxGamepad != null ) {
- log.Debug( "Add first Gamepad panel" );
+ log.Debug( " - Add first Gamepad panel" );
tc1.TabPages[tabs].Text = "Gamepad ";
UC_GpadPanel uUC_GpadPanelNew = new UC_GpadPanel( ); tc1.TabPages[tabs].Controls.Add( uUC_GpadPanelNew );
uUC_GpadPanelNew.Size = UC_JoyPanel.Size; uUC_GpadPanelNew.Location = UC_JoyPanel.Location;
UC_JoyPanel.Enabled = false; UC_JoyPanel.Visible = false; // don't use this one
- log.Debug( "Create Gamepad instance" );
+ log.Debug( " - Create Gamepad instance" );
DeviceInst.GamepadInst = new GamepadCls( dxGamepad, uUC_GpadPanelNew, tabs ); // does all device related activities for that particular item
DeviceInst.GamepadRef.SetDeviceName( GamepadCls.DevNameCIG ); // this is fixed ...
tc1.TabPages[tabs].ToolTipText = string.Format( "{0}\n{1}", DeviceInst.GamepadRef.DevName, " " );
@@ -559,22 +593,20 @@ namespace SCJMapper_V2
JoystickCls js = null; UC_JoyPanel uUC_JoyPanelNew = null;
if ( tabs == 0 ) {
// first panel - The Tab content exists already
- log.Debug( "Add first Joystick panel" );
+ log.Debug( " - Add first Joystick panel" );
uUC_JoyPanelNew = UC_JoyPanel;
}
else {
- log.Debug( "Add next Joystick panel" );
+ log.Debug( " - Add next Joystick panel" );
// setup the further tab contents along the reference one in TabPage[0] (the control named UC_JoyPanel)
tc1.TabPages.Add( "" ); // numbering is 1 based for the user
uUC_JoyPanelNew = new UC_JoyPanel( ); tc1.TabPages[tabs].Controls.Add( uUC_JoyPanelNew );
uUC_JoyPanelNew.Size = UC_JoyPanel.Size; uUC_JoyPanelNew.Location = UC_JoyPanel.Location;
- //uUC_JoyPanelNew.Dock = UC_JoyPanel.Dock; uUC_JoyPanelNew.Anchor = UC_JoyPanel.Anchor;
- //uUC_JoyPanelNew.AutoScaleMode = UC_JoyPanel.AutoScaleMode; uUC_JoyPanelNew.AutoSize = UC_JoyPanel.AutoSize;
}
// common part
tc1.TabPages[tabs].Text = string.Format( "Joystick {0}", nJs + 1 ); // numbering is 1 based for the user
- log.Debug( "Create Joystick instance " + nJs.ToString( ) );
+ log.Debug( " - Create Joystick instance " + nJs.ToString( ) );
js = new JoystickCls( myJs.js, this, nJs, uUC_JoyPanelNew, tabs ); // does all device related activities for that particular item
DeviceInst.JoystickListRef.Add( js ); // add to joystick list
tc1.TabPages[tabs].ToolTipText = string.Format( "{0}\n{1}", js.DevName, js.DevInstanceGUID );
@@ -588,16 +620,16 @@ namespace SCJMapper_V2
if ( tabs >= JoystickCls.JSnum_MAX ) break; // cannot load more JSticks than predefined Tabs
}
- log.DebugFormat( "Added {0} GameControl devices", tabs );
+ log.DebugFormat( " - Added {0} GameControl devices", tabs );
if ( tabs == 0 ) {
- log.Warn( "Unable to find and/or create any joystick devices." );
+ log.Warn( " - Unable to find and/or create any joystick devices." );
MessageBox.Show( "Unable to create a joystick device. Program will exit.", "No joystick found", MessageBoxButtons.OK, MessageBoxIcon.Information );
return false;
}
// load the profile items from the XML
- log.Debug( "Init ActionTree" );
+ log.Debug( " - End of, InitActionTree now" );
InitActionTree( true );
return true;
@@ -605,8 +637,7 @@ namespace SCJMapper_V2
#endregion
-
-
+ #region Tree Handling
///
/// Grab the rtb data and load them into config
@@ -683,30 +714,11 @@ namespace SCJMapper_V2
txRebind.Text = "pp_rebindkeys " + map;
}
+ #endregion
#region Event Handling
- // Form Events
-
- private void MainForm_FormClosing( object sender, FormClosingEventArgs e )
- {
- log.Debug( "MainForm_FormClosing - Entry" );
-
- AppSettings.Instance.FormSize = this.Size;
- AppSettings.Instance.FormLocation = this.Location;
-
- if ( FTAB != null ) {
- AppSettings.Instance.FormTableLocation = FTAB.LastLocation;
- AppSettings.Instance.FormTableSize = FTAB.LastSize;
- AppSettings.Instance.FormTableColumnWidth = FTAB.LastColSize;
-
- FTAB.Close( );
- FTAB = null;
- }
-
- AppSettings.Instance.Save( );
- }
-
+ // *** Timer Events
// polls the devices to get the latest update
private void timer1_Tick( object sender, System.EventArgs e )
@@ -715,7 +727,6 @@ namespace SCJMapper_V2
m_modifierTimeout -= timer1.Interval; // decrement timeout
if ( m_modifierTimeout < 0 ) m_modifierTimeout = 0; // prevent undeflow after long time not using modifiers
-
if ( m_keyIn || tc1.SelectedTab.Tag == null ) return; // don't handle those
string ctrl = "";
@@ -758,7 +769,7 @@ namespace SCJMapper_V2
}
- // TreeView Events
+ // *** TreeView Events
private void treeView1_NodeMouseClick( object sender, TreeNodeMouseClickEventArgs e )
{
@@ -770,12 +781,12 @@ namespace SCJMapper_V2
// Action Tree Event - manages the de/selection of a node
private void M_AT_NodeSelectedEvent( object sender, ActionTreeEventArgs e )
{
- lblAction.Text = e.SelectedAction;
+ lblAction.Text = SCUiText.Instance.Text( e.SelectedAction );
lblAssigned.Text = e.SelectedCtrl;
}
- // Show options
+ // *** Show options
private void cbxShowTreeOptions_CheckedChanged( object sender, EventArgs e )
{
@@ -791,11 +802,12 @@ namespace SCJMapper_V2
- // Assign Panel Items
+ // *** Assign Panel Items
private void btFind_Click( object sender, EventArgs e )
{
- m_AT.FindAndSelectCtrl( JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked ), "" ); // find the action for a Control (joystick input)
+
+ m_AT.FindAndSelectCtrl( JoystickCls.MakeThrottle( Act.DevInput( lblLastJ.Text, InputMode ), cbxThrottle.Checked ), "" ); // find the action for a Control (joystick input)
}
private void btAssign_Click( object sender, EventArgs e )
@@ -811,7 +823,7 @@ namespace SCJMapper_V2
private void btBlend_Click( object sender, EventArgs e )
{
log.Debug( "btBlend_Click" );
- if ( m_AT.CanBlendBinding ) {
+ if ( m_AT.CanDisableBinding ) {
m_AT.DisableBinding( );
UpdateTableSelectedItem( );
if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
@@ -822,7 +834,7 @@ namespace SCJMapper_V2
private void btClear_Click( object sender, EventArgs e )
{
log.Debug( "btClear_Click" );
- if ( m_AT.CanClearBinding || m_AT.CanBlendBinding ) {
+ if ( m_AT.CanClearBinding || m_AT.CanDisableBinding ) {
m_AT.ClearBinding( );
UpdateTableSelectedItem( );
if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
@@ -830,7 +842,7 @@ namespace SCJMapper_V2
else MySounds.PlayCannot( );
}
- // General Area Items
+ // *** General Area Items
private void btDump_Click( object sender, EventArgs e )
{
@@ -857,7 +869,7 @@ namespace SCJMapper_V2
AppSettings.Instance.AutoTabXML = cbxAutoTabXML.Checked; AppSettings.Instance.Save( );
}
- // Toolstrip Items
+ // *** Toolstrip Items
private void meResetDefaults_Click( object sender, EventArgs e )
{
@@ -906,7 +918,7 @@ namespace SCJMapper_V2
Dump( );
}
- // Dialogs
+ // *** Dialogs
// Show the Table Window
private void meShowToggleTable_Click( object sender, EventArgs e )
@@ -924,11 +936,9 @@ namespace SCJMapper_V2
AppSettings.Instance.FormTableLocation = FTAB.LastLocation;
AppSettings.Instance.FormTableColumnWidth = FTAB.LastColSize;
FTAB.Hide( );
-
}
else {
FTAB.Show( );
-
if ( created ) {
FTAB.Size = AppSettings.Instance.FormTableSize;
FTAB.Location = AppSettings.Instance.FormTableLocation;
@@ -946,14 +956,20 @@ namespace SCJMapper_V2
FormOptions OPT = new FormOptions( );
// Have to attach here to capture the currently valid settings
- UpdateTuningItems( );
- UpdateMoreOptionItems( );
+ // cleanup - Actions will be assigned new in below calls
+ m_AT.ActionMaps.DeviceOptions.ResetDynamicItems( );
+ m_AT.ActionMaps.TuningOptions.ResetDynamicItems( );
+
+ UpdateAllTuningItems( JoystickCls.DeviceClass );
+ UpdateAllTuningItems( GamepadCls.DeviceClass );
+ UpdateAllTuningItems( MouseCls.DeviceClass );
DeviceList devlist = new DeviceList( );
if ( AppSettings.Instance.DetectGamepad && ( DeviceInst.GamepadRef != null ) ) {
devlist.Add( DeviceInst.GamepadRef );
}
devlist.AddRange( DeviceInst.JoystickListRef );
+ devlist.Add( DeviceInst.MouseRef );
OPT.TuningOptions = m_AT.ActionMaps.TuningOptions;
OPT.DeviceOptions = m_AT.ActionMaps.DeviceOptions;
@@ -976,7 +992,12 @@ namespace SCJMapper_V2
JSCAL = new OGL.FormJSCalCurve( );
// Have to attach here to capture the currently valid settings
+ // cleanup - Actions will be assigned new in below calls
+ m_AT.ActionMaps.DeviceOptions.ResetDynamicItems( );
+ m_AT.ActionMaps.TuningOptions.ResetDynamicItems( );
+
UpdateTuningItems( );
+
// run
JSCAL.TuningOptions = m_AT.ActionMaps.TuningOptions;
JSCAL.ShowDialog( this );
@@ -989,7 +1010,8 @@ namespace SCJMapper_V2
}
- // Settings
+ // *** Settings
+
private void meSettingsDialog_Click( object sender, EventArgs e )
{
// have to stop polling while the Settings window is open
@@ -1004,6 +1026,8 @@ namespace SCJMapper_V2
if ( Enum.TryParse( AppSettings.Instance.UseLanguage, out SCUiText.Languages lang ) ) {
SCUiText.Instance.Language = lang;
}
+ treeView1.ShowNodeToolTips = AppSettings.Instance.ShowTreeTips;
+
// now update the contents according to new settings
foreach ( JoystickCls j in DeviceInst.JoystickListRef ) j.ApplySettings( ); // update Seetings
m_AT.IgnoreMaps = AppSettings.Instance.IgnoreActionmaps;
@@ -1011,7 +1035,6 @@ namespace SCJMapper_V2
InitActionTree( false );
UpdateTable( );
}
-
timer1.Enabled = true;
}
@@ -1048,7 +1071,7 @@ namespace SCJMapper_V2
timer1.Enabled = true;
}
- // Load maps
+ // *** Load maps
private void msSelectMapping_DropDownItemClicked( object sender, ToolStripItemClickedEventArgs e )
{
@@ -1106,31 +1129,7 @@ namespace SCJMapper_V2
}
-
- private void tsDDbtMappings_DropDownItemClicked( object sender, ToolStripItemClickedEventArgs e )
- {
- }
-
-
-
- private void loadToolStripMenuItem_Click( object sender, EventArgs e )
- {
- }
-
- private void loadAndGrabToolStripMenuItem_Click( object sender, EventArgs e )
- {
- }
-
- private void resetLoadAndGrabToolStripMenuItem_Click( object sender, EventArgs e )
- {
- }
-
- private void defaultsLoadAndGrabToolStripMenuItem_Click( object sender, EventArgs e )
- {
- }
-
-
- // Context Menu Items
+ // *** Context Menu Items
// RTB Menu
private void tsiCopy_Click( object sender, EventArgs e )
@@ -1175,7 +1174,7 @@ namespace SCJMapper_V2
}
}
- // Node Menu
+ // *** Node Menu
private ActivationMode m_prevActivationMode = new ActivationMode( ActivationMode.Default );
@@ -1193,13 +1192,12 @@ namespace SCJMapper_V2
tdiAssignBinding.Text = "Assign: " + JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked );
}
tdiAssignBinding.Visible = m_AT.CanAssignBinding; any2 = any2 || m_AT.CanAssignBinding; // Assign
- tdiBlendBinding.Visible = m_AT.CanBlendBinding; any2 = any2 || m_AT.CanBlendBinding; // Blend
+ tdiBlendBinding.Visible = m_AT.CanDisableBinding; any2 = any2 || m_AT.CanDisableBinding; // Blend
tdiClearBinding.Visible = m_AT.CanClearBinding; any2 = any2 || m_AT.CanClearBinding; // Clear
tdiAddBinding.Visible = m_AT.CanAddBinding; any3 = any3 || m_AT.CanAddBinding; // Add
tdiDelBinding.Visible = m_AT.CanDelBinding; any3 = any3 || m_AT.CanDelBinding; // Del
-
// handle activation modes - there is a default one and the list of choosable ones
// there is no further decision on can or cannot - any(2) is enough to know
tdiCbxActivation.Visible = false;
@@ -1225,11 +1223,6 @@ namespace SCJMapper_V2
e.Cancel = false; // !( any2 || any3 );
}
- // after user entry of the context menu - see if one has changed the ActivationMode
- private void cmAddDel_Closed( object sender, ToolStripDropDownClosedEventArgs e )
- {
- }
-
// Collapses all but the selected node or the part where it is in
private void tdiCollapseAll_Click( object sender, EventArgs e )
{
@@ -1339,7 +1332,7 @@ namespace SCJMapper_V2
if ( droppedFilenames.Length > 0 ) rtb.LoadFile( droppedFilenames[0], RichTextBoxStreamType.PlainText );
}
- // XML load and save
+ // *** XML load and save
private void btSaveMyMapping_Click( object sender, EventArgs e )
{
bool cancel = false;
@@ -1379,7 +1372,7 @@ namespace SCJMapper_V2
}
}
- // Hyperlink
+ // *** Hyperlink
private void linkLblReleases_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e )
{
@@ -1395,7 +1388,7 @@ namespace SCJMapper_V2
- // Joystick Tuning
+ // *** Joystick Tuning
private void cbxInv_XY_MouseClick( object sender, MouseEventArgs e )
{
@@ -1407,145 +1400,125 @@ namespace SCJMapper_V2
///
/// Updates Gamedevice, Nodetext for one Tuning (Option) item from current assignment
///
- /// THe option to handle
+ /// The device class
+ /// The option to handle
/// The corresponding action
/// The actionmap to search for the action
- private void UpdateOptionItem( string optionName, string action, string actionmap )
+ private bool UpdateTuningForDevice( string deviceClass, string optionName, string action, string actionmap )
{
- // get current mapping from ActionMaps
- string nodeText = "";
-
- // attach Yaw command
DeviceTuningParameter tuning = null;
DeviceCls dev = null;
- string find = "";
-
- // find action item for Joysticks
- find = ActionTreeNode.ComposeNodeActionText( action, "js" );
- nodeText = m_AT.FindText( actionmap, find ); // returns "" or a complete text ("action - command")
- if ( !string.IsNullOrWhiteSpace( nodeText ) ) {
- if ( !Act.IsDisabledInput( ActionTreeNode.CommandFromActionText( nodeText ) ) ) {
- dev = DeviceInst.JoystickListRef.Find_jsN( JoystickCls.JSNum( ActionTreeNode.CommandFromActionText( nodeText ) ) );
- if ( dev != null ) {
- // find the tuning item of the action
- string toID = Tuningoptions.TuneOptionIDfromJsN( JoystickCls.DeviceClass, dev.XmlInstance );
- OptionTree ot = m_AT.ActionMaps.TuningOptions.OptionTreeFromToID( toID );
- if ( ot != null ) tuning = ot.TuningItem( optionName ); // set defaults
- }
- }
- }
+ string match = "";
+ string nodeText = "";
- if ( dev == null ) {
- // nothing found? find action item for GPads
- find = ActionTreeNode.ComposeNodeActionText( action, "xi" );
- nodeText = m_AT.FindText( actionmap, find );
- if ( !string.IsNullOrWhiteSpace( nodeText ) ) {
- if ( !Act.IsDisabledInput( ActionTreeNode.CommandFromActionText( nodeText ) ) ) {
- dev = DeviceInst.GamepadRef;
- if ( dev != null ) {
- // find the tuning item of the action
- string toID = Tuningoptions.TuneOptionIDfromJsN( GamepadCls.DeviceClass, dev.XmlInstance );
- OptionTree ot = m_AT.ActionMaps.TuningOptions.OptionTreeFromToID( toID );
- if ( ot != null ) tuning = ot.TuningItem( optionName ); // set defaults
- }
- }
- }
+ if ( JoystickCls.IsDeviceClass( deviceClass ) ) {
+ match = ActionTreeNode.ComposeNodeActionText( action, "js" );
+ }
+ else if ( GamepadCls.IsDeviceClass( deviceClass ) ) {
+ match = ActionTreeNode.ComposeNodeActionText( action, "xi" );
}
- // dev might be null here if no device for the action was found
- // tuning might be null here if no tuningitem for the device action was found (which should not happen !!)
- if ( ( dev != null ) && ( tuning == null ) ) {
- log.ErrorFormat( "UpdateOptionItem - Tuning item for device not found - dev: {0} - option: {1}", dev.DevName, optionName );
- return; // ERROR EXIT
+ else if ( MouseCls.IsDeviceClass( deviceClass ) ) {
+ match = ActionTreeNode.ComposeNodeActionText( action + "_mouse", "mo" ); // CIG cannot decide on terminology rules at all...
}
- if ( dev != null ) {
- // having a device and a tuning item here
- // JS commands that are supported
- if ( nodeText.ToLowerInvariant( ).EndsWith( "_x" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotx" ) || nodeText.ToLowerInvariant( ).EndsWith( "_throttlex" )
- || nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) || nodeText.ToLowerInvariant( ).EndsWith( "_throttley" )
- || nodeText.ToLowerInvariant( ).EndsWith( "_Z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) || nodeText.ToLowerInvariant( ).EndsWith( "_throttlez" )
- || nodeText.ToLowerInvariant( ).EndsWith( "_slider1" ) || nodeText.ToLowerInvariant( ).EndsWith( "_slider2" ) ) {
- // update dynamic properties
- string doID = Deviceoptions.DevOptionID( dev.DevClass, dev.DevName, nodeText );
- if ( m_AT.ActionMaps.DeviceOptions.ContainsKey( doID ) ) {
- tuning.AssignDynamicItems( dev, m_AT.ActionMaps.DeviceOptions[doID], nodeText );
- }
- else {
- tuning.AssignDynamicItems( dev, null, nodeText );
- }
- }
- // GP commands that are supported
- else if ( nodeText.ToLowerInvariant( ).Contains( "_thumblx" ) || nodeText.ToLowerInvariant( ).Contains( "_thumbrx" )
- || nodeText.ToLowerInvariant( ).Contains( "_thumbly" ) || nodeText.ToLowerInvariant( ).Contains( "_thumbry" ) ) {
- // update dynamic properties
- tuning.GameDevice = dev;
- tuning.NodeText = nodeText;
- string doID = Deviceoptions.DevOptionID( dev.DevClass, dev.DevName, nodeText );
- if ( m_AT.ActionMaps.DeviceOptions.ContainsKey( doID ) ) {
- tuning.AssignDynamicItems( dev, m_AT.ActionMaps.DeviceOptions[doID], nodeText );
- }
- else {
- tuning.AssignDynamicItems( dev, null, nodeText );
- }
- }
+ nodeText = m_AT.FindText( actionmap, match ); // returns "" or a complete text ("action - command")
+ // check for exit states
+ if ( string.IsNullOrWhiteSpace( nodeText ) ) return false; // EXIT - no node assigned
+ if ( Act.IsDisabledInput( ActionTreeNode.CommandFromActionText( nodeText ) ) ) return false; // EXIT disabled item
+
+ // find the device for the action if it is an axis (analog command)
+ string command = ActionTreeNode.CommandFromActionText( nodeText );
+ if ( JoystickCls.IsAxisCommand( command ) ) {
+ dev = DeviceInst.JoystickListRef.Find_jsN( JoystickCls.JSNum( command ) );
}
- else if ( tuning != null && tuning.DevInstanceNo > 0 ) {
- // a device was assigned but the action is not mapped
- // try to find the gamedevice here ??
- if ( JoystickCls.IsDeviceClass( tuning.DeviceClass ) ) {
- tuning.AssignDynamicItems( DeviceInst.JoystickListRef.Find_jsN( tuning.DevInstanceNo ), null, "" );
+ else if ( GamepadCls.IsAxisCommand( command ) ) {
+ dev = DeviceInst.GamepadRef;
+ }
+ else if ( MouseCls.IsAxisCommand( command ) ) {
+ dev = DeviceInst.MouseRef;
+ }
+ // finally do the job..
+ if ( dev != null ) {
+ // find the tuning item of the action
+ string toID = Tuningoptions.TuneOptionIDfromJsN( deviceClass, dev.XmlInstance );
+ OptionTree ot = m_AT.ActionMaps.TuningOptions.OptionTreeFromToID( toID );
+ if ( ot == null ) return false; // EXIT no optiontree for the device
+
+ tuning = ot.TuningItem( optionName ); // set defaults
+ if ( tuning == null ) return false; // EXIT no tuning item for the device
+
+ string doID = Deviceoptions.DevOptionID( dev.DevClass, dev.DevName, nodeText );
+ if ( m_AT.ActionMaps.DeviceOptions.ContainsKey( doID ) ) {
+ tuning.AssignDynamicItems( dev, m_AT.ActionMaps.DeviceOptions[doID], nodeText );
}
- else if ( GamepadCls.IsDeviceClass( tuning.DeviceClass ) ) {
- tuning.AssignDynamicItems( DeviceInst.GamepadRef, null, "" );
+ else {
+ tuning.AssignDynamicItems( dev, null, nodeText );
}
}
+ return true;
+ }
+ ///
+ /// Updates the option for the first device found only
+ /// Used for the Tuning Dialog, only one item can be tuned
+ ///
+ /// The option to handle
+ /// The corresponding action
+ /// The actionmap to search for the action
+ private void UpdateTuningPrioritized( string optionName, string action, string actionmap )
+ {
+ bool retVal = UpdateTuningForDevice( JoystickCls.DeviceClass, optionName, action, actionmap );
+ if ( !retVal ) retVal = UpdateTuningForDevice( GamepadCls.DeviceClass, optionName, action, actionmap );
+ if ( !retVal ) retVal = UpdateTuningForDevice( MouseCls.DeviceClass, optionName, action, actionmap );
}
+
///
/// Get the assigned controls for some commands used in Tuning Yaw,Pitch,Roll and the Strafe ones
/// Connect deviceOption if known
///
private void UpdateTuningItems()
{
- // cleanup - Actions will be assigned new in below calls
- m_AT.ActionMaps.DeviceOptions.ResetDynamicItems( );
- m_AT.ActionMaps.TuningOptions.ResetDynamicItems( );
-
- // get current mapping from ActionMaps
- UpdateOptionItem( "flight_move_pitch", "v_pitch", "spaceship_movement" );
- UpdateOptionItem( "flight_move_yaw", "v_yaw", "spaceship_movement" );
- UpdateOptionItem( "flight_move_roll", "v_roll", "spaceship_movement" );
+ UpdateTuningPrioritized( "flight_move_pitch", "v_pitch", "spaceship_movement" );
+ UpdateTuningPrioritized( "flight_move_yaw", "v_yaw", "spaceship_movement" );
+ UpdateTuningPrioritized( "flight_move_roll", "v_roll", "spaceship_movement" );
- UpdateOptionItem( "flight_move_strafe_vertical", "v_strafe_vertical", "spaceship_movement" );
- UpdateOptionItem( "flight_move_strafe_lateral", "v_strafe_lateral", "spaceship_movement" );
- UpdateOptionItem( "flight_move_strafe_longitudinal", "v_strafe_longitudinal", "spaceship_movement" );
+ UpdateTuningPrioritized( "flight_move_strafe_vertical", "v_strafe_vertical", "spaceship_movement" );
+ UpdateTuningPrioritized( "flight_move_strafe_lateral", "v_strafe_lateral", "spaceship_movement" );
+ UpdateTuningPrioritized( "flight_move_strafe_longitudinal", "v_strafe_longitudinal", "spaceship_movement" );
}
///
/// Get the assigned controls for other Options - if available...
///
- private void UpdateMoreOptionItems()
+ private void UpdateAllTuningItems( string deviceClass )
{
- // get current mapping from ActionMaps
- UpdateOptionItem( "flight_throttle_abs", "v_throttle_abs", "spaceship_movement" );
- UpdateOptionItem( "flight_throttle_rel", "v_throttle_rel", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_move_pitch", "v_pitch", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_move_yaw", "v_yaw", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_move_roll", "v_roll", "spaceship_movement" );
- UpdateOptionItem( "flight_aim_pitch", "v_aim_pitch", "spaceship_targeting" );
- UpdateOptionItem( "flight_aim_yaw", "v_aim_yaw", "spaceship_targeting" );
+ UpdateTuningForDevice( deviceClass, "flight_move_strafe_vertical", "v_strafe_vertical", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_move_strafe_lateral", "v_strafe_lateral", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_move_strafe_longitudinal", "v_strafe_longitudinal", "spaceship_movement" );
- UpdateOptionItem( "flight_view_pitch", "v_view_pitch", "spaceship_view" );
- UpdateOptionItem( "flight_view_yaw", "v_view_yaw", "spaceship_view" );
+ UpdateTuningForDevice( deviceClass, "flight_view_pitch", "v_view_pitch", "spaceship_view" );
+ UpdateTuningForDevice( deviceClass, "flight_view_yaw", "v_view_yaw", "spaceship_view" );
- UpdateOptionItem( "turret_aim_pitch", "v_aim_pitch", "spaceship_turret" );
- UpdateOptionItem( "turret_aim_yaw", "v_aim_yaw", "spaceship_turret" );
- }
+ UpdateTuningForDevice( deviceClass, "flight_throttle_abs", "v_throttle_abs", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_throttle_rel", "v_throttle_rel", "spaceship_movement" );
+ UpdateTuningForDevice( deviceClass, "flight_aim_pitch", "v_aim_pitch", "spaceship_targeting" );
+ UpdateTuningForDevice( deviceClass, "flight_aim_yaw", "v_aim_yaw", "spaceship_targeting" );
+ UpdateTuningForDevice( deviceClass, "turret_aim_pitch", "v_aim_pitch", "spaceship_turret" );
+ UpdateTuningForDevice( deviceClass, "turret_aim_yaw", "v_aim_yaw", "spaceship_turret" );
+ UpdateTuningForDevice( deviceClass, "mgv_view_pitch", "v_view_pitch", "vehicle_general" );
+ UpdateTuningForDevice( deviceClass, "mgv_view_yaw", "v_view_yaw", "vehicle_general" );
+ }
- // Keyboard Input
+ // *** Keyboard Input
bool m_keyIn = false;
bool m_mouseIn = false;
@@ -1644,7 +1617,7 @@ namespace SCJMapper_V2
}
}
- // Mouse Input
+ // *** Mouse Input
private void cmMouseEntry_Opening( object sender, CancelEventArgs e )
{
@@ -1702,6 +1675,7 @@ namespace SCJMapper_V2
#endregion
+ #region DataTable Handling
// Called when the table must be rebuild
private void UpdateTable()
@@ -1722,7 +1696,6 @@ namespace SCJMapper_V2
if ( ( FTAB != null ) && FTAB.Visible ) {
string actionID = m_AT.SelectedActionID;
m_AT.ActionMaps.UpdateDataSet( FTAB.DS_AMaps, actionID );
- // FTAB.UpdateRow( actionID ); seems not needed...
}
}
@@ -1744,11 +1717,13 @@ namespace SCJMapper_V2
}
-
// called when the user if the TAB form wants to edit a row
private void FTAB_EditActionEvent( object sender, EditRowEventArgs e )
{
m_AT.FindAndSelectActionKey( e.Actionmap, e.Actionkey, e.Nodeindex );
}
+
+ #endregion
+
}
}
diff --git a/FormMain.resx b/FormMain.resx
index 64326a8..b9e2069 100644
--- a/FormMain.resx
+++ b/FormMain.resx
@@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA8
- EAAAAk1TRnQBSQFMAgEBCQEAAVgBEgFYARIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ EAAAAk1TRnQBSQFMAgEBCQEAAXABEgFwARIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -207,78 +207,6 @@
652, 17
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
- DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
- bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
- sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
- AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
- JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
- 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
- li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
- ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
- wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
- hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
- 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
- VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
- 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
- qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
- j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
- 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
- rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
- fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
- B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
- yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
- YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
- yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
- vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
- vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
- Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
- bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
- llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
- ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
- xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
- eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
- YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
- XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
- WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
- xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
- dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
- V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
- Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
- Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
- PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
- 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
- /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
- XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
- fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
- tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAABQpJREFUSEu1lWtQVGUY
- gI/3C4q3ykuGSOYlTc2ULGkap5hm0ulPUzNZTT/7Yz+abBIJNTQSARXTvBFeQCdNFgRFcfPKTcRdZUFh
- z9nFZbnshXWxs8sKuyxPH9TosGn8yZ155t35Lu+z+37feY8EPFUeO/h/8vDLja+loYZNQ9aaD0dolYxx
- 2hv7orXVuZ9razSfaatzPtUaTq7SVp34RHs7/0ut/EectvbsN2JczIlx3bGPtVW/TNHWH3pBa9wzIVv3
- rbRUv+bv3A8Ft+IHr24riyZo+whVP4+qwnU0tbTitFu577bj87gJdKj4fW5czVbcDgtqm4NWp4M7umuY
- z8UQbFhJR+NK6jMnGYXgzT6CpiMRbhyrwLAC3/kZlOfGc0PuRDY3YW/10N4hVomPzZCFnPUSdZoVWK0t
- 1DugpKQCs2YZVC2H+g8JGGIxpobn9+R9KGjJmuHn9gcEK9/FWzSditzvuGV0YzKZsNvteDyenvxYypLp
- LBpGS8ESlLo7WGw+ykuKMZ1cCvq36LoeS0fpckzpE0p68j76B4ciVarep+vacjyFEUKwllty278E1ms7
- 8J0ZS3NBDCa5TgjaKS8tRTkRDRVvEKh4B9/lGJS0cdqevI8EmREquli6St5CzZ/MtbwEqswdQqD0EZgv
- JmDdKWH89VnqlToanAHKK24i/7YYyhYTKH0b34WlQjA2RJAxVaViOZ2XlhI4P5NbR9+j9Hot9U5w+eCf
- I+CB9x7WyqM45CI8XWC0Q3FBOvbfo+i+uoTAlWXiDBejpI4JEeyfolIcQ8e51wheiOZPTSRV2bHcPJvI
- nQtJmK4mi/qn9R6yUymiuUZD3eU09LmrsRydTVfRXDpF4oDY6yt8FSUlPESwd5LaffF1HpxegO/0QrrO
- LcKfP4227FHcOxJG6+GROA8OxyHoia2HRuA6PALP8fEEz4rkhYt69/rFvvZTryBvHR0i2P2c2l0kFuXO
- pePUPLryZtKtiYC8af0QQTA3Ev+pl3mQNxd/wXzac+YgbwkLEeycoHYXzKNTTHYcm0zzvrFYjsynIXuh
- YMFjsYo5S9YCLJlRtGWG05Uzi07NHNqPz0D+aWRfQWP6ODWomYU/eyLWjEgaqzW0qSqOVvG0upyPxdlL
- Ky6HCXP+F7j3jyJwIgpv9jTkpBEhgm3hKsejuJcuoZxfh18MejtB9QWfTHsQj4gBsdYmfohp92Q48gze
- g1ORNw8PEaSMVsmeSmuKRN2lFFziXspGI0aBLMtPpLa2liZbGw02J6b9syEjDO+BiUIwNESwNUzl4ERc
- yRJ3zifi8EJDQwMWi6VfWhz3MVnuYtrzIt17h+HZMwE5MVSwZYTKvvHc+1Gi5uwGGtvobRP9oSgKliYX
- tWYF067pdKcPxPPzGOQfBocIkoap7BqNO1HCUJiAWXRJvV6PTqfrjU+isrKSWsXKbcWIaae41mkSnu1h
- yBsHhQg2D25nx3DcGyX0+XEYW/zcvXu3X3pKZLbY0FVXYdoxFUSJPanDkTcMvNhXkDgoQOoQ3AlCcCqO
- GouXsrIySkWn7IlPori4GL3BKAQGlG3PgyixN3kIyvoBfdt1bcKAS/6kAbTHS+jOJFEtSnTjtkNg/08q
- a2yi63ZSIbuo3y4EmyRsiQMwxEvr+wh0cVKEMV4qaIiT1PIDsWrZ6S2qeCf0y/U8EfO+V6/krFFrksaq
- Tesk88046SuRb2gfwdMB6S/DHs/UzS4d0QAAAABJRU5ErkJggg==
-
-
/9j/4AAQSkZJRgABAQEAAAAAAAD/7gAOQWRvYmUAZAAAAAAB/9sAQwACAQEBAgECAgICAwICAgMEAwIC
@@ -550,6 +478,78 @@
421, 17
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
+ DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
+ bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
+ sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
+ AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
+ JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
+ 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
+ li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
+ ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
+ wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
+ hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
+ 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
+ VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
+ 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
+ qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
+ j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
+ 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
+ rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
+ fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
+ B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
+ yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
+ YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
+ yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
+ vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
+ vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
+ Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
+ bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
+ llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
+ ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
+ xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
+ eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
+ YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
+ XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
+ WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
+ xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
+ dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
+ V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
+ Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
+ Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
+ PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
+ 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
+ /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
+ XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
+ fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
+ tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
+ 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAABQpJREFUSEu1lWtQVGUY
+ gI/3C4q3ykuGSOYlTc2ULGkap5hm0ulPUzNZTT/7Yz+abBIJNTQSARXTvBFeQCdNFgRFcfPKTcRdZUFh
+ z9nFZbnshXWxs8sKuyxPH9TosGn8yZ155t35Lu+z+37feY8EPFUeO/h/8vDLja+loYZNQ9aaD0dolYxx
+ 2hv7orXVuZ9razSfaatzPtUaTq7SVp34RHs7/0ut/EectvbsN2JczIlx3bGPtVW/TNHWH3pBa9wzIVv3
+ rbRUv+bv3A8Ft+IHr24riyZo+whVP4+qwnU0tbTitFu577bj87gJdKj4fW5czVbcDgtqm4NWp4M7umuY
+ z8UQbFhJR+NK6jMnGYXgzT6CpiMRbhyrwLAC3/kZlOfGc0PuRDY3YW/10N4hVomPzZCFnPUSdZoVWK0t
+ 1DugpKQCs2YZVC2H+g8JGGIxpobn9+R9KGjJmuHn9gcEK9/FWzSditzvuGV0YzKZsNvteDyenvxYypLp
+ LBpGS8ESlLo7WGw+ykuKMZ1cCvq36LoeS0fpckzpE0p68j76B4ciVarep+vacjyFEUKwllty278E1ms7
+ 8J0ZS3NBDCa5TgjaKS8tRTkRDRVvEKh4B9/lGJS0cdqevI8EmREquli6St5CzZ/MtbwEqswdQqD0EZgv
+ JmDdKWH89VnqlToanAHKK24i/7YYyhYTKH0b34WlQjA2RJAxVaViOZ2XlhI4P5NbR9+j9Hot9U5w+eCf
+ I+CB9x7WyqM45CI8XWC0Q3FBOvbfo+i+uoTAlWXiDBejpI4JEeyfolIcQ8e51wheiOZPTSRV2bHcPJvI
+ nQtJmK4mi/qn9R6yUymiuUZD3eU09LmrsRydTVfRXDpF4oDY6yt8FSUlPESwd5LaffF1HpxegO/0QrrO
+ LcKfP4227FHcOxJG6+GROA8OxyHoia2HRuA6PALP8fEEz4rkhYt69/rFvvZTryBvHR0i2P2c2l0kFuXO
+ pePUPLryZtKtiYC8af0QQTA3Ev+pl3mQNxd/wXzac+YgbwkLEeycoHYXzKNTTHYcm0zzvrFYjsynIXuh
+ YMFjsYo5S9YCLJlRtGWG05Uzi07NHNqPz0D+aWRfQWP6ODWomYU/eyLWjEgaqzW0qSqOVvG0upyPxdlL
+ Ky6HCXP+F7j3jyJwIgpv9jTkpBEhgm3hKsejuJcuoZxfh18MejtB9QWfTHsQj4gBsdYmfohp92Q48gze
+ g1ORNw8PEaSMVsmeSmuKRN2lFFziXspGI0aBLMtPpLa2liZbGw02J6b9syEjDO+BiUIwNESwNUzl4ERc
+ yRJ3zifi8EJDQwMWi6VfWhz3MVnuYtrzIt17h+HZMwE5MVSwZYTKvvHc+1Gi5uwGGtvobRP9oSgKliYX
+ tWYF067pdKcPxPPzGOQfBocIkoap7BqNO1HCUJiAWXRJvV6PTqfrjU+isrKSWsXKbcWIaae41mkSnu1h
+ yBsHhQg2D25nx3DcGyX0+XEYW/zcvXu3X3pKZLbY0FVXYdoxFUSJPanDkTcMvNhXkDgoQOoQ3AlCcCqO
+ GouXsrIySkWn7IlPori4GL3BKAQGlG3PgyixN3kIyvoBfdt1bcKAS/6kAbTHS+jOJFEtSnTjtkNg/08q
+ a2yi63ZSIbuo3y4EmyRsiQMwxEvr+wh0cVKEMV4qaIiT1PIDsWrZ6S2qeCf0y/U8EfO+V6/krFFrksaq
+ Tesk88046SuRb2gfwdMB6S/DHs/UzS4d0QAAAABJRU5ErkJggg==
+
+
555, 17
@@ -582,7 +582,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc
- GQAAAk1TRnQBSQFMAgEBAwEAARgBAAEYAQABMAEAATABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ GQAAAk1TRnQBSQFMAgEBAwEAATABAAEwAQABMAEAATABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABwAMAATADAAEBAQABCAYAASQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
diff --git a/FormSettings.Designer.cs b/FormSettings.Designer.cs
index 01de77a..38a5dfa 100644
--- a/FormSettings.Designer.cs
+++ b/FormSettings.Designer.cs
@@ -71,6 +71,7 @@
this.cbxCSVListing = new System.Windows.Forms.CheckBox();
this.cbxPTU = new System.Windows.Forms.CheckBox();
this.cbxDetectGamepad = new System.Windows.Forms.CheckBox();
+ this.cbxTreeTips = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
@@ -427,6 +428,7 @@
//
// groupBox4
//
+ this.groupBox4.Controls.Add(this.cbxTreeTips);
this.groupBox4.Controls.Add(this.label14);
this.groupBox4.Controls.Add(this.comboLanguage);
this.groupBox4.Controls.Add(this.cbxAutoTabXML);
@@ -445,7 +447,7 @@
// label14
//
this.label14.AutoSize = true;
- this.label14.Location = new System.Drawing.Point(200, 22);
+ this.label14.Location = new System.Drawing.Point(6, 73);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(62, 13);
this.label14.TabIndex = 12;
@@ -454,7 +456,7 @@
// comboLanguage
//
this.comboLanguage.FormattingEnabled = true;
- this.comboLanguage.Location = new System.Drawing.Point(271, 19);
+ this.comboLanguage.Location = new System.Drawing.Point(77, 70);
this.comboLanguage.Name = "comboLanguage";
this.comboLanguage.Size = new System.Drawing.Size(100, 21);
this.comboLanguage.TabIndex = 11;
@@ -494,7 +496,7 @@
//
this.cbxPTU.AutoSize = true;
this.cbxPTU.BackColor = System.Drawing.Color.SandyBrown;
- this.cbxPTU.Location = new System.Drawing.Point(9, 67);
+ this.cbxPTU.Location = new System.Drawing.Point(400, 82);
this.cbxPTU.Name = "cbxPTU";
this.cbxPTU.Size = new System.Drawing.Size(108, 17);
this.cbxPTU.TabIndex = 7;
@@ -512,6 +514,16 @@
this.cbxDetectGamepad.Text = "Use Gamepad";
this.cbxDetectGamepad.UseVisualStyleBackColor = true;
//
+ // cbxTreeTips
+ //
+ this.cbxTreeTips.AutoSize = true;
+ this.cbxTreeTips.Location = new System.Drawing.Point(196, 72);
+ this.cbxTreeTips.Name = "cbxTreeTips";
+ this.cbxTreeTips.Size = new System.Drawing.Size(101, 17);
+ this.cbxTreeTips.TabIndex = 13;
+ this.cbxTreeTips.Text = "Show Tree tips";
+ this.cbxTreeTips.UseVisualStyleBackColor = true;
+ //
// FormSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@@ -590,5 +602,6 @@
private System.Windows.Forms.CheckBox cbxAutoTabXML;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.ComboBox comboLanguage;
+ private System.Windows.Forms.CheckBox cbxTreeTips;
}
}
\ No newline at end of file
diff --git a/FormSettings.cs b/FormSettings.cs
index e509571..8265d69 100644
--- a/FormSettings.cs
+++ b/FormSettings.cs
@@ -21,7 +21,7 @@ namespace SCJMapper_V2
/// ctor - gets the owning class instance
///
///
- public FormSettings( )
+ public FormSettings()
{
InitializeComponent( );
}
@@ -35,14 +35,14 @@ namespace SCJMapper_V2
}
comboLanguage.Items.Clear( );
- comboLanguage.Items.AddRange( SC.SCUiText.Instance.LanguagesS.ToArray() );
+ comboLanguage.Items.AddRange( SC.SCUiText.Instance.LanguagesS.ToArray( ) );
LoadSettings( );
}
// Save from app settings into actuals
- private void LoadSettings( )
+ private void LoadSettings()
{
// SC path
txSCPath.Text = AppSettings.Instance.UserSCPath;
@@ -66,7 +66,8 @@ namespace SCJMapper_V2
for ( int i = 0; i < chkLbActionMaps.Items.Count; i++ ) {
if ( AppSettings.Instance.IgnoreActionmaps.Contains( "," + chkLbActionMaps.Items[i].ToString( ) + "," ) ) {
chkLbActionMaps.SetItemChecked( i, true );
- } else {
+ }
+ else {
chkLbActionMaps.SetItemChecked( i, false ); // 20161223: fix checked items and Canceled
}
}
@@ -87,11 +88,12 @@ namespace SCJMapper_V2
// Language
comboLanguage.SelectedItem = AppSettings.Instance.UseLanguage;
+ cbxTreeTips.Checked = AppSettings.Instance.ShowTreeTips;
}
// Save the current settings
- private void SaveSettings( )
+ private void SaveSettings()
{
// SC path
AppSettings.Instance.UserSCPath = txSCPath.Text;
@@ -134,13 +136,14 @@ namespace SCJMapper_V2
// AutoTabXML
AppSettings.Instance.AutoTabXML = cbxAutoTabXML.Checked;
-
+
// Use CSV Listing
AppSettings.Instance.UseCSVListing = cbxCSVListing.Checked;
AppSettings.Instance.ListModifiers = cbxListModifiers.Checked;
// Language
AppSettings.Instance.UseLanguage = (string)comboLanguage.SelectedItem;
+ AppSettings.Instance.ShowTreeTips = cbxTreeTips.Checked;
AppSettings.Instance.Save( );
}
diff --git a/OGL/FormJSCalCurve.Designer.cs b/OGL/FormJSCalCurve.Designer.cs
index bb279d8..6db4301 100644
--- a/OGL/FormJSCalCurve.Designer.cs
+++ b/OGL/FormJSCalCurve.Designer.cs
@@ -26,1878 +26,1892 @@
///
private void InitializeComponent( )
{
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormJSCalCurve));
- this.glControl1 = new OpenTK.GLControl();
- this.tlp = new System.Windows.Forms.TableLayoutPanel();
- this.tlpData = new System.Windows.Forms.TableLayoutPanel();
- this.panel2 = new System.Windows.Forms.Panel();
- this.pnlYaw = new System.Windows.Forms.Panel();
- this.lblYnt = new System.Windows.Forms.Label();
- this.cbxYinvert = new System.Windows.Forms.CheckBox();
- this.cbxYpts = new System.Windows.Forms.CheckBox();
- this.cbxYexpo = new System.Windows.Forms.CheckBox();
- this.cbxYsat = new System.Windows.Forms.CheckBox();
- this.cbxYdeadzone = new System.Windows.Forms.CheckBox();
- this.label25 = new System.Windows.Forms.Label();
- this.label24 = new System.Windows.Forms.Label();
- this.label23 = new System.Windows.Forms.Label();
- this.lblYout3 = new System.Windows.Forms.Label();
- this.lblYin3 = new System.Windows.Forms.Label();
- this.lblYout2 = new System.Windows.Forms.Label();
- this.lblYin2 = new System.Windows.Forms.Label();
- this.lblYout1 = new System.Windows.Forms.Label();
- this.lblYin1 = new System.Windows.Forms.Label();
- this.lblYsat = new System.Windows.Forms.Label();
- this.lblYexponent = new System.Windows.Forms.Label();
- this.lblYdeadzone = new System.Windows.Forms.Label();
- this.lblYCmd = new System.Windows.Forms.Label();
- this.lblYaw = new System.Windows.Forms.Label();
- this.pnlPitch = new System.Windows.Forms.Panel();
- this.lblPnt = new System.Windows.Forms.Label();
- this.cbxPinvert = new System.Windows.Forms.CheckBox();
- this.cbxPpts = new System.Windows.Forms.CheckBox();
- this.cbxPexpo = new System.Windows.Forms.CheckBox();
- this.cbxPsat = new System.Windows.Forms.CheckBox();
- this.cbxPdeadzone = new System.Windows.Forms.CheckBox();
- this.label26 = new System.Windows.Forms.Label();
- this.label27 = new System.Windows.Forms.Label();
- this.label28 = new System.Windows.Forms.Label();
- this.lblPout3 = new System.Windows.Forms.Label();
- this.lblPin3 = new System.Windows.Forms.Label();
- this.lblPout2 = new System.Windows.Forms.Label();
- this.lblPin2 = new System.Windows.Forms.Label();
- this.lblPout1 = new System.Windows.Forms.Label();
- this.lblPin1 = new System.Windows.Forms.Label();
- this.lblPsat = new System.Windows.Forms.Label();
- this.lblPexponent = new System.Windows.Forms.Label();
- this.lblPdeadzone = new System.Windows.Forms.Label();
- this.lblPCmd = new System.Windows.Forms.Label();
- this.lblPitch = new System.Windows.Forms.Label();
- this.pnlRoll = new System.Windows.Forms.Panel();
- this.lblRnt = new System.Windows.Forms.Label();
- this.cbxRinvert = new System.Windows.Forms.CheckBox();
- this.cbxRpts = new System.Windows.Forms.CheckBox();
- this.cbxRexpo = new System.Windows.Forms.CheckBox();
- this.cbxRsat = new System.Windows.Forms.CheckBox();
- this.cbxRdeadzone = new System.Windows.Forms.CheckBox();
- this.label35 = new System.Windows.Forms.Label();
- this.label36 = new System.Windows.Forms.Label();
- this.label37 = new System.Windows.Forms.Label();
- this.lblRout3 = new System.Windows.Forms.Label();
- this.lblRin3 = new System.Windows.Forms.Label();
- this.lblRout2 = new System.Windows.Forms.Label();
- this.lblRin2 = new System.Windows.Forms.Label();
- this.lblRout1 = new System.Windows.Forms.Label();
- this.lblRin1 = new System.Windows.Forms.Label();
- this.lblRsat = new System.Windows.Forms.Label();
- this.lblRexponent = new System.Windows.Forms.Label();
- this.lblRdeadzone = new System.Windows.Forms.Label();
- this.lblRCmd = new System.Windows.Forms.Label();
- this.lblRoll = new System.Windows.Forms.Label();
- this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
- this.panel9 = new System.Windows.Forms.Panel();
- this.label6 = new System.Windows.Forms.Label();
- this.lblDamping = new System.Windows.Forms.Label();
- this.slDamping = new System.Windows.Forms.TrackBar();
- this.panel1 = new System.Windows.Forms.Panel();
- this.label16 = new System.Windows.Forms.Label();
- this.lblTurnspeed = new System.Windows.Forms.Label();
- this.slTurnSpeed = new System.Windows.Forms.TrackBar();
- this.panel6 = new System.Windows.Forms.Panel();
- this.rbPtDeadzone = new System.Windows.Forms.RadioButton();
- this.lblGraphSaturation = new System.Windows.Forms.Label();
- this.lblGraphDeadzone = new System.Windows.Forms.Label();
- this.lblNodetext = new System.Windows.Forms.Label();
- this.label12 = new System.Windows.Forms.Label();
- this.cbRuse = new System.Windows.Forms.CheckBox();
- this.cbPuse = new System.Windows.Forms.CheckBox();
- this.cbYuse = new System.Windows.Forms.CheckBox();
- this.label11 = new System.Windows.Forms.Label();
- this.label10 = new System.Windows.Forms.Label();
- this.lblROutput = new System.Windows.Forms.Label();
- this.lblRInput = new System.Windows.Forms.Label();
- this.lblPOutput = new System.Windows.Forms.Label();
- this.lblPInput = new System.Windows.Forms.Label();
- this.lblLiveRoll = new System.Windows.Forms.Label();
- this.lblLivePitch = new System.Windows.Forms.Label();
- this.btCopyToAllAxis = new System.Windows.Forms.Button();
- this.lblLiveYaw = new System.Windows.Forms.Label();
- this.label4 = new System.Windows.Forms.Label();
- this.lblYOutput = new System.Windows.Forms.Label();
- this.lblYInput = new System.Windows.Forms.Label();
- this.rbPtExponent = new System.Windows.Forms.RadioButton();
- this.rbPtSaturation = new System.Windows.Forms.RadioButton();
- this.rbPt3 = new System.Windows.Forms.RadioButton();
- this.rbPt2 = new System.Windows.Forms.RadioButton();
- this.rbPt1 = new System.Windows.Forms.RadioButton();
- this.label33 = new System.Windows.Forms.Label();
- this.label32 = new System.Windows.Forms.Label();
- this.lblOut3 = new System.Windows.Forms.Label();
- this.lblIn3 = new System.Windows.Forms.Label();
- this.lblOut2 = new System.Windows.Forms.Label();
- this.lblIn2 = new System.Windows.Forms.Label();
- this.lblOut1 = new System.Windows.Forms.Label();
- this.lblIn1 = new System.Windows.Forms.Label();
- this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
- this.lblOutSlider = new System.Windows.Forms.Label();
- this.lblOutExponent = new System.Windows.Forms.Label();
- this.tbSlider = new System.Windows.Forms.TrackBar();
- this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
- this.rb300 = new System.Windows.Forms.RadioButton();
- this.rbHornet = new System.Windows.Forms.RadioButton();
- this.rbAurora = new System.Windows.Forms.RadioButton();
- this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
- this.btDone = new System.Windows.Forms.Button();
- this.panel8 = new System.Windows.Forms.Panel();
- this.rbArea18 = new System.Windows.Forms.RadioButton();
- this.rbDemien = new System.Windows.Forms.RadioButton();
- this.rbBrokenMoon = new System.Windows.Forms.RadioButton();
- this.rbDyingStar = new System.Windows.Forms.RadioButton();
- this.rbSunset = new System.Windows.Forms.RadioButton();
- this.rbOutThere3 = new System.Windows.Forms.RadioButton();
- this.rbSkybox = new System.Windows.Forms.RadioButton();
- this.rbOutThere1 = new System.Windows.Forms.RadioButton();
- this.rbBigSight = new System.Windows.Forms.RadioButton();
- this.rbHighway = new System.Windows.Forms.RadioButton();
- this.rbHelipad = new System.Windows.Forms.RadioButton();
- this.rbShiodome = new System.Windows.Forms.RadioButton();
- this.rbCanyon = new System.Windows.Forms.RadioButton();
- this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
- this.pnlAxisSelector = new System.Windows.Forms.Panel();
- this.rbP = new System.Windows.Forms.RadioButton();
- this.rbY = new System.Windows.Forms.RadioButton();
- this.rbR = new System.Windows.Forms.RadioButton();
- this.panel10 = new System.Windows.Forms.Panel();
- this.rbTuneStrafe = new System.Windows.Forms.RadioButton();
- this.rbTuneYPR = new System.Windows.Forms.RadioButton();
- this.tlp.SuspendLayout();
- this.tlpData.SuspendLayout();
- this.pnlYaw.SuspendLayout();
- this.pnlPitch.SuspendLayout();
- this.pnlRoll.SuspendLayout();
- this.tableLayoutPanel1.SuspendLayout();
- this.panel9.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.slDamping)).BeginInit();
- this.panel1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.slTurnSpeed)).BeginInit();
- this.panel6.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.tbSlider)).BeginInit();
- this.flowLayoutPanel1.SuspendLayout();
- this.tableLayoutPanel3.SuspendLayout();
- this.panel8.SuspendLayout();
- this.flowLayoutPanel2.SuspendLayout();
- this.pnlAxisSelector.SuspendLayout();
- this.panel10.SuspendLayout();
- this.SuspendLayout();
- //
- // glControl1
- //
- this.glControl1.BackColor = System.Drawing.Color.Black;
- this.glControl1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.glControl1.Location = new System.Drawing.Point(153, 3);
- this.glControl1.Name = "glControl1";
- this.glControl1.Size = new System.Drawing.Size(1028, 610);
- this.glControl1.TabIndex = 0;
- this.glControl1.VSync = false;
- this.glControl1.Load += new System.EventHandler(this.glControl1_Load);
- this.glControl1.Paint += new System.Windows.Forms.PaintEventHandler(this.glControl1_Paint);
- this.glControl1.Resize += new System.EventHandler(this.glControl1_Resize);
- //
- // tlp
- //
- this.tlp.ColumnCount = 2;
- this.tlp.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F));
- this.tlp.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tlp.Controls.Add(this.tlpData, 0, 0);
- this.tlp.Controls.Add(this.tableLayoutPanel1, 1, 1);
- this.tlp.Controls.Add(this.glControl1, 1, 0);
- this.tlp.Controls.Add(this.flowLayoutPanel2, 0, 1);
- this.tlp.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tlp.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
- this.tlp.Location = new System.Drawing.Point(0, 0);
- this.tlp.Name = "tlp";
- this.tlp.RowCount = 2;
- this.tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 300F));
- this.tlp.Size = new System.Drawing.Size(1184, 916);
- this.tlp.TabIndex = 1;
- //
- // tlpData
- //
- this.tlpData.BackColor = System.Drawing.Color.Gold;
- this.tlpData.ColumnCount = 1;
- this.tlpData.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tlpData.Controls.Add(this.panel2, 0, 0);
- this.tlpData.Controls.Add(this.pnlYaw, 0, 1);
- this.tlpData.Controls.Add(this.pnlPitch, 0, 3);
- this.tlpData.Controls.Add(this.pnlRoll, 0, 5);
- this.tlpData.Dock = System.Windows.Forms.DockStyle.Top;
- this.tlpData.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
- this.tlpData.Location = new System.Drawing.Point(3, 3);
- this.tlpData.Name = "tlpData";
- this.tlpData.RowCount = 8;
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 155F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 155F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 155F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
- this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.tlpData.Size = new System.Drawing.Size(144, 610);
- this.tlpData.TabIndex = 2;
- //
- // panel2
- //
- this.panel2.BackgroundImage = global::SCJMapper_V2.Properties.Resources.YPR;
- this.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panel2.Location = new System.Drawing.Point(3, 3);
- this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(138, 114);
- this.panel2.TabIndex = 0;
- //
- // pnlYaw
- //
- this.pnlYaw.BackColor = System.Drawing.Color.PowderBlue;
- this.pnlYaw.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.pnlYaw.Controls.Add(this.lblYnt);
- this.pnlYaw.Controls.Add(this.cbxYinvert);
- this.pnlYaw.Controls.Add(this.cbxYpts);
- this.pnlYaw.Controls.Add(this.cbxYexpo);
- this.pnlYaw.Controls.Add(this.cbxYsat);
- this.pnlYaw.Controls.Add(this.cbxYdeadzone);
- this.pnlYaw.Controls.Add(this.label25);
- this.pnlYaw.Controls.Add(this.label24);
- this.pnlYaw.Controls.Add(this.label23);
- this.pnlYaw.Controls.Add(this.lblYout3);
- this.pnlYaw.Controls.Add(this.lblYin3);
- this.pnlYaw.Controls.Add(this.lblYout2);
- this.pnlYaw.Controls.Add(this.lblYin2);
- this.pnlYaw.Controls.Add(this.lblYout1);
- this.pnlYaw.Controls.Add(this.lblYin1);
- this.pnlYaw.Controls.Add(this.lblYsat);
- this.pnlYaw.Controls.Add(this.lblYexponent);
- this.pnlYaw.Controls.Add(this.lblYdeadzone);
- this.pnlYaw.Controls.Add(this.lblYCmd);
- this.pnlYaw.Controls.Add(this.lblYaw);
- this.pnlYaw.Dock = System.Windows.Forms.DockStyle.Fill;
- this.pnlYaw.Location = new System.Drawing.Point(3, 123);
- this.pnlYaw.Name = "pnlYaw";
- this.pnlYaw.Size = new System.Drawing.Size(138, 149);
- this.pnlYaw.TabIndex = 2;
- this.pnlYaw.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pnlYaw_MouseUp);
- //
- // lblYnt
- //
- this.lblYnt.AutoSize = true;
- this.lblYnt.Location = new System.Drawing.Point(107, 17);
- this.lblYnt.Name = "lblYnt";
- this.lblYnt.Size = new System.Drawing.Size(20, 13);
- this.lblYnt.TabIndex = 23;
- this.lblYnt.Text = "NT";
- this.lblYnt.Visible = false;
- //
- // cbxYinvert
- //
- this.cbxYinvert.AutoSize = true;
- this.cbxYinvert.Location = new System.Drawing.Point(6, 17);
- this.cbxYinvert.Name = "cbxYinvert";
- this.cbxYinvert.Size = new System.Drawing.Size(55, 17);
- this.cbxYinvert.TabIndex = 22;
- this.cbxYinvert.Text = "Invert";
- this.cbxYinvert.UseVisualStyleBackColor = true;
- this.cbxYinvert.CheckedChanged += new System.EventHandler(this.cbxYinvert_CheckedChanged);
- //
- // cbxYpts
- //
- this.cbxYpts.AutoSize = true;
- this.cbxYpts.Location = new System.Drawing.Point(6, 91);
- this.cbxYpts.Name = "cbxYpts";
- this.cbxYpts.Size = new System.Drawing.Size(15, 14);
- this.cbxYpts.TabIndex = 21;
- this.cbxYpts.UseVisualStyleBackColor = true;
- this.cbxYpts.CheckedChanged += new System.EventHandler(this.cbxYpts_CheckedChanged);
- //
- // cbxYexpo
- //
- this.cbxYexpo.AutoSize = true;
- this.cbxYexpo.Location = new System.Drawing.Point(6, 71);
- this.cbxYexpo.Name = "cbxYexpo";
- this.cbxYexpo.Size = new System.Drawing.Size(75, 17);
- this.cbxYexpo.TabIndex = 20;
- this.cbxYexpo.Text = "Exponent";
- this.cbxYexpo.UseVisualStyleBackColor = true;
- this.cbxYexpo.CheckedChanged += new System.EventHandler(this.cbxYexpo_CheckedChanged);
- //
- // cbxYsat
- //
- this.cbxYsat.AutoSize = true;
- this.cbxYsat.Location = new System.Drawing.Point(6, 53);
- this.cbxYsat.Name = "cbxYsat";
- this.cbxYsat.Size = new System.Drawing.Size(80, 17);
- this.cbxYsat.TabIndex = 19;
- this.cbxYsat.Text = "Saturation";
- this.cbxYsat.UseVisualStyleBackColor = true;
- this.cbxYsat.CheckedChanged += new System.EventHandler(this.cbxYsense_CheckedChanged);
- //
- // cbxYdeadzone
- //
- this.cbxYdeadzone.AutoSize = true;
- this.cbxYdeadzone.Location = new System.Drawing.Point(6, 35);
- this.cbxYdeadzone.Name = "cbxYdeadzone";
- this.cbxYdeadzone.Size = new System.Drawing.Size(78, 17);
- this.cbxYdeadzone.TabIndex = 18;
- this.cbxYdeadzone.Text = "Deadzone";
- this.cbxYdeadzone.UseVisualStyleBackColor = true;
- this.cbxYdeadzone.CheckedChanged += new System.EventHandler(this.cbxYdeadzone_CheckedChanged);
- //
- // label25
- //
- this.label25.AutoSize = true;
- this.label25.Location = new System.Drawing.Point(37, 127);
- this.label25.Name = "label25";
- this.label25.Size = new System.Drawing.Size(23, 13);
- this.label25.TabIndex = 17;
- this.label25.Text = "Pt3";
- //
- // label24
- //
- this.label24.AutoSize = true;
- this.label24.Location = new System.Drawing.Point(37, 109);
- this.label24.Name = "label24";
- this.label24.Size = new System.Drawing.Size(23, 13);
- this.label24.TabIndex = 16;
- this.label24.Text = "Pt2";
- //
- // label23
- //
- this.label23.AutoSize = true;
- this.label23.Location = new System.Drawing.Point(37, 91);
- this.label23.Name = "label23";
- this.label23.Size = new System.Drawing.Size(23, 13);
- this.label23.TabIndex = 15;
- this.label23.Text = "Pt1";
- //
- // lblYout3
- //
- this.lblYout3.AutoSize = true;
- this.lblYout3.Location = new System.Drawing.Point(99, 127);
- this.lblYout3.Name = "lblYout3";
- this.lblYout3.Size = new System.Drawing.Size(28, 13);
- this.lblYout3.TabIndex = 14;
- this.lblYout3.Text = "0.75";
- //
- // lblYin3
- //
- this.lblYin3.AutoSize = true;
- this.lblYin3.Location = new System.Drawing.Point(59, 127);
- this.lblYin3.Name = "lblYin3";
- this.lblYin3.Size = new System.Drawing.Size(28, 13);
- this.lblYin3.TabIndex = 13;
- this.lblYin3.Text = "0.75";
- //
- // lblYout2
- //
- this.lblYout2.AutoSize = true;
- this.lblYout2.Location = new System.Drawing.Point(99, 109);
- this.lblYout2.Name = "lblYout2";
- this.lblYout2.Size = new System.Drawing.Size(22, 13);
- this.lblYout2.TabIndex = 12;
- this.lblYout2.Text = "0.5";
- //
- // lblYin2
- //
- this.lblYin2.AutoSize = true;
- this.lblYin2.Location = new System.Drawing.Point(59, 109);
- this.lblYin2.Name = "lblYin2";
- this.lblYin2.Size = new System.Drawing.Size(22, 13);
- this.lblYin2.TabIndex = 11;
- this.lblYin2.Text = "0.5";
- //
- // lblYout1
- //
- this.lblYout1.AutoSize = true;
- this.lblYout1.Location = new System.Drawing.Point(99, 91);
- this.lblYout1.Name = "lblYout1";
- this.lblYout1.Size = new System.Drawing.Size(28, 13);
- this.lblYout1.TabIndex = 10;
- this.lblYout1.Text = "0.25";
- //
- // lblYin1
- //
- this.lblYin1.AutoSize = true;
- this.lblYin1.Location = new System.Drawing.Point(59, 91);
- this.lblYin1.Name = "lblYin1";
- this.lblYin1.Size = new System.Drawing.Size(28, 13);
- this.lblYin1.TabIndex = 9;
- this.lblYin1.Text = "0.25";
- //
- // lblYsat
- //
- this.lblYsat.AutoSize = true;
- this.lblYsat.Location = new System.Drawing.Point(99, 54);
- this.lblYsat.Name = "lblYsat";
- this.lblYsat.Size = new System.Drawing.Size(34, 13);
- this.lblYsat.TabIndex = 8;
- this.lblYsat.Text = "1.000";
- //
- // lblYexponent
- //
- this.lblYexponent.AutoSize = true;
- this.lblYexponent.Location = new System.Drawing.Point(99, 72);
- this.lblYexponent.Name = "lblYexponent";
- this.lblYexponent.Size = new System.Drawing.Size(34, 13);
- this.lblYexponent.TabIndex = 6;
- this.lblYexponent.Text = "1.000";
- //
- // lblYdeadzone
- //
- this.lblYdeadzone.AutoSize = true;
- this.lblYdeadzone.Location = new System.Drawing.Point(99, 36);
- this.lblYdeadzone.Name = "lblYdeadzone";
- this.lblYdeadzone.Size = new System.Drawing.Size(34, 13);
- this.lblYdeadzone.TabIndex = 4;
- this.lblYdeadzone.Text = "0.000";
- //
- // lblYCmd
- //
- this.lblYCmd.AutoSize = true;
- this.lblYCmd.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblYCmd.Location = new System.Drawing.Point(37, 1);
- this.lblYCmd.Name = "lblYCmd";
- this.lblYCmd.Size = new System.Drawing.Size(47, 12);
- this.lblYCmd.TabIndex = 2;
- this.lblYCmd.Text = "Command";
- //
- // lblYaw
- //
- this.lblYaw.AutoSize = true;
- this.lblYaw.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblYaw.Location = new System.Drawing.Point(2, 0);
- this.lblYaw.Name = "lblYaw";
- this.lblYaw.Size = new System.Drawing.Size(28, 13);
- this.lblYaw.TabIndex = 1;
- this.lblYaw.Text = "Yaw";
- //
- // pnlPitch
- //
- this.pnlPitch.BackColor = System.Drawing.Color.Salmon;
- this.pnlPitch.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.pnlPitch.Controls.Add(this.lblPnt);
- this.pnlPitch.Controls.Add(this.cbxPinvert);
- this.pnlPitch.Controls.Add(this.cbxPpts);
- this.pnlPitch.Controls.Add(this.cbxPexpo);
- this.pnlPitch.Controls.Add(this.cbxPsat);
- this.pnlPitch.Controls.Add(this.cbxPdeadzone);
- this.pnlPitch.Controls.Add(this.label26);
- this.pnlPitch.Controls.Add(this.label27);
- this.pnlPitch.Controls.Add(this.label28);
- this.pnlPitch.Controls.Add(this.lblPout3);
- this.pnlPitch.Controls.Add(this.lblPin3);
- this.pnlPitch.Controls.Add(this.lblPout2);
- this.pnlPitch.Controls.Add(this.lblPin2);
- this.pnlPitch.Controls.Add(this.lblPout1);
- this.pnlPitch.Controls.Add(this.lblPin1);
- this.pnlPitch.Controls.Add(this.lblPsat);
- this.pnlPitch.Controls.Add(this.lblPexponent);
- this.pnlPitch.Controls.Add(this.lblPdeadzone);
- this.pnlPitch.Controls.Add(this.lblPCmd);
- this.pnlPitch.Controls.Add(this.lblPitch);
- this.pnlPitch.Dock = System.Windows.Forms.DockStyle.Fill;
- this.pnlPitch.Location = new System.Drawing.Point(3, 284);
- this.pnlPitch.Name = "pnlPitch";
- this.pnlPitch.Size = new System.Drawing.Size(138, 149);
- this.pnlPitch.TabIndex = 3;
- this.pnlPitch.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pnlPitch_MouseUp);
- //
- // lblPnt
- //
- this.lblPnt.AutoSize = true;
- this.lblPnt.Location = new System.Drawing.Point(107, 17);
- this.lblPnt.Name = "lblPnt";
- this.lblPnt.Size = new System.Drawing.Size(20, 13);
- this.lblPnt.TabIndex = 34;
- this.lblPnt.Text = "NT";
- this.lblPnt.Visible = false;
- //
- // cbxPinvert
- //
- this.cbxPinvert.AutoSize = true;
- this.cbxPinvert.Location = new System.Drawing.Point(6, 17);
- this.cbxPinvert.Name = "cbxPinvert";
- this.cbxPinvert.Size = new System.Drawing.Size(55, 17);
- this.cbxPinvert.TabIndex = 33;
- this.cbxPinvert.Text = "Invert";
- this.cbxPinvert.UseVisualStyleBackColor = true;
- this.cbxPinvert.CheckedChanged += new System.EventHandler(this.cbxPinvert_CheckedChanged);
- //
- // cbxPpts
- //
- this.cbxPpts.AutoSize = true;
- this.cbxPpts.Location = new System.Drawing.Point(6, 91);
- this.cbxPpts.Name = "cbxPpts";
- this.cbxPpts.Size = new System.Drawing.Size(15, 14);
- this.cbxPpts.TabIndex = 32;
- this.cbxPpts.UseVisualStyleBackColor = true;
- this.cbxPpts.CheckedChanged += new System.EventHandler(this.cbxPpts_CheckedChanged);
- //
- // cbxPexpo
- //
- this.cbxPexpo.AutoSize = true;
- this.cbxPexpo.Location = new System.Drawing.Point(6, 71);
- this.cbxPexpo.Name = "cbxPexpo";
- this.cbxPexpo.Size = new System.Drawing.Size(75, 17);
- this.cbxPexpo.TabIndex = 31;
- this.cbxPexpo.Text = "Exponent";
- this.cbxPexpo.UseVisualStyleBackColor = true;
- this.cbxPexpo.CheckedChanged += new System.EventHandler(this.cbxPexpo_CheckedChanged);
- //
- // cbxPsat
- //
- this.cbxPsat.AutoSize = true;
- this.cbxPsat.Location = new System.Drawing.Point(6, 53);
- this.cbxPsat.Name = "cbxPsat";
- this.cbxPsat.Size = new System.Drawing.Size(80, 17);
- this.cbxPsat.TabIndex = 30;
- this.cbxPsat.Text = "Saturation";
- this.cbxPsat.UseVisualStyleBackColor = true;
- this.cbxPsat.CheckedChanged += new System.EventHandler(this.cbxPsense_CheckedChanged);
- //
- // cbxPdeadzone
- //
- this.cbxPdeadzone.AutoSize = true;
- this.cbxPdeadzone.Location = new System.Drawing.Point(6, 35);
- this.cbxPdeadzone.Name = "cbxPdeadzone";
- this.cbxPdeadzone.Size = new System.Drawing.Size(78, 17);
- this.cbxPdeadzone.TabIndex = 29;
- this.cbxPdeadzone.Text = "Deadzone";
- this.cbxPdeadzone.UseVisualStyleBackColor = true;
- this.cbxPdeadzone.CheckedChanged += new System.EventHandler(this.cbxPdeadzone_CheckedChanged);
- //
- // label26
- //
- this.label26.AutoSize = true;
- this.label26.Location = new System.Drawing.Point(37, 126);
- this.label26.Name = "label26";
- this.label26.Size = new System.Drawing.Size(23, 13);
- this.label26.TabIndex = 28;
- this.label26.Text = "Pt3";
- //
- // label27
- //
- this.label27.AutoSize = true;
- this.label27.Location = new System.Drawing.Point(37, 108);
- this.label27.Name = "label27";
- this.label27.Size = new System.Drawing.Size(23, 13);
- this.label27.TabIndex = 27;
- this.label27.Text = "Pt2";
- //
- // label28
- //
- this.label28.AutoSize = true;
- this.label28.Location = new System.Drawing.Point(37, 90);
- this.label28.Name = "label28";
- this.label28.Size = new System.Drawing.Size(23, 13);
- this.label28.TabIndex = 26;
- this.label28.Text = "Pt1";
- //
- // lblPout3
- //
- this.lblPout3.AutoSize = true;
- this.lblPout3.Location = new System.Drawing.Point(99, 126);
- this.lblPout3.Name = "lblPout3";
- this.lblPout3.Size = new System.Drawing.Size(28, 13);
- this.lblPout3.TabIndex = 25;
- this.lblPout3.Text = "0.75";
- //
- // lblPin3
- //
- this.lblPin3.AutoSize = true;
- this.lblPin3.Location = new System.Drawing.Point(59, 126);
- this.lblPin3.Name = "lblPin3";
- this.lblPin3.Size = new System.Drawing.Size(28, 13);
- this.lblPin3.TabIndex = 24;
- this.lblPin3.Text = "0.75";
- //
- // lblPout2
- //
- this.lblPout2.AutoSize = true;
- this.lblPout2.Location = new System.Drawing.Point(99, 108);
- this.lblPout2.Name = "lblPout2";
- this.lblPout2.Size = new System.Drawing.Size(22, 13);
- this.lblPout2.TabIndex = 23;
- this.lblPout2.Text = "0.5";
- //
- // lblPin2
- //
- this.lblPin2.AutoSize = true;
- this.lblPin2.Location = new System.Drawing.Point(59, 108);
- this.lblPin2.Name = "lblPin2";
- this.lblPin2.Size = new System.Drawing.Size(22, 13);
- this.lblPin2.TabIndex = 22;
- this.lblPin2.Text = "0.5";
- //
- // lblPout1
- //
- this.lblPout1.AutoSize = true;
- this.lblPout1.Location = new System.Drawing.Point(99, 90);
- this.lblPout1.Name = "lblPout1";
- this.lblPout1.Size = new System.Drawing.Size(28, 13);
- this.lblPout1.TabIndex = 21;
- this.lblPout1.Text = "0.25";
- //
- // lblPin1
- //
- this.lblPin1.AutoSize = true;
- this.lblPin1.Location = new System.Drawing.Point(59, 90);
- this.lblPin1.Name = "lblPin1";
- this.lblPin1.Size = new System.Drawing.Size(28, 13);
- this.lblPin1.TabIndex = 20;
- this.lblPin1.Text = "0.25";
- //
- // lblPsat
- //
- this.lblPsat.AutoSize = true;
- this.lblPsat.Location = new System.Drawing.Point(99, 54);
- this.lblPsat.Name = "lblPsat";
- this.lblPsat.Size = new System.Drawing.Size(34, 13);
- this.lblPsat.TabIndex = 10;
- this.lblPsat.Text = "1.000";
- //
- // lblPexponent
- //
- this.lblPexponent.AutoSize = true;
- this.lblPexponent.Location = new System.Drawing.Point(99, 72);
- this.lblPexponent.Name = "lblPexponent";
- this.lblPexponent.Size = new System.Drawing.Size(34, 13);
- this.lblPexponent.TabIndex = 8;
- this.lblPexponent.Text = "1.000";
- //
- // lblPdeadzone
- //
- this.lblPdeadzone.AutoSize = true;
- this.lblPdeadzone.Location = new System.Drawing.Point(99, 36);
- this.lblPdeadzone.Name = "lblPdeadzone";
- this.lblPdeadzone.Size = new System.Drawing.Size(34, 13);
- this.lblPdeadzone.TabIndex = 5;
- this.lblPdeadzone.Text = "0.000";
- //
- // lblPCmd
- //
- this.lblPCmd.AutoSize = true;
- this.lblPCmd.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblPCmd.Location = new System.Drawing.Point(37, 1);
- this.lblPCmd.Name = "lblPCmd";
- this.lblPCmd.Size = new System.Drawing.Size(47, 12);
- this.lblPCmd.TabIndex = 3;
- this.lblPCmd.Text = "Command";
- //
- // lblPitch
- //
- this.lblPitch.AutoSize = true;
- this.lblPitch.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblPitch.Location = new System.Drawing.Point(2, 0);
- this.lblPitch.Name = "lblPitch";
- this.lblPitch.Size = new System.Drawing.Size(33, 13);
- this.lblPitch.TabIndex = 2;
- this.lblPitch.Text = "Pitch";
- //
- // pnlRoll
- //
- this.pnlRoll.BackColor = System.Drawing.Color.LightGreen;
- this.pnlRoll.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.pnlRoll.Controls.Add(this.lblRnt);
- this.pnlRoll.Controls.Add(this.cbxRinvert);
- this.pnlRoll.Controls.Add(this.cbxRpts);
- this.pnlRoll.Controls.Add(this.cbxRexpo);
- this.pnlRoll.Controls.Add(this.cbxRsat);
- this.pnlRoll.Controls.Add(this.cbxRdeadzone);
- this.pnlRoll.Controls.Add(this.label35);
- this.pnlRoll.Controls.Add(this.label36);
- this.pnlRoll.Controls.Add(this.label37);
- this.pnlRoll.Controls.Add(this.lblRout3);
- this.pnlRoll.Controls.Add(this.lblRin3);
- this.pnlRoll.Controls.Add(this.lblRout2);
- this.pnlRoll.Controls.Add(this.lblRin2);
- this.pnlRoll.Controls.Add(this.lblRout1);
- this.pnlRoll.Controls.Add(this.lblRin1);
- this.pnlRoll.Controls.Add(this.lblRsat);
- this.pnlRoll.Controls.Add(this.lblRexponent);
- this.pnlRoll.Controls.Add(this.lblRdeadzone);
- this.pnlRoll.Controls.Add(this.lblRCmd);
- this.pnlRoll.Controls.Add(this.lblRoll);
- this.pnlRoll.Dock = System.Windows.Forms.DockStyle.Fill;
- this.pnlRoll.Location = new System.Drawing.Point(3, 445);
- this.pnlRoll.Name = "pnlRoll";
- this.pnlRoll.Size = new System.Drawing.Size(138, 149);
- this.pnlRoll.TabIndex = 4;
- this.pnlRoll.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pnlRoll_MouseUp);
- //
- // lblRnt
- //
- this.lblRnt.AutoSize = true;
- this.lblRnt.Location = new System.Drawing.Point(107, 17);
- this.lblRnt.Name = "lblRnt";
- this.lblRnt.Size = new System.Drawing.Size(20, 13);
- this.lblRnt.TabIndex = 38;
- this.lblRnt.Text = "NT";
- this.lblRnt.Visible = false;
- //
- // cbxRinvert
- //
- this.cbxRinvert.AutoSize = true;
- this.cbxRinvert.Location = new System.Drawing.Point(6, 17);
- this.cbxRinvert.Name = "cbxRinvert";
- this.cbxRinvert.Size = new System.Drawing.Size(55, 17);
- this.cbxRinvert.TabIndex = 37;
- this.cbxRinvert.Text = "Invert";
- this.cbxRinvert.UseVisualStyleBackColor = true;
- this.cbxRinvert.CheckedChanged += new System.EventHandler(this.cbxRinvert_CheckedChanged);
- //
- // cbxRpts
- //
- this.cbxRpts.AutoSize = true;
- this.cbxRpts.Location = new System.Drawing.Point(6, 91);
- this.cbxRpts.Name = "cbxRpts";
- this.cbxRpts.Size = new System.Drawing.Size(15, 14);
- this.cbxRpts.TabIndex = 36;
- this.cbxRpts.UseVisualStyleBackColor = true;
- this.cbxRpts.CheckedChanged += new System.EventHandler(this.cbxRpts_CheckedChanged);
- //
- // cbxRexpo
- //
- this.cbxRexpo.AutoSize = true;
- this.cbxRexpo.Location = new System.Drawing.Point(6, 71);
- this.cbxRexpo.Name = "cbxRexpo";
- this.cbxRexpo.Size = new System.Drawing.Size(75, 17);
- this.cbxRexpo.TabIndex = 35;
- this.cbxRexpo.Text = "Exponent";
- this.cbxRexpo.UseVisualStyleBackColor = true;
- this.cbxRexpo.CheckedChanged += new System.EventHandler(this.cbxRexpo_CheckedChanged);
- //
- // cbxRsat
- //
- this.cbxRsat.AutoSize = true;
- this.cbxRsat.Location = new System.Drawing.Point(6, 53);
- this.cbxRsat.Name = "cbxRsat";
- this.cbxRsat.Size = new System.Drawing.Size(80, 17);
- this.cbxRsat.TabIndex = 34;
- this.cbxRsat.Text = "Saturation";
- this.cbxRsat.UseVisualStyleBackColor = true;
- this.cbxRsat.CheckedChanged += new System.EventHandler(this.cbxRsense_CheckedChanged);
- //
- // cbxRdeadzone
- //
- this.cbxRdeadzone.AutoSize = true;
- this.cbxRdeadzone.Location = new System.Drawing.Point(6, 35);
- this.cbxRdeadzone.Name = "cbxRdeadzone";
- this.cbxRdeadzone.Size = new System.Drawing.Size(78, 17);
- this.cbxRdeadzone.TabIndex = 33;
- this.cbxRdeadzone.Text = "Deadzone";
- this.cbxRdeadzone.UseVisualStyleBackColor = true;
- this.cbxRdeadzone.CheckedChanged += new System.EventHandler(this.cbxRdeadzone_CheckedChanged);
- //
- // label35
- //
- this.label35.AutoSize = true;
- this.label35.Location = new System.Drawing.Point(37, 126);
- this.label35.Name = "label35";
- this.label35.Size = new System.Drawing.Size(23, 13);
- this.label35.TabIndex = 28;
- this.label35.Text = "Pt3";
- //
- // label36
- //
- this.label36.AutoSize = true;
- this.label36.Location = new System.Drawing.Point(37, 108);
- this.label36.Name = "label36";
- this.label36.Size = new System.Drawing.Size(23, 13);
- this.label36.TabIndex = 27;
- this.label36.Text = "Pt2";
- //
- // label37
- //
- this.label37.AutoSize = true;
- this.label37.Location = new System.Drawing.Point(37, 90);
- this.label37.Name = "label37";
- this.label37.Size = new System.Drawing.Size(23, 13);
- this.label37.TabIndex = 26;
- this.label37.Text = "Pt1";
- //
- // lblRout3
- //
- this.lblRout3.AutoSize = true;
- this.lblRout3.Location = new System.Drawing.Point(99, 126);
- this.lblRout3.Name = "lblRout3";
- this.lblRout3.Size = new System.Drawing.Size(28, 13);
- this.lblRout3.TabIndex = 25;
- this.lblRout3.Text = "0.75";
- //
- // lblRin3
- //
- this.lblRin3.AutoSize = true;
- this.lblRin3.Location = new System.Drawing.Point(59, 126);
- this.lblRin3.Name = "lblRin3";
- this.lblRin3.Size = new System.Drawing.Size(28, 13);
- this.lblRin3.TabIndex = 24;
- this.lblRin3.Text = "0.75";
- //
- // lblRout2
- //
- this.lblRout2.AutoSize = true;
- this.lblRout2.Location = new System.Drawing.Point(99, 108);
- this.lblRout2.Name = "lblRout2";
- this.lblRout2.Size = new System.Drawing.Size(22, 13);
- this.lblRout2.TabIndex = 23;
- this.lblRout2.Text = "0.5";
- //
- // lblRin2
- //
- this.lblRin2.AutoSize = true;
- this.lblRin2.Location = new System.Drawing.Point(59, 108);
- this.lblRin2.Name = "lblRin2";
- this.lblRin2.Size = new System.Drawing.Size(22, 13);
- this.lblRin2.TabIndex = 22;
- this.lblRin2.Text = "0.5";
- //
- // lblRout1
- //
- this.lblRout1.AutoSize = true;
- this.lblRout1.Location = new System.Drawing.Point(99, 90);
- this.lblRout1.Name = "lblRout1";
- this.lblRout1.Size = new System.Drawing.Size(28, 13);
- this.lblRout1.TabIndex = 21;
- this.lblRout1.Text = "0.25";
- //
- // lblRin1
- //
- this.lblRin1.AutoSize = true;
- this.lblRin1.Location = new System.Drawing.Point(59, 90);
- this.lblRin1.Name = "lblRin1";
- this.lblRin1.Size = new System.Drawing.Size(28, 13);
- this.lblRin1.TabIndex = 20;
- this.lblRin1.Text = "0.25";
- //
- // lblRsat
- //
- this.lblRsat.AutoSize = true;
- this.lblRsat.Location = new System.Drawing.Point(99, 54);
- this.lblRsat.Name = "lblRsat";
- this.lblRsat.Size = new System.Drawing.Size(34, 13);
- this.lblRsat.TabIndex = 10;
- this.lblRsat.Text = "1.000";
- //
- // lblRexponent
- //
- this.lblRexponent.AutoSize = true;
- this.lblRexponent.Location = new System.Drawing.Point(99, 72);
- this.lblRexponent.Name = "lblRexponent";
- this.lblRexponent.Size = new System.Drawing.Size(34, 13);
- this.lblRexponent.TabIndex = 8;
- this.lblRexponent.Text = "1.000";
- //
- // lblRdeadzone
- //
- this.lblRdeadzone.AutoSize = true;
- this.lblRdeadzone.Location = new System.Drawing.Point(99, 36);
- this.lblRdeadzone.Name = "lblRdeadzone";
- this.lblRdeadzone.Size = new System.Drawing.Size(34, 13);
- this.lblRdeadzone.TabIndex = 6;
- this.lblRdeadzone.Text = "0.000";
- //
- // lblRCmd
- //
- this.lblRCmd.AutoSize = true;
- this.lblRCmd.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblRCmd.Location = new System.Drawing.Point(37, 1);
- this.lblRCmd.Name = "lblRCmd";
- this.lblRCmd.Size = new System.Drawing.Size(47, 12);
- this.lblRCmd.TabIndex = 4;
- this.lblRCmd.Text = "Command";
- //
- // lblRoll
- //
- this.lblRoll.AutoSize = true;
- this.lblRoll.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblRoll.Location = new System.Drawing.Point(2, 0);
- this.lblRoll.Name = "lblRoll";
- this.lblRoll.Size = new System.Drawing.Size(27, 13);
- this.lblRoll.TabIndex = 2;
- this.lblRoll.Text = "Roll";
- //
- // tableLayoutPanel1
- //
- this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormJSCalCurve));
+ this.glControl1 = new OpenTK.GLControl();
+ this.tlp = new System.Windows.Forms.TableLayoutPanel();
+ this.tlpData = new System.Windows.Forms.TableLayoutPanel();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.pnlYaw = new System.Windows.Forms.Panel();
+ this.lblYnt = new System.Windows.Forms.Label();
+ this.cbxYinvert = new System.Windows.Forms.CheckBox();
+ this.cbxYpts = new System.Windows.Forms.CheckBox();
+ this.cbxYexpo = new System.Windows.Forms.CheckBox();
+ this.cbxYsat = new System.Windows.Forms.CheckBox();
+ this.cbxYdeadzone = new System.Windows.Forms.CheckBox();
+ this.label25 = new System.Windows.Forms.Label();
+ this.label24 = new System.Windows.Forms.Label();
+ this.label23 = new System.Windows.Forms.Label();
+ this.lblYout3 = new System.Windows.Forms.Label();
+ this.lblYin3 = new System.Windows.Forms.Label();
+ this.lblYout2 = new System.Windows.Forms.Label();
+ this.lblYin2 = new System.Windows.Forms.Label();
+ this.lblYout1 = new System.Windows.Forms.Label();
+ this.lblYin1 = new System.Windows.Forms.Label();
+ this.lblYsat = new System.Windows.Forms.Label();
+ this.lblYexponent = new System.Windows.Forms.Label();
+ this.lblYdeadzone = new System.Windows.Forms.Label();
+ this.lblYCmd = new System.Windows.Forms.Label();
+ this.lblYaw = new System.Windows.Forms.Label();
+ this.pnlPitch = new System.Windows.Forms.Panel();
+ this.lblPnt = new System.Windows.Forms.Label();
+ this.cbxPinvert = new System.Windows.Forms.CheckBox();
+ this.cbxPpts = new System.Windows.Forms.CheckBox();
+ this.cbxPexpo = new System.Windows.Forms.CheckBox();
+ this.cbxPsat = new System.Windows.Forms.CheckBox();
+ this.cbxPdeadzone = new System.Windows.Forms.CheckBox();
+ this.label26 = new System.Windows.Forms.Label();
+ this.label27 = new System.Windows.Forms.Label();
+ this.label28 = new System.Windows.Forms.Label();
+ this.lblPout3 = new System.Windows.Forms.Label();
+ this.lblPin3 = new System.Windows.Forms.Label();
+ this.lblPout2 = new System.Windows.Forms.Label();
+ this.lblPin2 = new System.Windows.Forms.Label();
+ this.lblPout1 = new System.Windows.Forms.Label();
+ this.lblPin1 = new System.Windows.Forms.Label();
+ this.lblPsat = new System.Windows.Forms.Label();
+ this.lblPexponent = new System.Windows.Forms.Label();
+ this.lblPdeadzone = new System.Windows.Forms.Label();
+ this.lblPCmd = new System.Windows.Forms.Label();
+ this.lblPitch = new System.Windows.Forms.Label();
+ this.pnlRoll = new System.Windows.Forms.Panel();
+ this.lblRnt = new System.Windows.Forms.Label();
+ this.cbxRinvert = new System.Windows.Forms.CheckBox();
+ this.cbxRpts = new System.Windows.Forms.CheckBox();
+ this.cbxRexpo = new System.Windows.Forms.CheckBox();
+ this.cbxRsat = new System.Windows.Forms.CheckBox();
+ this.cbxRdeadzone = new System.Windows.Forms.CheckBox();
+ this.label35 = new System.Windows.Forms.Label();
+ this.label36 = new System.Windows.Forms.Label();
+ this.label37 = new System.Windows.Forms.Label();
+ this.lblRout3 = new System.Windows.Forms.Label();
+ this.lblRin3 = new System.Windows.Forms.Label();
+ this.lblRout2 = new System.Windows.Forms.Label();
+ this.lblRin2 = new System.Windows.Forms.Label();
+ this.lblRout1 = new System.Windows.Forms.Label();
+ this.lblRin1 = new System.Windows.Forms.Label();
+ this.lblRsat = new System.Windows.Forms.Label();
+ this.lblRexponent = new System.Windows.Forms.Label();
+ this.lblRdeadzone = new System.Windows.Forms.Label();
+ this.lblRCmd = new System.Windows.Forms.Label();
+ this.lblRoll = new System.Windows.Forms.Label();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.panel9 = new System.Windows.Forms.Panel();
+ this.label6 = new System.Windows.Forms.Label();
+ this.lblDamping = new System.Windows.Forms.Label();
+ this.slDamping = new System.Windows.Forms.TrackBar();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.label16 = new System.Windows.Forms.Label();
+ this.lblTurnspeed = new System.Windows.Forms.Label();
+ this.slTurnSpeed = new System.Windows.Forms.TrackBar();
+ this.panel6 = new System.Windows.Forms.Panel();
+ this.rbPtDeadzone = new System.Windows.Forms.RadioButton();
+ this.lblGraphSaturation = new System.Windows.Forms.Label();
+ this.lblGraphDeadzone = new System.Windows.Forms.Label();
+ this.lblNodetext = new System.Windows.Forms.Label();
+ this.label12 = new System.Windows.Forms.Label();
+ this.cbRuse = new System.Windows.Forms.CheckBox();
+ this.cbPuse = new System.Windows.Forms.CheckBox();
+ this.cbYuse = new System.Windows.Forms.CheckBox();
+ this.label11 = new System.Windows.Forms.Label();
+ this.label10 = new System.Windows.Forms.Label();
+ this.lblROutput = new System.Windows.Forms.Label();
+ this.lblRInput = new System.Windows.Forms.Label();
+ this.lblPOutput = new System.Windows.Forms.Label();
+ this.lblPInput = new System.Windows.Forms.Label();
+ this.lblLiveRoll = new System.Windows.Forms.Label();
+ this.lblLivePitch = new System.Windows.Forms.Label();
+ this.btCopyToAllAxis = new System.Windows.Forms.Button();
+ this.lblLiveYaw = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.lblYOutput = new System.Windows.Forms.Label();
+ this.lblYInput = new System.Windows.Forms.Label();
+ this.rbPtExponent = new System.Windows.Forms.RadioButton();
+ this.rbPtSaturation = new System.Windows.Forms.RadioButton();
+ this.rbPt3 = new System.Windows.Forms.RadioButton();
+ this.rbPt2 = new System.Windows.Forms.RadioButton();
+ this.rbPt1 = new System.Windows.Forms.RadioButton();
+ this.label33 = new System.Windows.Forms.Label();
+ this.label32 = new System.Windows.Forms.Label();
+ this.lblOut3 = new System.Windows.Forms.Label();
+ this.lblIn3 = new System.Windows.Forms.Label();
+ this.lblOut2 = new System.Windows.Forms.Label();
+ this.lblIn2 = new System.Windows.Forms.Label();
+ this.lblOut1 = new System.Windows.Forms.Label();
+ this.lblIn1 = new System.Windows.Forms.Label();
+ this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
+ this.lblOutSlider = new System.Windows.Forms.Label();
+ this.lblOutExponent = new System.Windows.Forms.Label();
+ this.tbSlider = new System.Windows.Forms.TrackBar();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.rb300 = new System.Windows.Forms.RadioButton();
+ this.rbHornet = new System.Windows.Forms.RadioButton();
+ this.rbAurora = new System.Windows.Forms.RadioButton();
+ this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
+ this.btDone = new System.Windows.Forms.Button();
+ this.panel8 = new System.Windows.Forms.Panel();
+ this.rbArea18 = new System.Windows.Forms.RadioButton();
+ this.rbDemien = new System.Windows.Forms.RadioButton();
+ this.rbBrokenMoon = new System.Windows.Forms.RadioButton();
+ this.rbDyingStar = new System.Windows.Forms.RadioButton();
+ this.rbSunset = new System.Windows.Forms.RadioButton();
+ this.rbOutThere3 = new System.Windows.Forms.RadioButton();
+ this.rbSkybox = new System.Windows.Forms.RadioButton();
+ this.rbOutThere1 = new System.Windows.Forms.RadioButton();
+ this.rbBigSight = new System.Windows.Forms.RadioButton();
+ this.rbHighway = new System.Windows.Forms.RadioButton();
+ this.rbHelipad = new System.Windows.Forms.RadioButton();
+ this.rbShiodome = new System.Windows.Forms.RadioButton();
+ this.rbCanyon = new System.Windows.Forms.RadioButton();
+ this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
+ this.pnlAxisSelector = new System.Windows.Forms.Panel();
+ this.rbP = new System.Windows.Forms.RadioButton();
+ this.rbY = new System.Windows.Forms.RadioButton();
+ this.rbR = new System.Windows.Forms.RadioButton();
+ this.panel10 = new System.Windows.Forms.Panel();
+ this.rbTuneStrafe = new System.Windows.Forms.RadioButton();
+ this.rbTuneYPR = new System.Windows.Forms.RadioButton();
+ this.btZeroCoords = new System.Windows.Forms.Button();
+ this.tlp.SuspendLayout();
+ this.tlpData.SuspendLayout();
+ this.pnlYaw.SuspendLayout();
+ this.pnlPitch.SuspendLayout();
+ this.pnlRoll.SuspendLayout();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.panel9.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.slDamping)).BeginInit();
+ this.panel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.slTurnSpeed)).BeginInit();
+ this.panel6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tbSlider)).BeginInit();
+ this.flowLayoutPanel1.SuspendLayout();
+ this.tableLayoutPanel3.SuspendLayout();
+ this.panel8.SuspendLayout();
+ this.flowLayoutPanel2.SuspendLayout();
+ this.pnlAxisSelector.SuspendLayout();
+ this.panel10.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // glControl1
+ //
+ this.glControl1.BackColor = System.Drawing.Color.Black;
+ this.glControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.glControl1.Location = new System.Drawing.Point(153, 3);
+ this.glControl1.Name = "glControl1";
+ this.glControl1.Size = new System.Drawing.Size(1028, 610);
+ this.glControl1.TabIndex = 0;
+ this.glControl1.VSync = false;
+ this.glControl1.Load += new System.EventHandler(this.glControl1_Load);
+ this.glControl1.Paint += new System.Windows.Forms.PaintEventHandler(this.glControl1_Paint);
+ this.glControl1.Resize += new System.EventHandler(this.glControl1_Resize);
+ //
+ // tlp
+ //
+ this.tlp.ColumnCount = 2;
+ this.tlp.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F));
+ this.tlp.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tlp.Controls.Add(this.tlpData, 0, 0);
+ this.tlp.Controls.Add(this.tableLayoutPanel1, 1, 1);
+ this.tlp.Controls.Add(this.glControl1, 1, 0);
+ this.tlp.Controls.Add(this.flowLayoutPanel2, 0, 1);
+ this.tlp.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tlp.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
+ this.tlp.Location = new System.Drawing.Point(0, 0);
+ this.tlp.Name = "tlp";
+ this.tlp.RowCount = 2;
+ this.tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 300F));
+ this.tlp.Size = new System.Drawing.Size(1184, 916);
+ this.tlp.TabIndex = 1;
+ //
+ // tlpData
+ //
+ this.tlpData.BackColor = System.Drawing.Color.Gold;
+ this.tlpData.ColumnCount = 1;
+ this.tlpData.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tlpData.Controls.Add(this.panel2, 0, 0);
+ this.tlpData.Controls.Add(this.pnlYaw, 0, 1);
+ this.tlpData.Controls.Add(this.pnlPitch, 0, 3);
+ this.tlpData.Controls.Add(this.pnlRoll, 0, 5);
+ this.tlpData.Dock = System.Windows.Forms.DockStyle.Top;
+ this.tlpData.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
+ this.tlpData.Location = new System.Drawing.Point(3, 3);
+ this.tlpData.Name = "tlpData";
+ this.tlpData.RowCount = 8;
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 155F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 155F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 155F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
+ this.tlpData.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.tlpData.Size = new System.Drawing.Size(144, 610);
+ this.tlpData.TabIndex = 2;
+ //
+ // panel2
+ //
+ this.panel2.BackgroundImage = global::SCJMapper_V2.Properties.Resources.YPR;
+ this.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel2.Location = new System.Drawing.Point(3, 3);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(138, 114);
+ this.panel2.TabIndex = 0;
+ //
+ // pnlYaw
+ //
+ this.pnlYaw.BackColor = System.Drawing.Color.PowderBlue;
+ this.pnlYaw.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.pnlYaw.Controls.Add(this.lblYnt);
+ this.pnlYaw.Controls.Add(this.cbxYinvert);
+ this.pnlYaw.Controls.Add(this.cbxYpts);
+ this.pnlYaw.Controls.Add(this.cbxYexpo);
+ this.pnlYaw.Controls.Add(this.cbxYsat);
+ this.pnlYaw.Controls.Add(this.cbxYdeadzone);
+ this.pnlYaw.Controls.Add(this.label25);
+ this.pnlYaw.Controls.Add(this.label24);
+ this.pnlYaw.Controls.Add(this.label23);
+ this.pnlYaw.Controls.Add(this.lblYout3);
+ this.pnlYaw.Controls.Add(this.lblYin3);
+ this.pnlYaw.Controls.Add(this.lblYout2);
+ this.pnlYaw.Controls.Add(this.lblYin2);
+ this.pnlYaw.Controls.Add(this.lblYout1);
+ this.pnlYaw.Controls.Add(this.lblYin1);
+ this.pnlYaw.Controls.Add(this.lblYsat);
+ this.pnlYaw.Controls.Add(this.lblYexponent);
+ this.pnlYaw.Controls.Add(this.lblYdeadzone);
+ this.pnlYaw.Controls.Add(this.lblYCmd);
+ this.pnlYaw.Controls.Add(this.lblYaw);
+ this.pnlYaw.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlYaw.Location = new System.Drawing.Point(3, 123);
+ this.pnlYaw.Name = "pnlYaw";
+ this.pnlYaw.Size = new System.Drawing.Size(138, 149);
+ this.pnlYaw.TabIndex = 2;
+ this.pnlYaw.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pnlYaw_MouseUp);
+ //
+ // lblYnt
+ //
+ this.lblYnt.AutoSize = true;
+ this.lblYnt.Location = new System.Drawing.Point(107, 17);
+ this.lblYnt.Name = "lblYnt";
+ this.lblYnt.Size = new System.Drawing.Size(20, 13);
+ this.lblYnt.TabIndex = 23;
+ this.lblYnt.Text = "NT";
+ this.lblYnt.Visible = false;
+ //
+ // cbxYinvert
+ //
+ this.cbxYinvert.AutoSize = true;
+ this.cbxYinvert.Location = new System.Drawing.Point(6, 17);
+ this.cbxYinvert.Name = "cbxYinvert";
+ this.cbxYinvert.Size = new System.Drawing.Size(55, 17);
+ this.cbxYinvert.TabIndex = 22;
+ this.cbxYinvert.Text = "Invert";
+ this.cbxYinvert.UseVisualStyleBackColor = true;
+ this.cbxYinvert.CheckedChanged += new System.EventHandler(this.cbxYinvert_CheckedChanged);
+ //
+ // cbxYpts
+ //
+ this.cbxYpts.AutoSize = true;
+ this.cbxYpts.Location = new System.Drawing.Point(6, 91);
+ this.cbxYpts.Name = "cbxYpts";
+ this.cbxYpts.Size = new System.Drawing.Size(15, 14);
+ this.cbxYpts.TabIndex = 21;
+ this.cbxYpts.UseVisualStyleBackColor = true;
+ this.cbxYpts.CheckedChanged += new System.EventHandler(this.cbxYpts_CheckedChanged);
+ //
+ // cbxYexpo
+ //
+ this.cbxYexpo.AutoSize = true;
+ this.cbxYexpo.Location = new System.Drawing.Point(6, 71);
+ this.cbxYexpo.Name = "cbxYexpo";
+ this.cbxYexpo.Size = new System.Drawing.Size(75, 17);
+ this.cbxYexpo.TabIndex = 20;
+ this.cbxYexpo.Text = "Exponent";
+ this.cbxYexpo.UseVisualStyleBackColor = true;
+ this.cbxYexpo.CheckedChanged += new System.EventHandler(this.cbxYexpo_CheckedChanged);
+ //
+ // cbxYsat
+ //
+ this.cbxYsat.AutoSize = true;
+ this.cbxYsat.Location = new System.Drawing.Point(6, 53);
+ this.cbxYsat.Name = "cbxYsat";
+ this.cbxYsat.Size = new System.Drawing.Size(80, 17);
+ this.cbxYsat.TabIndex = 19;
+ this.cbxYsat.Text = "Saturation";
+ this.cbxYsat.UseVisualStyleBackColor = true;
+ this.cbxYsat.CheckedChanged += new System.EventHandler(this.cbxYsense_CheckedChanged);
+ //
+ // cbxYdeadzone
+ //
+ this.cbxYdeadzone.AutoSize = true;
+ this.cbxYdeadzone.Location = new System.Drawing.Point(6, 35);
+ this.cbxYdeadzone.Name = "cbxYdeadzone";
+ this.cbxYdeadzone.Size = new System.Drawing.Size(78, 17);
+ this.cbxYdeadzone.TabIndex = 18;
+ this.cbxYdeadzone.Text = "Deadzone";
+ this.cbxYdeadzone.UseVisualStyleBackColor = true;
+ this.cbxYdeadzone.CheckedChanged += new System.EventHandler(this.cbxYdeadzone_CheckedChanged);
+ //
+ // label25
+ //
+ this.label25.AutoSize = true;
+ this.label25.Location = new System.Drawing.Point(37, 127);
+ this.label25.Name = "label25";
+ this.label25.Size = new System.Drawing.Size(23, 13);
+ this.label25.TabIndex = 17;
+ this.label25.Text = "Pt3";
+ //
+ // label24
+ //
+ this.label24.AutoSize = true;
+ this.label24.Location = new System.Drawing.Point(37, 109);
+ this.label24.Name = "label24";
+ this.label24.Size = new System.Drawing.Size(23, 13);
+ this.label24.TabIndex = 16;
+ this.label24.Text = "Pt2";
+ //
+ // label23
+ //
+ this.label23.AutoSize = true;
+ this.label23.Location = new System.Drawing.Point(37, 91);
+ this.label23.Name = "label23";
+ this.label23.Size = new System.Drawing.Size(23, 13);
+ this.label23.TabIndex = 15;
+ this.label23.Text = "Pt1";
+ //
+ // lblYout3
+ //
+ this.lblYout3.AutoSize = true;
+ this.lblYout3.Location = new System.Drawing.Point(99, 127);
+ this.lblYout3.Name = "lblYout3";
+ this.lblYout3.Size = new System.Drawing.Size(28, 13);
+ this.lblYout3.TabIndex = 14;
+ this.lblYout3.Text = "0.75";
+ //
+ // lblYin3
+ //
+ this.lblYin3.AutoSize = true;
+ this.lblYin3.Location = new System.Drawing.Point(59, 127);
+ this.lblYin3.Name = "lblYin3";
+ this.lblYin3.Size = new System.Drawing.Size(28, 13);
+ this.lblYin3.TabIndex = 13;
+ this.lblYin3.Text = "0.75";
+ //
+ // lblYout2
+ //
+ this.lblYout2.AutoSize = true;
+ this.lblYout2.Location = new System.Drawing.Point(99, 109);
+ this.lblYout2.Name = "lblYout2";
+ this.lblYout2.Size = new System.Drawing.Size(22, 13);
+ this.lblYout2.TabIndex = 12;
+ this.lblYout2.Text = "0.5";
+ //
+ // lblYin2
+ //
+ this.lblYin2.AutoSize = true;
+ this.lblYin2.Location = new System.Drawing.Point(59, 109);
+ this.lblYin2.Name = "lblYin2";
+ this.lblYin2.Size = new System.Drawing.Size(22, 13);
+ this.lblYin2.TabIndex = 11;
+ this.lblYin2.Text = "0.5";
+ //
+ // lblYout1
+ //
+ this.lblYout1.AutoSize = true;
+ this.lblYout1.Location = new System.Drawing.Point(99, 91);
+ this.lblYout1.Name = "lblYout1";
+ this.lblYout1.Size = new System.Drawing.Size(28, 13);
+ this.lblYout1.TabIndex = 10;
+ this.lblYout1.Text = "0.25";
+ //
+ // lblYin1
+ //
+ this.lblYin1.AutoSize = true;
+ this.lblYin1.Location = new System.Drawing.Point(59, 91);
+ this.lblYin1.Name = "lblYin1";
+ this.lblYin1.Size = new System.Drawing.Size(28, 13);
+ this.lblYin1.TabIndex = 9;
+ this.lblYin1.Text = "0.25";
+ //
+ // lblYsat
+ //
+ this.lblYsat.AutoSize = true;
+ this.lblYsat.Location = new System.Drawing.Point(99, 54);
+ this.lblYsat.Name = "lblYsat";
+ this.lblYsat.Size = new System.Drawing.Size(34, 13);
+ this.lblYsat.TabIndex = 8;
+ this.lblYsat.Text = "1.000";
+ //
+ // lblYexponent
+ //
+ this.lblYexponent.AutoSize = true;
+ this.lblYexponent.Location = new System.Drawing.Point(99, 72);
+ this.lblYexponent.Name = "lblYexponent";
+ this.lblYexponent.Size = new System.Drawing.Size(34, 13);
+ this.lblYexponent.TabIndex = 6;
+ this.lblYexponent.Text = "1.000";
+ //
+ // lblYdeadzone
+ //
+ this.lblYdeadzone.AutoSize = true;
+ this.lblYdeadzone.Location = new System.Drawing.Point(99, 36);
+ this.lblYdeadzone.Name = "lblYdeadzone";
+ this.lblYdeadzone.Size = new System.Drawing.Size(34, 13);
+ this.lblYdeadzone.TabIndex = 4;
+ this.lblYdeadzone.Text = "0.000";
+ //
+ // lblYCmd
+ //
+ this.lblYCmd.AutoSize = true;
+ this.lblYCmd.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblYCmd.Location = new System.Drawing.Point(37, 1);
+ this.lblYCmd.Name = "lblYCmd";
+ this.lblYCmd.Size = new System.Drawing.Size(47, 12);
+ this.lblYCmd.TabIndex = 2;
+ this.lblYCmd.Text = "Command";
+ //
+ // lblYaw
+ //
+ this.lblYaw.AutoSize = true;
+ this.lblYaw.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblYaw.Location = new System.Drawing.Point(2, 0);
+ this.lblYaw.Name = "lblYaw";
+ this.lblYaw.Size = new System.Drawing.Size(28, 13);
+ this.lblYaw.TabIndex = 1;
+ this.lblYaw.Text = "Yaw";
+ //
+ // pnlPitch
+ //
+ this.pnlPitch.BackColor = System.Drawing.Color.Salmon;
+ this.pnlPitch.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.pnlPitch.Controls.Add(this.lblPnt);
+ this.pnlPitch.Controls.Add(this.cbxPinvert);
+ this.pnlPitch.Controls.Add(this.cbxPpts);
+ this.pnlPitch.Controls.Add(this.cbxPexpo);
+ this.pnlPitch.Controls.Add(this.cbxPsat);
+ this.pnlPitch.Controls.Add(this.cbxPdeadzone);
+ this.pnlPitch.Controls.Add(this.label26);
+ this.pnlPitch.Controls.Add(this.label27);
+ this.pnlPitch.Controls.Add(this.label28);
+ this.pnlPitch.Controls.Add(this.lblPout3);
+ this.pnlPitch.Controls.Add(this.lblPin3);
+ this.pnlPitch.Controls.Add(this.lblPout2);
+ this.pnlPitch.Controls.Add(this.lblPin2);
+ this.pnlPitch.Controls.Add(this.lblPout1);
+ this.pnlPitch.Controls.Add(this.lblPin1);
+ this.pnlPitch.Controls.Add(this.lblPsat);
+ this.pnlPitch.Controls.Add(this.lblPexponent);
+ this.pnlPitch.Controls.Add(this.lblPdeadzone);
+ this.pnlPitch.Controls.Add(this.lblPCmd);
+ this.pnlPitch.Controls.Add(this.lblPitch);
+ this.pnlPitch.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlPitch.Location = new System.Drawing.Point(3, 284);
+ this.pnlPitch.Name = "pnlPitch";
+ this.pnlPitch.Size = new System.Drawing.Size(138, 149);
+ this.pnlPitch.TabIndex = 3;
+ this.pnlPitch.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pnlPitch_MouseUp);
+ //
+ // lblPnt
+ //
+ this.lblPnt.AutoSize = true;
+ this.lblPnt.Location = new System.Drawing.Point(107, 17);
+ this.lblPnt.Name = "lblPnt";
+ this.lblPnt.Size = new System.Drawing.Size(20, 13);
+ this.lblPnt.TabIndex = 34;
+ this.lblPnt.Text = "NT";
+ this.lblPnt.Visible = false;
+ //
+ // cbxPinvert
+ //
+ this.cbxPinvert.AutoSize = true;
+ this.cbxPinvert.Location = new System.Drawing.Point(6, 17);
+ this.cbxPinvert.Name = "cbxPinvert";
+ this.cbxPinvert.Size = new System.Drawing.Size(55, 17);
+ this.cbxPinvert.TabIndex = 33;
+ this.cbxPinvert.Text = "Invert";
+ this.cbxPinvert.UseVisualStyleBackColor = true;
+ this.cbxPinvert.CheckedChanged += new System.EventHandler(this.cbxPinvert_CheckedChanged);
+ //
+ // cbxPpts
+ //
+ this.cbxPpts.AutoSize = true;
+ this.cbxPpts.Location = new System.Drawing.Point(6, 91);
+ this.cbxPpts.Name = "cbxPpts";
+ this.cbxPpts.Size = new System.Drawing.Size(15, 14);
+ this.cbxPpts.TabIndex = 32;
+ this.cbxPpts.UseVisualStyleBackColor = true;
+ this.cbxPpts.CheckedChanged += new System.EventHandler(this.cbxPpts_CheckedChanged);
+ //
+ // cbxPexpo
+ //
+ this.cbxPexpo.AutoSize = true;
+ this.cbxPexpo.Location = new System.Drawing.Point(6, 71);
+ this.cbxPexpo.Name = "cbxPexpo";
+ this.cbxPexpo.Size = new System.Drawing.Size(75, 17);
+ this.cbxPexpo.TabIndex = 31;
+ this.cbxPexpo.Text = "Exponent";
+ this.cbxPexpo.UseVisualStyleBackColor = true;
+ this.cbxPexpo.CheckedChanged += new System.EventHandler(this.cbxPexpo_CheckedChanged);
+ //
+ // cbxPsat
+ //
+ this.cbxPsat.AutoSize = true;
+ this.cbxPsat.Location = new System.Drawing.Point(6, 53);
+ this.cbxPsat.Name = "cbxPsat";
+ this.cbxPsat.Size = new System.Drawing.Size(80, 17);
+ this.cbxPsat.TabIndex = 30;
+ this.cbxPsat.Text = "Saturation";
+ this.cbxPsat.UseVisualStyleBackColor = true;
+ this.cbxPsat.CheckedChanged += new System.EventHandler(this.cbxPsense_CheckedChanged);
+ //
+ // cbxPdeadzone
+ //
+ this.cbxPdeadzone.AutoSize = true;
+ this.cbxPdeadzone.Location = new System.Drawing.Point(6, 35);
+ this.cbxPdeadzone.Name = "cbxPdeadzone";
+ this.cbxPdeadzone.Size = new System.Drawing.Size(78, 17);
+ this.cbxPdeadzone.TabIndex = 29;
+ this.cbxPdeadzone.Text = "Deadzone";
+ this.cbxPdeadzone.UseVisualStyleBackColor = true;
+ this.cbxPdeadzone.CheckedChanged += new System.EventHandler(this.cbxPdeadzone_CheckedChanged);
+ //
+ // label26
+ //
+ this.label26.AutoSize = true;
+ this.label26.Location = new System.Drawing.Point(37, 126);
+ this.label26.Name = "label26";
+ this.label26.Size = new System.Drawing.Size(23, 13);
+ this.label26.TabIndex = 28;
+ this.label26.Text = "Pt3";
+ //
+ // label27
+ //
+ this.label27.AutoSize = true;
+ this.label27.Location = new System.Drawing.Point(37, 108);
+ this.label27.Name = "label27";
+ this.label27.Size = new System.Drawing.Size(23, 13);
+ this.label27.TabIndex = 27;
+ this.label27.Text = "Pt2";
+ //
+ // label28
+ //
+ this.label28.AutoSize = true;
+ this.label28.Location = new System.Drawing.Point(37, 90);
+ this.label28.Name = "label28";
+ this.label28.Size = new System.Drawing.Size(23, 13);
+ this.label28.TabIndex = 26;
+ this.label28.Text = "Pt1";
+ //
+ // lblPout3
+ //
+ this.lblPout3.AutoSize = true;
+ this.lblPout3.Location = new System.Drawing.Point(99, 126);
+ this.lblPout3.Name = "lblPout3";
+ this.lblPout3.Size = new System.Drawing.Size(28, 13);
+ this.lblPout3.TabIndex = 25;
+ this.lblPout3.Text = "0.75";
+ //
+ // lblPin3
+ //
+ this.lblPin3.AutoSize = true;
+ this.lblPin3.Location = new System.Drawing.Point(59, 126);
+ this.lblPin3.Name = "lblPin3";
+ this.lblPin3.Size = new System.Drawing.Size(28, 13);
+ this.lblPin3.TabIndex = 24;
+ this.lblPin3.Text = "0.75";
+ //
+ // lblPout2
+ //
+ this.lblPout2.AutoSize = true;
+ this.lblPout2.Location = new System.Drawing.Point(99, 108);
+ this.lblPout2.Name = "lblPout2";
+ this.lblPout2.Size = new System.Drawing.Size(22, 13);
+ this.lblPout2.TabIndex = 23;
+ this.lblPout2.Text = "0.5";
+ //
+ // lblPin2
+ //
+ this.lblPin2.AutoSize = true;
+ this.lblPin2.Location = new System.Drawing.Point(59, 108);
+ this.lblPin2.Name = "lblPin2";
+ this.lblPin2.Size = new System.Drawing.Size(22, 13);
+ this.lblPin2.TabIndex = 22;
+ this.lblPin2.Text = "0.5";
+ //
+ // lblPout1
+ //
+ this.lblPout1.AutoSize = true;
+ this.lblPout1.Location = new System.Drawing.Point(99, 90);
+ this.lblPout1.Name = "lblPout1";
+ this.lblPout1.Size = new System.Drawing.Size(28, 13);
+ this.lblPout1.TabIndex = 21;
+ this.lblPout1.Text = "0.25";
+ //
+ // lblPin1
+ //
+ this.lblPin1.AutoSize = true;
+ this.lblPin1.Location = new System.Drawing.Point(59, 90);
+ this.lblPin1.Name = "lblPin1";
+ this.lblPin1.Size = new System.Drawing.Size(28, 13);
+ this.lblPin1.TabIndex = 20;
+ this.lblPin1.Text = "0.25";
+ //
+ // lblPsat
+ //
+ this.lblPsat.AutoSize = true;
+ this.lblPsat.Location = new System.Drawing.Point(99, 54);
+ this.lblPsat.Name = "lblPsat";
+ this.lblPsat.Size = new System.Drawing.Size(34, 13);
+ this.lblPsat.TabIndex = 10;
+ this.lblPsat.Text = "1.000";
+ //
+ // lblPexponent
+ //
+ this.lblPexponent.AutoSize = true;
+ this.lblPexponent.Location = new System.Drawing.Point(99, 72);
+ this.lblPexponent.Name = "lblPexponent";
+ this.lblPexponent.Size = new System.Drawing.Size(34, 13);
+ this.lblPexponent.TabIndex = 8;
+ this.lblPexponent.Text = "1.000";
+ //
+ // lblPdeadzone
+ //
+ this.lblPdeadzone.AutoSize = true;
+ this.lblPdeadzone.Location = new System.Drawing.Point(99, 36);
+ this.lblPdeadzone.Name = "lblPdeadzone";
+ this.lblPdeadzone.Size = new System.Drawing.Size(34, 13);
+ this.lblPdeadzone.TabIndex = 5;
+ this.lblPdeadzone.Text = "0.000";
+ //
+ // lblPCmd
+ //
+ this.lblPCmd.AutoSize = true;
+ this.lblPCmd.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblPCmd.Location = new System.Drawing.Point(37, 1);
+ this.lblPCmd.Name = "lblPCmd";
+ this.lblPCmd.Size = new System.Drawing.Size(47, 12);
+ this.lblPCmd.TabIndex = 3;
+ this.lblPCmd.Text = "Command";
+ //
+ // lblPitch
+ //
+ this.lblPitch.AutoSize = true;
+ this.lblPitch.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblPitch.Location = new System.Drawing.Point(2, 0);
+ this.lblPitch.Name = "lblPitch";
+ this.lblPitch.Size = new System.Drawing.Size(33, 13);
+ this.lblPitch.TabIndex = 2;
+ this.lblPitch.Text = "Pitch";
+ //
+ // pnlRoll
+ //
+ this.pnlRoll.BackColor = System.Drawing.Color.LightGreen;
+ this.pnlRoll.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.pnlRoll.Controls.Add(this.lblRnt);
+ this.pnlRoll.Controls.Add(this.cbxRinvert);
+ this.pnlRoll.Controls.Add(this.cbxRpts);
+ this.pnlRoll.Controls.Add(this.cbxRexpo);
+ this.pnlRoll.Controls.Add(this.cbxRsat);
+ this.pnlRoll.Controls.Add(this.cbxRdeadzone);
+ this.pnlRoll.Controls.Add(this.label35);
+ this.pnlRoll.Controls.Add(this.label36);
+ this.pnlRoll.Controls.Add(this.label37);
+ this.pnlRoll.Controls.Add(this.lblRout3);
+ this.pnlRoll.Controls.Add(this.lblRin3);
+ this.pnlRoll.Controls.Add(this.lblRout2);
+ this.pnlRoll.Controls.Add(this.lblRin2);
+ this.pnlRoll.Controls.Add(this.lblRout1);
+ this.pnlRoll.Controls.Add(this.lblRin1);
+ this.pnlRoll.Controls.Add(this.lblRsat);
+ this.pnlRoll.Controls.Add(this.lblRexponent);
+ this.pnlRoll.Controls.Add(this.lblRdeadzone);
+ this.pnlRoll.Controls.Add(this.lblRCmd);
+ this.pnlRoll.Controls.Add(this.lblRoll);
+ this.pnlRoll.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlRoll.Location = new System.Drawing.Point(3, 445);
+ this.pnlRoll.Name = "pnlRoll";
+ this.pnlRoll.Size = new System.Drawing.Size(138, 149);
+ this.pnlRoll.TabIndex = 4;
+ this.pnlRoll.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pnlRoll_MouseUp);
+ //
+ // lblRnt
+ //
+ this.lblRnt.AutoSize = true;
+ this.lblRnt.Location = new System.Drawing.Point(107, 17);
+ this.lblRnt.Name = "lblRnt";
+ this.lblRnt.Size = new System.Drawing.Size(20, 13);
+ this.lblRnt.TabIndex = 38;
+ this.lblRnt.Text = "NT";
+ this.lblRnt.Visible = false;
+ //
+ // cbxRinvert
+ //
+ this.cbxRinvert.AutoSize = true;
+ this.cbxRinvert.Location = new System.Drawing.Point(6, 17);
+ this.cbxRinvert.Name = "cbxRinvert";
+ this.cbxRinvert.Size = new System.Drawing.Size(55, 17);
+ this.cbxRinvert.TabIndex = 37;
+ this.cbxRinvert.Text = "Invert";
+ this.cbxRinvert.UseVisualStyleBackColor = true;
+ this.cbxRinvert.CheckedChanged += new System.EventHandler(this.cbxRinvert_CheckedChanged);
+ //
+ // cbxRpts
+ //
+ this.cbxRpts.AutoSize = true;
+ this.cbxRpts.Location = new System.Drawing.Point(6, 91);
+ this.cbxRpts.Name = "cbxRpts";
+ this.cbxRpts.Size = new System.Drawing.Size(15, 14);
+ this.cbxRpts.TabIndex = 36;
+ this.cbxRpts.UseVisualStyleBackColor = true;
+ this.cbxRpts.CheckedChanged += new System.EventHandler(this.cbxRpts_CheckedChanged);
+ //
+ // cbxRexpo
+ //
+ this.cbxRexpo.AutoSize = true;
+ this.cbxRexpo.Location = new System.Drawing.Point(6, 71);
+ this.cbxRexpo.Name = "cbxRexpo";
+ this.cbxRexpo.Size = new System.Drawing.Size(75, 17);
+ this.cbxRexpo.TabIndex = 35;
+ this.cbxRexpo.Text = "Exponent";
+ this.cbxRexpo.UseVisualStyleBackColor = true;
+ this.cbxRexpo.CheckedChanged += new System.EventHandler(this.cbxRexpo_CheckedChanged);
+ //
+ // cbxRsat
+ //
+ this.cbxRsat.AutoSize = true;
+ this.cbxRsat.Location = new System.Drawing.Point(6, 53);
+ this.cbxRsat.Name = "cbxRsat";
+ this.cbxRsat.Size = new System.Drawing.Size(80, 17);
+ this.cbxRsat.TabIndex = 34;
+ this.cbxRsat.Text = "Saturation";
+ this.cbxRsat.UseVisualStyleBackColor = true;
+ this.cbxRsat.CheckedChanged += new System.EventHandler(this.cbxRsense_CheckedChanged);
+ //
+ // cbxRdeadzone
+ //
+ this.cbxRdeadzone.AutoSize = true;
+ this.cbxRdeadzone.Location = new System.Drawing.Point(6, 35);
+ this.cbxRdeadzone.Name = "cbxRdeadzone";
+ this.cbxRdeadzone.Size = new System.Drawing.Size(78, 17);
+ this.cbxRdeadzone.TabIndex = 33;
+ this.cbxRdeadzone.Text = "Deadzone";
+ this.cbxRdeadzone.UseVisualStyleBackColor = true;
+ this.cbxRdeadzone.CheckedChanged += new System.EventHandler(this.cbxRdeadzone_CheckedChanged);
+ //
+ // label35
+ //
+ this.label35.AutoSize = true;
+ this.label35.Location = new System.Drawing.Point(37, 126);
+ this.label35.Name = "label35";
+ this.label35.Size = new System.Drawing.Size(23, 13);
+ this.label35.TabIndex = 28;
+ this.label35.Text = "Pt3";
+ //
+ // label36
+ //
+ this.label36.AutoSize = true;
+ this.label36.Location = new System.Drawing.Point(37, 108);
+ this.label36.Name = "label36";
+ this.label36.Size = new System.Drawing.Size(23, 13);
+ this.label36.TabIndex = 27;
+ this.label36.Text = "Pt2";
+ //
+ // label37
+ //
+ this.label37.AutoSize = true;
+ this.label37.Location = new System.Drawing.Point(37, 90);
+ this.label37.Name = "label37";
+ this.label37.Size = new System.Drawing.Size(23, 13);
+ this.label37.TabIndex = 26;
+ this.label37.Text = "Pt1";
+ //
+ // lblRout3
+ //
+ this.lblRout3.AutoSize = true;
+ this.lblRout3.Location = new System.Drawing.Point(99, 126);
+ this.lblRout3.Name = "lblRout3";
+ this.lblRout3.Size = new System.Drawing.Size(28, 13);
+ this.lblRout3.TabIndex = 25;
+ this.lblRout3.Text = "0.75";
+ //
+ // lblRin3
+ //
+ this.lblRin3.AutoSize = true;
+ this.lblRin3.Location = new System.Drawing.Point(59, 126);
+ this.lblRin3.Name = "lblRin3";
+ this.lblRin3.Size = new System.Drawing.Size(28, 13);
+ this.lblRin3.TabIndex = 24;
+ this.lblRin3.Text = "0.75";
+ //
+ // lblRout2
+ //
+ this.lblRout2.AutoSize = true;
+ this.lblRout2.Location = new System.Drawing.Point(99, 108);
+ this.lblRout2.Name = "lblRout2";
+ this.lblRout2.Size = new System.Drawing.Size(22, 13);
+ this.lblRout2.TabIndex = 23;
+ this.lblRout2.Text = "0.5";
+ //
+ // lblRin2
+ //
+ this.lblRin2.AutoSize = true;
+ this.lblRin2.Location = new System.Drawing.Point(59, 108);
+ this.lblRin2.Name = "lblRin2";
+ this.lblRin2.Size = new System.Drawing.Size(22, 13);
+ this.lblRin2.TabIndex = 22;
+ this.lblRin2.Text = "0.5";
+ //
+ // lblRout1
+ //
+ this.lblRout1.AutoSize = true;
+ this.lblRout1.Location = new System.Drawing.Point(99, 90);
+ this.lblRout1.Name = "lblRout1";
+ this.lblRout1.Size = new System.Drawing.Size(28, 13);
+ this.lblRout1.TabIndex = 21;
+ this.lblRout1.Text = "0.25";
+ //
+ // lblRin1
+ //
+ this.lblRin1.AutoSize = true;
+ this.lblRin1.Location = new System.Drawing.Point(59, 90);
+ this.lblRin1.Name = "lblRin1";
+ this.lblRin1.Size = new System.Drawing.Size(28, 13);
+ this.lblRin1.TabIndex = 20;
+ this.lblRin1.Text = "0.25";
+ //
+ // lblRsat
+ //
+ this.lblRsat.AutoSize = true;
+ this.lblRsat.Location = new System.Drawing.Point(99, 54);
+ this.lblRsat.Name = "lblRsat";
+ this.lblRsat.Size = new System.Drawing.Size(34, 13);
+ this.lblRsat.TabIndex = 10;
+ this.lblRsat.Text = "1.000";
+ //
+ // lblRexponent
+ //
+ this.lblRexponent.AutoSize = true;
+ this.lblRexponent.Location = new System.Drawing.Point(99, 72);
+ this.lblRexponent.Name = "lblRexponent";
+ this.lblRexponent.Size = new System.Drawing.Size(34, 13);
+ this.lblRexponent.TabIndex = 8;
+ this.lblRexponent.Text = "1.000";
+ //
+ // lblRdeadzone
+ //
+ this.lblRdeadzone.AutoSize = true;
+ this.lblRdeadzone.Location = new System.Drawing.Point(99, 36);
+ this.lblRdeadzone.Name = "lblRdeadzone";
+ this.lblRdeadzone.Size = new System.Drawing.Size(34, 13);
+ this.lblRdeadzone.TabIndex = 6;
+ this.lblRdeadzone.Text = "0.000";
+ //
+ // lblRCmd
+ //
+ this.lblRCmd.AutoSize = true;
+ this.lblRCmd.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblRCmd.Location = new System.Drawing.Point(37, 1);
+ this.lblRCmd.Name = "lblRCmd";
+ this.lblRCmd.Size = new System.Drawing.Size(47, 12);
+ this.lblRCmd.TabIndex = 4;
+ this.lblRCmd.Text = "Command";
+ //
+ // lblRoll
+ //
+ this.lblRoll.AutoSize = true;
+ this.lblRoll.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblRoll.Location = new System.Drawing.Point(2, 0);
+ this.lblRoll.Name = "lblRoll";
+ this.lblRoll.Size = new System.Drawing.Size(27, 13);
+ this.lblRoll.TabIndex = 2;
+ this.lblRoll.Text = "Roll";
+ //
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.tableLayoutPanel1.ColumnCount = 2;
- this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 58.79447F));
- this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 41.20553F));
- this.tableLayoutPanel1.Controls.Add(this.panel9, 1, 1);
- this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 0);
- this.tableLayoutPanel1.Controls.Add(this.panel6, 0, 0);
- this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 1, 2);
- this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 3);
- this.tableLayoutPanel1.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
- this.tableLayoutPanel1.Location = new System.Drawing.Point(153, 619);
- this.tableLayoutPanel1.Name = "tableLayoutPanel1";
- this.tableLayoutPanel1.RowCount = 4;
- this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F));
- this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F));
- this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 61F));
- this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tableLayoutPanel1.Size = new System.Drawing.Size(1028, 294);
- this.tableLayoutPanel1.TabIndex = 1;
- //
- // panel9
- //
- this.panel9.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.tableLayoutPanel1.ColumnCount = 2;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 58.79447F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 41.20553F));
+ this.tableLayoutPanel1.Controls.Add(this.panel9, 1, 1);
+ this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 0);
+ this.tableLayoutPanel1.Controls.Add(this.panel6, 0, 0);
+ this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 1, 2);
+ this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 3);
+ this.tableLayoutPanel1.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(153, 619);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.RowCount = 4;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 61F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(1028, 294);
+ this.tableLayoutPanel1.TabIndex = 1;
+ //
+ // panel9
+ //
+ this.panel9.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.panel9.Controls.Add(this.label6);
- this.panel9.Controls.Add(this.lblDamping);
- this.panel9.Controls.Add(this.slDamping);
- this.panel9.Location = new System.Drawing.Point(624, 63);
- this.panel9.Name = "panel9";
- this.panel9.Size = new System.Drawing.Size(401, 54);
- this.panel9.TabIndex = 7;
- //
- // label6
- //
- this.label6.AutoSize = true;
- this.label6.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label6.Location = new System.Drawing.Point(273, 8);
- this.label6.Name = "label6";
- this.label6.Size = new System.Drawing.Size(54, 13);
- this.label6.TabIndex = 12;
- this.label6.Text = "damping";
- //
- // lblDamping
- //
- this.lblDamping.AutoSize = true;
- this.lblDamping.Location = new System.Drawing.Point(273, 29);
- this.lblDamping.Name = "lblDamping";
- this.lblDamping.Size = new System.Drawing.Size(13, 13);
- this.lblDamping.TabIndex = 3;
- this.lblDamping.Text = "1";
- //
- // slDamping
- //
- this.slDamping.LargeChange = 1;
- this.slDamping.Location = new System.Drawing.Point(3, 3);
- this.slDamping.Minimum = 1;
- this.slDamping.Name = "slDamping";
- this.slDamping.Size = new System.Drawing.Size(264, 45);
- this.slDamping.TabIndex = 2;
- this.slDamping.TickStyle = System.Windows.Forms.TickStyle.Both;
- this.slDamping.Value = 4;
- this.slDamping.ValueChanged += new System.EventHandler(this.slDamping_ValueChanged);
- //
- // panel1
- //
- this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.panel9.Controls.Add(this.label6);
+ this.panel9.Controls.Add(this.lblDamping);
+ this.panel9.Controls.Add(this.slDamping);
+ this.panel9.Location = new System.Drawing.Point(624, 63);
+ this.panel9.Name = "panel9";
+ this.panel9.Size = new System.Drawing.Size(401, 54);
+ this.panel9.TabIndex = 7;
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label6.Location = new System.Drawing.Point(273, 8);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(54, 13);
+ this.label6.TabIndex = 12;
+ this.label6.Text = "damping";
+ //
+ // lblDamping
+ //
+ this.lblDamping.AutoSize = true;
+ this.lblDamping.Location = new System.Drawing.Point(273, 29);
+ this.lblDamping.Name = "lblDamping";
+ this.lblDamping.Size = new System.Drawing.Size(13, 13);
+ this.lblDamping.TabIndex = 3;
+ this.lblDamping.Text = "1";
+ //
+ // slDamping
+ //
+ this.slDamping.LargeChange = 1;
+ this.slDamping.Location = new System.Drawing.Point(3, 3);
+ this.slDamping.Minimum = 1;
+ this.slDamping.Name = "slDamping";
+ this.slDamping.Size = new System.Drawing.Size(264, 45);
+ this.slDamping.TabIndex = 2;
+ this.slDamping.TickStyle = System.Windows.Forms.TickStyle.Both;
+ this.slDamping.Value = 4;
+ this.slDamping.ValueChanged += new System.EventHandler(this.slDamping_ValueChanged);
+ //
+ // panel1
+ //
+ this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.panel1.Controls.Add(this.label16);
- this.panel1.Controls.Add(this.lblTurnspeed);
- this.panel1.Controls.Add(this.slTurnSpeed);
- this.panel1.Location = new System.Drawing.Point(624, 3);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(401, 54);
- this.panel1.TabIndex = 4;
- //
- // label16
- //
- this.label16.AutoSize = true;
- this.label16.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label16.Location = new System.Drawing.Point(273, 8);
- this.label16.Name = "label16";
- this.label16.Size = new System.Drawing.Size(93, 13);
- this.label16.TabIndex = 12;
- this.label16.Text = "sec per 360° turn";
- //
- // lblTurnspeed
- //
- this.lblTurnspeed.AutoSize = true;
- this.lblTurnspeed.Location = new System.Drawing.Point(273, 29);
- this.lblTurnspeed.Name = "lblTurnspeed";
- this.lblTurnspeed.Size = new System.Drawing.Size(13, 13);
- this.lblTurnspeed.TabIndex = 3;
- this.lblTurnspeed.Text = "1";
- //
- // slTurnSpeed
- //
- this.slTurnSpeed.LargeChange = 1;
- this.slTurnSpeed.Location = new System.Drawing.Point(3, 3);
- this.slTurnSpeed.Maximum = 30;
- this.slTurnSpeed.Minimum = 1;
- this.slTurnSpeed.Name = "slTurnSpeed";
- this.slTurnSpeed.Size = new System.Drawing.Size(264, 45);
- this.slTurnSpeed.TabIndex = 2;
- this.slTurnSpeed.TickStyle = System.Windows.Forms.TickStyle.Both;
- this.slTurnSpeed.Value = 6;
- this.slTurnSpeed.ValueChanged += new System.EventHandler(this.slTurnSpeed_ValueChanged);
- //
- // panel6
- //
- this.panel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.panel1.Controls.Add(this.label16);
+ this.panel1.Controls.Add(this.lblTurnspeed);
+ this.panel1.Controls.Add(this.slTurnSpeed);
+ this.panel1.Location = new System.Drawing.Point(624, 3);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(401, 54);
+ this.panel1.TabIndex = 4;
+ //
+ // label16
+ //
+ this.label16.AutoSize = true;
+ this.label16.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label16.Location = new System.Drawing.Point(273, 8);
+ this.label16.Name = "label16";
+ this.label16.Size = new System.Drawing.Size(93, 13);
+ this.label16.TabIndex = 12;
+ this.label16.Text = "sec per 360° turn";
+ //
+ // lblTurnspeed
+ //
+ this.lblTurnspeed.AutoSize = true;
+ this.lblTurnspeed.Location = new System.Drawing.Point(273, 29);
+ this.lblTurnspeed.Name = "lblTurnspeed";
+ this.lblTurnspeed.Size = new System.Drawing.Size(13, 13);
+ this.lblTurnspeed.TabIndex = 3;
+ this.lblTurnspeed.Text = "1";
+ //
+ // slTurnSpeed
+ //
+ this.slTurnSpeed.LargeChange = 1;
+ this.slTurnSpeed.Location = new System.Drawing.Point(3, 3);
+ this.slTurnSpeed.Maximum = 30;
+ this.slTurnSpeed.Minimum = 1;
+ this.slTurnSpeed.Name = "slTurnSpeed";
+ this.slTurnSpeed.Size = new System.Drawing.Size(264, 45);
+ this.slTurnSpeed.TabIndex = 2;
+ this.slTurnSpeed.TickStyle = System.Windows.Forms.TickStyle.Both;
+ this.slTurnSpeed.Value = 6;
+ this.slTurnSpeed.ValueChanged += new System.EventHandler(this.slTurnSpeed_ValueChanged);
+ //
+ // panel6
+ //
+ this.panel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
- this.panel6.BackColor = System.Drawing.Color.WhiteSmoke;
- this.panel6.Controls.Add(this.rbPtDeadzone);
- this.panel6.Controls.Add(this.lblGraphSaturation);
- this.panel6.Controls.Add(this.lblGraphDeadzone);
- this.panel6.Controls.Add(this.lblNodetext);
- this.panel6.Controls.Add(this.label12);
- this.panel6.Controls.Add(this.cbRuse);
- this.panel6.Controls.Add(this.cbPuse);
- this.panel6.Controls.Add(this.cbYuse);
- this.panel6.Controls.Add(this.label11);
- this.panel6.Controls.Add(this.label10);
- this.panel6.Controls.Add(this.lblROutput);
- this.panel6.Controls.Add(this.lblRInput);
- this.panel6.Controls.Add(this.lblPOutput);
- this.panel6.Controls.Add(this.lblPInput);
- this.panel6.Controls.Add(this.lblLiveRoll);
- this.panel6.Controls.Add(this.lblLivePitch);
- this.panel6.Controls.Add(this.btCopyToAllAxis);
- this.panel6.Controls.Add(this.lblLiveYaw);
- this.panel6.Controls.Add(this.label4);
- this.panel6.Controls.Add(this.lblYOutput);
- this.panel6.Controls.Add(this.lblYInput);
- this.panel6.Controls.Add(this.rbPtExponent);
- this.panel6.Controls.Add(this.rbPtSaturation);
- this.panel6.Controls.Add(this.rbPt3);
- this.panel6.Controls.Add(this.rbPt2);
- this.panel6.Controls.Add(this.rbPt1);
- this.panel6.Controls.Add(this.label33);
- this.panel6.Controls.Add(this.label32);
- this.panel6.Controls.Add(this.lblOut3);
- this.panel6.Controls.Add(this.lblIn3);
- this.panel6.Controls.Add(this.lblOut2);
- this.panel6.Controls.Add(this.lblIn2);
- this.panel6.Controls.Add(this.lblOut1);
- this.panel6.Controls.Add(this.lblIn1);
- this.panel6.Controls.Add(this.chart1);
- this.panel6.Controls.Add(this.lblOutSlider);
- this.panel6.Controls.Add(this.lblOutExponent);
- this.panel6.Controls.Add(this.tbSlider);
- this.panel6.Location = new System.Drawing.Point(3, 3);
- this.panel6.Name = "panel6";
- this.tableLayoutPanel1.SetRowSpan(this.panel6, 4);
- this.panel6.Size = new System.Drawing.Size(579, 288);
- this.panel6.TabIndex = 5;
- //
- // rbPtDeadzone
- //
- this.rbPtDeadzone.AutoSize = true;
- this.rbPtDeadzone.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbPtDeadzone.Location = new System.Drawing.Point(14, 72);
- this.rbPtDeadzone.Name = "rbPtDeadzone";
- this.rbPtDeadzone.Size = new System.Drawing.Size(81, 19);
- this.rbPtDeadzone.TabIndex = 54;
- this.rbPtDeadzone.Text = "Deadzone";
- this.rbPtDeadzone.UseVisualStyleBackColor = true;
- this.rbPtDeadzone.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
- //
- // lblGraphSaturation
- //
- this.lblGraphSaturation.AutoSize = true;
- this.lblGraphSaturation.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblGraphSaturation.Location = new System.Drawing.Point(531, 266);
- this.lblGraphSaturation.Name = "lblGraphSaturation";
- this.lblGraphSaturation.Size = new System.Drawing.Size(34, 15);
- this.lblGraphSaturation.TabIndex = 53;
- this.lblGraphSaturation.Text = "0.000";
- //
- // lblGraphDeadzone
- //
- this.lblGraphDeadzone.AutoSize = true;
- this.lblGraphDeadzone.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblGraphDeadzone.Location = new System.Drawing.Point(252, 266);
- this.lblGraphDeadzone.Name = "lblGraphDeadzone";
- this.lblGraphDeadzone.Size = new System.Drawing.Size(34, 15);
- this.lblGraphDeadzone.TabIndex = 52;
- this.lblGraphDeadzone.Text = "0.000";
- //
- // lblNodetext
- //
- this.lblNodetext.AutoSize = true;
- this.lblNodetext.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblNodetext.Location = new System.Drawing.Point(11, 3);
- this.lblNodetext.Name = "lblNodetext";
- this.lblNodetext.Size = new System.Drawing.Size(16, 13);
- this.lblNodetext.TabIndex = 51;
- this.lblNodetext.Text = "...";
- //
- // label12
- //
- this.label12.AutoSize = true;
- this.label12.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label12.Location = new System.Drawing.Point(213, 233);
- this.label12.Name = "label12";
- this.label12.Size = new System.Drawing.Size(16, 45);
- this.label12.TabIndex = 50;
- this.label12.Text = "O\r\nF\r\nF\r\n";
- //
- // cbRuse
- //
- this.cbRuse.AutoSize = true;
- this.cbRuse.Location = new System.Drawing.Point(192, 267);
- this.cbRuse.Name = "cbRuse";
- this.cbRuse.Size = new System.Drawing.Size(15, 14);
- this.cbRuse.TabIndex = 49;
- this.cbRuse.UseVisualStyleBackColor = true;
- //
- // cbPuse
- //
- this.cbPuse.AutoSize = true;
- this.cbPuse.Location = new System.Drawing.Point(192, 248);
- this.cbPuse.Name = "cbPuse";
- this.cbPuse.Size = new System.Drawing.Size(15, 14);
- this.cbPuse.TabIndex = 48;
- this.cbPuse.UseVisualStyleBackColor = true;
- //
- // cbYuse
- //
- this.cbYuse.AutoSize = true;
- this.cbYuse.Location = new System.Drawing.Point(192, 228);
- this.cbYuse.Name = "cbYuse";
- this.cbYuse.Size = new System.Drawing.Size(15, 14);
- this.cbYuse.TabIndex = 47;
- this.cbYuse.UseVisualStyleBackColor = true;
- //
- // label11
- //
- this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.label11.Location = new System.Drawing.Point(5, 216);
- this.label11.Name = "label11";
- this.label11.Size = new System.Drawing.Size(246, 3);
- this.label11.TabIndex = 46;
- this.label11.Text = " sd";
- //
- // label10
- //
- this.label10.AutoSize = true;
- this.label10.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label10.Location = new System.Drawing.Point(15, 225);
- this.label10.Name = "label10";
- this.label10.Size = new System.Drawing.Size(13, 60);
- this.label10.TabIndex = 45;
- this.label10.Text = "L\r\ni\r\nv\r\ne";
- //
- // lblROutput
- //
- this.lblROutput.AutoSize = true;
- this.lblROutput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblROutput.Location = new System.Drawing.Point(142, 266);
- this.lblROutput.Name = "lblROutput";
- this.lblROutput.Size = new System.Drawing.Size(34, 15);
- this.lblROutput.TabIndex = 44;
- this.lblROutput.Text = "0.000";
- //
- // lblRInput
- //
- this.lblRInput.AutoSize = true;
- this.lblRInput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblRInput.Location = new System.Drawing.Point(89, 266);
- this.lblRInput.Name = "lblRInput";
- this.lblRInput.Size = new System.Drawing.Size(34, 15);
- this.lblRInput.TabIndex = 43;
- this.lblRInput.Text = "0.000";
- //
- // lblPOutput
- //
- this.lblPOutput.AutoSize = true;
- this.lblPOutput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblPOutput.Location = new System.Drawing.Point(142, 247);
- this.lblPOutput.Name = "lblPOutput";
- this.lblPOutput.Size = new System.Drawing.Size(34, 15);
- this.lblPOutput.TabIndex = 42;
- this.lblPOutput.Text = "0.000";
- //
- // lblPInput
- //
- this.lblPInput.AutoSize = true;
- this.lblPInput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblPInput.Location = new System.Drawing.Point(89, 247);
- this.lblPInput.Name = "lblPInput";
- this.lblPInput.Size = new System.Drawing.Size(34, 15);
- this.lblPInput.TabIndex = 41;
- this.lblPInput.Text = "0.000";
- //
- // lblLiveRoll
- //
- this.lblLiveRoll.AutoSize = true;
- this.lblLiveRoll.BackColor = System.Drawing.Color.LightGreen;
- this.lblLiveRoll.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblLiveRoll.Location = new System.Drawing.Point(32, 266);
- this.lblLiveRoll.Name = "lblLiveRoll";
- this.lblLiveRoll.Size = new System.Drawing.Size(46, 15);
- this.lblLiveRoll.TabIndex = 40;
- this.lblLiveRoll.Text = "R-Axis:";
- //
- // lblLivePitch
- //
- this.lblLivePitch.AutoSize = true;
- this.lblLivePitch.BackColor = System.Drawing.Color.Salmon;
- this.lblLivePitch.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblLivePitch.Location = new System.Drawing.Point(32, 247);
- this.lblLivePitch.Name = "lblLivePitch";
- this.lblLivePitch.Size = new System.Drawing.Size(45, 15);
- this.lblLivePitch.TabIndex = 39;
- this.lblLivePitch.Text = "P-Axis:";
- //
- // btCopyToAllAxis
- //
- this.btCopyToAllAxis.Location = new System.Drawing.Point(192, 159);
- this.btCopyToAllAxis.Name = "btCopyToAllAxis";
- this.btCopyToAllAxis.Size = new System.Drawing.Size(57, 44);
- this.btCopyToAllAxis.TabIndex = 38;
- this.btCopyToAllAxis.Text = "Copy to all axis";
- this.btCopyToAllAxis.UseVisualStyleBackColor = true;
- this.btCopyToAllAxis.Click += new System.EventHandler(this.btCopyToAllAxis_Click);
- //
- // lblLiveYaw
- //
- this.lblLiveYaw.AutoSize = true;
- this.lblLiveYaw.BackColor = System.Drawing.Color.PowderBlue;
- this.lblLiveYaw.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblLiveYaw.Location = new System.Drawing.Point(32, 228);
- this.lblLiveYaw.Name = "lblLiveYaw";
- this.lblLiveYaw.Size = new System.Drawing.Size(45, 15);
- this.lblLiveYaw.TabIndex = 37;
- this.lblLiveYaw.Text = "Y-Axis:";
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(310, 272);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(193, 13);
- this.label4.TabIndex = 36;
- this.label4.Text = "Select an option then click and drag";
- //
- // lblYOutput
- //
- this.lblYOutput.AutoSize = true;
- this.lblYOutput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblYOutput.Location = new System.Drawing.Point(142, 228);
- this.lblYOutput.Name = "lblYOutput";
- this.lblYOutput.Size = new System.Drawing.Size(34, 15);
- this.lblYOutput.TabIndex = 35;
- this.lblYOutput.Text = "0.000";
- //
- // lblYInput
- //
- this.lblYInput.AutoSize = true;
- this.lblYInput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblYInput.Location = new System.Drawing.Point(89, 228);
- this.lblYInput.Name = "lblYInput";
- this.lblYInput.Size = new System.Drawing.Size(34, 15);
- this.lblYInput.TabIndex = 34;
- this.lblYInput.Text = "0.000";
- //
- // rbPtExponent
- //
- this.rbPtExponent.AutoSize = true;
- this.rbPtExponent.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbPtExponent.Location = new System.Drawing.Point(14, 108);
- this.rbPtExponent.Name = "rbPtExponent";
- this.rbPtExponent.Size = new System.Drawing.Size(81, 19);
- this.rbPtExponent.TabIndex = 33;
- this.rbPtExponent.Text = "Exponent:";
- this.rbPtExponent.UseVisualStyleBackColor = true;
- this.rbPtExponent.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
- //
- // rbPtSaturation
- //
- this.rbPtSaturation.AutoSize = true;
- this.rbPtSaturation.Checked = true;
- this.rbPtSaturation.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbPtSaturation.Location = new System.Drawing.Point(101, 72);
- this.rbPtSaturation.Name = "rbPtSaturation";
- this.rbPtSaturation.Size = new System.Drawing.Size(83, 19);
- this.rbPtSaturation.TabIndex = 32;
- this.rbPtSaturation.TabStop = true;
- this.rbPtSaturation.Text = "Saturation";
- this.rbPtSaturation.UseVisualStyleBackColor = true;
- this.rbPtSaturation.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
- //
- // rbPt3
- //
- this.rbPt3.AutoSize = true;
- this.rbPt3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbPt3.Location = new System.Drawing.Point(14, 194);
- this.rbPt3.Name = "rbPt3";
- this.rbPt3.Size = new System.Drawing.Size(67, 19);
- this.rbPt3.TabIndex = 31;
- this.rbPt3.Text = "Point 3:";
- this.rbPt3.UseVisualStyleBackColor = true;
- this.rbPt3.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
- //
- // rbPt2
- //
- this.rbPt2.AutoSize = true;
- this.rbPt2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbPt2.Location = new System.Drawing.Point(14, 171);
- this.rbPt2.Name = "rbPt2";
- this.rbPt2.Size = new System.Drawing.Size(67, 19);
- this.rbPt2.TabIndex = 30;
- this.rbPt2.Text = "Point 2:";
- this.rbPt2.UseVisualStyleBackColor = true;
- this.rbPt2.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
- //
- // rbPt1
- //
- this.rbPt1.AutoSize = true;
- this.rbPt1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbPt1.Location = new System.Drawing.Point(14, 148);
- this.rbPt1.Name = "rbPt1";
- this.rbPt1.Size = new System.Drawing.Size(67, 19);
- this.rbPt1.TabIndex = 29;
- this.rbPt1.Text = "Point 1:";
- this.rbPt1.UseVisualStyleBackColor = true;
- this.rbPt1.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
- //
- // label33
- //
- this.label33.AutoSize = true;
- this.label33.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label33.Location = new System.Drawing.Point(135, 130);
- this.label33.Name = "label33";
- this.label33.Size = new System.Drawing.Size(46, 15);
- this.label33.TabIndex = 28;
- this.label33.Text = "OUT(y)";
- //
- // label32
- //
- this.label32.AutoSize = true;
- this.label32.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label32.Location = new System.Drawing.Point(89, 130);
- this.label32.Name = "label32";
- this.label32.Size = new System.Drawing.Size(35, 15);
- this.label32.TabIndex = 27;
- this.label32.Text = "IN(x)";
- //
- // lblOut3
- //
- this.lblOut3.AutoSize = true;
- this.lblOut3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblOut3.Location = new System.Drawing.Point(142, 196);
- this.lblOut3.Name = "lblOut3";
- this.lblOut3.Size = new System.Drawing.Size(28, 15);
- this.lblOut3.TabIndex = 23;
- this.lblOut3.Text = "0.75";
- //
- // lblIn3
- //
- this.lblIn3.AutoSize = true;
- this.lblIn3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblIn3.Location = new System.Drawing.Point(89, 196);
- this.lblIn3.Name = "lblIn3";
- this.lblIn3.Size = new System.Drawing.Size(28, 15);
- this.lblIn3.TabIndex = 22;
- this.lblIn3.Text = "0.75";
- //
- // lblOut2
- //
- this.lblOut2.AutoSize = true;
- this.lblOut2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblOut2.Location = new System.Drawing.Point(142, 173);
- this.lblOut2.Name = "lblOut2";
- this.lblOut2.Size = new System.Drawing.Size(22, 15);
- this.lblOut2.TabIndex = 21;
- this.lblOut2.Text = "0.5";
- //
- // lblIn2
- //
- this.lblIn2.AutoSize = true;
- this.lblIn2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblIn2.Location = new System.Drawing.Point(89, 173);
- this.lblIn2.Name = "lblIn2";
- this.lblIn2.Size = new System.Drawing.Size(22, 15);
- this.lblIn2.TabIndex = 20;
- this.lblIn2.Text = "0.5";
- //
- // lblOut1
- //
- this.lblOut1.AutoSize = true;
- this.lblOut1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblOut1.Location = new System.Drawing.Point(142, 150);
- this.lblOut1.Name = "lblOut1";
- this.lblOut1.Size = new System.Drawing.Size(28, 15);
- this.lblOut1.TabIndex = 19;
- this.lblOut1.Text = "0.25";
- //
- // lblIn1
- //
- this.lblIn1.AutoSize = true;
- this.lblIn1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblIn1.Location = new System.Drawing.Point(89, 150);
- this.lblIn1.Name = "lblIn1";
- this.lblIn1.Size = new System.Drawing.Size(28, 15);
- this.lblIn1.TabIndex = 18;
- this.lblIn1.Text = "0.25";
- //
- // chart1
- //
- chartArea1.AxisX.Crossing = -1.7976931348623157E+308D;
- chartArea1.AxisX.IsMarginVisible = false;
- chartArea1.AxisX.LabelStyle.Enabled = false;
- chartArea1.AxisX.MajorGrid.Interval = 0.2D;
- chartArea1.AxisX.MajorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
- chartArea1.AxisX.MajorTickMark.Interval = 0.2D;
- chartArea1.AxisX.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
- chartArea1.AxisX.Maximum = 1D;
- chartArea1.AxisX.Minimum = 0D;
- chartArea1.AxisX.MinorGrid.Interval = 0.1D;
- chartArea1.AxisX.MinorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
- chartArea1.AxisX.MinorTickMark.Interval = 0.1D;
- chartArea1.AxisX.MinorTickMark.IntervalOffsetType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
- chartArea1.AxisY.Crossing = -1.7976931348623157E+308D;
- chartArea1.AxisY.Interval = 5D;
- chartArea1.AxisY.IsMarginVisible = false;
- chartArea1.AxisY.LabelStyle.Enabled = false;
- chartArea1.AxisY.MajorGrid.Interval = 0.2D;
- chartArea1.AxisY.MajorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
- chartArea1.AxisY.MajorTickMark.Interval = 0.2D;
- chartArea1.AxisY.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
- chartArea1.AxisY.Maximum = 1D;
- chartArea1.AxisY.Minimum = 0D;
- chartArea1.Name = "ChartArea1";
- this.chart1.ChartAreas.Add(chartArea1);
- this.chart1.Location = new System.Drawing.Point(258, 7);
- this.chart1.Name = "chart1";
- series1.ChartArea = "ChartArea1";
- series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
- series1.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
- series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
- series1.Name = "Series1";
- this.chart1.Series.Add(series1);
- this.chart1.Size = new System.Drawing.Size(301, 262);
- this.chart1.TabIndex = 16;
- this.chart1.Text = "chart1";
- this.chart1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.chartPoint_MouseDown);
- this.chart1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.chartPoint_MouseMove);
- this.chart1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.chartPoint_MouseUp);
- //
- // lblOutSlider
- //
- this.lblOutSlider.AutoSize = true;
- this.lblOutSlider.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblOutSlider.Location = new System.Drawing.Point(174, 34);
- this.lblOutSlider.Name = "lblOutSlider";
- this.lblOutSlider.Size = new System.Drawing.Size(34, 15);
- this.lblOutSlider.TabIndex = 13;
- this.lblOutSlider.Text = "0.000";
- //
- // lblOutExponent
- //
- this.lblOutExponent.AutoSize = true;
- this.lblOutExponent.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblOutExponent.Location = new System.Drawing.Point(112, 110);
- this.lblOutExponent.Name = "lblOutExponent";
- this.lblOutExponent.Size = new System.Drawing.Size(34, 15);
- this.lblOutExponent.TabIndex = 9;
- this.lblOutExponent.Text = "0.000";
- //
- // tbSlider
- //
- this.tbSlider.Location = new System.Drawing.Point(3, 21);
- this.tbSlider.Maximum = 40;
- this.tbSlider.Name = "tbSlider";
- this.tbSlider.Size = new System.Drawing.Size(165, 45);
- this.tbSlider.TabIndex = 0;
- this.tbSlider.TickFrequency = 5;
- this.tbSlider.TickStyle = System.Windows.Forms.TickStyle.Both;
- this.tbSlider.ValueChanged += new System.EventHandler(this.tbSlider_ValueChanged);
- //
- // flowLayoutPanel1
- //
- this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.panel6.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.panel6.Controls.Add(this.btZeroCoords);
+ this.panel6.Controls.Add(this.rbPtDeadzone);
+ this.panel6.Controls.Add(this.lblGraphSaturation);
+ this.panel6.Controls.Add(this.lblGraphDeadzone);
+ this.panel6.Controls.Add(this.lblNodetext);
+ this.panel6.Controls.Add(this.label12);
+ this.panel6.Controls.Add(this.cbRuse);
+ this.panel6.Controls.Add(this.cbPuse);
+ this.panel6.Controls.Add(this.cbYuse);
+ this.panel6.Controls.Add(this.label11);
+ this.panel6.Controls.Add(this.label10);
+ this.panel6.Controls.Add(this.lblROutput);
+ this.panel6.Controls.Add(this.lblRInput);
+ this.panel6.Controls.Add(this.lblPOutput);
+ this.panel6.Controls.Add(this.lblPInput);
+ this.panel6.Controls.Add(this.lblLiveRoll);
+ this.panel6.Controls.Add(this.lblLivePitch);
+ this.panel6.Controls.Add(this.btCopyToAllAxis);
+ this.panel6.Controls.Add(this.lblLiveYaw);
+ this.panel6.Controls.Add(this.label4);
+ this.panel6.Controls.Add(this.lblYOutput);
+ this.panel6.Controls.Add(this.lblYInput);
+ this.panel6.Controls.Add(this.rbPtExponent);
+ this.panel6.Controls.Add(this.rbPtSaturation);
+ this.panel6.Controls.Add(this.rbPt3);
+ this.panel6.Controls.Add(this.rbPt2);
+ this.panel6.Controls.Add(this.rbPt1);
+ this.panel6.Controls.Add(this.label33);
+ this.panel6.Controls.Add(this.label32);
+ this.panel6.Controls.Add(this.lblOut3);
+ this.panel6.Controls.Add(this.lblIn3);
+ this.panel6.Controls.Add(this.lblOut2);
+ this.panel6.Controls.Add(this.lblIn2);
+ this.panel6.Controls.Add(this.lblOut1);
+ this.panel6.Controls.Add(this.lblIn1);
+ this.panel6.Controls.Add(this.chart1);
+ this.panel6.Controls.Add(this.lblOutSlider);
+ this.panel6.Controls.Add(this.lblOutExponent);
+ this.panel6.Controls.Add(this.tbSlider);
+ this.panel6.Location = new System.Drawing.Point(3, 3);
+ this.panel6.Name = "panel6";
+ this.tableLayoutPanel1.SetRowSpan(this.panel6, 4);
+ this.panel6.Size = new System.Drawing.Size(579, 288);
+ this.panel6.TabIndex = 5;
+ //
+ // rbPtDeadzone
+ //
+ this.rbPtDeadzone.AutoSize = true;
+ this.rbPtDeadzone.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbPtDeadzone.Location = new System.Drawing.Point(14, 72);
+ this.rbPtDeadzone.Name = "rbPtDeadzone";
+ this.rbPtDeadzone.Size = new System.Drawing.Size(81, 19);
+ this.rbPtDeadzone.TabIndex = 54;
+ this.rbPtDeadzone.Text = "Deadzone";
+ this.rbPtDeadzone.UseVisualStyleBackColor = true;
+ this.rbPtDeadzone.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
+ //
+ // lblGraphSaturation
+ //
+ this.lblGraphSaturation.AutoSize = true;
+ this.lblGraphSaturation.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblGraphSaturation.Location = new System.Drawing.Point(531, 266);
+ this.lblGraphSaturation.Name = "lblGraphSaturation";
+ this.lblGraphSaturation.Size = new System.Drawing.Size(34, 15);
+ this.lblGraphSaturation.TabIndex = 53;
+ this.lblGraphSaturation.Text = "0.000";
+ //
+ // lblGraphDeadzone
+ //
+ this.lblGraphDeadzone.AutoSize = true;
+ this.lblGraphDeadzone.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblGraphDeadzone.Location = new System.Drawing.Point(252, 266);
+ this.lblGraphDeadzone.Name = "lblGraphDeadzone";
+ this.lblGraphDeadzone.Size = new System.Drawing.Size(34, 15);
+ this.lblGraphDeadzone.TabIndex = 52;
+ this.lblGraphDeadzone.Text = "0.000";
+ //
+ // lblNodetext
+ //
+ this.lblNodetext.AutoSize = true;
+ this.lblNodetext.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblNodetext.Location = new System.Drawing.Point(11, 3);
+ this.lblNodetext.Name = "lblNodetext";
+ this.lblNodetext.Size = new System.Drawing.Size(16, 13);
+ this.lblNodetext.TabIndex = 51;
+ this.lblNodetext.Text = "...";
+ //
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label12.Location = new System.Drawing.Point(198, 233);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(16, 45);
+ this.label12.TabIndex = 50;
+ this.label12.Text = "O\r\nF\r\nF\r\n";
+ //
+ // cbRuse
+ //
+ this.cbRuse.AutoSize = true;
+ this.cbRuse.Location = new System.Drawing.Point(182, 268);
+ this.cbRuse.Name = "cbRuse";
+ this.cbRuse.Size = new System.Drawing.Size(15, 14);
+ this.cbRuse.TabIndex = 49;
+ this.cbRuse.UseVisualStyleBackColor = true;
+ //
+ // cbPuse
+ //
+ this.cbPuse.AutoSize = true;
+ this.cbPuse.Location = new System.Drawing.Point(182, 249);
+ this.cbPuse.Name = "cbPuse";
+ this.cbPuse.Size = new System.Drawing.Size(15, 14);
+ this.cbPuse.TabIndex = 48;
+ this.cbPuse.UseVisualStyleBackColor = true;
+ //
+ // cbYuse
+ //
+ this.cbYuse.AutoSize = true;
+ this.cbYuse.Location = new System.Drawing.Point(182, 229);
+ this.cbYuse.Name = "cbYuse";
+ this.cbYuse.Size = new System.Drawing.Size(15, 14);
+ this.cbYuse.TabIndex = 47;
+ this.cbYuse.UseVisualStyleBackColor = true;
+ //
+ // label11
+ //
+ this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.label11.Location = new System.Drawing.Point(5, 216);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(246, 3);
+ this.label11.TabIndex = 46;
+ this.label11.Text = " sd";
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label10.Location = new System.Drawing.Point(15, 225);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(13, 60);
+ this.label10.TabIndex = 45;
+ this.label10.Text = "L\r\ni\r\nv\r\ne";
+ //
+ // lblROutput
+ //
+ this.lblROutput.AutoSize = true;
+ this.lblROutput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblROutput.Location = new System.Drawing.Point(142, 266);
+ this.lblROutput.Name = "lblROutput";
+ this.lblROutput.Size = new System.Drawing.Size(34, 15);
+ this.lblROutput.TabIndex = 44;
+ this.lblROutput.Text = "0.000";
+ //
+ // lblRInput
+ //
+ this.lblRInput.AutoSize = true;
+ this.lblRInput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblRInput.Location = new System.Drawing.Point(89, 266);
+ this.lblRInput.Name = "lblRInput";
+ this.lblRInput.Size = new System.Drawing.Size(34, 15);
+ this.lblRInput.TabIndex = 43;
+ this.lblRInput.Text = "0.000";
+ //
+ // lblPOutput
+ //
+ this.lblPOutput.AutoSize = true;
+ this.lblPOutput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblPOutput.Location = new System.Drawing.Point(142, 247);
+ this.lblPOutput.Name = "lblPOutput";
+ this.lblPOutput.Size = new System.Drawing.Size(34, 15);
+ this.lblPOutput.TabIndex = 42;
+ this.lblPOutput.Text = "0.000";
+ //
+ // lblPInput
+ //
+ this.lblPInput.AutoSize = true;
+ this.lblPInput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblPInput.Location = new System.Drawing.Point(89, 247);
+ this.lblPInput.Name = "lblPInput";
+ this.lblPInput.Size = new System.Drawing.Size(34, 15);
+ this.lblPInput.TabIndex = 41;
+ this.lblPInput.Text = "0.000";
+ //
+ // lblLiveRoll
+ //
+ this.lblLiveRoll.AutoSize = true;
+ this.lblLiveRoll.BackColor = System.Drawing.Color.LightGreen;
+ this.lblLiveRoll.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblLiveRoll.Location = new System.Drawing.Point(32, 266);
+ this.lblLiveRoll.Name = "lblLiveRoll";
+ this.lblLiveRoll.Size = new System.Drawing.Size(46, 15);
+ this.lblLiveRoll.TabIndex = 40;
+ this.lblLiveRoll.Text = "R-Axis:";
+ //
+ // lblLivePitch
+ //
+ this.lblLivePitch.AutoSize = true;
+ this.lblLivePitch.BackColor = System.Drawing.Color.Salmon;
+ this.lblLivePitch.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblLivePitch.Location = new System.Drawing.Point(32, 247);
+ this.lblLivePitch.Name = "lblLivePitch";
+ this.lblLivePitch.Size = new System.Drawing.Size(45, 15);
+ this.lblLivePitch.TabIndex = 39;
+ this.lblLivePitch.Text = "P-Axis:";
+ //
+ // btCopyToAllAxis
+ //
+ this.btCopyToAllAxis.Location = new System.Drawing.Point(192, 159);
+ this.btCopyToAllAxis.Name = "btCopyToAllAxis";
+ this.btCopyToAllAxis.Size = new System.Drawing.Size(57, 44);
+ this.btCopyToAllAxis.TabIndex = 38;
+ this.btCopyToAllAxis.Text = "Copy to all axis";
+ this.btCopyToAllAxis.UseVisualStyleBackColor = true;
+ this.btCopyToAllAxis.Click += new System.EventHandler(this.btCopyToAllAxis_Click);
+ //
+ // lblLiveYaw
+ //
+ this.lblLiveYaw.AutoSize = true;
+ this.lblLiveYaw.BackColor = System.Drawing.Color.PowderBlue;
+ this.lblLiveYaw.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblLiveYaw.Location = new System.Drawing.Point(32, 228);
+ this.lblLiveYaw.Name = "lblLiveYaw";
+ this.lblLiveYaw.Size = new System.Drawing.Size(45, 15);
+ this.lblLiveYaw.TabIndex = 37;
+ this.lblLiveYaw.Text = "Y-Axis:";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(310, 272);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(193, 13);
+ this.label4.TabIndex = 36;
+ this.label4.Text = "Select an option then click and drag";
+ //
+ // lblYOutput
+ //
+ this.lblYOutput.AutoSize = true;
+ this.lblYOutput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblYOutput.Location = new System.Drawing.Point(142, 228);
+ this.lblYOutput.Name = "lblYOutput";
+ this.lblYOutput.Size = new System.Drawing.Size(34, 15);
+ this.lblYOutput.TabIndex = 35;
+ this.lblYOutput.Text = "0.000";
+ //
+ // lblYInput
+ //
+ this.lblYInput.AutoSize = true;
+ this.lblYInput.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblYInput.Location = new System.Drawing.Point(89, 228);
+ this.lblYInput.Name = "lblYInput";
+ this.lblYInput.Size = new System.Drawing.Size(34, 15);
+ this.lblYInput.TabIndex = 34;
+ this.lblYInput.Text = "0.000";
+ //
+ // rbPtExponent
+ //
+ this.rbPtExponent.AutoSize = true;
+ this.rbPtExponent.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbPtExponent.Location = new System.Drawing.Point(14, 108);
+ this.rbPtExponent.Name = "rbPtExponent";
+ this.rbPtExponent.Size = new System.Drawing.Size(81, 19);
+ this.rbPtExponent.TabIndex = 33;
+ this.rbPtExponent.Text = "Exponent:";
+ this.rbPtExponent.UseVisualStyleBackColor = true;
+ this.rbPtExponent.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
+ //
+ // rbPtSaturation
+ //
+ this.rbPtSaturation.AutoSize = true;
+ this.rbPtSaturation.Checked = true;
+ this.rbPtSaturation.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbPtSaturation.Location = new System.Drawing.Point(101, 72);
+ this.rbPtSaturation.Name = "rbPtSaturation";
+ this.rbPtSaturation.Size = new System.Drawing.Size(83, 19);
+ this.rbPtSaturation.TabIndex = 32;
+ this.rbPtSaturation.TabStop = true;
+ this.rbPtSaturation.Text = "Saturation";
+ this.rbPtSaturation.UseVisualStyleBackColor = true;
+ this.rbPtSaturation.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
+ //
+ // rbPt3
+ //
+ this.rbPt3.AutoSize = true;
+ this.rbPt3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbPt3.Location = new System.Drawing.Point(14, 194);
+ this.rbPt3.Name = "rbPt3";
+ this.rbPt3.Size = new System.Drawing.Size(67, 19);
+ this.rbPt3.TabIndex = 31;
+ this.rbPt3.Text = "Point 3:";
+ this.rbPt3.UseVisualStyleBackColor = true;
+ this.rbPt3.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
+ //
+ // rbPt2
+ //
+ this.rbPt2.AutoSize = true;
+ this.rbPt2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbPt2.Location = new System.Drawing.Point(14, 171);
+ this.rbPt2.Name = "rbPt2";
+ this.rbPt2.Size = new System.Drawing.Size(67, 19);
+ this.rbPt2.TabIndex = 30;
+ this.rbPt2.Text = "Point 2:";
+ this.rbPt2.UseVisualStyleBackColor = true;
+ this.rbPt2.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
+ //
+ // rbPt1
+ //
+ this.rbPt1.AutoSize = true;
+ this.rbPt1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbPt1.Location = new System.Drawing.Point(14, 148);
+ this.rbPt1.Name = "rbPt1";
+ this.rbPt1.Size = new System.Drawing.Size(67, 19);
+ this.rbPt1.TabIndex = 29;
+ this.rbPt1.Text = "Point 1:";
+ this.rbPt1.UseVisualStyleBackColor = true;
+ this.rbPt1.CheckedChanged += new System.EventHandler(this.rbPtAny_CheckedChanged);
+ //
+ // label33
+ //
+ this.label33.AutoSize = true;
+ this.label33.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label33.Location = new System.Drawing.Point(135, 130);
+ this.label33.Name = "label33";
+ this.label33.Size = new System.Drawing.Size(46, 15);
+ this.label33.TabIndex = 28;
+ this.label33.Text = "OUT(y)";
+ //
+ // label32
+ //
+ this.label32.AutoSize = true;
+ this.label32.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label32.Location = new System.Drawing.Point(89, 130);
+ this.label32.Name = "label32";
+ this.label32.Size = new System.Drawing.Size(35, 15);
+ this.label32.TabIndex = 27;
+ this.label32.Text = "IN(x)";
+ //
+ // lblOut3
+ //
+ this.lblOut3.AutoSize = true;
+ this.lblOut3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblOut3.Location = new System.Drawing.Point(142, 196);
+ this.lblOut3.Name = "lblOut3";
+ this.lblOut3.Size = new System.Drawing.Size(28, 15);
+ this.lblOut3.TabIndex = 23;
+ this.lblOut3.Text = "0.75";
+ //
+ // lblIn3
+ //
+ this.lblIn3.AutoSize = true;
+ this.lblIn3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblIn3.Location = new System.Drawing.Point(89, 196);
+ this.lblIn3.Name = "lblIn3";
+ this.lblIn3.Size = new System.Drawing.Size(28, 15);
+ this.lblIn3.TabIndex = 22;
+ this.lblIn3.Text = "0.75";
+ //
+ // lblOut2
+ //
+ this.lblOut2.AutoSize = true;
+ this.lblOut2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblOut2.Location = new System.Drawing.Point(142, 173);
+ this.lblOut2.Name = "lblOut2";
+ this.lblOut2.Size = new System.Drawing.Size(22, 15);
+ this.lblOut2.TabIndex = 21;
+ this.lblOut2.Text = "0.5";
+ //
+ // lblIn2
+ //
+ this.lblIn2.AutoSize = true;
+ this.lblIn2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblIn2.Location = new System.Drawing.Point(89, 173);
+ this.lblIn2.Name = "lblIn2";
+ this.lblIn2.Size = new System.Drawing.Size(22, 15);
+ this.lblIn2.TabIndex = 20;
+ this.lblIn2.Text = "0.5";
+ //
+ // lblOut1
+ //
+ this.lblOut1.AutoSize = true;
+ this.lblOut1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblOut1.Location = new System.Drawing.Point(142, 150);
+ this.lblOut1.Name = "lblOut1";
+ this.lblOut1.Size = new System.Drawing.Size(28, 15);
+ this.lblOut1.TabIndex = 19;
+ this.lblOut1.Text = "0.25";
+ //
+ // lblIn1
+ //
+ this.lblIn1.AutoSize = true;
+ this.lblIn1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblIn1.Location = new System.Drawing.Point(89, 150);
+ this.lblIn1.Name = "lblIn1";
+ this.lblIn1.Size = new System.Drawing.Size(28, 15);
+ this.lblIn1.TabIndex = 18;
+ this.lblIn1.Text = "0.25";
+ //
+ // chart1
+ //
+ chartArea1.AxisX.Crossing = -1.7976931348623157E+308D;
+ chartArea1.AxisX.IsMarginVisible = false;
+ chartArea1.AxisX.LabelStyle.Enabled = false;
+ chartArea1.AxisX.MajorGrid.Interval = 0.2D;
+ chartArea1.AxisX.MajorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
+ chartArea1.AxisX.MajorTickMark.Interval = 0.2D;
+ chartArea1.AxisX.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
+ chartArea1.AxisX.Maximum = 1D;
+ chartArea1.AxisX.Minimum = 0D;
+ chartArea1.AxisX.MinorGrid.Interval = 0.1D;
+ chartArea1.AxisX.MinorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
+ chartArea1.AxisX.MinorTickMark.Interval = 0.1D;
+ chartArea1.AxisX.MinorTickMark.IntervalOffsetType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
+ chartArea1.AxisY.Crossing = -1.7976931348623157E+308D;
+ chartArea1.AxisY.Interval = 5D;
+ chartArea1.AxisY.IsMarginVisible = false;
+ chartArea1.AxisY.LabelStyle.Enabled = false;
+ chartArea1.AxisY.MajorGrid.Interval = 0.2D;
+ chartArea1.AxisY.MajorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
+ chartArea1.AxisY.MajorTickMark.Interval = 0.2D;
+ chartArea1.AxisY.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
+ chartArea1.AxisY.Maximum = 1D;
+ chartArea1.AxisY.Minimum = 0D;
+ chartArea1.Name = "ChartArea1";
+ this.chart1.ChartAreas.Add(chartArea1);
+ this.chart1.Location = new System.Drawing.Point(258, 7);
+ this.chart1.Name = "chart1";
+ series1.ChartArea = "ChartArea1";
+ series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
+ series1.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
+ series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
+ series1.Name = "Series1";
+ this.chart1.Series.Add(series1);
+ this.chart1.Size = new System.Drawing.Size(301, 262);
+ this.chart1.TabIndex = 16;
+ this.chart1.Text = "chart1";
+ this.chart1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.chartPoint_MouseDown);
+ this.chart1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.chartPoint_MouseMove);
+ this.chart1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.chartPoint_MouseUp);
+ //
+ // lblOutSlider
+ //
+ this.lblOutSlider.AutoSize = true;
+ this.lblOutSlider.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblOutSlider.Location = new System.Drawing.Point(174, 34);
+ this.lblOutSlider.Name = "lblOutSlider";
+ this.lblOutSlider.Size = new System.Drawing.Size(34, 15);
+ this.lblOutSlider.TabIndex = 13;
+ this.lblOutSlider.Text = "0.000";
+ //
+ // lblOutExponent
+ //
+ this.lblOutExponent.AutoSize = true;
+ this.lblOutExponent.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblOutExponent.Location = new System.Drawing.Point(112, 110);
+ this.lblOutExponent.Name = "lblOutExponent";
+ this.lblOutExponent.Size = new System.Drawing.Size(34, 15);
+ this.lblOutExponent.TabIndex = 9;
+ this.lblOutExponent.Text = "0.000";
+ //
+ // tbSlider
+ //
+ this.tbSlider.Location = new System.Drawing.Point(3, 21);
+ this.tbSlider.Maximum = 40;
+ this.tbSlider.Name = "tbSlider";
+ this.tbSlider.Size = new System.Drawing.Size(165, 45);
+ this.tbSlider.TabIndex = 0;
+ this.tbSlider.TickFrequency = 5;
+ this.tbSlider.TickStyle = System.Windows.Forms.TickStyle.Both;
+ this.tbSlider.ValueChanged += new System.EventHandler(this.tbSlider_ValueChanged);
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.flowLayoutPanel1.Controls.Add(this.rb300);
- this.flowLayoutPanel1.Controls.Add(this.rbHornet);
- this.flowLayoutPanel1.Controls.Add(this.rbAurora);
- this.flowLayoutPanel1.Location = new System.Drawing.Point(624, 123);
- this.flowLayoutPanel1.Name = "flowLayoutPanel1";
- this.flowLayoutPanel1.Size = new System.Drawing.Size(401, 55);
- this.flowLayoutPanel1.TabIndex = 3;
- //
- // rb300
- //
- this.rb300.AutoSize = true;
- this.rb300.Checked = true;
- this.rb300.Image = global::SCJMapper_V2.Properties.Resources._300i1;
- this.rb300.Location = new System.Drawing.Point(3, 3);
- this.rb300.Name = "rb300";
- this.rb300.Size = new System.Drawing.Size(114, 48);
- this.rb300.TabIndex = 2;
- this.rb300.TabStop = true;
- this.rb300.UseVisualStyleBackColor = true;
- this.rb300.CheckedChanged += new System.EventHandler(this.rb300i_CheckedChanged);
- //
- // rbHornet
- //
- this.rbHornet.AutoSize = true;
- this.rbHornet.Image = global::SCJMapper_V2.Properties.Resources.hornet;
- this.rbHornet.Location = new System.Drawing.Point(123, 3);
- this.rbHornet.Name = "rbHornet";
- this.rbHornet.Size = new System.Drawing.Size(114, 50);
- this.rbHornet.TabIndex = 0;
- this.rbHornet.UseVisualStyleBackColor = true;
- this.rbHornet.CheckedChanged += new System.EventHandler(this.rbHornet_CheckedChanged);
- //
- // rbAurora
- //
- this.rbAurora.AutoSize = true;
- this.rbAurora.Image = global::SCJMapper_V2.Properties.Resources.aurora;
- this.rbAurora.Location = new System.Drawing.Point(243, 3);
- this.rbAurora.Name = "rbAurora";
- this.rbAurora.Size = new System.Drawing.Size(114, 50);
- this.rbAurora.TabIndex = 1;
- this.rbAurora.UseVisualStyleBackColor = true;
- this.rbAurora.CheckedChanged += new System.EventHandler(this.rbAurora_CheckedChanged);
- //
- // tableLayoutPanel3
- //
- this.tableLayoutPanel3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.tableLayoutPanel3.ColumnCount = 2;
- this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 68.66029F));
- this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 31.33971F));
- this.tableLayoutPanel3.Controls.Add(this.btDone, 1, 0);
- this.tableLayoutPanel3.Controls.Add(this.panel8, 0, 0);
- this.tableLayoutPanel3.Location = new System.Drawing.Point(607, 184);
- this.tableLayoutPanel3.Name = "tableLayoutPanel3";
- this.tableLayoutPanel3.RowCount = 1;
- this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
- this.tableLayoutPanel3.Size = new System.Drawing.Size(418, 107);
- this.tableLayoutPanel3.TabIndex = 6;
- //
- // btDone
- //
- this.btDone.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.flowLayoutPanel1.Controls.Add(this.rb300);
+ this.flowLayoutPanel1.Controls.Add(this.rbHornet);
+ this.flowLayoutPanel1.Controls.Add(this.rbAurora);
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(624, 123);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(401, 55);
+ this.flowLayoutPanel1.TabIndex = 3;
+ //
+ // rb300
+ //
+ this.rb300.AutoSize = true;
+ this.rb300.Checked = true;
+ this.rb300.Image = global::SCJMapper_V2.Properties.Resources._300i1;
+ this.rb300.Location = new System.Drawing.Point(3, 3);
+ this.rb300.Name = "rb300";
+ this.rb300.Size = new System.Drawing.Size(114, 48);
+ this.rb300.TabIndex = 2;
+ this.rb300.TabStop = true;
+ this.rb300.UseVisualStyleBackColor = true;
+ this.rb300.CheckedChanged += new System.EventHandler(this.rb300i_CheckedChanged);
+ //
+ // rbHornet
+ //
+ this.rbHornet.AutoSize = true;
+ this.rbHornet.Image = global::SCJMapper_V2.Properties.Resources.hornet;
+ this.rbHornet.Location = new System.Drawing.Point(123, 3);
+ this.rbHornet.Name = "rbHornet";
+ this.rbHornet.Size = new System.Drawing.Size(114, 50);
+ this.rbHornet.TabIndex = 0;
+ this.rbHornet.UseVisualStyleBackColor = true;
+ this.rbHornet.CheckedChanged += new System.EventHandler(this.rbHornet_CheckedChanged);
+ //
+ // rbAurora
+ //
+ this.rbAurora.AutoSize = true;
+ this.rbAurora.Image = global::SCJMapper_V2.Properties.Resources.aurora;
+ this.rbAurora.Location = new System.Drawing.Point(243, 3);
+ this.rbAurora.Name = "rbAurora";
+ this.rbAurora.Size = new System.Drawing.Size(114, 50);
+ this.rbAurora.TabIndex = 1;
+ this.rbAurora.UseVisualStyleBackColor = true;
+ this.rbAurora.CheckedChanged += new System.EventHandler(this.rbAurora_CheckedChanged);
+ //
+ // tableLayoutPanel3
+ //
+ this.tableLayoutPanel3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.tableLayoutPanel3.ColumnCount = 2;
+ this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 68.66029F));
+ this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 31.33971F));
+ this.tableLayoutPanel3.Controls.Add(this.btDone, 1, 0);
+ this.tableLayoutPanel3.Controls.Add(this.panel8, 0, 0);
+ this.tableLayoutPanel3.Location = new System.Drawing.Point(607, 184);
+ this.tableLayoutPanel3.Name = "tableLayoutPanel3";
+ this.tableLayoutPanel3.RowCount = 1;
+ this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel3.Size = new System.Drawing.Size(418, 107);
+ this.tableLayoutPanel3.TabIndex = 6;
+ //
+ // btDone
+ //
+ this.btDone.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.btDone.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.btDone.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btDone.Location = new System.Drawing.Point(290, 3);
- this.btDone.Name = "btDone";
- this.btDone.Size = new System.Drawing.Size(125, 101);
- this.btDone.TabIndex = 28;
- this.btDone.Text = "Done";
- this.btDone.UseVisualStyleBackColor = true;
- this.btDone.Click += new System.EventHandler(this.btDone_Click);
- //
- // panel8
- //
- this.panel8.Controls.Add(this.rbArea18);
- this.panel8.Controls.Add(this.rbDemien);
- this.panel8.Controls.Add(this.rbBrokenMoon);
- this.panel8.Controls.Add(this.rbDyingStar);
- this.panel8.Controls.Add(this.rbSunset);
- this.panel8.Controls.Add(this.rbOutThere3);
- this.panel8.Controls.Add(this.rbSkybox);
- this.panel8.Controls.Add(this.rbOutThere1);
- this.panel8.Controls.Add(this.rbBigSight);
- this.panel8.Controls.Add(this.rbHighway);
- this.panel8.Controls.Add(this.rbHelipad);
- this.panel8.Controls.Add(this.rbShiodome);
- this.panel8.Controls.Add(this.rbCanyon);
- this.panel8.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panel8.Location = new System.Drawing.Point(3, 3);
- this.panel8.Name = "panel8";
- this.panel8.Size = new System.Drawing.Size(281, 101);
- this.panel8.TabIndex = 4;
- //
- // rbArea18
- //
- this.rbArea18.AutoSize = true;
- this.rbArea18.Location = new System.Drawing.Point(27, 20);
- this.rbArea18.Name = "rbArea18";
- this.rbArea18.Size = new System.Drawing.Size(63, 17);
- this.rbArea18.TabIndex = 12;
- this.rbArea18.Text = "Area 18";
- this.rbArea18.UseVisualStyleBackColor = true;
- this.rbArea18.CheckedChanged += new System.EventHandler(this.rbArea18_CheckedChanged);
- //
- // rbDemien
- //
- this.rbDemien.AutoSize = true;
- this.rbDemien.Location = new System.Drawing.Point(200, 20);
- this.rbDemien.Name = "rbDemien";
- this.rbDemien.Size = new System.Drawing.Size(64, 17);
- this.rbDemien.TabIndex = 11;
- this.rbDemien.Text = "Demien";
- this.rbDemien.UseVisualStyleBackColor = true;
- this.rbDemien.CheckedChanged += new System.EventHandler(this.rbKareah_CheckedChanged);
- //
- // rbBrokenMoon
- //
- this.rbBrokenMoon.AutoSize = true;
- this.rbBrokenMoon.Checked = true;
- this.rbBrokenMoon.Location = new System.Drawing.Point(27, 3);
- this.rbBrokenMoon.Name = "rbBrokenMoon";
- this.rbBrokenMoon.Size = new System.Drawing.Size(96, 17);
- this.rbBrokenMoon.TabIndex = 9;
- this.rbBrokenMoon.TabStop = true;
- this.rbBrokenMoon.Text = "Broken Moon";
- this.rbBrokenMoon.UseVisualStyleBackColor = true;
- this.rbBrokenMoon.CheckedChanged += new System.EventHandler(this.rbBrokenMoon_CheckedChanged);
- //
- // rbDyingStar
- //
- this.rbDyingStar.AutoSize = true;
- this.rbDyingStar.Location = new System.Drawing.Point(200, 3);
- this.rbDyingStar.Name = "rbDyingStar";
- this.rbDyingStar.Size = new System.Drawing.Size(78, 17);
- this.rbDyingStar.TabIndex = 8;
- this.rbDyingStar.Text = "Dying Star";
- this.rbDyingStar.UseVisualStyleBackColor = true;
- this.rbDyingStar.CheckedChanged += new System.EventHandler(this.rbDyingStar_CheckedChanged);
- //
- // rbSunset
- //
- this.rbSunset.AutoSize = true;
- this.rbSunset.Location = new System.Drawing.Point(27, 71);
- this.rbSunset.Name = "rbSunset";
- this.rbSunset.Size = new System.Drawing.Size(60, 17);
- this.rbSunset.TabIndex = 7;
- this.rbSunset.Text = "Sunset";
- this.rbSunset.UseVisualStyleBackColor = true;
- this.rbSunset.CheckedChanged += new System.EventHandler(this.rbSunset_CheckedChanged);
- //
- // rbOutThere3
- //
- this.rbOutThere3.AutoSize = true;
- this.rbOutThere3.Location = new System.Drawing.Point(27, 54);
- this.rbOutThere3.Name = "rbOutThere3";
- this.rbOutThere3.Size = new System.Drawing.Size(84, 17);
- this.rbOutThere3.TabIndex = 6;
- this.rbOutThere3.Text = "Out there 3";
- this.rbOutThere3.UseVisualStyleBackColor = true;
- this.rbOutThere3.CheckedChanged += new System.EventHandler(this.rbOutThere3_CheckedChanged);
- //
- // rbSkybox
- //
- this.rbSkybox.AutoSize = true;
- this.rbSkybox.Location = new System.Drawing.Point(200, 71);
- this.rbSkybox.Name = "rbSkybox";
- this.rbSkybox.Size = new System.Drawing.Size(83, 17);
- this.rbSkybox.TabIndex = 5;
- this.rbSkybox.Text = "Skybox.dds";
- this.rbSkybox.UseVisualStyleBackColor = true;
- this.rbSkybox.CheckedChanged += new System.EventHandler(this.rbSkybox_CheckedChanged);
- //
- // rbOutThere1
- //
- this.rbOutThere1.AutoSize = true;
- this.rbOutThere1.Location = new System.Drawing.Point(27, 37);
- this.rbOutThere1.Name = "rbOutThere1";
- this.rbOutThere1.Size = new System.Drawing.Size(84, 17);
- this.rbOutThere1.TabIndex = 4;
- this.rbOutThere1.Text = "Out there 1";
- this.rbOutThere1.UseVisualStyleBackColor = true;
- this.rbOutThere1.CheckedChanged += new System.EventHandler(this.rbOutThere1_CheckedChanged);
- //
- // rbBigSight
- //
- this.rbBigSight.AutoSize = true;
- this.rbBigSight.Location = new System.Drawing.Point(200, 54);
- this.rbBigSight.Name = "rbBigSight";
- this.rbBigSight.Size = new System.Drawing.Size(72, 17);
- this.rbBigSight.TabIndex = 3;
- this.rbBigSight.Text = "Big Sight";
- this.rbBigSight.UseVisualStyleBackColor = true;
- this.rbBigSight.CheckedChanged += new System.EventHandler(this.rbBigSight_CheckedChanged);
- //
- // rbHighway
- //
- this.rbHighway.AutoSize = true;
- this.rbHighway.Location = new System.Drawing.Point(200, 37);
- this.rbHighway.Name = "rbHighway";
- this.rbHighway.Size = new System.Drawing.Size(70, 17);
- this.rbHighway.TabIndex = 2;
- this.rbHighway.Text = "Highway";
- this.rbHighway.UseVisualStyleBackColor = true;
- this.rbHighway.CheckedChanged += new System.EventHandler(this.rbHighway_CheckedChanged);
- //
- // rbHelipad
- //
- this.rbHelipad.AutoSize = true;
- this.rbHelipad.Location = new System.Drawing.Point(117, 71);
- this.rbHelipad.Name = "rbHelipad";
- this.rbHelipad.Size = new System.Drawing.Size(80, 17);
- this.rbHelipad.TabIndex = 1;
- this.rbHelipad.Text = "LA Helipad";
- this.rbHelipad.UseVisualStyleBackColor = true;
- this.rbHelipad.CheckedChanged += new System.EventHandler(this.rbHelipad_CheckedChanged);
- //
- // rbShiodome
- //
- this.rbShiodome.AutoSize = true;
- this.rbShiodome.Location = new System.Drawing.Point(117, 54);
- this.rbShiodome.Name = "rbShiodome";
- this.rbShiodome.Size = new System.Drawing.Size(77, 17);
- this.rbShiodome.TabIndex = 1;
- this.rbShiodome.Text = "Shiodome";
- this.rbShiodome.UseVisualStyleBackColor = true;
- this.rbShiodome.CheckedChanged += new System.EventHandler(this.rbShiodome_CheckedChanged);
- //
- // rbCanyon
- //
- this.rbCanyon.AutoSize = true;
- this.rbCanyon.Location = new System.Drawing.Point(117, 37);
- this.rbCanyon.Name = "rbCanyon";
- this.rbCanyon.Size = new System.Drawing.Size(64, 17);
- this.rbCanyon.TabIndex = 0;
- this.rbCanyon.Text = "Canyon";
- this.rbCanyon.UseVisualStyleBackColor = true;
- this.rbCanyon.CheckedChanged += new System.EventHandler(this.rbCanyon_CheckedChanged);
- //
- // flowLayoutPanel2
- //
- this.flowLayoutPanel2.Controls.Add(this.pnlAxisSelector);
- this.flowLayoutPanel2.Controls.Add(this.panel10);
- this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.flowLayoutPanel2.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
- this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 619);
- this.flowLayoutPanel2.Name = "flowLayoutPanel2";
- this.flowLayoutPanel2.Size = new System.Drawing.Size(144, 294);
- this.flowLayoutPanel2.TabIndex = 3;
- //
- // pnlAxisSelector
- //
- this.pnlAxisSelector.BackColor = System.Drawing.Color.Gold;
- this.pnlAxisSelector.Controls.Add(this.rbP);
- this.pnlAxisSelector.Controls.Add(this.rbY);
- this.pnlAxisSelector.Controls.Add(this.rbR);
- this.pnlAxisSelector.Location = new System.Drawing.Point(0, 0);
- this.pnlAxisSelector.Margin = new System.Windows.Forms.Padding(0);
- this.pnlAxisSelector.Name = "pnlAxisSelector";
- this.pnlAxisSelector.Size = new System.Drawing.Size(144, 157);
- this.pnlAxisSelector.TabIndex = 3;
- //
- // rbP
- //
- this.rbP.BackColor = System.Drawing.Color.Salmon;
- this.rbP.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbP.Location = new System.Drawing.Point(14, 58);
- this.rbP.Name = "rbP";
- this.rbP.Size = new System.Drawing.Size(111, 42);
- this.rbP.TabIndex = 6;
- this.rbP.Text = "Pitch -->";
- this.rbP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.rbP.UseVisualStyleBackColor = false;
- this.rbP.CheckedChanged += new System.EventHandler(this.rbP_CheckedChanged);
- //
- // rbY
- //
- this.rbY.BackColor = System.Drawing.Color.PowderBlue;
- this.rbY.Checked = true;
- this.rbY.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbY.Location = new System.Drawing.Point(15, 10);
- this.rbY.Name = "rbY";
- this.rbY.Size = new System.Drawing.Size(111, 42);
- this.rbY.TabIndex = 5;
- this.rbY.TabStop = true;
- this.rbY.Text = "Yaw -->";
- this.rbY.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.rbY.UseVisualStyleBackColor = false;
- this.rbY.CheckedChanged += new System.EventHandler(this.rbY_CheckedChanged);
- //
- // rbR
- //
- this.rbR.BackColor = System.Drawing.Color.LightGreen;
- this.rbR.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbR.Location = new System.Drawing.Point(15, 106);
- this.rbR.Name = "rbR";
- this.rbR.Size = new System.Drawing.Size(111, 42);
- this.rbR.TabIndex = 7;
- this.rbR.Text = "Roll -->";
- this.rbR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.rbR.UseVisualStyleBackColor = false;
- this.rbR.CheckedChanged += new System.EventHandler(this.rbR_CheckedChanged);
- //
- // panel10
- //
- this.panel10.Controls.Add(this.rbTuneStrafe);
- this.panel10.Controls.Add(this.rbTuneYPR);
- this.panel10.Location = new System.Drawing.Point(3, 160);
- this.panel10.Name = "panel10";
- this.panel10.Size = new System.Drawing.Size(138, 128);
- this.panel10.TabIndex = 4;
- //
- // rbTuneStrafe
- //
- this.rbTuneStrafe.BackColor = System.Drawing.Color.SandyBrown;
- this.rbTuneStrafe.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbTuneStrafe.Location = new System.Drawing.Point(12, 68);
- this.rbTuneStrafe.Name = "rbTuneStrafe";
- this.rbTuneStrafe.Size = new System.Drawing.Size(111, 42);
- this.rbTuneStrafe.TabIndex = 0;
- this.rbTuneStrafe.Text = "Tune Strafe";
- this.rbTuneStrafe.UseVisualStyleBackColor = false;
- this.rbTuneStrafe.CheckedChanged += new System.EventHandler(this.rbTuneStrafe_CheckedChanged);
- //
- // rbTuneYPR
- //
- this.rbTuneYPR.BackColor = System.Drawing.Color.Gold;
- this.rbTuneYPR.Checked = true;
- this.rbTuneYPR.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rbTuneYPR.Location = new System.Drawing.Point(12, 20);
- this.rbTuneYPR.Name = "rbTuneYPR";
- this.rbTuneYPR.Size = new System.Drawing.Size(111, 42);
- this.rbTuneYPR.TabIndex = 0;
- this.rbTuneYPR.TabStop = true;
- this.rbTuneYPR.Text = "Tune YPR";
- this.rbTuneYPR.UseVisualStyleBackColor = false;
- this.rbTuneYPR.CheckedChanged += new System.EventHandler(this.rbTuneYPR_CheckedChanged);
- //
- // FormJSCalCurve
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.ClientSize = new System.Drawing.Size(1184, 916);
- this.Controls.Add(this.tlp);
- this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MinimumSize = new System.Drawing.Size(1200, 950);
- this.Name = "FormJSCalCurve";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "Joystick Tuning";
- this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormJSCalCurve_FormClosing);
- this.Load += new System.EventHandler(this.FormJSCalCurve_Load);
- this.tlp.ResumeLayout(false);
- this.tlpData.ResumeLayout(false);
- this.pnlYaw.ResumeLayout(false);
- this.pnlYaw.PerformLayout();
- this.pnlPitch.ResumeLayout(false);
- this.pnlPitch.PerformLayout();
- this.pnlRoll.ResumeLayout(false);
- this.pnlRoll.PerformLayout();
- this.tableLayoutPanel1.ResumeLayout(false);
- this.panel9.ResumeLayout(false);
- this.panel9.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.slDamping)).EndInit();
- this.panel1.ResumeLayout(false);
- this.panel1.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.slTurnSpeed)).EndInit();
- this.panel6.ResumeLayout(false);
- this.panel6.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.tbSlider)).EndInit();
- this.flowLayoutPanel1.ResumeLayout(false);
- this.flowLayoutPanel1.PerformLayout();
- this.tableLayoutPanel3.ResumeLayout(false);
- this.panel8.ResumeLayout(false);
- this.panel8.PerformLayout();
- this.flowLayoutPanel2.ResumeLayout(false);
- this.pnlAxisSelector.ResumeLayout(false);
- this.panel10.ResumeLayout(false);
- this.ResumeLayout(false);
+ this.btDone.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.btDone.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btDone.Location = new System.Drawing.Point(290, 3);
+ this.btDone.Name = "btDone";
+ this.btDone.Size = new System.Drawing.Size(125, 101);
+ this.btDone.TabIndex = 28;
+ this.btDone.Text = "Done";
+ this.btDone.UseVisualStyleBackColor = true;
+ this.btDone.Click += new System.EventHandler(this.btDone_Click);
+ //
+ // panel8
+ //
+ this.panel8.Controls.Add(this.rbArea18);
+ this.panel8.Controls.Add(this.rbDemien);
+ this.panel8.Controls.Add(this.rbBrokenMoon);
+ this.panel8.Controls.Add(this.rbDyingStar);
+ this.panel8.Controls.Add(this.rbSunset);
+ this.panel8.Controls.Add(this.rbOutThere3);
+ this.panel8.Controls.Add(this.rbSkybox);
+ this.panel8.Controls.Add(this.rbOutThere1);
+ this.panel8.Controls.Add(this.rbBigSight);
+ this.panel8.Controls.Add(this.rbHighway);
+ this.panel8.Controls.Add(this.rbHelipad);
+ this.panel8.Controls.Add(this.rbShiodome);
+ this.panel8.Controls.Add(this.rbCanyon);
+ this.panel8.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel8.Location = new System.Drawing.Point(3, 3);
+ this.panel8.Name = "panel8";
+ this.panel8.Size = new System.Drawing.Size(281, 101);
+ this.panel8.TabIndex = 4;
+ //
+ // rbArea18
+ //
+ this.rbArea18.AutoSize = true;
+ this.rbArea18.Location = new System.Drawing.Point(27, 20);
+ this.rbArea18.Name = "rbArea18";
+ this.rbArea18.Size = new System.Drawing.Size(63, 17);
+ this.rbArea18.TabIndex = 12;
+ this.rbArea18.Text = "Area 18";
+ this.rbArea18.UseVisualStyleBackColor = true;
+ this.rbArea18.CheckedChanged += new System.EventHandler(this.rbArea18_CheckedChanged);
+ //
+ // rbDemien
+ //
+ this.rbDemien.AutoSize = true;
+ this.rbDemien.Location = new System.Drawing.Point(200, 20);
+ this.rbDemien.Name = "rbDemien";
+ this.rbDemien.Size = new System.Drawing.Size(64, 17);
+ this.rbDemien.TabIndex = 11;
+ this.rbDemien.Text = "Demien";
+ this.rbDemien.UseVisualStyleBackColor = true;
+ this.rbDemien.CheckedChanged += new System.EventHandler(this.rbKareah_CheckedChanged);
+ //
+ // rbBrokenMoon
+ //
+ this.rbBrokenMoon.AutoSize = true;
+ this.rbBrokenMoon.Checked = true;
+ this.rbBrokenMoon.Location = new System.Drawing.Point(27, 3);
+ this.rbBrokenMoon.Name = "rbBrokenMoon";
+ this.rbBrokenMoon.Size = new System.Drawing.Size(96, 17);
+ this.rbBrokenMoon.TabIndex = 9;
+ this.rbBrokenMoon.TabStop = true;
+ this.rbBrokenMoon.Text = "Broken Moon";
+ this.rbBrokenMoon.UseVisualStyleBackColor = true;
+ this.rbBrokenMoon.CheckedChanged += new System.EventHandler(this.rbBrokenMoon_CheckedChanged);
+ //
+ // rbDyingStar
+ //
+ this.rbDyingStar.AutoSize = true;
+ this.rbDyingStar.Location = new System.Drawing.Point(200, 3);
+ this.rbDyingStar.Name = "rbDyingStar";
+ this.rbDyingStar.Size = new System.Drawing.Size(78, 17);
+ this.rbDyingStar.TabIndex = 8;
+ this.rbDyingStar.Text = "Dying Star";
+ this.rbDyingStar.UseVisualStyleBackColor = true;
+ this.rbDyingStar.CheckedChanged += new System.EventHandler(this.rbDyingStar_CheckedChanged);
+ //
+ // rbSunset
+ //
+ this.rbSunset.AutoSize = true;
+ this.rbSunset.Location = new System.Drawing.Point(27, 71);
+ this.rbSunset.Name = "rbSunset";
+ this.rbSunset.Size = new System.Drawing.Size(60, 17);
+ this.rbSunset.TabIndex = 7;
+ this.rbSunset.Text = "Sunset";
+ this.rbSunset.UseVisualStyleBackColor = true;
+ this.rbSunset.CheckedChanged += new System.EventHandler(this.rbSunset_CheckedChanged);
+ //
+ // rbOutThere3
+ //
+ this.rbOutThere3.AutoSize = true;
+ this.rbOutThere3.Location = new System.Drawing.Point(27, 54);
+ this.rbOutThere3.Name = "rbOutThere3";
+ this.rbOutThere3.Size = new System.Drawing.Size(84, 17);
+ this.rbOutThere3.TabIndex = 6;
+ this.rbOutThere3.Text = "Out there 3";
+ this.rbOutThere3.UseVisualStyleBackColor = true;
+ this.rbOutThere3.CheckedChanged += new System.EventHandler(this.rbOutThere3_CheckedChanged);
+ //
+ // rbSkybox
+ //
+ this.rbSkybox.AutoSize = true;
+ this.rbSkybox.Location = new System.Drawing.Point(200, 71);
+ this.rbSkybox.Name = "rbSkybox";
+ this.rbSkybox.Size = new System.Drawing.Size(83, 17);
+ this.rbSkybox.TabIndex = 5;
+ this.rbSkybox.Text = "Skybox.dds";
+ this.rbSkybox.UseVisualStyleBackColor = true;
+ this.rbSkybox.CheckedChanged += new System.EventHandler(this.rbSkybox_CheckedChanged);
+ //
+ // rbOutThere1
+ //
+ this.rbOutThere1.AutoSize = true;
+ this.rbOutThere1.Location = new System.Drawing.Point(27, 37);
+ this.rbOutThere1.Name = "rbOutThere1";
+ this.rbOutThere1.Size = new System.Drawing.Size(84, 17);
+ this.rbOutThere1.TabIndex = 4;
+ this.rbOutThere1.Text = "Out there 1";
+ this.rbOutThere1.UseVisualStyleBackColor = true;
+ this.rbOutThere1.CheckedChanged += new System.EventHandler(this.rbOutThere1_CheckedChanged);
+ //
+ // rbBigSight
+ //
+ this.rbBigSight.AutoSize = true;
+ this.rbBigSight.Location = new System.Drawing.Point(200, 54);
+ this.rbBigSight.Name = "rbBigSight";
+ this.rbBigSight.Size = new System.Drawing.Size(72, 17);
+ this.rbBigSight.TabIndex = 3;
+ this.rbBigSight.Text = "Big Sight";
+ this.rbBigSight.UseVisualStyleBackColor = true;
+ this.rbBigSight.CheckedChanged += new System.EventHandler(this.rbBigSight_CheckedChanged);
+ //
+ // rbHighway
+ //
+ this.rbHighway.AutoSize = true;
+ this.rbHighway.Location = new System.Drawing.Point(200, 37);
+ this.rbHighway.Name = "rbHighway";
+ this.rbHighway.Size = new System.Drawing.Size(70, 17);
+ this.rbHighway.TabIndex = 2;
+ this.rbHighway.Text = "Highway";
+ this.rbHighway.UseVisualStyleBackColor = true;
+ this.rbHighway.CheckedChanged += new System.EventHandler(this.rbHighway_CheckedChanged);
+ //
+ // rbHelipad
+ //
+ this.rbHelipad.AutoSize = true;
+ this.rbHelipad.Location = new System.Drawing.Point(117, 71);
+ this.rbHelipad.Name = "rbHelipad";
+ this.rbHelipad.Size = new System.Drawing.Size(80, 17);
+ this.rbHelipad.TabIndex = 1;
+ this.rbHelipad.Text = "LA Helipad";
+ this.rbHelipad.UseVisualStyleBackColor = true;
+ this.rbHelipad.CheckedChanged += new System.EventHandler(this.rbHelipad_CheckedChanged);
+ //
+ // rbShiodome
+ //
+ this.rbShiodome.AutoSize = true;
+ this.rbShiodome.Location = new System.Drawing.Point(117, 54);
+ this.rbShiodome.Name = "rbShiodome";
+ this.rbShiodome.Size = new System.Drawing.Size(77, 17);
+ this.rbShiodome.TabIndex = 1;
+ this.rbShiodome.Text = "Shiodome";
+ this.rbShiodome.UseVisualStyleBackColor = true;
+ this.rbShiodome.CheckedChanged += new System.EventHandler(this.rbShiodome_CheckedChanged);
+ //
+ // rbCanyon
+ //
+ this.rbCanyon.AutoSize = true;
+ this.rbCanyon.Location = new System.Drawing.Point(117, 37);
+ this.rbCanyon.Name = "rbCanyon";
+ this.rbCanyon.Size = new System.Drawing.Size(64, 17);
+ this.rbCanyon.TabIndex = 0;
+ this.rbCanyon.Text = "Canyon";
+ this.rbCanyon.UseVisualStyleBackColor = true;
+ this.rbCanyon.CheckedChanged += new System.EventHandler(this.rbCanyon_CheckedChanged);
+ //
+ // flowLayoutPanel2
+ //
+ this.flowLayoutPanel2.Controls.Add(this.pnlAxisSelector);
+ this.flowLayoutPanel2.Controls.Add(this.panel10);
+ this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.flowLayoutPanel2.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
+ this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 619);
+ this.flowLayoutPanel2.Name = "flowLayoutPanel2";
+ this.flowLayoutPanel2.Size = new System.Drawing.Size(144, 294);
+ this.flowLayoutPanel2.TabIndex = 3;
+ //
+ // pnlAxisSelector
+ //
+ this.pnlAxisSelector.BackColor = System.Drawing.Color.Gold;
+ this.pnlAxisSelector.Controls.Add(this.rbP);
+ this.pnlAxisSelector.Controls.Add(this.rbY);
+ this.pnlAxisSelector.Controls.Add(this.rbR);
+ this.pnlAxisSelector.Location = new System.Drawing.Point(0, 0);
+ this.pnlAxisSelector.Margin = new System.Windows.Forms.Padding(0);
+ this.pnlAxisSelector.Name = "pnlAxisSelector";
+ this.pnlAxisSelector.Size = new System.Drawing.Size(144, 157);
+ this.pnlAxisSelector.TabIndex = 3;
+ //
+ // rbP
+ //
+ this.rbP.BackColor = System.Drawing.Color.Salmon;
+ this.rbP.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbP.Location = new System.Drawing.Point(14, 58);
+ this.rbP.Name = "rbP";
+ this.rbP.Size = new System.Drawing.Size(111, 42);
+ this.rbP.TabIndex = 6;
+ this.rbP.Text = "Pitch -->";
+ this.rbP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.rbP.UseVisualStyleBackColor = false;
+ this.rbP.CheckedChanged += new System.EventHandler(this.rbP_CheckedChanged);
+ //
+ // rbY
+ //
+ this.rbY.BackColor = System.Drawing.Color.PowderBlue;
+ this.rbY.Checked = true;
+ this.rbY.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbY.Location = new System.Drawing.Point(15, 10);
+ this.rbY.Name = "rbY";
+ this.rbY.Size = new System.Drawing.Size(111, 42);
+ this.rbY.TabIndex = 5;
+ this.rbY.TabStop = true;
+ this.rbY.Text = "Yaw -->";
+ this.rbY.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.rbY.UseVisualStyleBackColor = false;
+ this.rbY.CheckedChanged += new System.EventHandler(this.rbY_CheckedChanged);
+ //
+ // rbR
+ //
+ this.rbR.BackColor = System.Drawing.Color.LightGreen;
+ this.rbR.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbR.Location = new System.Drawing.Point(15, 106);
+ this.rbR.Name = "rbR";
+ this.rbR.Size = new System.Drawing.Size(111, 42);
+ this.rbR.TabIndex = 7;
+ this.rbR.Text = "Roll -->";
+ this.rbR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.rbR.UseVisualStyleBackColor = false;
+ this.rbR.CheckedChanged += new System.EventHandler(this.rbR_CheckedChanged);
+ //
+ // panel10
+ //
+ this.panel10.Controls.Add(this.rbTuneStrafe);
+ this.panel10.Controls.Add(this.rbTuneYPR);
+ this.panel10.Location = new System.Drawing.Point(3, 160);
+ this.panel10.Name = "panel10";
+ this.panel10.Size = new System.Drawing.Size(138, 128);
+ this.panel10.TabIndex = 4;
+ //
+ // rbTuneStrafe
+ //
+ this.rbTuneStrafe.BackColor = System.Drawing.Color.SandyBrown;
+ this.rbTuneStrafe.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbTuneStrafe.Location = new System.Drawing.Point(12, 68);
+ this.rbTuneStrafe.Name = "rbTuneStrafe";
+ this.rbTuneStrafe.Size = new System.Drawing.Size(111, 42);
+ this.rbTuneStrafe.TabIndex = 0;
+ this.rbTuneStrafe.Text = "Tune Strafe";
+ this.rbTuneStrafe.UseVisualStyleBackColor = false;
+ this.rbTuneStrafe.CheckedChanged += new System.EventHandler(this.rbTuneStrafe_CheckedChanged);
+ //
+ // rbTuneYPR
+ //
+ this.rbTuneYPR.BackColor = System.Drawing.Color.Gold;
+ this.rbTuneYPR.Checked = true;
+ this.rbTuneYPR.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rbTuneYPR.Location = new System.Drawing.Point(12, 20);
+ this.rbTuneYPR.Name = "rbTuneYPR";
+ this.rbTuneYPR.Size = new System.Drawing.Size(111, 42);
+ this.rbTuneYPR.TabIndex = 0;
+ this.rbTuneYPR.TabStop = true;
+ this.rbTuneYPR.Text = "Tune YPR";
+ this.rbTuneYPR.UseVisualStyleBackColor = false;
+ this.rbTuneYPR.CheckedChanged += new System.EventHandler(this.rbTuneYPR_CheckedChanged);
+ //
+ // btZeroCoords
+ //
+ this.btZeroCoords.Location = new System.Drawing.Point(220, 225);
+ this.btZeroCoords.Name = "btZeroCoords";
+ this.btZeroCoords.Size = new System.Drawing.Size(30, 55);
+ this.btZeroCoords.TabIndex = 55;
+ this.btZeroCoords.Text = "|+|";
+ this.btZeroCoords.UseVisualStyleBackColor = true;
+ this.btZeroCoords.Click += new System.EventHandler(this.btZeroCoords_Click);
+ //
+ // FormJSCalCurve
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.ClientSize = new System.Drawing.Size(1184, 916);
+ this.Controls.Add(this.tlp);
+ this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MinimumSize = new System.Drawing.Size(1200, 950);
+ this.Name = "FormJSCalCurve";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Joystick Tuning";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormJSCalCurve_FormClosing);
+ this.Load += new System.EventHandler(this.FormJSCalCurve_Load);
+ this.Move += new System.EventHandler(this.FormJSCalCurve_Move);
+ this.Resize += new System.EventHandler(this.FormJSCalCurve_Resize);
+ this.tlp.ResumeLayout(false);
+ this.tlpData.ResumeLayout(false);
+ this.pnlYaw.ResumeLayout(false);
+ this.pnlYaw.PerformLayout();
+ this.pnlPitch.ResumeLayout(false);
+ this.pnlPitch.PerformLayout();
+ this.pnlRoll.ResumeLayout(false);
+ this.pnlRoll.PerformLayout();
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.panel9.ResumeLayout(false);
+ this.panel9.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.slDamping)).EndInit();
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.slTurnSpeed)).EndInit();
+ this.panel6.ResumeLayout(false);
+ this.panel6.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tbSlider)).EndInit();
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.flowLayoutPanel1.PerformLayout();
+ this.tableLayoutPanel3.ResumeLayout(false);
+ this.panel8.ResumeLayout(false);
+ this.panel8.PerformLayout();
+ this.flowLayoutPanel2.ResumeLayout(false);
+ this.pnlAxisSelector.ResumeLayout(false);
+ this.panel10.ResumeLayout(false);
+ this.ResumeLayout(false);
}
@@ -2046,5 +2060,6 @@
private System.Windows.Forms.RadioButton rbDemien;
private System.Windows.Forms.RadioButton rbBrokenMoon;
private System.Windows.Forms.RadioButton rbDyingStar;
- }
+ private System.Windows.Forms.Button btZeroCoords;
+ }
}
\ No newline at end of file
diff --git a/OGL/FormJSCalCurve.cs b/OGL/FormJSCalCurve.cs
index a0fa9bb..e1c3fad 100644
--- a/OGL/FormJSCalCurve.cs
+++ b/OGL/FormJSCalCurve.cs
@@ -18,851 +18,849 @@ using SCJMapper_V2.Actions;
using SCJMapper_V2.Devices.Joystick;
using SCJMapper_V2.Devices.Options;
using SCJMapper_V2.OGL.TextureLoaders;
+using SCJMapper_V2.Devices.Mouse;
+using SCJMapper_V2.Devices;
namespace SCJMapper_V2.OGL
{
- public partial class FormJSCalCurve : Form
- {
- private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+ public partial class FormJSCalCurve : Form
+ {
+ private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
- public bool Canceled { get; set; }
+ public bool Canceled { get; set; }
- private bool loaded = false;
+ private bool loaded = false;
- #region OGL Fields
+ #region OGL Fields
- // Shader
- int VertexShaderObject, FragmentShaderObject, ProgramObject;
+ // Shader
+ int VertexShaderObject, FragmentShaderObject, ProgramObject;
- // Textures
- const TextureUnit TMU0_Unit = TextureUnit.Texture0;
- const int TMU0_UnitInteger = 0;
- string TMU0_Filename = "";
- uint TMU0_Handle;
- TextureTarget TMU0_Target;
+ // Textures
+ const TextureUnit TMU0_Unit = TextureUnit.Texture0;
+ const int TMU0_UnitInteger = 0;
+ string TMU0_Filename = "";
+ uint TMU0_Handle;
+ TextureTarget TMU0_Target;
- private string[] SBFiles = { "graphics/SB_SC_BrokenMoon.dds","graphics/SB_SC_DyingStar.dds","graphics/SB_SC_Demien.dds","graphics/SB_SC_Area18.dds",
+ private string[] SBFiles = { "graphics/SB_SC_BrokenMoon.dds","graphics/SB_SC_DyingStar.dds","graphics/SB_SC_Demien.dds","graphics/SB_SC_Area18.dds",
"graphics/SB_OutThere1.dds", "graphics/SB_OutThere3.dds", "graphics/SB_Canyon.dds",
"graphics/SB_Shiodome.dds", "graphics/SB_Highway.dds", "graphics/SB_BigSight.dds", "graphics/SB_LA_Helipad.dds", "graphics/SB_Sunset.dds",
"graphics/Skybox.dds" };
- // index into SBFiles
- const int SB_BrokenMoon = 0;
- const int SB_DyingStar = SB_BrokenMoon + 1;
- const int SB_Demien = SB_DyingStar + 1;
- const int SB_Area18 = SB_Demien + 1;
- const int SB_OutThere1 = SB_Area18 + 1;
- const int SB_OutThere3 = SB_OutThere1 + 1;
- const int SB_Canyon = SB_OutThere3 + 1;
- const int SB_Shiodome = SB_Canyon + 1;
- const int SB_Highway = SB_Shiodome + 1;
- const int SB_BigSight = SB_Highway + 1;
- const int SB_LA_Helipad = SB_BigSight + 1;
- const int SB_Sunset = SB_LA_Helipad + 1;
- const int SB_Skybox = SB_Sunset + 1;
+ // index into SBFiles
+ const int SB_BrokenMoon = 0;
+ const int SB_DyingStar = SB_BrokenMoon + 1;
+ const int SB_Demien = SB_DyingStar + 1;
+ const int SB_Area18 = SB_Demien + 1;
+ const int SB_OutThere1 = SB_Area18 + 1;
+ const int SB_OutThere3 = SB_OutThere1 + 1;
+ const int SB_Canyon = SB_OutThere3 + 1;
+ const int SB_Shiodome = SB_Canyon + 1;
+ const int SB_Highway = SB_Shiodome + 1;
+ const int SB_BigSight = SB_Highway + 1;
+ const int SB_LA_Helipad = SB_BigSight + 1;
+ const int SB_Sunset = SB_LA_Helipad + 1;
+ const int SB_Skybox = SB_Sunset + 1;
- #endregion internal Fields
+ #endregion internal Fields
- #region Handling Vars
+ #region Handling Vars
- // timing
- private Int64 m_msElapsed = 0;
- private Int64 m_ticks = 0;
- private double DegPerMS = 360.0 / 3000.0;
- private const Int64 m_frameTime = 25; // max Frametime msec 1/ = fps
- // location / acceleration
- private RK4Integrator m_flightModel = new RK4Integrator();
- private double m_damping = 5000; // range is around 3000 .. 30000
+ // timing
+ private Int64 m_msElapsed = 0;
+ private Int64 m_ticks = 0;
+ private double DegPerMS = 360.0 / 3000.0;
+ private const Int64 m_frameTime = 25; // max Frametime msec 1/ = fps
+ // location / acceleration
+ private RK4Integrator m_flightModel = new RK4Integrator( );
+ private double m_damping = 5000; // range is around 3000 .. 30000
- Label[] lblIn = null;
- Label[] lblOut = null;
+ Label[] lblIn = null;
+ Label[] lblOut = null;
- BezierSeries m_bSeries = new BezierSeries();
+ BezierSeries m_bSeries = new BezierSeries( );
- bool m_isStrafe = false; // Strafe or YPR
-
- #endregion
-
-
- #region Form Handling
-
- public FormJSCalCurve()
- {
- InitializeComponent();
-
- log.Info("Enter FormJSCalCurve");
-
- // helpers
- lblIn = new Label[] { null, lblIn1, lblIn2, lblIn3, null, null }; // goes with PtNo 1..
- lblOut = new Label[] { null, lblOut1, lblOut2, lblOut3, lblOutExponent }; // goes with PtNo 1..
-
- // add 5 points to the chart data series ( Zero, user1..3, max)
- for (int i = 0; i < 5; i++)
- {
- m_bSeries.BezierPoints.Add(new DataPoint(0, 0));
- }
- m_bSeries.ChartType = SeriesChartType.Line;
- m_bSeries.Name = "Curve";
- chart1.Series[0] = m_bSeries;
- // Create the Marker Series
- chart1.Series.Add("Marker");
- chart1.Series[1].ChartType = SeriesChartType.Point;
- chart1.Series[1].MarkerColor = Color.Orange;
- chart1.Series[1].MarkerStyle = MarkerStyle.Circle;
- chart1.Series[1].Points.AddXY(0, 0);
- chart1.Series[1].Points.AddXY(0.25, 0.25);
- chart1.Series[1].Points.AddXY(0.5, 0.5);
- chart1.Series[1].Points.AddXY(0.75, 0.75);
- chart1.Series[1].Points.AddXY(1.0, 1.0);
-
- // sliders
- tbSlider.Maximum = Deviceoptions.DevOptSliderMax;
- tbSlider.TickFrequency = Deviceoptions.DevOptSliderTick;
-
- // OGL map
- TMU0_Filename = SBFiles[SB_BrokenMoon]; // initial sky
-
- Canceled = true;
- }
-
- private void FormJSCalCurve_Load(object sender, EventArgs e)
- {
- rbHornet.Checked = true;
-
- rbTuneYPR.Checked = false;
- rbTuneYPR.Checked = true;
- // chain of triggers to maintain and format entries with default events...
- rbY.Checked = false;
- //back to default
- rbY.Checked = true;
-
- rbPtDeadzone.Checked = false; // trigger value change..
- rbPtDeadzone.Checked = true; // default
-
- rbTuneYPR.Checked = true;
- }
-
- private void FormJSCalCurve_FormClosing(object sender, FormClosingEventArgs e)
- {
-
- if (loaded)
- {
- YawUpdateTuning();
- PitchUpdateTuning();
- RollUpdateTuning();
-
- StrafeLatUpdateTuning();
- StrafeVertUpdateTuning();
- StrafeLonUpdateTuning();
-
- Application.Idle -= Application_Idle;
- GL.DeleteProgram(ProgramObject);
- GL.DeleteTexture(TMU0_Handle);
- }
- }
-
- #endregion
-
-
- #region class LiveValues (internal class)
-
- private class LiveValues
- {
- // load live from TuningParameters
- public void Load(DeviceTuningParameter dp)
- {
- if (dp != null)
- {
- used = (!string.IsNullOrEmpty(dp.NodeText));
- if (!used) return;
-
- nodetext = dp.NodeText;
- string[] e = nodetext.Split(new char[] { ActionTreeInputNode.RegDiv, ActionTreeInputNode.ModDiv }, StringSplitOptions.RemoveEmptyEntries);
- if (e.Length > 0)
- control = e[1].TrimEnd();
- else
- control = dp.NodeText;
- command = dp.CommandCtrl;
- // the option data
- if (dp.DeviceoptionRef == null)
- {
- deadzoneUsed = false;
- saturationUsed = false;
- }
- else
- {
- deadzoneUsed = dp.DeviceoptionRef.DeadzoneUsed;
- deadzoneS = dp.DeviceoptionRef.Deadzone;
- saturationUsed = dp.DeviceoptionRef.SaturationUsed;
- saturationS = dp.DeviceoptionRef.Saturation;
- }
- invertUsed = dp.InvertUsed;
- exponentUsed = dp.ExponentUsed;
- exponentS = dp.Exponent;
- nonLinCurveUsed = dp.NonLinCurveUsed;
- if (dp.NonLinCurveUsed)
- {
- nonLinCurve.Curve(float.Parse(dp.NonLinCurvePtsIn[0]), float.Parse(dp.NonLinCurvePtsOut[0]),
- float.Parse(dp.NonLinCurvePtsIn[1]), float.Parse(dp.NonLinCurvePtsOut[1]),
- float.Parse(dp.NonLinCurvePtsIn[2]), float.Parse(dp.NonLinCurvePtsOut[2]));
- }
- else
- {
- // dummy curve
- nonLinCurve.Curve(0.25f, 0.25f, 0.5f, 0.5f, 0.75f, 0.75f);
- }
- }
- }
-
- // update the TuningParameters
- public void Update(ref DeviceTuningParameter dp)
- {
- if (!used) return;
- // don't return strings to control the device
- if (dp.DeviceoptionRef == null)
- {
- ; // nothing to update
- }
- else
- {
- dp.DeviceoptionRef.DeadzoneUsed = deadzoneUsed;
- dp.DeviceoptionRef.Deadzone = deadzoneS;
- dp.DeviceoptionRef.SaturationUsed = saturationUsed;
- dp.DeviceoptionRef.Saturation = saturationS;
- }
- dp.InvertUsed = invertUsed;
- dp.ExponentUsed = exponentUsed;
- dp.Exponent = exponentS;
- dp.NonLinCurveUsed = nonLinCurveUsed;
- List pts = new List();
- pts.Add(nonLinCurve.Pt(0).X.ToString("0.000")); pts.Add(nonLinCurve.Pt(1).X.ToString("0.000")); pts.Add(nonLinCurve.Pt(2).X.ToString("0.000"));
- dp.NonLinCurvePtsIn = pts;
- pts = new List();
- pts.Add(nonLinCurve.Pt(0).Y.ToString("0.000")); pts.Add(nonLinCurve.Pt(1).Y.ToString("0.000")); pts.Add(nonLinCurve.Pt(2).Y.ToString("0.000"));
- dp.NonLinCurvePtsOut = pts;
- }
-
- // Context
- public bool used = false;
- public string nodetext = ""; // the node text
- public string control = ""; // the device control item e.g. js2_x
- public string command = ""; // the control item used to get the XDevice Input
-
- // calc values
- private double MAX_DZ = 160.0; // avoid range issues and silly values..
- private double MIN_SAT = 200.0; // avoid range issues and silly values..
- private double m_range = 1000.0;
- private double m_sign = 1.0;
-
- ///
- /// Scales the input according to Deadzone and Saturation
- ///
- /// Int device input -1000 .. 0..1000
- /// A double in the range -1.0 .. 0.0 .. 1.0
- public double ScaledOut(int devIn)
- {
- int di = Math.Abs(devIn);
- if (di <= m_deadzone) return 0.0;
- if (di >= m_saturation) return 1.0 * Math.Sign(devIn);
-
- double fout = (di - m_deadzone) / m_range; // 0 .. 1.0
- if (exponentUsed)
- {
- fout = Math.Pow(fout, exponent) * Math.Sign(devIn);
- }
- else if (nonLinCurveUsed)
- {
- fout = nonLinCurve.EvalX((int)(fout * 1000.0 * Math.Sign(devIn))); // gets a scaled signed value (-1 .. +1)
- }
- else
- {
- fout = fout * Math.Sign(devIn);
- }
-
- fout = (fout > 1.0) ? 1.0 : fout; // safeguard against any overshoots
- fout = (fout < -1.0) ? -1.0 : fout; // safeguard against any overshoots
- return fout;
- }
- ///
- /// Applies the inversion if needed
- ///
- /// The new DevOut float 0.0 .. 1000.0
- /// Applied inverted DevOut
- public double InvertedSign
- {
- get { return m_sign; }
- }
-
- // set values
- public bool m_invertUsed = false;
- public bool invertUsed { get { return m_invertUsed; } set { m_invertUsed = value; m_sign = m_invertUsed ? -1.0 : 1.0; } }
-
- public bool deadzoneUsed = false;
- private double m_deadzone = 0.0; // stores 1000 * set value
- public double deadzone { get { return m_deadzone; } set { m_deadzone = (value > MAX_DZ) ? MAX_DZ : value; m_range = m_saturation - m_deadzone; } }
- public string deadzoneS // get/set game value 0..1.000
- {
- get { return (deadzone / 1000.0).ToString("0.000"); }
- set {
- double f;
- if (double.TryParse(value, out f))
- {
- deadzone = f * 1000.0;
- }
- else
- {
- deadzone = 0.0;
- }
- }
- }
-
- public bool saturationUsed = false;
- private double m_saturation = 1000.0;// stores 1000 * set value
- public double saturation { get { return m_saturation; } set { m_saturation = (value < MIN_SAT) ? MIN_SAT : value; m_range = m_saturation - m_deadzone; } }
- public string saturationS // get/set game value 0..1.000
- {
- get { return (m_saturation / 1000.0).ToString("0.000"); }
- set {
- double f;
- if (double.TryParse(value, out f))
- {
- saturation = f * 1000.0;
- }
- else
- {
- saturation = 1000.0;
- }
- }
- }
-
- public bool exponentUsed = false;
- public double exponent = 1.0F;
- public string exponentS
- {
- get { return exponent.ToString("0.000"); }
- set {
- double f;
- if (double.TryParse(value, out f))
- {
- exponent = f;
- }
- else
- {
- exponent = 1.0;
- }
- }
- }
-
- public bool nonLinCurveUsed = false;
- public xyPoints nonLinCurve = new xyPoints(1000); // max val of Joystick Input
- } // class LiveValues
-
- #endregion
-
-
-
- private Tuningoptions m_tuningOptions = null; // will get the current optiontree on call
- public Tuningoptions TuningOptions
- {
- get {
- return m_tuningOptions;
- }
- set {
- m_tuningOptions = value;
- if (m_tuningOptions == null)
- {
- log.Error("- TuningOptions: m_tuningRef not assigned");
- return;
- }
- YawTuning = m_tuningOptions.FirstTuningItem("flight_move_yaw");
- PitchTuning = m_tuningOptions.FirstTuningItem("flight_move_pitch");
- RollTuning = m_tuningOptions.FirstTuningItem("flight_move_roll");
-
- StrafeLatTuning = m_tuningOptions.FirstTuningItem("flight_move_strafe_lateral");
- StrafeVertTuning = m_tuningOptions.FirstTuningItem("flight_move_strafe_vertical");
- StrafeLonTuning = m_tuningOptions.FirstTuningItem("flight_move_strafe_longitudinal");
- }
- }
-
- // Generic Interaction Pattern
- //
- // Assign TuningParameter (load Live data from Parameter)
- // Switch YPR - Strafe (load live values into GUI)
- // Switch Axis (load live values into working area)
- // Change Parameters (live values are changed, GUI is updated)
- // Retrieve TuningParameter (update Parameter from Live data
- //
- #region YAW - Interaction
-
- private DeviceTuningParameter m_YawTuning = new DeviceTuningParameter("flight_move_yaw");
- private LiveValues m_liveYaw = new LiveValues(); // live values
-
- ///
- /// Submit the tuning parameters
- ///
- ///
- private DeviceTuningParameter YawTuning
- {
- get {
- YawUpdateTuning();
- return m_YawTuning;
- }
- set {
- log.Info("FormJSCalCurve : Yaw Command is: " + value);
- m_YawTuning = value;
- // update live values from input
- m_liveYaw.Load(m_YawTuning);
- // populate from input
- //YawUpdateGUIFromLiveValues( );
- }
- }
-
- // update the GUI from Live
- private void YawUpdateGUIFromLiveValues()
- {
- // updated the working area with Tuning parameters (obey live values)
- LiveValues lv = m_liveYaw;
-
- if (!lv.used)
- {
- pnlYaw.Visible = false; rbY.Visible = false;
- return;
- }
- pnlYaw.Visible = true; rbY.Visible = true;
-
- lblYCmd.Text = lv.control;
- lblYnt.Text = lv.nodetext;
- cbxYinvert.Checked = lv.invertUsed;
- lblYdeadzone.Text = lv.deadzoneS;
- cbxYdeadzone.Checked = lv.deadzoneUsed;
- lblYsat.Text = lv.saturationS;
- cbxYsat.Checked = lv.saturationUsed;
- lblYexponent.Text = lv.exponentS;
- cbxYexpo.Checked = lv.exponentUsed;
- lblYin1.Text = lv.nonLinCurve.Pt(0).X.ToString("0.000"); lblYout1.Text = lv.nonLinCurve.Pt(0).Y.ToString("0.000");
- lblYin2.Text = lv.nonLinCurve.Pt(1).X.ToString("0.000"); lblYout2.Text = lv.nonLinCurve.Pt(1).Y.ToString("0.000");
- lblYin3.Text = lv.nonLinCurve.Pt(2).X.ToString("0.000"); lblYout3.Text = lv.nonLinCurve.Pt(2).Y.ToString("0.000");
- cbxYpts.Checked = lv.nonLinCurveUsed;
-
- rbY.Checked = false; rbY.Checked = true;
- }
-
- // update Tuning from Live values
- private void YawUpdateTuning()
- {
- m_liveYaw.Update(ref m_YawTuning); // update from live values
- }
-
- #endregion
-
-
- #region PITCH - Interaction
-
- private DeviceTuningParameter m_PitchTuning = new DeviceTuningParameter("flight_move_pitch");
- private LiveValues m_livePitch = new LiveValues(); // live values
-
- ///
- /// Submit the tuning parameters
- ///
- ///
- private DeviceTuningParameter PitchTuning
- {
- get {
- // update
- PitchUpdateTuning();
- return m_PitchTuning;
- }
- set {
- log.Info("FormJSCalCurve : Pitch Command is: " + value);
- m_PitchTuning = value;
- // update live values from input
- m_livePitch.Load(m_PitchTuning);
- // populate from input
- //PitchUpdateGUIFromLiveValues( );
- }
- }
-
- // update the GUI from Live
- private void PitchUpdateGUIFromLiveValues()
- {
- // updated the working area with Tuning parameters (obey live values)
- LiveValues lv = m_livePitch;
-
- if (!lv.used)
- {
- pnlPitch.Visible = false; rbP.Visible = false;
- return;
- }
- pnlPitch.Visible = true; rbP.Visible = true;
-
- lblPCmd.Text = lv.control;
- lblPnt.Text = lv.nodetext;
- cbxPinvert.Checked = lv.invertUsed;
- lblPdeadzone.Text = lv.deadzoneS;
- cbxPdeadzone.Checked = lv.deadzoneUsed;
- lblPsat.Text = lv.saturationS;
- cbxPsat.Checked = lv.saturationUsed;
- lblPexponent.Text = lv.exponentS;
- cbxPexpo.Checked = lv.exponentUsed;
- lblPin1.Text = lv.nonLinCurve.Pt(0).X.ToString("0.000"); lblPout1.Text = lv.nonLinCurve.Pt(0).Y.ToString("0.000");
- lblPin2.Text = lv.nonLinCurve.Pt(1).X.ToString("0.000"); lblPout2.Text = lv.nonLinCurve.Pt(1).Y.ToString("0.000");
- lblPin3.Text = lv.nonLinCurve.Pt(2).X.ToString("0.000"); lblPout3.Text = lv.nonLinCurve.Pt(2).Y.ToString("0.000");
- cbxPpts.Checked = lv.nonLinCurveUsed;
-
- rbP.Checked = false; rbP.Checked = true;
- }
-
- private void PitchUpdateTuning()
- {
- m_livePitch.Update(ref m_PitchTuning); // update from live values
- }
-
- #endregion
-
-
- #region ROLL - Interaction
-
- private DeviceTuningParameter m_RollTuning = new DeviceTuningParameter("flight_move_roll");
- private LiveValues m_liveRoll = new LiveValues(); // live values
-
- ///
- /// Submit the tuning parameters
- ///
- ///
- private DeviceTuningParameter RollTuning
- {
- get {
- // update
- RollUpdateTuning();
- return m_RollTuning;
- }
- set {
- log.Info("FormJSCalCurve : Roll Command is: " + value);
- m_RollTuning = value;
- // update live values from input
- m_liveRoll.Load(m_RollTuning);
- // populate from input
- //RollUpdateGUIFromLiveValues( );
- }
- }
-
- // update the GUI from Live
- private void RollUpdateGUIFromLiveValues()
- {
- // updated the working area with Tuning parameters (obey live values)
- LiveValues lv = m_liveRoll;
-
- if (!lv.used)
- {
- pnlRoll.Visible = false; rbR.Visible = false;
-
- return;
- }
- pnlRoll.Visible = true; rbR.Visible = true;
-
- lblRCmd.Text = lv.control;
- lblRnt.Text = lv.nodetext;
- cbxRinvert.Checked = lv.invertUsed;
- lblRdeadzone.Text = lv.deadzoneS;
- cbxRdeadzone.Checked = lv.deadzoneUsed;
- lblRsat.Text = lv.saturationS;
- cbxRsat.Checked = lv.saturationUsed;
- lblRexponent.Text = lv.exponentS;
- cbxRexpo.Checked = lv.exponentUsed;
- lblRin1.Text = lv.nonLinCurve.Pt(0).X.ToString("0.000"); lblRout1.Text = lv.nonLinCurve.Pt(0).Y.ToString("0.000");
- lblRin2.Text = lv.nonLinCurve.Pt(1).X.ToString("0.000"); lblRout2.Text = lv.nonLinCurve.Pt(1).Y.ToString("0.000");
- lblRin3.Text = lv.nonLinCurve.Pt(2).X.ToString("0.000"); lblRout3.Text = lv.nonLinCurve.Pt(2).Y.ToString("0.000");
- cbxRpts.Checked = lv.nonLinCurveUsed;
-
- rbR.Checked = false; rbR.Checked = true;
- }
-
- private void RollUpdateTuning()
- {
- m_liveRoll.Update(ref m_RollTuning); // update from live values
- }
-
-
- #endregion
-
-
- #region Strafe Lateral - Interaction (yaw GUI values)
-
- private DeviceTuningParameter m_StrafeLatTuning = new DeviceTuningParameter("flight_move_strafe_lateral");
- private LiveValues m_liveStrafeLat = new LiveValues(); // live values
-
- ///
- /// Submit the tuning parameters
- ///
- ///
- private DeviceTuningParameter StrafeLatTuning
- {
- get {
- // update
- StrafeLatUpdateTuning();
- return m_StrafeLatTuning;
- }
- set {
- log.Info("FormJSCalCurve : Strafe Lateral Command is: " + value);
- m_StrafeLatTuning = value;
- // update live values from input
- m_liveStrafeLat.Load(m_StrafeLatTuning);
- // populate from input
- //StrafeLatUpdateGUIFromLiveValues( );
- }
- }
-
- // update the GUI from Live
- private void StrafeLatUpdateGUIFromLiveValues()
- {
- // updated the working area with Tuning parameters (obey live values)
- LiveValues lv = m_liveStrafeLat;
-
- if (!lv.used)
- {
- pnlYaw.Visible = false; rbY.Visible = false;
-
- return;
- }
- pnlYaw.Visible = true; rbY.Visible = true;
-
- lblYCmd.Text = lv.control;
- lblYnt.Text = lv.nodetext;
- cbxYinvert.Checked = lv.invertUsed;
- lblYdeadzone.Text = lv.deadzoneS;
- cbxYdeadzone.Checked = lv.deadzoneUsed;
- lblYsat.Text = lv.saturationS;
- cbxYsat.Checked = lv.saturationUsed;
- lblYexponent.Text = lv.exponentS;
- cbxYexpo.Checked = lv.exponentUsed;
- lblYin1.Text = lv.nonLinCurve.Pt(0).X.ToString("0.000"); lblYout1.Text = lv.nonLinCurve.Pt(0).Y.ToString("0.000");
- lblYin2.Text = lv.nonLinCurve.Pt(1).X.ToString("0.000"); lblYout2.Text = lv.nonLinCurve.Pt(1).Y.ToString("0.000");
- lblYin3.Text = lv.nonLinCurve.Pt(2).X.ToString("0.000"); lblYout3.Text = lv.nonLinCurve.Pt(2).Y.ToString("0.000");
- cbxYpts.Checked = lv.nonLinCurveUsed;
-
- rbY.Checked = false; rbY.Checked = true;
- }
-
- private void StrafeLatUpdateTuning()
- {
- m_liveStrafeLat.Update(ref m_StrafeLatTuning); // update from live values
- }
-
- #endregion
-
-
- #region Strafe Vertical - Interaction (pitch GUI values)
-
- private DeviceTuningParameter m_StrafeVertTuning = new DeviceTuningParameter("flight_move_strafe_vertical");
- private LiveValues m_liveStrafeVert = new LiveValues(); // live values
-
- ///
- /// Submit the tuning parameters
- ///
- ///
- private DeviceTuningParameter StrafeVertTuning
- {
- get {
- // update
- StrafeVertUpdateTuning();
- return m_StrafeVertTuning;
- }
- set {
- log.Info("FormJSCalCurve : Strafe Vertical Command is: " + value);
- m_StrafeVertTuning = value;
- // update live values from input
- m_liveStrafeVert.Load(m_StrafeVertTuning);
- // populate from input
- //StrafeVertUpdateGUIFromLiveValues( );
- }
- }
-
- // update the GUI from Live
- private void StrafeVertUpdateGUIFromLiveValues()
- {
- // updated the working area with Tuning parameters (obey live values)
- LiveValues lv = m_liveStrafeVert;
-
- if (!lv.used)
- {
- pnlPitch.Visible = false; rbP.Visible = false;
-
- return;
- }
- pnlPitch.Visible = true; rbP.Visible = true;
-
- lblPCmd.Text = lv.control;
- lblPnt.Text = lv.nodetext;
- cbxPinvert.Checked = lv.invertUsed;
- lblPdeadzone.Text = lv.deadzoneS;
- cbxPdeadzone.Checked = lv.deadzoneUsed;
- lblPsat.Text = lv.saturationS;
- cbxPsat.Checked = lv.saturationUsed;
- lblPexponent.Text = lv.exponentS;
- cbxPexpo.Checked = lv.exponentUsed;
- lblPin1.Text = lv.nonLinCurve.Pt(0).X.ToString("0.000"); lblPout1.Text = lv.nonLinCurve.Pt(0).Y.ToString("0.000");
- lblPin2.Text = lv.nonLinCurve.Pt(1).X.ToString("0.000"); lblPout2.Text = lv.nonLinCurve.Pt(1).Y.ToString("0.000");
- lblPin3.Text = lv.nonLinCurve.Pt(2).X.ToString("0.000"); lblPout3.Text = lv.nonLinCurve.Pt(2).Y.ToString("0.000");
- cbxPpts.Checked = lv.nonLinCurveUsed;
-
- rbP.Checked = false; rbP.Checked = true;
- }
-
- private void StrafeVertUpdateTuning()
- {
- m_liveStrafeVert.Update(ref m_StrafeVertTuning); // update from live values
- }
-
- #endregion
-
-
- #region Strafe Longitudinal - Interaction (Roll GUI values)
-
- private DeviceTuningParameter m_StrafeLonTuning = new DeviceTuningParameter("flight_move_strafe_longitudinal");
- private LiveValues m_liveStrafeLon = new LiveValues(); // live values
-
- ///
- /// Submit the tuning parameters
- ///
- ///
- private DeviceTuningParameter StrafeLonTuning
- {
- get {
- // update
- StrafeLonUpdateTuning();
- return m_StrafeLonTuning;
- }
- set {
- log.Info("FormJSCalCurve : Strafe Longitudinal Command is: " + value);
- m_StrafeLonTuning = value;
- // update live values from input
- m_liveStrafeLon.Load(m_StrafeLonTuning);
- // populate from input
- //StrafeLonUpdateGUIFromLiveValues( );
- }
- }
+ bool m_isStrafe = false; // Strafe or YPR
- // update the GUI from Live
- private void StrafeLonUpdateGUIFromLiveValues()
- {
- // updated the working area with Tuning parameters (obey live values)
- LiveValues lv = m_liveStrafeLon;
+ #endregion
- if (!lv.used)
- {
- pnlRoll.Visible = false; rbR.Visible = false;
-
- return;
- }
- pnlRoll.Visible = true; rbR.Visible = true;
- lblRCmd.Text = lv.control;
- lblRnt.Text = lv.nodetext;
- cbxRinvert.Checked = lv.invertUsed;
- lblRdeadzone.Text = lv.deadzoneS;
- cbxRdeadzone.Checked = lv.deadzoneUsed;
- lblRsat.Text = lv.saturationS;
- cbxRsat.Checked = lv.saturationUsed;
- lblRexponent.Text = lv.exponentS;
- cbxRexpo.Checked = lv.exponentUsed;
- lblRin1.Text = lv.nonLinCurve.Pt(0).X.ToString("0.000"); lblRout1.Text = lv.nonLinCurve.Pt(0).Y.ToString("0.000");
- lblRin2.Text = lv.nonLinCurve.Pt(1).X.ToString("0.000"); lblRout2.Text = lv.nonLinCurve.Pt(1).Y.ToString("0.000");
- lblRin3.Text = lv.nonLinCurve.Pt(2).X.ToString("0.000"); lblRout3.Text = lv.nonLinCurve.Pt(2).Y.ToString("0.000");
- cbxRpts.Checked = lv.nonLinCurveUsed;
+ #region Form Handling
- rbR.Checked = false; rbR.Checked = true;
- }
+ public FormJSCalCurve()
+ {
+ InitializeComponent( );
+
+ log.Info( "Enter FormJSCalCurve" );
+
+ // helpers
+ lblIn = new Label[] { null, lblIn1, lblIn2, lblIn3, null, null }; // goes with PtNo 1..
+ lblOut = new Label[] { null, lblOut1, lblOut2, lblOut3, lblOutExponent }; // goes with PtNo 1..
+
+ // add 5 points to the chart data series ( Zero, user1..3, max)
+ for ( int i = 0; i < 5; i++ ) {
+ m_bSeries.BezierPoints.Add( new DataPoint( 0, 0 ) );
+ }
+ m_bSeries.ChartType = SeriesChartType.Line;
+ m_bSeries.Name = "Curve";
+ chart1.Series[0] = m_bSeries;
+ // Create the Marker Series
+ chart1.Series.Add( "Marker" );
+ chart1.Series[1].ChartType = SeriesChartType.Point;
+ chart1.Series[1].MarkerColor = Color.Orange;
+ chart1.Series[1].MarkerStyle = MarkerStyle.Circle;
+ chart1.Series[1].Points.AddXY( 0, 0 );
+ chart1.Series[1].Points.AddXY( 0.25, 0.25 );
+ chart1.Series[1].Points.AddXY( 0.5, 0.5 );
+ chart1.Series[1].Points.AddXY( 0.75, 0.75 );
+ chart1.Series[1].Points.AddXY( 1.0, 1.0 );
+
+ // sliders
+ tbSlider.Maximum = Deviceoptions.DevOptSliderMax;
+ tbSlider.TickFrequency = Deviceoptions.DevOptSliderTick;
+
+ // OGL map
+ TMU0_Filename = SBFiles[SB_BrokenMoon]; // initial sky
+
+ Canceled = true;
+ }
- private void StrafeLonUpdateTuning()
- {
- m_liveStrafeLon.Update(ref m_StrafeLonTuning); // update from live values
- }
+ private void FormJSCalCurve_Load( object sender, EventArgs e )
+ {
+ rbHornet.Checked = true;
+
+ rbTuneYPR.Checked = false;
+ rbTuneYPR.Checked = true;
+ // chain of triggers to maintain and format entries with default events...
+ rbY.Checked = false;
+ //back to default
+ rbY.Checked = true;
+
+ rbPtDeadzone.Checked = false; // trigger value change..
+ rbPtDeadzone.Checked = true; // default
+
+ rbTuneYPR.Checked = true;
+
+ UpdateMouseTargetRect( );
+ }
- #endregion
+ private void FormJSCalCurve_Move( object sender, EventArgs e )
+ {
+ UpdateMouseTargetRect( );
+ }
+ private void FormJSCalCurve_Resize( object sender, EventArgs e )
+ {
+ UpdateMouseTargetRect( );
+ }
- #region OGL Content
+ private void FormJSCalCurve_FormClosing( object sender, FormClosingEventArgs e )
+ {
- private void LoadSkybox()
- {
- TextureLoaderParameters.FlipImages = false;
- TextureLoaderParameters.MagnificationFilter = TextureMagFilter.Linear;
- TextureLoaderParameters.MinificationFilter = TextureMinFilter.Linear;
- TextureLoaderParameters.WrapModeS = TextureWrapMode.ClampToEdge;
- TextureLoaderParameters.WrapModeT = TextureWrapMode.ClampToEdge;
- TextureLoaderParameters.EnvMode = TextureEnvMode.Modulate;
+ if ( loaded ) {
+ YawUpdateTuning( );
+ PitchUpdateTuning( );
+ RollUpdateTuning( );
- try
- {
- ImageDDS.LoadFromDisk(TMU0_Filename, out TMU0_Handle, out TMU0_Target);
- log.Info("Loaded " + TMU0_Filename + " with handle " + TMU0_Handle + " as " + TMU0_Target);
- }
- catch (Exception ex)
- {
- log.Error("Error loading DDS file:", ex);
- }
+ StrafeLatUpdateTuning( );
+ StrafeVertUpdateTuning( );
+ StrafeLonUpdateTuning( );
- log.Info("End of Texture Loading. GL Error: " + GL.GetError());
+ Application.Idle -= Application_Idle;
+ GL.DeleteProgram( ProgramObject );
+ GL.DeleteTexture( TMU0_Handle );
+ Devices.DeviceInst.MouseRef.Deactivate( ); // might be activated
+ }
+ }
- }
+ #endregion
+
+
+ #region class LiveValues (internal class)
+
+ private class LiveValues
+ {
+ // load live from TuningParameters
+ public void Load( DeviceTuningParameter dp )
+ {
+ if ( dp != null ) {
+ used = ( !string.IsNullOrEmpty( dp.NodeText ) );
+ if ( !used ) return;
+
+ nodetext = dp.NodeText;
+ string[] e = nodetext.Split( new char[] { ActionTreeInputNode.RegDiv, ActionTreeInputNode.ModDiv }, StringSplitOptions.RemoveEmptyEntries );
+ if ( e.Length > 0 )
+ control = e[1].TrimEnd( );
+ else
+ control = dp.NodeText;
+ command = dp.CommandCtrl;
+ // the option data
+ if ( dp.DeviceoptionRef == null ) {
+ deadzoneEnabled = false;
+ deadzoneUsed = false;
+ saturationEnabled = false;
+ saturationUsed = false;
+ }
+ else {
+ deadzoneEnabled = true;
+ deadzoneUsed = dp.DeviceoptionRef.DeadzoneUsed;
+ deadzoneS = dp.DeviceoptionRef.Deadzone;
+ saturationEnabled = true;
+ saturationUsed = dp.DeviceoptionRef.SaturationUsed;
+ saturationS = dp.DeviceoptionRef.Saturation;
+ }
+ invertUsed = dp.InvertUsed;
+ exponentUsed = dp.ExponentUsed;
+ exponentS = dp.Exponent;
+ nonLinCurveUsed = dp.NonLinCurveUsed;
+ if ( dp.NonLinCurveUsed ) {
+ nonLinCurve.Curve( float.Parse( dp.NonLinCurvePtsIn[0] ), float.Parse( dp.NonLinCurvePtsOut[0] ),
+ float.Parse( dp.NonLinCurvePtsIn[1] ), float.Parse( dp.NonLinCurvePtsOut[1] ),
+ float.Parse( dp.NonLinCurvePtsIn[2] ), float.Parse( dp.NonLinCurvePtsOut[2] ) );
+ }
+ else {
+ // dummy curve
+ nonLinCurve.Curve( 0.25f, 0.25f, 0.5f, 0.5f, 0.75f, 0.75f );
+ }
+ }
+ }
+
+ // update the TuningParameters
+ public void Update( ref DeviceTuningParameter dp )
+ {
+ if ( !used ) return;
+ // don't return strings to control the device
+ if ( dp.DeviceoptionRef == null ) {
+ ; // nothing to update
+ }
+ else {
+ dp.DeviceoptionRef.DeadzoneUsed = deadzoneUsed;
+ dp.DeviceoptionRef.Deadzone = deadzoneS;
+ dp.DeviceoptionRef.SaturationUsed = saturationUsed;
+ dp.DeviceoptionRef.Saturation = saturationS;
+ }
+ dp.InvertUsed = invertUsed;
+ dp.ExponentUsed = exponentUsed;
+ dp.Exponent = exponentS;
+ dp.NonLinCurveUsed = nonLinCurveUsed;
+ List pts = new List( );
+ pts.Add( nonLinCurve.Pt( 0 ).X.ToString( "0.000" ) ); pts.Add( nonLinCurve.Pt( 1 ).X.ToString( "0.000" ) ); pts.Add( nonLinCurve.Pt( 2 ).X.ToString( "0.000" ) );
+ dp.NonLinCurvePtsIn = pts;
+ pts = new List( );
+ pts.Add( nonLinCurve.Pt( 0 ).Y.ToString( "0.000" ) ); pts.Add( nonLinCurve.Pt( 1 ).Y.ToString( "0.000" ) ); pts.Add( nonLinCurve.Pt( 2 ).Y.ToString( "0.000" ) );
+ dp.NonLinCurvePtsOut = pts;
+ }
+
+ // Context
+ public bool used = false;
+ public string nodetext = ""; // the node text
+ public string control = ""; // the device control item e.g. js2_x
+ public string command = ""; // the control item used to get the XDevice Input
+
+ // calc values
+ private double MAX_DZ = 160.0; // avoid range issues and silly values..
+ private double MIN_SAT = 200.0; // avoid range issues and silly values..
+ private double m_range = 1000.0;
+ private double m_sign = 1.0;
+
+ ///
+ /// Scales the input according to Deadzone and Saturation
+ ///
+ /// Int device input -1000 .. 0..1000
+ /// A double in the range -1.0 .. 0.0 .. 1.0
+ public double ScaledOut( int devIn )
+ {
+ int di = Math.Abs( devIn );
+ if ( di <= m_deadzone ) return 0.0;
+ if ( di >= m_saturation ) return 1.0 * Math.Sign( devIn );
+
+ double fout = ( di - m_deadzone ) / m_range; // 0 .. 1.0
+ if ( exponentUsed ) {
+ fout = Math.Pow( fout, exponent ) * Math.Sign( devIn );
+ }
+ else if ( nonLinCurveUsed ) {
+ fout = nonLinCurve.EvalX( (int)( fout * 1000.0 * Math.Sign( devIn ) ) ); // gets a scaled signed value (-1 .. +1)
+ }
+ else {
+ fout = fout * Math.Sign( devIn );
+ }
+
+ fout = ( fout > 1.0 ) ? 1.0 : fout; // safeguard against any overshoots
+ fout = ( fout < -1.0 ) ? -1.0 : fout; // safeguard against any overshoots
+ return fout;
+ }
+ ///
+ /// Applies the inversion if needed
+ ///
+ /// The new DevOut float 0.0 .. 1000.0
+ /// Applied inverted DevOut
+ public double InvertedSign
+ {
+ get { return m_sign; }
+ }
+
+ // set values
+ public bool m_invertUsed = false;
+ public bool invertUsed { get { return m_invertUsed; } set { m_invertUsed = value; m_sign = m_invertUsed ? -1.0 : 1.0; } }
+
+ public bool deadzoneEnabled = false;
+ public bool deadzoneUsed = false;
+ private double m_deadzone = 0.0; // stores 1000 * set value
+ public double deadzone { get { return m_deadzone; } set { m_deadzone = ( value > MAX_DZ ) ? MAX_DZ : value; m_range = m_saturation - m_deadzone; } }
+ public string deadzoneS // get/set game value 0..1.000
+ {
+ get { return ( deadzone / 1000.0 ).ToString( "0.000" ); }
+ set {
+ double f;
+ if ( double.TryParse( value, out f ) ) {
+ deadzone = f * 1000.0;
+ }
+ else {
+ deadzone = 0.0;
+ }
+ }
+ }
+
+ public bool saturationEnabled = false;
+ public bool saturationUsed = false;
+ private double m_saturation = 1000.0;// stores 1000 * set value
+ public double saturation { get { return m_saturation; } set { m_saturation = ( value < MIN_SAT ) ? MIN_SAT : value; m_range = m_saturation - m_deadzone; } }
+ public string saturationS // get/set game value 0..1.000
+ {
+ get { return ( m_saturation / 1000.0 ).ToString( "0.000" ); }
+ set {
+ double f;
+ if ( double.TryParse( value, out f ) ) {
+ saturation = f * 1000.0;
+ }
+ else {
+ saturation = 1000.0;
+ }
+ }
+ }
+
+ public bool exponentUsed = false;
+ public double exponent = 1.0F;
+ public string exponentS
+ {
+ get { return exponent.ToString( "0.000" ); }
+ set {
+ double f;
+ if ( double.TryParse( value, out f ) ) {
+ exponent = f;
+ }
+ else {
+ exponent = 1.0;
+ }
+ }
+ }
+
+ public bool nonLinCurveUsed = false;
+ public xyPoints nonLinCurve = new xyPoints( 1000 ); // max val of Joystick Input
+ } // class LiveValues
+
+ #endregion
+
+
+
+ private Tuningoptions m_tuningOptions = null; // will get the current optiontree on call
+ public Tuningoptions TuningOptions
+ {
+ get {
+ return m_tuningOptions;
+ }
+ set {
+ m_tuningOptions = value;
+ if ( m_tuningOptions == null ) {
+ log.Error( "- TuningOptions: m_tuningRef not assigned" );
+ return;
+ }
+ YawTuning = m_tuningOptions.FirstTuningItem( "flight_move_yaw" );
+ PitchTuning = m_tuningOptions.FirstTuningItem( "flight_move_pitch" );
+ RollTuning = m_tuningOptions.FirstTuningItem( "flight_move_roll" );
+
+ StrafeLatTuning = m_tuningOptions.FirstTuningItem( "flight_move_strafe_lateral" );
+ StrafeVertTuning = m_tuningOptions.FirstTuningItem( "flight_move_strafe_vertical" );
+ StrafeLonTuning = m_tuningOptions.FirstTuningItem( "flight_move_strafe_longitudinal" );
+ }
+ }
+
+ // Generic Interaction Pattern
+ //
+ // Assign TuningParameter (load Live data from Parameter)
+ // Switch YPR - Strafe (load live values into GUI)
+ // Switch Axis (load live values into working area)
+ // Change Parameters (live values are changed, GUI is updated)
+ // Retrieve TuningParameter (update Parameter from Live data
+ //
+ #region YAW - Interaction
+
+ private DeviceTuningParameter m_YawTuning = new DeviceTuningParameter( "flight_move_yaw" );
+ private LiveValues m_liveYaw = new LiveValues( ); // live values
+
+ ///
+ /// Submit the tuning parameters
+ ///
+ ///
+ private DeviceTuningParameter YawTuning
+ {
+ get {
+ YawUpdateTuning( );
+ return m_YawTuning;
+ }
+ set {
+ log.Info( "FormJSCalCurve : Yaw Command is: " + value );
+ m_YawTuning = value;
+ // update live values from input
+ m_liveYaw.Load( m_YawTuning );
+ // populate from input
+ //YawUpdateGUIFromLiveValues( );
+ }
+ }
+
+ // update the GUI from Live
+ private void YawUpdateGUIFromLiveValues()
+ {
+ // updated the working area with Tuning parameters (obey live values)
+ LiveValues lv = m_liveYaw;
+
+ if ( !lv.used ) {
+ pnlYaw.Visible = false; rbY.Visible = false;
+ return;
+ }
+ pnlYaw.Visible = true; rbY.Visible = true;
+
+ lblYCmd.Text = lv.control;
+ lblYnt.Text = lv.nodetext;
+ cbxYinvert.Checked = lv.invertUsed;
+ lblYdeadzone.Text = lv.deadzoneS;
+ cbxYdeadzone.Checked = lv.deadzoneUsed;
+ cbxYdeadzone.Enabled = lv.deadzoneEnabled;
+ lblYsat.Text = lv.saturationS;
+ cbxYsat.Checked = lv.saturationUsed;
+ cbxYsat.Enabled = lv.saturationEnabled;
+ lblYexponent.Text = lv.exponentS;
+ cbxYexpo.Checked = lv.exponentUsed;
+ lblYin1.Text = lv.nonLinCurve.Pt( 0 ).X.ToString( "0.000" ); lblYout1.Text = lv.nonLinCurve.Pt( 0 ).Y.ToString( "0.000" );
+ lblYin2.Text = lv.nonLinCurve.Pt( 1 ).X.ToString( "0.000" ); lblYout2.Text = lv.nonLinCurve.Pt( 1 ).Y.ToString( "0.000" );
+ lblYin3.Text = lv.nonLinCurve.Pt( 2 ).X.ToString( "0.000" ); lblYout3.Text = lv.nonLinCurve.Pt( 2 ).Y.ToString( "0.000" );
+ cbxYpts.Checked = lv.nonLinCurveUsed;
+
+ rbY.Checked = false; rbY.Checked = true;
+ }
+
+ // update Tuning from Live values
+ private void YawUpdateTuning()
+ {
+ m_liveYaw.Update( ref m_YawTuning ); // update from live values
+ }
+
+ #endregion
+
+
+ #region PITCH - Interaction
+
+ private DeviceTuningParameter m_PitchTuning = new DeviceTuningParameter( "flight_move_pitch" );
+ private LiveValues m_livePitch = new LiveValues( ); // live values
+
+ ///
+ /// Submit the tuning parameters
+ ///
+ ///
+ private DeviceTuningParameter PitchTuning
+ {
+ get {
+ // update
+ PitchUpdateTuning( );
+ return m_PitchTuning;
+ }
+ set {
+ log.Info( "FormJSCalCurve : Pitch Command is: " + value );
+ m_PitchTuning = value;
+ // update live values from input
+ m_livePitch.Load( m_PitchTuning );
+ // populate from input
+ //PitchUpdateGUIFromLiveValues( );
+ }
+ }
+
+ // update the GUI from Live
+ private void PitchUpdateGUIFromLiveValues()
+ {
+ // updated the working area with Tuning parameters (obey live values)
+ LiveValues lv = m_livePitch;
+
+ if ( !lv.used ) {
+ pnlPitch.Visible = false; rbP.Visible = false;
+ return;
+ }
+ pnlPitch.Visible = true; rbP.Visible = true;
+
+ lblPCmd.Text = lv.control;
+ lblPnt.Text = lv.nodetext;
+ cbxPinvert.Checked = lv.invertUsed;
+ lblPdeadzone.Text = lv.deadzoneS;
+ cbxPdeadzone.Checked = lv.deadzoneUsed;
+ cbxPdeadzone.Enabled = lv.deadzoneEnabled;
+ lblPsat.Text = lv.saturationS;
+ cbxPsat.Checked = lv.saturationUsed;
+ cbxPsat.Enabled = lv.saturationEnabled;
+ lblPexponent.Text = lv.exponentS;
+ cbxPexpo.Checked = lv.exponentUsed;
+ lblPin1.Text = lv.nonLinCurve.Pt( 0 ).X.ToString( "0.000" ); lblPout1.Text = lv.nonLinCurve.Pt( 0 ).Y.ToString( "0.000" );
+ lblPin2.Text = lv.nonLinCurve.Pt( 1 ).X.ToString( "0.000" ); lblPout2.Text = lv.nonLinCurve.Pt( 1 ).Y.ToString( "0.000" );
+ lblPin3.Text = lv.nonLinCurve.Pt( 2 ).X.ToString( "0.000" ); lblPout3.Text = lv.nonLinCurve.Pt( 2 ).Y.ToString( "0.000" );
+ cbxPpts.Checked = lv.nonLinCurveUsed;
+
+ rbP.Checked = false; rbP.Checked = true;
+ }
+
+ private void PitchUpdateTuning()
+ {
+ m_livePitch.Update( ref m_PitchTuning ); // update from live values
+ }
+
+ #endregion
+
+
+ #region ROLL - Interaction
+
+ private DeviceTuningParameter m_RollTuning = new DeviceTuningParameter( "flight_move_roll" );
+ private LiveValues m_liveRoll = new LiveValues( ); // live values
+
+ ///
+ /// Submit the tuning parameters
+ ///
+ ///
+ private DeviceTuningParameter RollTuning
+ {
+ get {
+ // update
+ RollUpdateTuning( );
+ return m_RollTuning;
+ }
+ set {
+ log.Info( "FormJSCalCurve : Roll Command is: " + value );
+ m_RollTuning = value;
+ // update live values from input
+ m_liveRoll.Load( m_RollTuning );
+ // populate from input
+ //RollUpdateGUIFromLiveValues( );
+ }
+ }
+
+ // update the GUI from Live
+ private void RollUpdateGUIFromLiveValues()
+ {
+ // updated the working area with Tuning parameters (obey live values)
+ LiveValues lv = m_liveRoll;
+
+ if ( !lv.used ) {
+ pnlRoll.Visible = false; rbR.Visible = false;
+
+ return;
+ }
+ pnlRoll.Visible = true; rbR.Visible = true;
+
+ lblRCmd.Text = lv.control;
+ lblRnt.Text = lv.nodetext;
+ cbxRinvert.Checked = lv.invertUsed;
+ lblRdeadzone.Text = lv.deadzoneS;
+ cbxRdeadzone.Checked = lv.deadzoneUsed;
+ cbxRdeadzone.Enabled = lv.deadzoneEnabled;
+ lblRsat.Text = lv.saturationS;
+ cbxRsat.Checked = lv.saturationUsed;
+ cbxRsat.Enabled = lv.saturationEnabled;
+ lblRexponent.Text = lv.exponentS;
+ cbxRexpo.Checked = lv.exponentUsed;
+ lblRin1.Text = lv.nonLinCurve.Pt( 0 ).X.ToString( "0.000" ); lblRout1.Text = lv.nonLinCurve.Pt( 0 ).Y.ToString( "0.000" );
+ lblRin2.Text = lv.nonLinCurve.Pt( 1 ).X.ToString( "0.000" ); lblRout2.Text = lv.nonLinCurve.Pt( 1 ).Y.ToString( "0.000" );
+ lblRin3.Text = lv.nonLinCurve.Pt( 2 ).X.ToString( "0.000" ); lblRout3.Text = lv.nonLinCurve.Pt( 2 ).Y.ToString( "0.000" );
+ cbxRpts.Checked = lv.nonLinCurveUsed;
+
+ rbR.Checked = false; rbR.Checked = true;
+ }
+
+ private void RollUpdateTuning()
+ {
+ m_liveRoll.Update( ref m_RollTuning ); // update from live values
+ }
+
+
+ #endregion
+
+
+ #region Strafe Lateral - Interaction (yaw GUI values)
+
+ private DeviceTuningParameter m_StrafeLatTuning = new DeviceTuningParameter( "flight_move_strafe_lateral" );
+ private LiveValues m_liveStrafeLat = new LiveValues( ); // live values
+
+ ///
+ /// Submit the tuning parameters
+ ///
+ ///
+ private DeviceTuningParameter StrafeLatTuning
+ {
+ get {
+ // update
+ StrafeLatUpdateTuning( );
+ return m_StrafeLatTuning;
+ }
+ set {
+ log.Info( "FormJSCalCurve : Strafe Lateral Command is: " + value );
+ m_StrafeLatTuning = value;
+ // update live values from input
+ m_liveStrafeLat.Load( m_StrafeLatTuning );
+ // populate from input
+ //StrafeLatUpdateGUIFromLiveValues( );
+ }
+ }
+
+ // update the GUI from Live
+ private void StrafeLatUpdateGUIFromLiveValues()
+ {
+ // updated the working area with Tuning parameters (obey live values)
+ LiveValues lv = m_liveStrafeLat;
+
+ if ( !lv.used ) {
+ pnlYaw.Visible = false; rbY.Visible = false;
+
+ return;
+ }
+ pnlYaw.Visible = true; rbY.Visible = true;
+
+ lblYCmd.Text = lv.control;
+ lblYnt.Text = lv.nodetext;
+ cbxYinvert.Checked = lv.invertUsed;
+ lblYdeadzone.Text = lv.deadzoneS;
+ cbxYdeadzone.Checked = lv.deadzoneUsed;
+ lblYsat.Text = lv.saturationS;
+ cbxYsat.Checked = lv.saturationUsed;
+ lblYexponent.Text = lv.exponentS;
+ cbxYexpo.Checked = lv.exponentUsed;
+ lblYin1.Text = lv.nonLinCurve.Pt( 0 ).X.ToString( "0.000" ); lblYout1.Text = lv.nonLinCurve.Pt( 0 ).Y.ToString( "0.000" );
+ lblYin2.Text = lv.nonLinCurve.Pt( 1 ).X.ToString( "0.000" ); lblYout2.Text = lv.nonLinCurve.Pt( 1 ).Y.ToString( "0.000" );
+ lblYin3.Text = lv.nonLinCurve.Pt( 2 ).X.ToString( "0.000" ); lblYout3.Text = lv.nonLinCurve.Pt( 2 ).Y.ToString( "0.000" );
+ cbxYpts.Checked = lv.nonLinCurveUsed;
+
+ rbY.Checked = false; rbY.Checked = true;
+ }
+
+ private void StrafeLatUpdateTuning()
+ {
+ m_liveStrafeLat.Update( ref m_StrafeLatTuning ); // update from live values
+ }
+
+ #endregion
+
+
+ #region Strafe Vertical - Interaction (pitch GUI values)
+
+ private DeviceTuningParameter m_StrafeVertTuning = new DeviceTuningParameter( "flight_move_strafe_vertical" );
+ private LiveValues m_liveStrafeVert = new LiveValues( ); // live values
+
+ ///
+ /// Submit the tuning parameters
+ ///
+ ///
+ private DeviceTuningParameter StrafeVertTuning
+ {
+ get {
+ // update
+ StrafeVertUpdateTuning( );
+ return m_StrafeVertTuning;
+ }
+ set {
+ log.Info( "FormJSCalCurve : Strafe Vertical Command is: " + value );
+ m_StrafeVertTuning = value;
+ // update live values from input
+ m_liveStrafeVert.Load( m_StrafeVertTuning );
+ // populate from input
+ //StrafeVertUpdateGUIFromLiveValues( );
+ }
+ }
+
+ // update the GUI from Live
+ private void StrafeVertUpdateGUIFromLiveValues()
+ {
+ // updated the working area with Tuning parameters (obey live values)
+ LiveValues lv = m_liveStrafeVert;
+
+ if ( !lv.used ) {
+ pnlPitch.Visible = false; rbP.Visible = false;
+
+ return;
+ }
+ pnlPitch.Visible = true; rbP.Visible = true;
+
+ lblPCmd.Text = lv.control;
+ lblPnt.Text = lv.nodetext;
+ cbxPinvert.Checked = lv.invertUsed;
+ lblPdeadzone.Text = lv.deadzoneS;
+ cbxPdeadzone.Checked = lv.deadzoneUsed;
+ lblPsat.Text = lv.saturationS;
+ cbxPsat.Checked = lv.saturationUsed;
+ lblPexponent.Text = lv.exponentS;
+ cbxPexpo.Checked = lv.exponentUsed;
+ lblPin1.Text = lv.nonLinCurve.Pt( 0 ).X.ToString( "0.000" ); lblPout1.Text = lv.nonLinCurve.Pt( 0 ).Y.ToString( "0.000" );
+ lblPin2.Text = lv.nonLinCurve.Pt( 1 ).X.ToString( "0.000" ); lblPout2.Text = lv.nonLinCurve.Pt( 1 ).Y.ToString( "0.000" );
+ lblPin3.Text = lv.nonLinCurve.Pt( 2 ).X.ToString( "0.000" ); lblPout3.Text = lv.nonLinCurve.Pt( 2 ).Y.ToString( "0.000" );
+ cbxPpts.Checked = lv.nonLinCurveUsed;
+
+ rbP.Checked = false; rbP.Checked = true;
+ }
+
+ private void StrafeVertUpdateTuning()
+ {
+ m_liveStrafeVert.Update( ref m_StrafeVertTuning ); // update from live values
+ }
+ #endregion
- private void glControl1_Load(object sender, EventArgs e)
- {
- log.Info("Enter glControl1_Load");
+ #region Strafe Longitudinal - Interaction (Roll GUI values)
- GL.ClearColor(Color.SkyBlue); // Yey! .NET Colors can be used directly!
- SetupViewport();
- Application.Idle += Application_Idle; // press TAB twice after +=
+ private DeviceTuningParameter m_StrafeLonTuning = new DeviceTuningParameter( "flight_move_strafe_longitudinal" );
+ private LiveValues m_liveStrafeLon = new LiveValues( ); // live values
- // init time keeping
- m_ticks = DateTime.Now.Ticks;
- m_msElapsed = 0;
+ ///
+ /// Submit the tuning parameters
+ ///
+ ///
+ private DeviceTuningParameter StrafeLonTuning
+ {
+ get {
+ // update
+ StrafeLonUpdateTuning( );
+ return m_StrafeLonTuning;
+ }
+ set {
+ log.Info( "FormJSCalCurve : Strafe Longitudinal Command is: " + value );
+ m_StrafeLonTuning = value;
+ // update live values from input
+ m_liveStrafeLon.Load( m_StrafeLonTuning );
+ // populate from input
+ //StrafeLonUpdateGUIFromLiveValues( );
+ }
+ }
+
+ // update the GUI from Live
+ private void StrafeLonUpdateGUIFromLiveValues()
+ {
+ // updated the working area with Tuning parameters (obey live values)
+ LiveValues lv = m_liveStrafeLon;
+
+ if ( !lv.used ) {
+ pnlRoll.Visible = false; rbR.Visible = false;
+
+ return;
+ }
+ pnlRoll.Visible = true; rbR.Visible = true;
+
+ lblRCmd.Text = lv.control;
+ lblRnt.Text = lv.nodetext;
+ cbxRinvert.Checked = lv.invertUsed;
+ lblRdeadzone.Text = lv.deadzoneS;
+ cbxRdeadzone.Checked = lv.deadzoneUsed;
+ lblRsat.Text = lv.saturationS;
+ cbxRsat.Checked = lv.saturationUsed;
+ lblRexponent.Text = lv.exponentS;
+ cbxRexpo.Checked = lv.exponentUsed;
+ lblRin1.Text = lv.nonLinCurve.Pt( 0 ).X.ToString( "0.000" ); lblRout1.Text = lv.nonLinCurve.Pt( 0 ).Y.ToString( "0.000" );
+ lblRin2.Text = lv.nonLinCurve.Pt( 1 ).X.ToString( "0.000" ); lblRout2.Text = lv.nonLinCurve.Pt( 1 ).Y.ToString( "0.000" );
+ lblRin3.Text = lv.nonLinCurve.Pt( 2 ).X.ToString( "0.000" ); lblRout3.Text = lv.nonLinCurve.Pt( 2 ).Y.ToString( "0.000" );
+ cbxRpts.Checked = lv.nonLinCurveUsed;
+
+ rbR.Checked = false; rbR.Checked = true;
+ }
+
+ private void StrafeLonUpdateTuning()
+ {
+ m_liveStrafeLon.Update( ref m_StrafeLonTuning ); // update from live values
+ }
+
+ #endregion
+
+
+ #region OGL Content
+ private void LoadSkybox()
+ {
+ TextureLoaderParameters.FlipImages = false;
+ TextureLoaderParameters.MagnificationFilter = TextureMagFilter.Linear;
+ TextureLoaderParameters.MinificationFilter = TextureMinFilter.Linear;
+ TextureLoaderParameters.WrapModeS = TextureWrapMode.ClampToEdge;
+ TextureLoaderParameters.WrapModeT = TextureWrapMode.ClampToEdge;
+ TextureLoaderParameters.EnvMode = TextureEnvMode.Modulate;
+
+ try {
+ ImageDDS.LoadFromDisk( TMU0_Filename, out TMU0_Handle, out TMU0_Target );
+ log.Info( "Loaded " + TMU0_Filename + " with handle " + TMU0_Handle + " as " + TMU0_Target );
+ }
+ catch ( Exception ex ) {
+ log.Error( "Error loading DDS file:", ex );
+ }
+
+ log.Info( "End of Texture Loading. GL Error: " + GL.GetError( ) );
+
+ }
+
+
+ private void glControl1_Load( object sender, EventArgs e )
+ {
+ log.Info( "Enter glControl1_Load" );
- ////////////////////////////////
- // Check for necessary capabilities:
- string extensions = GL.GetString(StringName.Extensions);
- if (!GL.GetString(StringName.Extensions).Contains("GL_ARB_shading_language"))
- {
- log.ErrorFormat("glControl1_Load - This program requires OpenGL 2.0. Found {0}. Aborting.", GL.GetString(StringName.Version).Substring(0, 3));
+ GL.ClearColor( Color.SkyBlue ); // Yey! .NET Colors can be used directly!
+ SetupViewport( );
+ Application.Idle += Application_Idle; // press TAB twice after +=
- throw new NotSupportedException(string.Format("This program requires OpenGL 2.0. Found {0}. Aborting.",
- GL.GetString(StringName.Version).Substring(0, 3)));
- }
+ // init time keeping
+ m_ticks = DateTime.Now.Ticks;
+ m_msElapsed = 0;
- if (!extensions.Contains("GL_ARB_texture_compression") ||
- !extensions.Contains("GL_EXT_texture_compression_s3tc"))
- {
- log.Error("glControl1_Load - This program requires support for texture compression. Aborting.");
- throw new NotSupportedException("This program requires support for texture compression. Aborting.");
- }
+ ////////////////////////////////
- #region GL State
+ // Check for necessary capabilities:
+ string extensions = GL.GetString( StringName.Extensions );
+ if ( !GL.GetString( StringName.Extensions ).Contains( "GL_ARB_shading_language" ) ) {
+ log.ErrorFormat( "glControl1_Load - This program requires OpenGL 2.0. Found {0}. Aborting.", GL.GetString( StringName.Version ).Substring( 0, 3 ) );
- GL.ClearColor(0f, 0f, 0f, 0f);
+ throw new NotSupportedException( string.Format( "This program requires OpenGL 2.0. Found {0}. Aborting.",
+ GL.GetString( StringName.Version ).Substring( 0, 3 ) ) );
+ }
- GL.Disable(EnableCap.Dither);
+ if ( !extensions.Contains( "GL_ARB_texture_compression" ) ||
+ !extensions.Contains( "GL_EXT_texture_compression_s3tc" ) ) {
+ log.Error( "glControl1_Load - This program requires support for texture compression. Aborting." );
- GL.Enable(EnableCap.CullFace);
- GL.FrontFace(FrontFaceDirection.Ccw);
- GL.PolygonMode(MaterialFace.Front, PolygonMode.Fill);
+ throw new NotSupportedException( "This program requires support for texture compression. Aborting." );
+ }
- #endregion GL State
+ #region GL State
- #region Shaders
+ GL.ClearColor( 0f, 0f, 0f, 0f );
- string LogInfo;
+ GL.Disable( EnableCap.Dither );
- // Load&Compile Vertex Shader
- // Thanks: http://www.rioki.org/2013/03/07/glsl-skybox.html
+ GL.Enable( EnableCap.CullFace );
+ GL.FrontFace( FrontFaceDirection.Ccw );
+ GL.PolygonMode( MaterialFace.Front, PolygonMode.Fill );
- // GLSL for vertex shader.
- VertexShaderObject = GL.CreateShader(ShaderType.VertexShader);
- string vertSource = @"
+ #endregion GL State
+
+ #region Shaders
+
+ string LogInfo;
+
+ // Load&Compile Vertex Shader
+ // Thanks: http://www.rioki.org/2013/03/07/glsl-skybox.html
+
+ // GLSL for vertex shader.
+ VertexShaderObject = GL.CreateShader( ShaderType.VertexShader );
+ string vertSource = @"
#extension GL_ARB_gpu_shader5 : enable
void main()
{
@@ -877,13 +875,13 @@ namespace SCJMapper_V2.OGL
gl_Position = gl_Vertex;
}
";
- // compile shader
- compileShader(VertexShaderObject, vertSource);
+ // compile shader
+ compileShader( VertexShaderObject, vertSource );
- // GLSL for fragment shader.
- FragmentShaderObject = GL.CreateShader(ShaderType.FragmentShader);
- string fragSource = @"
+ // GLSL for fragment shader.
+ FragmentShaderObject = GL.CreateShader( ShaderType.FragmentShader );
+ string fragSource = @"
uniform samplerCube Skybox;
void main()
@@ -891,1536 +889,1392 @@ namespace SCJMapper_V2.OGL
gl_FragColor = textureCube(Skybox, gl_TexCoord[0]);
}
";
- // compile shader
- compileShader(FragmentShaderObject, fragSource);
+ // compile shader
+ compileShader( FragmentShaderObject, fragSource );
- // Link the Shaders to a usable Program
- ProgramObject = GL.CreateProgram();
- GL.AttachShader(ProgramObject, VertexShaderObject);
- GL.AttachShader(ProgramObject, FragmentShaderObject);
+ // Link the Shaders to a usable Program
+ ProgramObject = GL.CreateProgram( );
+ GL.AttachShader( ProgramObject, VertexShaderObject );
+ GL.AttachShader( ProgramObject, FragmentShaderObject );
- // link it all together
- GL.LinkProgram(ProgramObject);
+ // link it all together
+ GL.LinkProgram( ProgramObject );
- // flag ShaderObjects for delete when not used anymore
- GL.DeleteShader(VertexShaderObject);
- GL.DeleteShader(FragmentShaderObject);
+ // flag ShaderObjects for delete when not used anymore
+ GL.DeleteShader( VertexShaderObject );
+ GL.DeleteShader( FragmentShaderObject );
- int[] temp = new int[1];
- GL.GetProgram(ProgramObject, GetProgramParameterName.LinkStatus, out temp[0]);
- log.Info("Linking Program (" + ProgramObject + ") " + ((temp[0] == 1) ? "succeeded." : "FAILED!"));
- if (temp[0] != 1)
- {
- GL.GetProgramInfoLog(ProgramObject, out LogInfo);
- log.Error("Program Log:\n" + LogInfo);
- }
+ int[] temp = new int[1];
+ GL.GetProgram( ProgramObject, GetProgramParameterName.LinkStatus, out temp[0] );
+ log.Info( "Linking Program (" + ProgramObject + ") " + ( ( temp[0] == 1 ) ? "succeeded." : "FAILED!" ) );
+ if ( temp[0] != 1 ) {
+ GL.GetProgramInfoLog( ProgramObject, out LogInfo );
+ log.Error( "Program Log:\n" + LogInfo );
+ }
- GL.GetProgram(ProgramObject, GetProgramParameterName.ActiveAttributes, out temp[0]);
- log.Info("Program registered " + temp[0] + " Attributes.");
- log.Info("End of Shader build. GL Error: " + GL.GetError());
+ GL.GetProgram( ProgramObject, GetProgramParameterName.ActiveAttributes, out temp[0] );
+ log.Info( "Program registered " + temp[0] + " Attributes." );
+ log.Info( "End of Shader build. GL Error: " + GL.GetError( ) );
- #endregion Shaders
+ #endregion Shaders
- #region Textures
+ #region Textures
- LoadSkybox();
+ LoadSkybox( );
- #endregion Textures
+ #endregion Textures
- loaded = true;
- }
+ loaded = true;
+ }
- private void glControl1_Paint(object sender, PaintEventArgs e)
- {
- if (!loaded) return;
- Render();
- }
+ private void glControl1_Paint( object sender, PaintEventArgs e )
+ {
+ if ( !loaded ) return;
+ Render( );
+ }
- private void glControl1_Resize(object sender, EventArgs e)
- {
- SetupViewport();
- if (m_bSeries != null) m_bSeries.Invalidate(chart1);
- else chart1.Invalidate();
- }
+ private void glControl1_Resize( object sender, EventArgs e )
+ {
+ SetupViewport( );
+ if ( m_bSeries != null ) m_bSeries.Invalidate( chart1 );
+ else chart1.Invalidate( );
+ }
- ///
- /// Helper method to avoid code duplication.
- /// Compiles a shader and prints results using Debug.WriteLine.
- ///
- /// A shader object, gotten from GL.CreateShader.
- /// The GLSL source to compile.
- void compileShader(int shader, string source)
- {
- GL.ShaderSource(shader, source);
- GL.CompileShader(shader);
+ ///
+ /// Helper method to avoid code duplication.
+ /// Compiles a shader and prints results using Debug.WriteLine.
+ ///
+ /// A shader object, gotten from GL.CreateShader.
+ /// The GLSL source to compile.
+ void compileShader( int shader, string source )
+ {
+ GL.ShaderSource( shader, source );
+ GL.CompileShader( shader );
+
+ string info;
+ GL.GetShaderInfoLog( shader, out info );
+ Trace.WriteLine( info );
+
+ int compileResult;
+ GL.GetShader( shader, ShaderParameter.CompileStatus, out compileResult );
+ if ( compileResult != 1 ) {
+ log.Error( "compileShader - Compile Error:" );
+ log.Error( source );
+ }
+ }
- string info;
- GL.GetShaderInfoLog(shader, out info);
- Trace.WriteLine(info);
+ private void UpdateMouseTargetRect()
+ {
+ DeviceInst.MouseRef.SetTargetRectForCmdData( new Rectangle( glControl1.PointToScreen( new Point(0,0) ), glControl1.Size ) );
+ }
- int compileResult;
- GL.GetShader(shader, ShaderParameter.CompileStatus, out compileResult);
- if (compileResult != 1)
- {
- log.Error("compileShader - Compile Error:");
- log.Error(source);
- }
- }
+ private void SetupViewport()
+ {
+ int w = glControl1.Width;
+ int h = glControl1.Height;
+ GL.Viewport( 0, 0, w, h ); // Use all of the glControl painting area
- private void SetupViewport()
- {
- int w = glControl1.Width;
- int h = glControl1.Height;
+ GL.MatrixMode( MatrixMode.Projection );
+ Matrix4 p = Matrix4.CreatePerspectiveFieldOfView( MathHelper.PiOver4, w / (float)h, 0.1f, 10.0f );
+ GL.LoadMatrix( ref p );
- GL.Viewport(0, 0, w, h); // Use all of the glControl painting area
+ GL.MatrixMode( MatrixMode.Modelview );
+ GL.LoadIdentity( );
+ }
- GL.MatrixMode(MatrixMode.Projection);
- Matrix4 p = Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, w / (float)h, 0.1f, 10.0f);
- GL.LoadMatrix(ref p);
+ // One render cycle - beware this should be fast...
+ private void Render()
+ {
+ if ( !loaded ) return;
+
+ GL.Clear( ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit );
+ GL.UseProgram( ProgramObject ); // use the compiled shader
+ // interface with shader variables
+ GL.Uniform1( GL.GetUniformLocation( ProgramObject, "Skybox" ), TMU0_UnitInteger );
+ // get our own matrix
+ GL.PushMatrix( );
+ GL.LoadIdentity( ); // Reset and transform the matrix.
+ // part of the 3D orientation - the rest is in the idle routine
+ Matrix4d rm = new Matrix4d( m_right.X, m_right.Y, m_right.Z, 0,
+ m_up.X, m_up.Y, m_up.Z, 0,
+ m_front.X, m_front.Y, m_front.Z, 0,
+ 0, 0, 0, 1 );
+ GL.MultMatrix( ref rm ); // transform
+ // Enable/Disable features
+ GL.PushAttrib( AttribMask.EnableBit );
+ GL.DepthMask( false );
+ GL.Disable( EnableCap.DepthTest );
+ GL.Disable( EnableCap.Lighting );
+ GL.Disable( EnableCap.Blend );
+ // use the Skybox texture
+ GL.ActiveTexture( TMU0_Unit );
+ GL.BindTexture( TMU0_Target, TMU0_Handle );
+ // Draw
+ GL.Color3( 1f, 1f, 1f ); // Just in case we set all vertices to white.
+ // draw one Quad only
+ GL.Begin( PrimitiveType.Quads );
+ {
+ GL.Vertex3( -1.0, -1.0, 0.0 );
+ GL.Vertex3( 1.0, -1.0, 0.0 );
+ GL.Vertex3( 1.0, 1.0, 0.0 );
+ GL.Vertex3( -1.0, 1.0, 0.0 );
+ }
+ GL.End( );
+
+ // END Draw
+
+ // Restore enable bits and matrix
+ GL.PopAttrib( );
+ GL.PopMatrix( );
+ // finally show the contents
+ glControl1.SwapBuffers( );
+ }
- GL.MatrixMode(MatrixMode.Modelview);
- GL.LoadIdentity();
- }
+ #endregion
- // One render cycle - beware this should be fast...
- private void Render()
- {
- if (!loaded) return;
- GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
+ #region Device Input Handling
- GL.UseProgram(ProgramObject); // use the compiled shader
+ ///
+ /// Proper 3D camera aiming...
+ /// Thanks: http://tutorialrandom.blogspot.ch/2012/08/how-to-rotate-in-3d-using-opengl-proper.html
+ ///
+ ///
+ Vector3d m_right = Vector3d.UnitX;
+ Vector3d m_up = Vector3d.UnitY;
+ Vector3d m_front = Vector3d.UnitZ;
- // interface with shader variables
- GL.Uniform1(GL.GetUniformLocation(ProgramObject, "Skybox"), TMU0_UnitInteger);
+ ///
+ /// Calc the view vector - take care of changing axis orientations
+ ///
+ /// Right-Left Direction
+ /// Up-Down Direction
+ /// RotLeft - RotRight Direction
+ private void rotDeg( Vector3d dir )
+ {
+ Matrix4d temp = Matrix4d.CreateRotationX( MathHelper.DegreesToRadians( dir.Y ) );// invert y-> x
+ m_right = Vector3d.TransformVector( m_right, temp );
+ m_up = Vector3d.TransformVector( m_up, temp );
+ m_front = Vector3d.TransformVector( m_front, temp );
+
+ temp = Matrix4d.CreateRotationY( MathHelper.DegreesToRadians( dir.X ) ); // invert x-> y
+ m_right = Vector3d.TransformVector( m_right, temp );
+ m_up = Vector3d.TransformVector( m_up, temp );
+ m_front = Vector3d.TransformVector( m_front, temp );
+
+ temp = Matrix4d.CreateRotationZ( MathHelper.DegreesToRadians( dir.Z ) );
+ m_right = Vector3d.TransformVector( m_right, temp );
+ m_up = Vector3d.TransformVector( m_up, temp );
+ m_front = Vector3d.TransformVector( m_front, temp );
+ }
- // get our own matrix
- GL.PushMatrix();
- GL.LoadIdentity(); // Reset and transform the matrix.
- // part of the 3D orientation - the rest is in the idle routine
- Matrix4d rm = new Matrix4d(m_right.X, m_right.Y, m_right.Z, 0,
- m_up.X, m_up.Y, m_up.Z, 0,
- m_front.X, m_front.Y, m_front.Z, 0,
- 0, 0, 0, 1);
- GL.MultMatrix(ref rm); // transform
- // Enable/Disable features
- GL.PushAttrib(AttribMask.EnableBit);
- GL.DepthMask(false);
- GL.Disable(EnableCap.DepthTest);
- GL.Disable(EnableCap.Lighting);
- GL.Disable(EnableCap.Blend);
+ ///
+ /// Sub Handler for Strafe
+ ///
+ Vector3d Idle_Strafe()
+ {
+ Vector3d m = Vector3d.Zero; ;
+
+ bool lat = ( m_StrafeLatTuning != null ) && ( m_StrafeLatTuning.GameDevice != null );
+ bool vert = ( m_StrafeVertTuning != null ) && ( m_StrafeVertTuning.GameDevice != null );
+ bool lon = ( m_StrafeLonTuning != null ) && ( m_StrafeLonTuning.GameDevice != null );
+
+ int i_x = 0, i_y = 0, i_z = 0; // Joystick Input
+ int x = 0; int y = 0; int z = 0; // retain real input as i_xyz
+
+ if ( lat ) m_StrafeLatTuning.GameDevice.GetCmdData( m_liveStrafeLat.command, out i_x ); // + = right
+ if ( vert ) m_StrafeVertTuning.GameDevice.GetCmdData( m_liveStrafeVert.command, out i_y ); // + = up
+ if ( lon ) m_StrafeLonTuning.GameDevice.GetCmdData( m_liveStrafeLon.command, out i_z ); // += twist right
+ // apply the modifications of the control (deadzone, shape, sensitivity)
+ x = i_x; y = i_y; z = i_z; // retain real input as i_xyz
+ m_flightModel.Velocity = Vector3d.Zero;
+
+ // Lateral
+ if ( lat ) {
+ double fout = m_liveStrafeLat.ScaledOut( x ); // 0 .. 1000.0
+ lblYInput.Text = ( i_x / 1000.0 ).ToString( "0.00" ); lblYOutput.Text = ( fout ).ToString( "0.00" );
+ // calculate new direction vector
+ m.X = m_liveStrafeLat.InvertedSign * ( ( !cbYuse.Checked ) ? fout : 0 ) * m_msElapsed * DegPerMS;
+ }
+
+ // Vertical
+ if ( vert ) {
+ double fout = m_liveStrafeVert.ScaledOut( y ); // 0 .. 1000.0
+ lblPInput.Text = ( i_y / 1000.0 ).ToString( "0.00" ); lblPOutput.Text = ( fout ).ToString( "0.00" );
+ // calculate new direction vector
+ m.Y = m_liveStrafeVert.InvertedSign * ( ( !cbPuse.Checked ) ? fout : 0 ) * m_msElapsed * DegPerMS;
+ }
+
+ // Longitudinal
+ if ( lon ) {
+ double fout = m_liveStrafeLon.ScaledOut( z ); // 0 .. 1000.0
+ lblRInput.Text = ( i_z / 1000.0 ).ToString( "0.00" ); lblROutput.Text = ( fout ).ToString( "0.00" );
+ // calculate new direction vector
+ m.Z = m_liveStrafeLon.InvertedSign * ( ( !cbRuse.Checked ) ? fout : 0 ) * m_msElapsed * DegPerMS;
+ }
+ return m;
+ }
- // use the Skybox texture
- GL.ActiveTexture(TMU0_Unit);
- GL.BindTexture(TMU0_Target, TMU0_Handle);
- // Draw
- GL.Color3(1f, 1f, 1f); // Just in case we set all vertices to white.
+ ///
+ /// Sub Handler for YPR (Yaw, Pitch, Roll)
+ ///
+ Vector3d Idle_YPR()
+ {
+ Vector3d m = Vector3d.Zero; ;
+
+ bool yaw = ( m_YawTuning != null ) && ( m_YawTuning.GameDevice != null );
+ bool pitch = ( m_PitchTuning != null ) && ( m_PitchTuning.GameDevice != null );
+ bool roll = ( m_RollTuning != null ) && ( m_RollTuning.GameDevice != null );
+
+ int i_x = 0, i_y = 0, i_z = 0; // Joystick Input
+ int x = 0; int y = 0; int z = 0; // retain real input as i_xyz
+
+ if ( yaw ) m_YawTuning.GameDevice.GetCmdData( m_liveYaw.command, out i_x ); // + = right
+ if ( pitch ) m_PitchTuning.GameDevice.GetCmdData( m_livePitch.command, out i_y ); // + = up
+ if ( roll ) m_RollTuning.GameDevice.GetCmdData( m_liveRoll.command, out i_z ); // += twist right
+
+ // apply the modifications of the control (deadzone, shape, sensitivity)
+ x = i_x; y = i_y; z = i_z; // retain real input as i_xyz
+ m_flightModel.Velocity = Vector3d.Zero;
+
+ // Yaw
+ if ( yaw ) {
+ double fout = m_liveYaw.ScaledOut( x ); // 0 .. 1000.0
+ lblYInput.Text = ( i_x / 1000.0 ).ToString( "0.00" ); lblYOutput.Text = ( fout ).ToString( "0.00" );
+ // calculate new direction vector
+ m.X = m_liveYaw.InvertedSign * ( ( !cbYuse.Checked ) ? fout : 0 ) * m_msElapsed * DegPerMS;
+ }
+
+ // Pitch
+ if ( pitch ) {
+ double fout = m_livePitch.ScaledOut( y ); // 0 .. 1000.0
+ lblPInput.Text = ( i_y / 1000.0 ).ToString( "0.00" ); lblPOutput.Text = ( fout ).ToString( "0.00" );
+ // calculate new direction vector
+ m.Y = m_livePitch.InvertedSign * ( ( !cbPuse.Checked ) ? -fout : 0 ) * m_msElapsed * DegPerMS; // 20170801: fix - Must use inverted out value
+ }
+
+ // Roll
+ if ( roll ) {
+ double fout = m_liveRoll.ScaledOut( z ); // 0 .. 1000.0
+ lblRInput.Text = ( i_z / 1000.0 ).ToString( "0.00" ); lblROutput.Text = ( fout ).ToString( "0.00" );
+ // calculate new direction vector
+ m.Z = m_liveRoll.InvertedSign * ( ( !cbRuse.Checked ) ? fout : 0 ) * m_msElapsed * DegPerMS;
+ }
+
+ return m;
+ }
- // draw one Quad only
- GL.Begin(PrimitiveType.Quads);
- {
- GL.Vertex3(-1.0, -1.0, 0.0);
- GL.Vertex3(1.0, -1.0, 0.0);
- GL.Vertex3(1.0, 1.0, 0.0);
- GL.Vertex3(-1.0, 1.0, 0.0);
- }
- GL.End();
-
- // END Draw
+ ///
+ /// Handle user input while Idle
+ ///
+ ///
+ ///
+ void Application_Idle( object sender, EventArgs e )
+ {
+ // no guard needed -- we hooked into the event in Load handler
+ if ( glControl1.IsDisposed ) return;
+ if ( glControl1.Context == null ) return;
- // Restore enable bits and matrix
- GL.PopAttrib();
- GL.PopMatrix();
-
- // finally show the contents
- glControl1.SwapBuffers();
- }
-
- #endregion
-
-
- #region Joystick Input Handling
-
- ///
- /// Proper 3D camera aiming...
- /// Thanks: http://tutorialrandom.blogspot.ch/2012/08/how-to-rotate-in-3d-using-opengl-proper.html
- ///
- ///
- Vector3d m_right = Vector3d.UnitX;
- Vector3d m_up = Vector3d.UnitY;
- Vector3d m_front = Vector3d.UnitZ;
-
- ///
- /// Calc the view vector - take care of changing axis orientations
- ///
- /// Right-Left Direction
- /// Up-Down Direction
- /// RotLeft - RotRight Direction
- private void rotDeg(Vector3d dir)
- {
- Matrix4d temp = Matrix4d.CreateRotationX(MathHelper.DegreesToRadians(dir.Y));// invert y-> x
- m_right = Vector3d.TransformVector(m_right, temp);
- m_up = Vector3d.TransformVector(m_up, temp);
- m_front = Vector3d.TransformVector(m_front, temp);
-
- temp = Matrix4d.CreateRotationY(MathHelper.DegreesToRadians(dir.X)); // invert x-> y
- m_right = Vector3d.TransformVector(m_right, temp);
- m_up = Vector3d.TransformVector(m_up, temp);
- m_front = Vector3d.TransformVector(m_front, temp);
-
- temp = Matrix4d.CreateRotationZ(MathHelper.DegreesToRadians(dir.Z));
- m_right = Vector3d.TransformVector(m_right, temp);
- m_up = Vector3d.TransformVector(m_up, temp);
- m_front = Vector3d.TransformVector(m_front, temp);
- }
-
-
-
- ///
- /// Sub Handler for Strafe
- ///
- Vector3d Idle_Strafe()
- {
- Vector3d m = Vector3d.Zero; ;
-
- bool lat = (m_StrafeLatTuning != null) && (m_StrafeLatTuning.GameDevice != null);
- bool vert = (m_StrafeVertTuning != null) && (m_StrafeVertTuning.GameDevice != null);
- bool lon = (m_StrafeLonTuning != null) && (m_StrafeLonTuning.GameDevice != null);
-
- int i_x = 0, i_y = 0, i_z = 0; // Joystick Input
- int x = 0; int y = 0; int z = 0; // retain real input as i_xyz
-
- if (lat) m_StrafeLatTuning.GameDevice.GetCmdData(m_liveStrafeLat.command, out i_x); // + = right
- if (vert) m_StrafeVertTuning.GameDevice.GetCmdData(m_liveStrafeVert.command, out i_y); // + = up
- if (lon) m_StrafeLonTuning.GameDevice.GetCmdData(m_liveStrafeLon.command, out i_z); // += twist right
- // apply the modifications of the control (deadzone, shape, sensitivity)
- x = i_x; y = i_y; z = i_z; // retain real input as i_xyz
- m_flightModel.Velocity = Vector3d.Zero;
-
- // Lateral
- if (lat)
- {
- double fout = m_liveStrafeLat.ScaledOut(x); // 0 .. 1000.0
- lblYInput.Text = (i_x / 1000.0).ToString("0.00"); lblYOutput.Text = (fout).ToString("0.00");
- // calculate new direction vector
- m.X = m_liveStrafeLat.InvertedSign * ((!cbYuse.Checked) ? fout : 0) * m_msElapsed * DegPerMS;
- }
-
- // Vertical
- if (vert)
- {
- double fout = m_liveStrafeVert.ScaledOut(y); // 0 .. 1000.0
- lblPInput.Text = (i_y / 1000.0).ToString("0.00"); lblPOutput.Text = (fout).ToString("0.00");
- // calculate new direction vector
- m.Y = m_liveStrafeVert.InvertedSign * ((!cbPuse.Checked) ? fout : 0) * m_msElapsed * DegPerMS;
- }
-
- // Longitudinal
- if (lon)
- {
- double fout = m_liveStrafeLon.ScaledOut(z); // 0 .. 1000.0
- lblRInput.Text = (i_z / 1000.0).ToString("0.00"); lblROutput.Text = (fout).ToString("0.00");
- // calculate new direction vector
- m.Z = m_liveStrafeLon.InvertedSign * ((!cbRuse.Checked) ? fout : 0) * m_msElapsed * DegPerMS;
- }
- return m;
- }
-
-
- ///
- /// Sub Handler for YPR (Yaw, Pitch, Roll)
- ///
- Vector3d Idle_YPR()
- {
- Vector3d m = Vector3d.Zero; ;
-
- bool yaw = (m_YawTuning != null) && (m_YawTuning.GameDevice != null);
- bool pitch = (m_PitchTuning != null) && (m_PitchTuning.GameDevice != null);
- bool roll = (m_RollTuning != null) && (m_RollTuning.GameDevice != null);
-
- int i_x = 0, i_y = 0, i_z = 0; // Joystick Input
- int x = 0; int y = 0; int z = 0; // retain real input as i_xyz
-
- if (yaw) m_YawTuning.GameDevice.GetCmdData(m_liveYaw.command, out i_x); // + = right
- if (pitch) m_PitchTuning.GameDevice.GetCmdData(m_livePitch.command, out i_y); // + = up
- if (roll) m_RollTuning.GameDevice.GetCmdData(m_liveRoll.command, out i_z); // += twist right
-
- // apply the modifications of the control (deadzone, shape, sensitivity)
- x = i_x; y = i_y; z = i_z; // retain real input as i_xyz
- m_flightModel.Velocity = Vector3d.Zero;
-
- // Yaw
- if (yaw)
- {
- double fout = m_liveYaw.ScaledOut(x); // 0 .. 1000.0
- lblYInput.Text = (i_x / 1000.0).ToString("0.00"); lblYOutput.Text = (fout).ToString("0.00");
- // calculate new direction vector
- m.X = m_liveYaw.InvertedSign * ((!cbYuse.Checked) ? fout : 0) * m_msElapsed * DegPerMS;
- }
-
- // Pitch
- if (pitch)
- {
- double fout = m_livePitch.ScaledOut(y); // 0 .. 1000.0
- lblPInput.Text = (i_y / 1000.0).ToString("0.00"); lblPOutput.Text = (fout).ToString("0.00");
- // calculate new direction vector
- m.Y = m_livePitch.InvertedSign * ((!cbPuse.Checked) ? -fout : 0) * m_msElapsed * DegPerMS; // 20170801: fix - Must use inverted out value
- }
-
- // Roll
- if (roll)
- {
- double fout = m_liveRoll.ScaledOut(z); // 0 .. 1000.0
- lblRInput.Text = (i_z / 1000.0).ToString("0.00"); lblROutput.Text = (fout).ToString("0.00");
- // calculate new direction vector
- m.Z = m_liveRoll.InvertedSign * ((!cbRuse.Checked) ? fout : 0) * m_msElapsed * DegPerMS;
- }
-
- return m;
- }
-
-
- ///
- /// Handle user input while Idle
- ///
- ///
- ///
- void Application_Idle(object sender, EventArgs e)
- {
- // no guard needed -- we hooked into the event in Load handler
- if (glControl1.IsDisposed) return;
- if (glControl1.Context == null) return;
-
- while (glControl1.IsIdle)
- {
- Vector3d m = Vector3d.Zero; ;
- // calculate the aim change while the user is handling the control (integrating the amount of control)
- Int64 newTick = DateTime.Now.Ticks;
- m_msElapsed = (newTick - m_ticks) / TimeSpan.TicksPerMillisecond;
- if (m_msElapsed < m_frameTime)
- {
- // lblDebug.Text = "F";
- continue; //pace updates the max frametime allowed
- }
- //lblDebug.Text = "R";
-
- // safeguard against locking (moving the window) so the integrator does not get crazy..
- // if deltatime gets too big we fake a regular cycle for this round
- if (m_msElapsed > 200) m_msElapsed = m_frameTime;
-
- m_ticks = newTick; // prep next run
-
- // query the Joysticks for the 3 controls and fill the flight model vector
- if (m_isStrafe)
- {
- m = Idle_Strafe();
- }
- else
- {
- m = Idle_YPR();
- }
-
- // finalize
- m_flightModel.Velocity -= m; // new direction change vector
- Vector3d deltaAngleV = m_flightModel.Integrate((double)m_msElapsed / 1000.0, m_damping, 85.0); // heuristic K and B ..
-
- // rotate the view along the input
- // rotDeg( m );
- rotDeg(deltaAngleV);
-
- // render once more
- Render();
-
- }//while
- }
-
- #endregion
-
-
- #region Event Handling
-
- #region turnspeed things
-
- private void rbAurora_CheckedChanged(object sender, EventArgs e)
- {
- slDamping.Value = 6;
- slTurnSpeed.Value = 10;
- }
-
- private void rb300i_CheckedChanged(object sender, EventArgs e)
- {
- slDamping.Value = 6;
- slTurnSpeed.Value = 8; // turns in 4 seconds 360deg
- }
-
- private void rbHornet_CheckedChanged(object sender, EventArgs e)
- {
- slDamping.Value = 6;
- slTurnSpeed.Value = 12;
- }
-
- private void slTurnSpeed_ValueChanged(object sender, EventArgs e)
- {
- // recalc the turning scale based on one full 360 deg sweep in the given time (sec)
- DegPerMS = 360.0 / (slTurnSpeed.Value * 500.0); // slider is 0.5 sec steps
- lblTurnspeed.Text = (slTurnSpeed.Value / 2.0).ToString();
- }
-
- private void slDamping_ValueChanged(object sender, EventArgs e)
- {
- m_damping = (slDamping.Maximum - slDamping.Value + 1) * 100.0; // 100 .. 1000
- lblDamping.Text = slDamping.Value.ToString();
- }
-
- #endregion
-
- #region Tune Kind Changed
-
- private void rbTuneYPR_CheckedChanged(object sender, EventArgs e)
- {
- if (rbTuneYPR.Checked)
- {
- m_isStrafe = false;
- lblYaw.Text = "Yaw"; lblLiveYaw.Text = "Yaw"; rbY.Text = "Yaw -->";
- lblPitch.Text = "Pitch"; lblLivePitch.Text = "Pitch"; rbP.Text = "Pitch -->";
- lblRoll.Text = "Roll"; lblLiveRoll.Text = "Roll"; rbR.Text = "Roll -->";
- tlpData.BackColor = rbTuneYPR.BackColor;
- pnlAxisSelector.BackColor = rbTuneYPR.BackColor;
- RollUpdateGUIFromLiveValues();
- PitchUpdateGUIFromLiveValues();
- YawUpdateGUIFromLiveValues();
- }
- }
-
- private void rbTuneStrafe_CheckedChanged(object sender, EventArgs e)
- {
- if (rbTuneStrafe.Checked)
- {
- m_isStrafe = true;
- lblYaw.Text = "Lat"; lblLiveYaw.Text = "Lateral"; rbY.Text = "Lateral -->";
- lblPitch.Text = "Vert"; lblLivePitch.Text = "Vertical"; rbP.Text = "Vertical -->";
- lblRoll.Text = "Lon"; lblLiveRoll.Text = "Long."; rbR.Text = "Longitudinal -->";
- tlpData.BackColor = rbTuneStrafe.BackColor;
- pnlAxisSelector.BackColor = rbTuneStrafe.BackColor;
- StrafeLonUpdateGUIFromLiveValues();
- StrafeVertUpdateGUIFromLiveValues();
- StrafeLatUpdateGUIFromLiveValues();
- }
- }
-
- #endregion
-
- #region Active Axis Changed - - copy data from left labels into the working area
-
- ///
- /// Make Yaw Active - copy data from left labels into the working area
- ///
- private void rbY_CheckedChanged()
- {
- if (rbY.Checked == true)
- {
- // get Labels from left area (current)
- lblIn[1].Text = lblYin1.Text; lblIn[2].Text = lblYin2.Text; lblIn[3].Text = lblYin3.Text;
- lblOut[1].Text = lblYout1.Text; lblOut[2].Text = lblYout2.Text; lblOut[3].Text = lblYout3.Text;
- lblOut[4].Text = lblYexponent.Text;
- lblNodetext.Text = lblYnt.Text;
- // setup chart along the choosen parameter
- rbPtDeadzone.Enabled = cbxYdeadzone.Checked;
- rbPtSaturation.Enabled = cbxYsat.Checked;
-
- rbPtDeadzone.Checked = true;
- if (rbPtDeadzone.Enabled)
- {
- tbSlider.Value = Deviceoptions.DeadzoneToSlider(lblYdeadzone.Text);
- }
- else
- {
- rbPtSaturation.Checked = true;
- if (rbPtSaturation.Enabled)
- {
- tbSlider.Value = Deviceoptions.SaturationToSlider(lblYsat.Text);
- }
- }
- UpdateChartItems();
- }
- }
- private void rbY_CheckedChanged(object sender, EventArgs e)
- {
- rbY_CheckedChanged();
- }
- private void rbY_CheckUpdate()
- {
- rbY.Checked = false; rbY.Checked = true; // forces to check and to update in case of already checked
- }
-
-
- ///
- /// Make Pitch Active - copy data from left labels into the working area
- ///
- private void rbP_CheckedChanged()
- {
- if (rbP.Checked == true)
- {
- // get Labels from left area (current)
- lblIn[1].Text = lblPin1.Text; lblIn[2].Text = lblPin2.Text; lblIn[3].Text = lblPin3.Text;
- lblOut[1].Text = lblPout1.Text; lblOut[2].Text = lblPout2.Text; lblOut[3].Text = lblPout3.Text;
- lblOut[4].Text = lblPexponent.Text;
- lblNodetext.Text = lblPnt.Text;
- // setup chart along the choosen parameter
- rbPtDeadzone.Enabled = cbxPdeadzone.Checked;
- rbPtSaturation.Enabled = cbxPsat.Checked;
-
- rbPtDeadzone.Checked = true;
- if (rbPtDeadzone.Enabled)
- {
- tbSlider.Value = Deviceoptions.DeadzoneToSlider(lblPdeadzone.Text);
- }
- else
- {
- rbPtSaturation.Checked = true; // force back to sense (available for both..)
- if (rbPtSaturation.Enabled)
- {
- tbSlider.Value = Deviceoptions.SaturationToSlider(lblPsat.Text);
- }
- }
- UpdateChartItems();
- }
- }
- private void rbP_CheckedChanged(object sender, EventArgs e)
- {
- rbP_CheckedChanged();
- }
- private void rbP_CheckUpdate()
- {
- rbP.Checked = false; rbP.Checked = true; // forces to check and to update in case of already checked
- }
-
- ///
- /// Make Roll Active - copy data from left labels into the working area
- ///
- private void rbR_CheckedChanged()
- {
- if (rbR.Checked == true)
- {
- // get Labels from left area (current)
- lblIn[1].Text = lblRin1.Text; lblIn[2].Text = lblRin2.Text; lblIn[3].Text = lblRin3.Text;
- lblOut[1].Text = lblRout1.Text; lblOut[2].Text = lblRout2.Text; lblOut[3].Text = lblRout3.Text;
- lblOut[4].Text = lblRexponent.Text;
- lblNodetext.Text = lblRnt.Text;
- // setup chart along the choosen parameter
- rbPtDeadzone.Enabled = cbxRdeadzone.Checked;
- rbPtSaturation.Enabled = cbxRsat.Checked;
-
- rbPtDeadzone.Checked = true;
- if (rbPtDeadzone.Enabled)
- {
- tbSlider.Value = Deviceoptions.DeadzoneToSlider(lblRdeadzone.Text);
- }
- else
- {
- rbPtSaturation.Checked = true; // force back to sense (available for both..)
- if (rbPtSaturation.Enabled)
- {
- tbSlider.Value = Deviceoptions.SaturationToSlider(lblRsat.Text);
- }
- }
- UpdateChartItems();
- }
- }
- private void rbR_CheckedChanged(object sender, EventArgs e)
- {
- rbR_CheckedChanged();
- }
- private void rbR_CheckUpdate()
- {
- rbR.Checked = false; rbR.Checked = true; // forces to check and to update in case of already checked
- }
-
- // Interaction helper - changes panel on mouse up
-
- private void pnlYaw_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- rbY_CheckUpdate();
- }
-
- private void pnlPitch_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- rbP_CheckUpdate();
- }
-
- private void pnlRoll_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- rbR_CheckUpdate();
- }
-
- #endregion
-
- #region Charts section
-
- // Chart - move Pts
-
- ///
- /// Evaluate which tune parameter has the chart input
- ///
- private void EvalChartInput()
- {
- m_hitPt = 0;
- if (rbPt1.Enabled && rbPt1.Checked) m_hitPt = 1;
- if (rbPt2.Enabled && rbPt2.Checked) m_hitPt = 2;
- if (rbPt3.Enabled && rbPt3.Checked) m_hitPt = 3;
- if (rbPtExponent.Enabled && rbPtExponent.Checked) m_hitPt = 4;
-
- if (m_hitPt > 0) return;
-
- // slider fudge
- tbSlider.Enabled = false;
- if (rbPtDeadzone.Enabled && rbPtDeadzone.Checked)
- {
- tbSlider.Enabled = true;
- if (rbY.Checked)
- {
- tbSlider.Value = Deviceoptions.DeadzoneToSlider(lblYdeadzone.Text);
- }
- else if (rbP.Checked)
- {
- tbSlider.Value = Deviceoptions.DeadzoneToSlider(lblPdeadzone.Text);
- }
- else if (rbR.Checked)
- {
- tbSlider.Value = Deviceoptions.DeadzoneToSlider(lblRdeadzone.Text);
- }
- }
- if (rbPtSaturation.Enabled && rbPtSaturation.Checked)
- {
- tbSlider.Enabled = true;
- if (rbY.Checked)
- {
- tbSlider.Value = Deviceoptions.SaturationToSlider(lblYsat.Text);
- }
- else if (rbP.Checked)
- {
- tbSlider.Value = Deviceoptions.SaturationToSlider(lblPsat.Text);
- }
- else if (rbR.Checked)
- {
- tbSlider.Value = Deviceoptions.SaturationToSlider(lblRsat.Text);
- }
- }
- EvalSlider();
- }
-
-
- ///
- /// Handle change of the mouse input within the chart
- ///
- private void rbPtAny_CheckedChanged(object sender, EventArgs e)
- {
- EvalChartInput();
- }
-
-
- // handle mouse interaction with the chart
-
- int m_hitPt = 0;
- bool m_hitActive = false;
- int mX = 0; int mY = 0;
-
- ///
- /// Update the graph from changes of acitve label values
- ///
- private void UpdateChartItems()
- {
- bool deadzoneUsed = true;
- bool satUsed = true;
- bool expUsed = true;
- bool ptsUsed = true;
- // see what is on display..
- if (rbY.Checked == true)
- {
- // Yaw
- if (m_isStrafe)
- {
- deadzoneUsed = (m_liveStrafeLat.deadzoneUsed == true);
- satUsed = (m_liveStrafeLat.saturationUsed == true);
- expUsed = (m_liveStrafeLat.exponentUsed == true);
- ptsUsed = (m_liveStrafeLat.nonLinCurveUsed == true);
- lblGraphDeadzone.Text = m_liveStrafeLat.deadzoneS;
- lblGraphSaturation.Text = m_liveStrafeLat.saturationS;
-
- }
- else
- {
- deadzoneUsed = (m_liveYaw.deadzoneUsed == true);
- satUsed = (m_liveYaw.saturationUsed == true);
- expUsed = (m_liveYaw.exponentUsed == true);
- ptsUsed = (m_liveYaw.nonLinCurveUsed == true);
- lblGraphDeadzone.Text = m_liveYaw.deadzoneS;
- lblGraphSaturation.Text = m_liveYaw.saturationS;
- }
- chart1.BackColor = rbY.BackColor;
-
- }
- else if (rbP.Checked == true)
- {
- // Pitch
- if (m_isStrafe)
- {
- deadzoneUsed = (m_liveStrafeVert.deadzoneUsed == true);
- satUsed = (m_liveStrafeVert.saturationUsed == true);
- expUsed = (m_liveStrafeVert.exponentUsed == true);
- ptsUsed = (m_liveStrafeVert.nonLinCurveUsed == true);
- lblGraphDeadzone.Text = m_liveStrafeVert.deadzoneS;
- lblGraphSaturation.Text = m_liveStrafeVert.saturationS;
- }
- else
- {
- deadzoneUsed = (m_livePitch.deadzoneUsed == true);
- satUsed = (m_livePitch.saturationUsed == true);
- expUsed = (m_livePitch.exponentUsed == true);
- ptsUsed = (m_livePitch.nonLinCurveUsed == true);
- lblGraphDeadzone.Text = m_livePitch.deadzoneS;
- lblGraphSaturation.Text = m_livePitch.saturationS;
- }
- chart1.BackColor = rbP.BackColor;
-
- }
- else
- {
- // Roll
- if (m_isStrafe)
- {
- deadzoneUsed = (m_liveStrafeLon.deadzoneUsed == true);
- satUsed = (m_liveStrafeLon.saturationUsed == true);
- expUsed = (m_liveStrafeLon.exponentUsed == true);
- ptsUsed = (m_liveStrafeLon.nonLinCurveUsed == true);
- lblGraphDeadzone.Text = m_liveStrafeLon.deadzoneS;
- lblGraphSaturation.Text = m_liveStrafeLon.saturationS;
- }
- else
- {
- deadzoneUsed = (m_liveRoll.deadzoneUsed == true);
- satUsed = (m_liveRoll.saturationUsed == true);
- expUsed = (m_liveRoll.exponentUsed == true);
- ptsUsed = (m_liveRoll.nonLinCurveUsed == true);
- lblGraphDeadzone.Text = m_liveRoll.deadzoneS;
- lblGraphSaturation.Text = m_liveRoll.saturationS;
- }
- chart1.BackColor = rbR.BackColor;
- }
-
- // generic part
- rbPtDeadzone.Enabled = deadzoneUsed;
- lblGraphDeadzone.Visible = deadzoneUsed;
-
- rbPtSaturation.Enabled = satUsed;
- lblGraphSaturation.Visible = satUsed;
-
- rbPtExponent.Enabled = expUsed;
- rbPt1.Enabled = ptsUsed; rbPt2.Enabled = ptsUsed; rbPt3.Enabled = ptsUsed;
- EvalChartInput(); // review active chart input
-
- if (!tbSlider.Enabled) lblOutSlider.Text = "---";
-
- if (expUsed)
- {
- // Exp mode
- double expo = double.Parse(lblOut[4].Text);
- // dont touch zero Point
- m_bSeries.BezierPoints[1].SetValueXY(0.25, Math.Pow(0.25, expo));
- m_bSeries.BezierPoints[2].SetValueXY(0.5, Math.Pow(0.5, expo));
- m_bSeries.BezierPoints[3].SetValueXY(0.75, Math.Pow(0.75, expo));
- m_bSeries.BezierPoints[4].SetValueXY(1.0, 1.0);
-
- }
- else if (ptsUsed)
- {
- // Pts mode
- // dont touch zero Point
- for (int i = 1; i <= 3; i++)
- {
- m_bSeries.BezierPoints[i].SetValueXY(float.Parse(lblIn[i].Text), float.Parse(lblOut[i].Text));
- }
- m_bSeries.BezierPoints[4].SetValueXY(1.0, 1.0);
-
- }
- else
- {
- // linear
- // dont touch zero Point
- m_bSeries.BezierPoints[1].SetValueXY(0.25, 0.25);
- m_bSeries.BezierPoints[2].SetValueXY(0.5, 0.5);
- m_bSeries.BezierPoints[3].SetValueXY(0.75, 0.75);
- m_bSeries.BezierPoints[4].SetValueXY(1.0, 1.0);
- }
- // update markers from curve points
- chart1.Series[1].Points[1] = m_bSeries.BezierPoints[1];
- chart1.Series[1].Points[2] = m_bSeries.BezierPoints[2];
- chart1.Series[1].Points[3] = m_bSeries.BezierPoints[3];
- chart1.Series[1].Points[4] = m_bSeries.BezierPoints[4];
-
- m_bSeries.Invalidate(chart1);
- }
-
-
-
- private void chartPoint_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- m_hitActive = true; // activate movement tracking
- mX = e.X; mY = e.Y; // save initial loc to get deltas
- }
-
- private void chartPoint_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- if (m_hitActive)
- {
- if (m_hitPt < 1)
- {
- // nothing selected ...
- }
- else if (m_hitPt <= 3)
- {
- // Pt1..3
- double newX = double.Parse(lblIn[m_hitPt].Text) + (e.X - mX) * 0.001f; mX = e.X;
- newX = (newX > 1.0f) ? 1.0f : newX;
- newX = (newX < 0.0f) ? 0.0f : newX;
- lblIn[m_hitPt].Text = newX.ToString("0.000");
-
- double newY = double.Parse(lblOut[m_hitPt].Text) + (e.Y - mY) * -0.001f; mY = e.Y;
- newY = (newY > 1.0f) ? 1.0f : newY;
- newY = (newY < 0.0f) ? 0.0f : newY;
- lblOut[m_hitPt].Text = newY.ToString("0.000");
-
- // update chart (Points[0] is zero)
- m_bSeries.BezierPoints[m_hitPt].SetValueXY(newX, newY);
- // update markers from curve points
- chart1.Series[1].Points[m_hitPt] = m_bSeries.BezierPoints[m_hitPt];
-
- }
- else if (m_hitPt == 4)
- {
- // Exponent
- double newY = double.Parse(lblOut[m_hitPt].Text) + (e.Y - mY) * 0.01f; mY = e.Y;
- newY = (newY > 3.0f) ? 3.0f : newY;
- newY = (newY < 0.5f) ? 0.5f : newY;
- lblOut[m_hitPt].Text = newY.ToString("0.00");
-
- // update chart (Points[0] is zero)
- m_bSeries.BezierPoints[1].SetValueXY(0.25, Math.Pow(0.25, newY));
- m_bSeries.BezierPoints[2].SetValueXY(0.5, Math.Pow(0.5, newY));
- m_bSeries.BezierPoints[3].SetValueXY(0.75, Math.Pow(0.75, newY));
- }
-
- // update markers from curve points
- chart1.Series[1].Points[1] = m_bSeries.BezierPoints[1];
- chart1.Series[1].Points[2] = m_bSeries.BezierPoints[2];
- chart1.Series[1].Points[3] = m_bSeries.BezierPoints[3];
- chart1.Series[1].Points[4] = m_bSeries.BezierPoints[4];
-
- m_bSeries.Invalidate(chart1);
-
- }
- }
-
- private void chartPoint_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- m_hitActive = false;
-
- // update the rest of the fields from Entry
-
- if (rbY.Checked == true)
- {
- // left area labels
- lblYin1.Text = lblIn[1].Text; lblYin2.Text = lblIn[2].Text; lblYin3.Text = lblIn[3].Text;
- lblYout1.Text = lblOut[1].Text; lblYout2.Text = lblOut[2].Text; lblYout3.Text = lblOut[3].Text;
- lblYexponent.Text = lblOut[4].Text;
- // update live values
- if (m_isStrafe)
- {
- m_liveStrafeLat.exponentS = lblYexponent.Text;
- if (m_liveStrafeLat.nonLinCurve != null)
- {
- m_liveStrafeLat.nonLinCurve.Curve(float.Parse(lblYin1.Text), float.Parse(lblYout1.Text),
- float.Parse(lblYin2.Text), float.Parse(lblYout2.Text),
- float.Parse(lblYin3.Text), float.Parse(lblYout3.Text));
- }
- }
- else
- {
- m_liveYaw.exponentS = lblYexponent.Text;
- if (m_liveYaw.nonLinCurve != null)
- {
- m_liveYaw.nonLinCurve.Curve(float.Parse(lblYin1.Text), float.Parse(lblYout1.Text),
- float.Parse(lblYin2.Text), float.Parse(lblYout2.Text),
- float.Parse(lblYin3.Text), float.Parse(lblYout3.Text));
- }
- }
-
- }
- else if (rbP.Checked == true)
- {
- // left area labels
- lblPin1.Text = lblIn[1].Text; lblPin2.Text = lblIn[2].Text; lblPin3.Text = lblIn[3].Text;
- lblPout1.Text = lblOut[1].Text; lblPout2.Text = lblOut[2].Text; lblPout3.Text = lblOut[3].Text;
- lblPexponent.Text = lblOut[4].Text;
- // update live values
- if (m_isStrafe)
- {
- m_liveStrafeVert.exponentS = lblPexponent.Text;
- if (m_liveStrafeVert.nonLinCurve != null)
- {
- m_liveStrafeVert.nonLinCurve.Curve(float.Parse(lblPin1.Text), float.Parse(lblPout1.Text),
- float.Parse(lblPin2.Text), float.Parse(lblPout2.Text),
- float.Parse(lblPin3.Text), float.Parse(lblPout3.Text));
- }
- }
- else
- {
- m_livePitch.exponentS = lblPexponent.Text;
- if (m_livePitch.nonLinCurve != null)
- {
- m_livePitch.nonLinCurve.Curve(float.Parse(lblPin1.Text), float.Parse(lblPout1.Text),
- float.Parse(lblPin2.Text), float.Parse(lblPout2.Text),
- float.Parse(lblPin3.Text), float.Parse(lblPout3.Text));
- }
- }
-
- }
- else if (rbR.Checked == true)
- {
- // left area labels
- lblRin1.Text = lblIn[1].Text; lblRin2.Text = lblIn[2].Text; lblRin3.Text = lblIn[3].Text;
- lblRout1.Text = lblOut[1].Text; lblRout2.Text = lblOut[2].Text; lblRout3.Text = lblOut[3].Text;
- lblRexponent.Text = lblOut[4].Text;
- // update live values
- if (m_isStrafe)
- {
- m_liveStrafeLon.exponentS = lblRexponent.Text;
- if (m_liveStrafeLon.nonLinCurve != null)
- {
- m_liveStrafeLon.nonLinCurve.Curve(float.Parse(lblRin1.Text), float.Parse(lblRout1.Text),
- float.Parse(lblRin2.Text), float.Parse(lblRout2.Text),
- float.Parse(lblRin3.Text), float.Parse(lblRout3.Text));
- }
- }
- else
- {
- m_liveRoll.exponentS = lblRexponent.Text;
- if (m_liveRoll.nonLinCurve != null)
- {
- m_liveRoll.nonLinCurve.Curve(float.Parse(lblRin1.Text), float.Parse(lblRout1.Text),
- float.Parse(lblRin2.Text), float.Parse(lblRout2.Text),
- float.Parse(lblRin3.Text), float.Parse(lblRout3.Text));
- }
- }
-
- }
- }
- #endregion
-
- #region Checked Invert Changed
-
- private void cbxYinvert_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLat.invertUsed = false;
- if (cbxYinvert.Checked == true)
- {
- m_liveStrafeLat.invertUsed = true;
- }
- }
- else
- {
- m_liveYaw.invertUsed = false;
- if (cbxYinvert.Checked == true)
- {
- m_liveYaw.invertUsed = true;
- }
- }
- rbY_CheckUpdate();
- }
-
- private void cbxPinvert_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeVert.invertUsed = false;
- if (cbxPinvert.Checked == true)
- {
- m_liveStrafeVert.invertUsed = true;
- }
- }
- else
- {
- m_livePitch.invertUsed = false;
- if (cbxPinvert.Checked == true)
- {
- m_livePitch.invertUsed = true;
- }
- }
- rbP_CheckUpdate();
- }
-
- private void cbxRinvert_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLon.invertUsed = false;
- if (cbxRinvert.Checked == true)
- {
- m_liveStrafeLon.invertUsed = true;
- }
- }
- else
- {
- m_liveRoll.invertUsed = false;
- if (cbxRinvert.Checked == true)
- {
- m_liveRoll.invertUsed = true;
- }
- }
- rbR_CheckUpdate();
- }
-
- #endregion
-
- #region Slider Value Changed (Deadzone / Saturation)
-
- // Deadzone slider 00 .. 40 -> 0 .. 0.160 ( 4 pt scale)
- // Saturation slider 00 .. 40 -> 0.2 .. 1.0 ( 20 pt scale)
-
- private void EvalSlider()
- {
- if (rbPtDeadzone.Enabled && rbPtDeadzone.Checked)
- {
- lblOutSlider.Text = Deviceoptions.DeadzoneFromSlider(tbSlider.Value).ToString("0.000");
- float curDeadzone = 1000.0f * Deviceoptions.DeadzoneFromSlider(tbSlider.Value); // % scaled to maxAxis
-
- if (rbY.Checked == true)
- {
- if (m_isStrafe) m_liveStrafeLat.deadzone = curDeadzone; else m_liveYaw.deadzone = curDeadzone;
- lblYdeadzone.Text = lblOutSlider.Text;
- }
- else if (rbP.Checked == true)
- {
- if (m_isStrafe) m_liveStrafeVert.deadzone = curDeadzone; else m_livePitch.deadzone = curDeadzone;
- lblPdeadzone.Text = lblOutSlider.Text;
- }
- else if (rbR.Checked == true)
- {
- if (m_isStrafe) m_liveStrafeLon.deadzone = curDeadzone; else m_liveRoll.deadzone = curDeadzone;
- lblRdeadzone.Text = lblOutSlider.Text;
- }
- lblGraphDeadzone.Text = lblOutSlider.Text;
- }
- else if (rbPtSaturation.Enabled && rbPtSaturation.Checked)
- {
- lblOutSlider.Text = Deviceoptions.SaturationFromSlider(tbSlider.Value).ToString("0.000");
- float curSaturation = 1000.0f * Deviceoptions.SaturationFromSlider(tbSlider.Value); // % scaled to maxAxis
-
- if (rbY.Checked == true)
- {
- if (m_isStrafe) m_liveStrafeLat.saturation = curSaturation; else m_liveYaw.saturation = curSaturation;
- lblYsat.Text = lblOutSlider.Text;
- }
- else if (rbP.Checked == true)
- {
- if (m_isStrafe) m_liveStrafeVert.saturation = curSaturation; else m_livePitch.saturation = curSaturation;
- lblPsat.Text = lblOutSlider.Text;
- }
- else if (rbR.Checked == true)
- {
- if (m_isStrafe) m_liveStrafeLon.saturation = curSaturation; else m_liveRoll.saturation = curSaturation;
- lblRsat.Text = lblOutSlider.Text;
- }
- lblGraphSaturation.Text = lblOutSlider.Text;
- }
- }
-
- private void tbSlider_ValueChanged(object sender, EventArgs e)
- {
- EvalSlider();
- }
-
- #endregion
-
- #region Checked Deadzone Changed
-
- private void cbxYdeadzone_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLat.deadzoneUsed = false;
- if (cbxYdeadzone.Checked == true)
- {
- m_liveStrafeLat.deadzoneUsed = true;
- }
- }
- else
- {
- m_liveYaw.deadzoneUsed = false;
- if (cbxYdeadzone.Checked == true)
- {
- m_liveYaw.deadzoneUsed = true;
- }
- }
- rbY_CheckUpdate();
- rbPtDeadzone.Checked = cbxYdeadzone.Checked;
- UpdateChartItems();
- }
-
- private void cbxPdeadzone_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeVert.deadzoneUsed = false;
- if (cbxPdeadzone.Checked == true)
- {
- m_liveStrafeVert.deadzoneUsed = true;
- }
- }
- else
- {
- m_livePitch.deadzoneUsed = false;
- if (cbxPdeadzone.Checked == true)
- {
- m_livePitch.deadzoneUsed = true;
- }
- }
- rbP_CheckUpdate();
- rbPtDeadzone.Checked = cbxPdeadzone.Checked;
- UpdateChartItems();
- }
-
- private void cbxRdeadzone_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLon.deadzoneUsed = false;
- if (cbxRdeadzone.Checked == true)
- {
- m_liveStrafeLon.deadzoneUsed = true; // update storage
- }
- }
- else
- {
- m_liveRoll.deadzoneUsed = false;
- if (cbxRdeadzone.Checked == true)
- {
- m_liveRoll.deadzoneUsed = true; // update storage
- }
- }
- rbR_CheckUpdate();
- rbPtDeadzone.Checked = cbxRdeadzone.Checked;
- UpdateChartItems();
- }
-
- #endregion
-
- #region Checked Saturation Changed
-
- private void cbxYsense_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLat.saturationUsed = false;
- if (cbxYsat.Checked == true)
- {
- m_liveStrafeLat.saturationUsed = true;
- }
- }
- else
- {
- m_liveYaw.saturationUsed = false;
- if (cbxYsat.Checked == true)
- {
- m_liveYaw.saturationUsed = true;
- }
- }
- rbY_CheckUpdate();
- rbPtSaturation.Checked = cbxYsat.Checked;
- UpdateChartItems();
- }
-
- private void cbxPsense_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeVert.saturationUsed = false;
- if (cbxPsat.Checked == true)
- {
- m_liveStrafeVert.saturationUsed = true;
- }
- }
- else
- {
- m_livePitch.saturationUsed = false;
- if (cbxPsat.Checked == true)
- {
- m_livePitch.saturationUsed = true;
- }
- }
- rbP_CheckUpdate();
- rbPtSaturation.Checked = cbxPsat.Checked;
- UpdateChartItems();
- }
-
- private void cbxRsense_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLon.saturationUsed = false;
- if (cbxRsat.Checked == true)
- {
- m_liveStrafeLon.saturationUsed = true;
- }
- }
- else
- {
- m_liveRoll.saturationUsed = false;
- if (cbxRsat.Checked == true)
- {
- m_liveRoll.saturationUsed = true;
- }
- }
- rbR_CheckUpdate();
- rbPtSaturation.Checked = cbxRsat.Checked;
- UpdateChartItems();
- }
-
- #endregion
-
- #region Checked Exponent Changed
-
- private void cbxYexpo_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLat.exponentUsed = false;
- if (cbxYexpo.Checked == true)
- {
- m_liveStrafeLat.exponentUsed = true;
- cbxYpts.Checked = false; // forced: either expo OR points
- }
- }
- else
- {
- m_liveYaw.exponentUsed = false;
- if (cbxYexpo.Checked == true)
- {
- m_liveYaw.exponentUsed = true;
- cbxYpts.Checked = false; // forced: either expo OR points
- }
- }
- rbY_CheckUpdate();
- UpdateChartItems();
- }
-
- private void cbxPexpo_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeVert.exponentUsed = false;
- if (cbxPexpo.Checked == true)
- {
- m_liveStrafeVert.exponentUsed = true;
- cbxPpts.Checked = false; // forced: either expo OR points
- }
- }
- else
- {
- m_livePitch.exponentUsed = false;
- if (cbxPexpo.Checked == true)
- {
- m_livePitch.exponentUsed = true;
- cbxPpts.Checked = false; // forced: either expo OR points
- }
- }
- rbP_CheckUpdate();
- UpdateChartItems();
- }
-
- private void cbxRexpo_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLon.exponentUsed = false;
- if (cbxRexpo.Checked == true)
- {
- m_liveStrafeLon.exponentUsed = true;
- cbxRpts.Checked = false; // forced: either expo OR points
- }
- }
- else
- {
- m_liveRoll.exponentUsed = false;
- if (cbxRexpo.Checked == true)
- {
- m_liveRoll.exponentUsed = true;
- cbxRpts.Checked = false; // forced: either expo OR points
- }
- }
- rbR_CheckUpdate();
- UpdateChartItems();
- }
-
- #endregion
-
- #region Checked Points Changed
-
- private void cbxYpts_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLat.nonLinCurveUsed = false;
- if (cbxYpts.Checked == true)
- {
- m_liveStrafeLat.nonLinCurveUsed = true;
- cbxYexpo.Checked = false; // forced: either expo OR points
- }
- }
- else
- {
- m_liveYaw.nonLinCurveUsed = false;
- if (cbxYpts.Checked == true)
- {
- m_liveYaw.nonLinCurveUsed = true;
- cbxYexpo.Checked = false; // forced: either expo OR points
- }
- }
- rbY_CheckUpdate();
- UpdateChartItems();
- }
-
- private void cbxPpts_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeVert.nonLinCurveUsed = false;
- if (cbxPpts.Checked == true)
- {
- m_liveStrafeVert.nonLinCurveUsed = true;
- cbxPexpo.Checked = false; // forced: either expo OR points
- }
- }
- else
- {
- m_livePitch.nonLinCurveUsed = false;
- if (cbxPpts.Checked == true)
- {
- m_livePitch.nonLinCurveUsed = true;
- cbxPexpo.Checked = false; // forced: either expo OR points
- }
- }
- rbP_CheckUpdate();
- UpdateChartItems();
- }
-
- private void cbxRpts_CheckedChanged(object sender, EventArgs e)
- {
- if (m_isStrafe)
- {
- m_liveStrafeLon.nonLinCurveUsed = false;
- if (cbxRpts.Checked == true)
- {
- m_liveStrafeLon.nonLinCurveUsed = true;
- cbxRexpo.Checked = false; // forced: either expo OR points
- }
- }
- else
- {
- m_liveRoll.nonLinCurveUsed = false;
- if (cbxRpts.Checked == true)
- {
- m_liveRoll.nonLinCurveUsed = true;
- cbxRexpo.Checked = false; // forced: either expo OR points
- }
- }
- rbR_CheckUpdate();
- UpdateChartItems();
- }
-
- #endregion
-
- #region Skybox Checked Changed
-
- private void rbOutThere1_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_OutThere1];
- LoadSkybox();
- }
-
- private void rbOutThere3_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_OutThere3];
- LoadSkybox();
- }
-
- private void rbCanyon_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Canyon];
- LoadSkybox();
- }
-
- private void rbShiodome_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Shiodome];
- LoadSkybox();
- }
-
- private void rbHighway_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Highway];
- LoadSkybox();
- }
-
- private void rbBigSight_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_BigSight];
- LoadSkybox();
- }
-
- private void rbHelipad_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_LA_Helipad];
- LoadSkybox();
- }
-
- private void rbSkybox_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Skybox];
- LoadSkybox();
- }
-
- private void rbSunset_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Sunset];
- LoadSkybox();
- }
-
-
-
- private void rbDyingStar_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_DyingStar];
- LoadSkybox();
- }
-
- private void rbBrokenMoon_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_BrokenMoon];
- LoadSkybox();
+ while ( glControl1.IsIdle ) {
+ Vector3d m = Vector3d.Zero; ;
+ // calculate the aim change while the user is handling the control (integrating the amount of control)
+ Int64 newTick = DateTime.Now.Ticks;
+ m_msElapsed = ( newTick - m_ticks ) / TimeSpan.TicksPerMillisecond;
+ if ( m_msElapsed < m_frameTime ) {
+ // lblDebug.Text = "F";
+ continue; //pace updates the max frametime allowed
}
+ //lblDebug.Text = "R";
- private void rbKareah_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Demien];
- LoadSkybox();
- }
+ // safeguard against locking (moving the window) so the integrator does not get crazy..
+ // if deltatime gets too big we fake a regular cycle for this round
+ if ( m_msElapsed > 200 ) m_msElapsed = m_frameTime;
- private void rbArea18_CheckedChanged(object sender, EventArgs e)
- {
- TMU0_Filename = SBFiles[SB_Area18];
- LoadSkybox();
+ m_ticks = newTick; // prep next run
+ // query the Joysticks for the 3 controls and fill the flight model vector
+ if ( m_isStrafe ) {
+ m = Idle_Strafe( );
}
+ else {
+ m = Idle_YPR( );
+ }
+
+ // finalize
+ m_flightModel.Velocity -= m; // new direction change vector
+ Vector3d deltaAngleV = m_flightModel.Integrate( (double)m_msElapsed / 1000.0, m_damping, 85.0 ); // heuristic K and B ..
+
+ // rotate the view along the input
+ // rotDeg( m );
+ rotDeg( deltaAngleV );
+
+ // render once more
+ Render( );
+
+ }//while
+ }
+
+ #endregion
+
+
+ #region Event Handling
+
+ #region turnspeed things
+
+ private void rbAurora_CheckedChanged( object sender, EventArgs e )
+ {
+ slDamping.Value = 6;
+ slTurnSpeed.Value = 10;
+ }
+
+ private void rb300i_CheckedChanged( object sender, EventArgs e )
+ {
+ slDamping.Value = 6;
+ slTurnSpeed.Value = 8; // turns in 4 seconds 360deg
+ }
+
+ private void rbHornet_CheckedChanged( object sender, EventArgs e )
+ {
+ slDamping.Value = 6;
+ slTurnSpeed.Value = 12;
+ }
+
+ private void slTurnSpeed_ValueChanged( object sender, EventArgs e )
+ {
+ // recalc the turning scale based on one full 360 deg sweep in the given time (sec)
+ DegPerMS = 360.0 / ( slTurnSpeed.Value * 500.0 ); // slider is 0.5 sec steps
+ lblTurnspeed.Text = ( slTurnSpeed.Value / 2.0 ).ToString( );
+ }
+
+ private void slDamping_ValueChanged( object sender, EventArgs e )
+ {
+ m_damping = ( slDamping.Maximum - slDamping.Value + 1 ) * 100.0; // 100 .. 1000
+ lblDamping.Text = slDamping.Value.ToString( );
+ }
+
+ #endregion
+
+ #region Tune Kind Changed
+
+ private void rbTuneYPR_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( rbTuneYPR.Checked ) {
+ m_isStrafe = false;
+ lblYaw.Text = "Yaw"; lblLiveYaw.Text = "Yaw"; rbY.Text = "Yaw -->";
+ lblPitch.Text = "Pitch"; lblLivePitch.Text = "Pitch"; rbP.Text = "Pitch -->";
+ lblRoll.Text = "Roll"; lblLiveRoll.Text = "Roll"; rbR.Text = "Roll -->";
+ tlpData.BackColor = rbTuneYPR.BackColor;
+ pnlAxisSelector.BackColor = rbTuneYPR.BackColor;
+ RollUpdateGUIFromLiveValues( );
+ PitchUpdateGUIFromLiveValues( );
+ YawUpdateGUIFromLiveValues( );
+ }
+ }
+
+ private void rbTuneStrafe_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( rbTuneStrafe.Checked ) {
+ m_isStrafe = true;
+ lblYaw.Text = "Lat"; lblLiveYaw.Text = "Lateral"; rbY.Text = "Lateral -->";
+ lblPitch.Text = "Vert"; lblLivePitch.Text = "Vertical"; rbP.Text = "Vertical -->";
+ lblRoll.Text = "Lon"; lblLiveRoll.Text = "Long."; rbR.Text = "Longitudinal -->";
+ tlpData.BackColor = rbTuneStrafe.BackColor;
+ pnlAxisSelector.BackColor = rbTuneStrafe.BackColor;
+ StrafeLonUpdateGUIFromLiveValues( );
+ StrafeVertUpdateGUIFromLiveValues( );
+ StrafeLatUpdateGUIFromLiveValues( );
+ }
+ }
+
+ #endregion
+
+ #region Active Axis Changed - - copy data from left labels into the working area
+
+ ///
+ /// Make Yaw Active - copy data from left labels into the working area
+ ///
+ private void rbY_CheckedChanged()
+ {
+ if ( rbY.Checked == true ) {
+ // get Labels from left area (current)
+ lblIn[1].Text = lblYin1.Text; lblIn[2].Text = lblYin2.Text; lblIn[3].Text = lblYin3.Text;
+ lblOut[1].Text = lblYout1.Text; lblOut[2].Text = lblYout2.Text; lblOut[3].Text = lblYout3.Text;
+ lblOut[4].Text = lblYexponent.Text;
+ lblNodetext.Text = lblYnt.Text;
+ // setup chart along the choosen parameter
+ rbPtDeadzone.Enabled = cbxYdeadzone.Checked;
+ rbPtSaturation.Enabled = cbxYsat.Checked;
+
+ rbPtDeadzone.Checked = true;
+ if ( rbPtDeadzone.Enabled ) {
+ tbSlider.Value = Deviceoptions.DeadzoneToSlider( lblYdeadzone.Text );
+ }
+ else {
+ rbPtSaturation.Checked = true;
+ if ( rbPtSaturation.Enabled ) {
+ tbSlider.Value = Deviceoptions.SaturationToSlider( lblYsat.Text );
+ }
+ }
+ UpdateChartItems( );
+ }
+ }
+ private void rbY_CheckedChanged( object sender, EventArgs e )
+ {
+ rbY_CheckedChanged( );
+ }
+ private void rbY_CheckUpdate()
+ {
+ rbY.Checked = false; rbY.Checked = true; // forces to check and to update in case of already checked
+ }
+
+
+ ///
+ /// Make Pitch Active - copy data from left labels into the working area
+ ///
+ private void rbP_CheckedChanged()
+ {
+ if ( rbP.Checked == true ) {
+ // get Labels from left area (current)
+ lblIn[1].Text = lblPin1.Text; lblIn[2].Text = lblPin2.Text; lblIn[3].Text = lblPin3.Text;
+ lblOut[1].Text = lblPout1.Text; lblOut[2].Text = lblPout2.Text; lblOut[3].Text = lblPout3.Text;
+ lblOut[4].Text = lblPexponent.Text;
+ lblNodetext.Text = lblPnt.Text;
+ // setup chart along the choosen parameter
+ rbPtDeadzone.Enabled = cbxPdeadzone.Checked;
+ rbPtSaturation.Enabled = cbxPsat.Checked;
+
+ rbPtDeadzone.Checked = true;
+ if ( rbPtDeadzone.Enabled ) {
+ tbSlider.Value = Deviceoptions.DeadzoneToSlider( lblPdeadzone.Text );
+ }
+ else {
+ rbPtSaturation.Checked = true; // force back to sense (available for both..)
+ if ( rbPtSaturation.Enabled ) {
+ tbSlider.Value = Deviceoptions.SaturationToSlider( lblPsat.Text );
+ }
+ }
+ UpdateChartItems( );
+ }
+ }
+ private void rbP_CheckedChanged( object sender, EventArgs e )
+ {
+ rbP_CheckedChanged( );
+ }
+ private void rbP_CheckUpdate()
+ {
+ rbP.Checked = false; rbP.Checked = true; // forces to check and to update in case of already checked
+ }
+
+ ///
+ /// Make Roll Active - copy data from left labels into the working area
+ ///
+ private void rbR_CheckedChanged()
+ {
+ if ( rbR.Checked == true ) {
+ // get Labels from left area (current)
+ lblIn[1].Text = lblRin1.Text; lblIn[2].Text = lblRin2.Text; lblIn[3].Text = lblRin3.Text;
+ lblOut[1].Text = lblRout1.Text; lblOut[2].Text = lblRout2.Text; lblOut[3].Text = lblRout3.Text;
+ lblOut[4].Text = lblRexponent.Text;
+ lblNodetext.Text = lblRnt.Text;
+ // setup chart along the choosen parameter
+ rbPtDeadzone.Enabled = cbxRdeadzone.Checked;
+ rbPtSaturation.Enabled = cbxRsat.Checked;
+
+ rbPtDeadzone.Checked = true;
+ if ( rbPtDeadzone.Enabled ) {
+ tbSlider.Value = Deviceoptions.DeadzoneToSlider( lblRdeadzone.Text );
+ }
+ else {
+ rbPtSaturation.Checked = true; // force back to sense (available for both..)
+ if ( rbPtSaturation.Enabled ) {
+ tbSlider.Value = Deviceoptions.SaturationToSlider( lblRsat.Text );
+ }
+ }
+ UpdateChartItems( );
+ }
+ }
+ private void rbR_CheckedChanged( object sender, EventArgs e )
+ {
+ rbR_CheckedChanged( );
+ }
+ private void rbR_CheckUpdate()
+ {
+ rbR.Checked = false; rbR.Checked = true; // forces to check and to update in case of already checked
+ }
+
+ // Interaction helper - changes panel on mouse up
+
+ private void pnlYaw_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e )
+ {
+ rbY_CheckUpdate( );
+ }
+
+ private void pnlPitch_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e )
+ {
+ rbP_CheckUpdate( );
+ }
+
+ private void pnlRoll_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e )
+ {
+ rbR_CheckUpdate( );
+ }
+ #endregion
- #endregion
+ #region Charts section
+ // Chart - move Pts
- private void btCopyToAllAxis_Click(object sender, EventArgs e)
- {
- lblYin1.Text = lblIn1.Text; lblYout1.Text = lblOut1.Text;
- lblYin2.Text = lblIn2.Text; lblYout2.Text = lblOut2.Text;
- lblYin3.Text = lblIn3.Text; lblYout3.Text = lblOut3.Text;
- if (m_isStrafe)
- {
- if (m_liveStrafeLat.nonLinCurve != null)
- {
- m_liveStrafeLat.nonLinCurve.Curve(float.Parse(lblYin1.Text), float.Parse(lblYout1.Text),
- float.Parse(lblYin2.Text), float.Parse(lblYout2.Text),
- float.Parse(lblYin3.Text), float.Parse(lblYout3.Text));
- }
- }
- else
- {
- if (m_liveYaw.nonLinCurve != null)
- {
- m_liveYaw.nonLinCurve.Curve(float.Parse(lblYin1.Text), float.Parse(lblYout1.Text),
- float.Parse(lblYin2.Text), float.Parse(lblYout2.Text),
- float.Parse(lblYin3.Text), float.Parse(lblYout3.Text));
- }
- }
+ ///
+ /// Evaluate which tune parameter has the chart input
+ ///
+ private void EvalChartInput()
+ {
+ m_hitPt = 0;
+ if ( rbPt1.Enabled && rbPt1.Checked ) m_hitPt = 1;
+ if ( rbPt2.Enabled && rbPt2.Checked ) m_hitPt = 2;
+ if ( rbPt3.Enabled && rbPt3.Checked ) m_hitPt = 3;
+ if ( rbPtExponent.Enabled && rbPtExponent.Checked ) m_hitPt = 4;
- lblPin1.Text = lblIn1.Text; lblPout1.Text = lblOut1.Text;
- lblPin2.Text = lblIn2.Text; lblPout2.Text = lblOut2.Text;
- lblPin3.Text = lblIn3.Text; lblPout3.Text = lblOut3.Text;
- if (m_isStrafe)
- {
- if (m_liveStrafeVert.nonLinCurve != null)
- {
- m_liveStrafeVert.nonLinCurve.Curve(float.Parse(lblPin1.Text), float.Parse(lblPout1.Text),
- float.Parse(lblPin2.Text), float.Parse(lblPout2.Text),
- float.Parse(lblPin3.Text), float.Parse(lblPout3.Text));
- }
- }
- else
- {
- if (m_livePitch.nonLinCurve != null)
- {
- m_livePitch.nonLinCurve.Curve(float.Parse(lblPin1.Text), float.Parse(lblPout1.Text),
- float.Parse(lblPin2.Text), float.Parse(lblPout2.Text),
- float.Parse(lblPin3.Text), float.Parse(lblPout3.Text));
- }
- }
+ if ( m_hitPt > 0 ) return;
- lblRin1.Text = lblIn1.Text; lblRout1.Text = lblOut1.Text;
- lblRin2.Text = lblIn2.Text; lblRout2.Text = lblOut2.Text;
- lblRin3.Text = lblIn3.Text; lblRout3.Text = lblOut3.Text;
- if (m_isStrafe)
- {
- if (m_liveStrafeLon.nonLinCurve != null)
- {
- m_liveStrafeLon.nonLinCurve.Curve(float.Parse(lblRin1.Text), float.Parse(lblRout1.Text),
- float.Parse(lblRin2.Text), float.Parse(lblRout2.Text),
- float.Parse(lblRin3.Text), float.Parse(lblRout3.Text));
- }
- }
- else
- {
- if (m_liveRoll.nonLinCurve != null)
- {
- m_liveRoll.nonLinCurve.Curve(float.Parse(lblRin1.Text), float.Parse(lblRout1.Text),
- float.Parse(lblRin2.Text), float.Parse(lblRout2.Text),
- float.Parse(lblRin3.Text), float.Parse(lblRout3.Text));
- }
- }
- }
-
- private void btDone_Click(object sender, EventArgs e)
- {
- // It ai setup as OK button - nothing here so far...
+ // slider fudge
+ tbSlider.Enabled = false;
+ if ( rbPtDeadzone.Enabled && rbPtDeadzone.Checked ) {
+ tbSlider.Enabled = true;
+ if ( rbY.Checked ) {
+ tbSlider.Value = Deviceoptions.DeadzoneToSlider( lblYdeadzone.Text );
+ }
+ else if ( rbP.Checked ) {
+ tbSlider.Value = Deviceoptions.DeadzoneToSlider( lblPdeadzone.Text );
+ }
+ else if ( rbR.Checked ) {
+ tbSlider.Value = Deviceoptions.DeadzoneToSlider( lblRdeadzone.Text );
+ }
+ }
+ if ( rbPtSaturation.Enabled && rbPtSaturation.Checked ) {
+ tbSlider.Enabled = true;
+ if ( rbY.Checked ) {
+ tbSlider.Value = Deviceoptions.SaturationToSlider( lblYsat.Text );
+ }
+ else if ( rbP.Checked ) {
+ tbSlider.Value = Deviceoptions.SaturationToSlider( lblPsat.Text );
+ }
+ else if ( rbR.Checked ) {
+ tbSlider.Value = Deviceoptions.SaturationToSlider( lblRsat.Text );
}
+ }
+ EvalSlider( );
+ }
+
+
+ ///
+ /// Handle change of the mouse input within the chart
+ ///
+ private void rbPtAny_CheckedChanged( object sender, EventArgs e )
+ {
+ EvalChartInput( );
+ }
+
+
+ // handle mouse interaction with the chart
+
+ int m_hitPt = 0;
+ bool m_hitActive = false;
+ int mX = 0; int mY = 0;
+
+ ///
+ /// Update the graph from changes of acitve label values
+ ///
+ private void UpdateChartItems()
+ {
+ bool deadzoneUsed = true;
+ bool satUsed = true;
+ bool expUsed = true;
+ bool ptsUsed = true;
+ // see what is on display..
+ if ( rbY.Checked == true ) {
+ // Yaw
+ if ( m_isStrafe ) {
+ deadzoneUsed = ( m_liveStrafeLat.deadzoneUsed == true );
+ satUsed = ( m_liveStrafeLat.saturationUsed == true );
+ expUsed = ( m_liveStrafeLat.exponentUsed == true );
+ ptsUsed = ( m_liveStrafeLat.nonLinCurveUsed == true );
+ lblGraphDeadzone.Text = m_liveStrafeLat.deadzoneS;
+ lblGraphSaturation.Text = m_liveStrafeLat.saturationS;
+
+ }
+ else {
+ deadzoneUsed = ( m_liveYaw.deadzoneUsed == true );
+ satUsed = ( m_liveYaw.saturationUsed == true );
+ expUsed = ( m_liveYaw.exponentUsed == true );
+ ptsUsed = ( m_liveYaw.nonLinCurveUsed == true );
+ lblGraphDeadzone.Text = m_liveYaw.deadzoneS;
+ lblGraphSaturation.Text = m_liveYaw.saturationS;
+ }
+ chart1.BackColor = rbY.BackColor;
+
+ }
+ else if ( rbP.Checked == true ) {
+ // Pitch
+ if ( m_isStrafe ) {
+ deadzoneUsed = ( m_liveStrafeVert.deadzoneUsed == true );
+ satUsed = ( m_liveStrafeVert.saturationUsed == true );
+ expUsed = ( m_liveStrafeVert.exponentUsed == true );
+ ptsUsed = ( m_liveStrafeVert.nonLinCurveUsed == true );
+ lblGraphDeadzone.Text = m_liveStrafeVert.deadzoneS;
+ lblGraphSaturation.Text = m_liveStrafeVert.saturationS;
+ }
+ else {
+ deadzoneUsed = ( m_livePitch.deadzoneUsed == true );
+ satUsed = ( m_livePitch.saturationUsed == true );
+ expUsed = ( m_livePitch.exponentUsed == true );
+ ptsUsed = ( m_livePitch.nonLinCurveUsed == true );
+ lblGraphDeadzone.Text = m_livePitch.deadzoneS;
+ lblGraphSaturation.Text = m_livePitch.saturationS;
+ }
+ chart1.BackColor = rbP.BackColor;
+
+ }
+ else {
+ // Roll
+ if ( m_isStrafe ) {
+ deadzoneUsed = ( m_liveStrafeLon.deadzoneUsed == true );
+ satUsed = ( m_liveStrafeLon.saturationUsed == true );
+ expUsed = ( m_liveStrafeLon.exponentUsed == true );
+ ptsUsed = ( m_liveStrafeLon.nonLinCurveUsed == true );
+ lblGraphDeadzone.Text = m_liveStrafeLon.deadzoneS;
+ lblGraphSaturation.Text = m_liveStrafeLon.saturationS;
+ }
+ else {
+ deadzoneUsed = ( m_liveRoll.deadzoneUsed == true );
+ satUsed = ( m_liveRoll.saturationUsed == true );
+ expUsed = ( m_liveRoll.exponentUsed == true );
+ ptsUsed = ( m_liveRoll.nonLinCurveUsed == true );
+ lblGraphDeadzone.Text = m_liveRoll.deadzoneS;
+ lblGraphSaturation.Text = m_liveRoll.saturationS;
+ }
+ chart1.BackColor = rbR.BackColor;
+ }
+
+ // generic part
+ rbPtDeadzone.Enabled = deadzoneUsed;
+ lblGraphDeadzone.Visible = deadzoneUsed;
+
+ rbPtSaturation.Enabled = satUsed;
+ lblGraphSaturation.Visible = satUsed;
+
+ rbPtExponent.Enabled = expUsed;
+ rbPt1.Enabled = ptsUsed; rbPt2.Enabled = ptsUsed; rbPt3.Enabled = ptsUsed;
+ EvalChartInput( ); // review active chart input
+
+ if ( !tbSlider.Enabled ) lblOutSlider.Text = "---";
+
+ if ( expUsed ) {
+ // Exp mode
+ double expo = double.Parse( lblOut[4].Text );
+ // dont touch zero Point
+ m_bSeries.BezierPoints[1].SetValueXY( 0.25, Math.Pow( 0.25, expo ) );
+ m_bSeries.BezierPoints[2].SetValueXY( 0.5, Math.Pow( 0.5, expo ) );
+ m_bSeries.BezierPoints[3].SetValueXY( 0.75, Math.Pow( 0.75, expo ) );
+ m_bSeries.BezierPoints[4].SetValueXY( 1.0, 1.0 );
+
+ }
+ else if ( ptsUsed ) {
+ // Pts mode
+ // dont touch zero Point
+ for ( int i = 1; i <= 3; i++ ) {
+ m_bSeries.BezierPoints[i].SetValueXY( float.Parse( lblIn[i].Text ), float.Parse( lblOut[i].Text ) );
+ }
+ m_bSeries.BezierPoints[4].SetValueXY( 1.0, 1.0 );
+
+ }
+ else {
+ // linear
+ // dont touch zero Point
+ m_bSeries.BezierPoints[1].SetValueXY( 0.25, 0.25 );
+ m_bSeries.BezierPoints[2].SetValueXY( 0.5, 0.5 );
+ m_bSeries.BezierPoints[3].SetValueXY( 0.75, 0.75 );
+ m_bSeries.BezierPoints[4].SetValueXY( 1.0, 1.0 );
+ }
+ // update markers from curve points
+ chart1.Series[1].Points[1] = m_bSeries.BezierPoints[1];
+ chart1.Series[1].Points[2] = m_bSeries.BezierPoints[2];
+ chart1.Series[1].Points[3] = m_bSeries.BezierPoints[3];
+ chart1.Series[1].Points[4] = m_bSeries.BezierPoints[4];
+
+ m_bSeries.Invalidate( chart1 );
+ }
+
+
+
+ private void chartPoint_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e )
+ {
+ m_hitActive = true; // activate movement tracking
+ mX = e.X; mY = e.Y; // save initial loc to get deltas
+ }
+
+ private void chartPoint_MouseMove( object sender, System.Windows.Forms.MouseEventArgs e )
+ {
+ if ( m_hitActive ) {
+ if ( m_hitPt < 1 ) {
+ // nothing selected ...
+ }
+ else if ( m_hitPt <= 3 ) {
+ // Pt1..3
+ double newX = double.Parse( lblIn[m_hitPt].Text ) + ( e.X - mX ) * 0.001f; mX = e.X;
+ newX = ( newX > 1.0f ) ? 1.0f : newX;
+ newX = ( newX < 0.0f ) ? 0.0f : newX;
+ lblIn[m_hitPt].Text = newX.ToString( "0.000" );
+
+ double newY = double.Parse( lblOut[m_hitPt].Text ) + ( e.Y - mY ) * -0.001f; mY = e.Y;
+ newY = ( newY > 1.0f ) ? 1.0f : newY;
+ newY = ( newY < 0.0f ) ? 0.0f : newY;
+ lblOut[m_hitPt].Text = newY.ToString( "0.000" );
+
+ // update chart (Points[0] is zero)
+ m_bSeries.BezierPoints[m_hitPt].SetValueXY( newX, newY );
+ // update markers from curve points
+ chart1.Series[1].Points[m_hitPt] = m_bSeries.BezierPoints[m_hitPt];
+
+ }
+ else if ( m_hitPt == 4 ) {
+ // Exponent
+ double newY = double.Parse( lblOut[m_hitPt].Text ) + ( e.Y - mY ) * 0.01f; mY = e.Y;
+ newY = ( newY > 3.0f ) ? 3.0f : newY;
+ newY = ( newY < 0.5f ) ? 0.5f : newY;
+ lblOut[m_hitPt].Text = newY.ToString( "0.00" );
+
+ // update chart (Points[0] is zero)
+ m_bSeries.BezierPoints[1].SetValueXY( 0.25, Math.Pow( 0.25, newY ) );
+ m_bSeries.BezierPoints[2].SetValueXY( 0.5, Math.Pow( 0.5, newY ) );
+ m_bSeries.BezierPoints[3].SetValueXY( 0.75, Math.Pow( 0.75, newY ) );
+ }
+
+ // update markers from curve points
+ chart1.Series[1].Points[1] = m_bSeries.BezierPoints[1];
+ chart1.Series[1].Points[2] = m_bSeries.BezierPoints[2];
+ chart1.Series[1].Points[3] = m_bSeries.BezierPoints[3];
+ chart1.Series[1].Points[4] = m_bSeries.BezierPoints[4];
+
+ m_bSeries.Invalidate( chart1 );
+
+ }
+ }
+
+ private void chartPoint_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e )
+ {
+ m_hitActive = false;
+
+ // update the rest of the fields from Entry
+
+ if ( rbY.Checked == true ) {
+ // left area labels
+ lblYin1.Text = lblIn[1].Text; lblYin2.Text = lblIn[2].Text; lblYin3.Text = lblIn[3].Text;
+ lblYout1.Text = lblOut[1].Text; lblYout2.Text = lblOut[2].Text; lblYout3.Text = lblOut[3].Text;
+ lblYexponent.Text = lblOut[4].Text;
+ // update live values
+ if ( m_isStrafe ) {
+ m_liveStrafeLat.exponentS = lblYexponent.Text;
+ if ( m_liveStrafeLat.nonLinCurve != null ) {
+ m_liveStrafeLat.nonLinCurve.Curve( float.Parse( lblYin1.Text ), float.Parse( lblYout1.Text ),
+ float.Parse( lblYin2.Text ), float.Parse( lblYout2.Text ),
+ float.Parse( lblYin3.Text ), float.Parse( lblYout3.Text ) );
+ }
+ }
+ else {
+ m_liveYaw.exponentS = lblYexponent.Text;
+ if ( m_liveYaw.nonLinCurve != null ) {
+ m_liveYaw.nonLinCurve.Curve( float.Parse( lblYin1.Text ), float.Parse( lblYout1.Text ),
+ float.Parse( lblYin2.Text ), float.Parse( lblYout2.Text ),
+ float.Parse( lblYin3.Text ), float.Parse( lblYout3.Text ) );
+ }
+ }
+
+ }
+ else if ( rbP.Checked == true ) {
+ // left area labels
+ lblPin1.Text = lblIn[1].Text; lblPin2.Text = lblIn[2].Text; lblPin3.Text = lblIn[3].Text;
+ lblPout1.Text = lblOut[1].Text; lblPout2.Text = lblOut[2].Text; lblPout3.Text = lblOut[3].Text;
+ lblPexponent.Text = lblOut[4].Text;
+ // update live values
+ if ( m_isStrafe ) {
+ m_liveStrafeVert.exponentS = lblPexponent.Text;
+ if ( m_liveStrafeVert.nonLinCurve != null ) {
+ m_liveStrafeVert.nonLinCurve.Curve( float.Parse( lblPin1.Text ), float.Parse( lblPout1.Text ),
+ float.Parse( lblPin2.Text ), float.Parse( lblPout2.Text ),
+ float.Parse( lblPin3.Text ), float.Parse( lblPout3.Text ) );
+ }
+ }
+ else {
+ m_livePitch.exponentS = lblPexponent.Text;
+ if ( m_livePitch.nonLinCurve != null ) {
+ m_livePitch.nonLinCurve.Curve( float.Parse( lblPin1.Text ), float.Parse( lblPout1.Text ),
+ float.Parse( lblPin2.Text ), float.Parse( lblPout2.Text ),
+ float.Parse( lblPin3.Text ), float.Parse( lblPout3.Text ) );
+ }
+ }
+
+ }
+ else if ( rbR.Checked == true ) {
+ // left area labels
+ lblRin1.Text = lblIn[1].Text; lblRin2.Text = lblIn[2].Text; lblRin3.Text = lblIn[3].Text;
+ lblRout1.Text = lblOut[1].Text; lblRout2.Text = lblOut[2].Text; lblRout3.Text = lblOut[3].Text;
+ lblRexponent.Text = lblOut[4].Text;
+ // update live values
+ if ( m_isStrafe ) {
+ m_liveStrafeLon.exponentS = lblRexponent.Text;
+ if ( m_liveStrafeLon.nonLinCurve != null ) {
+ m_liveStrafeLon.nonLinCurve.Curve( float.Parse( lblRin1.Text ), float.Parse( lblRout1.Text ),
+ float.Parse( lblRin2.Text ), float.Parse( lblRout2.Text ),
+ float.Parse( lblRin3.Text ), float.Parse( lblRout3.Text ) );
+ }
+ }
+ else {
+ m_liveRoll.exponentS = lblRexponent.Text;
+ if ( m_liveRoll.nonLinCurve != null ) {
+ m_liveRoll.nonLinCurve.Curve( float.Parse( lblRin1.Text ), float.Parse( lblRout1.Text ),
+ float.Parse( lblRin2.Text ), float.Parse( lblRout2.Text ),
+ float.Parse( lblRin3.Text ), float.Parse( lblRout3.Text ) );
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region Checked Invert Changed
+
+ private void cbxYinvert_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLat.invertUsed = false;
+ if ( cbxYinvert.Checked == true ) {
+ m_liveStrafeLat.invertUsed = true;
+ }
+ }
+ else {
+ m_liveYaw.invertUsed = false;
+ if ( cbxYinvert.Checked == true ) {
+ m_liveYaw.invertUsed = true;
+ }
+ }
+ rbY_CheckUpdate( );
+ }
+
+ private void cbxPinvert_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeVert.invertUsed = false;
+ if ( cbxPinvert.Checked == true ) {
+ m_liveStrafeVert.invertUsed = true;
+ }
+ }
+ else {
+ m_livePitch.invertUsed = false;
+ if ( cbxPinvert.Checked == true ) {
+ m_livePitch.invertUsed = true;
+ }
+ }
+ rbP_CheckUpdate( );
+ }
+
+ private void cbxRinvert_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLon.invertUsed = false;
+ if ( cbxRinvert.Checked == true ) {
+ m_liveStrafeLon.invertUsed = true;
+ }
+ }
+ else {
+ m_liveRoll.invertUsed = false;
+ if ( cbxRinvert.Checked == true ) {
+ m_liveRoll.invertUsed = true;
+ }
+ }
+ rbR_CheckUpdate( );
+ }
+
+ #endregion
+
+ #region Slider Value Changed (Deadzone / Saturation)
+
+ // Deadzone slider 00 .. 40 -> 0 .. 0.160 ( 4 pt scale)
+ // Saturation slider 00 .. 40 -> 0.2 .. 1.0 ( 20 pt scale)
+
+ private void EvalSlider()
+ {
+ if ( rbPtDeadzone.Enabled && rbPtDeadzone.Checked ) {
+ lblOutSlider.Text = Deviceoptions.DeadzoneFromSlider( tbSlider.Value ).ToString( "0.000" );
+ float curDeadzone = 1000.0f * Deviceoptions.DeadzoneFromSlider( tbSlider.Value ); // % scaled to maxAxis
+
+ if ( rbY.Checked == true ) {
+ if ( m_isStrafe ) m_liveStrafeLat.deadzone = curDeadzone; else m_liveYaw.deadzone = curDeadzone;
+ lblYdeadzone.Text = lblOutSlider.Text;
+ }
+ else if ( rbP.Checked == true ) {
+ if ( m_isStrafe ) m_liveStrafeVert.deadzone = curDeadzone; else m_livePitch.deadzone = curDeadzone;
+ lblPdeadzone.Text = lblOutSlider.Text;
+ }
+ else if ( rbR.Checked == true ) {
+ if ( m_isStrafe ) m_liveStrafeLon.deadzone = curDeadzone; else m_liveRoll.deadzone = curDeadzone;
+ lblRdeadzone.Text = lblOutSlider.Text;
+ }
+ lblGraphDeadzone.Text = lblOutSlider.Text;
+ }
+ else if ( rbPtSaturation.Enabled && rbPtSaturation.Checked ) {
+ lblOutSlider.Text = Deviceoptions.SaturationFromSlider( tbSlider.Value ).ToString( "0.000" );
+ float curSaturation = 1000.0f * Deviceoptions.SaturationFromSlider( tbSlider.Value ); // % scaled to maxAxis
+
+ if ( rbY.Checked == true ) {
+ if ( m_isStrafe ) m_liveStrafeLat.saturation = curSaturation; else m_liveYaw.saturation = curSaturation;
+ lblYsat.Text = lblOutSlider.Text;
+ }
+ else if ( rbP.Checked == true ) {
+ if ( m_isStrafe ) m_liveStrafeVert.saturation = curSaturation; else m_livePitch.saturation = curSaturation;
+ lblPsat.Text = lblOutSlider.Text;
+ }
+ else if ( rbR.Checked == true ) {
+ if ( m_isStrafe ) m_liveStrafeLon.saturation = curSaturation; else m_liveRoll.saturation = curSaturation;
+ lblRsat.Text = lblOutSlider.Text;
+ }
+ lblGraphSaturation.Text = lblOutSlider.Text;
+ }
+ }
+
+ private void tbSlider_ValueChanged( object sender, EventArgs e )
+ {
+ EvalSlider( );
+ }
+
+ #endregion
+
+ #region Checked Deadzone Changed
+
+ private void cbxYdeadzone_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLat.deadzoneUsed = false;
+ if ( cbxYdeadzone.Checked == true ) {
+ m_liveStrafeLat.deadzoneUsed = true;
+ }
+ }
+ else {
+ m_liveYaw.deadzoneUsed = false;
+ if ( cbxYdeadzone.Checked == true ) {
+ m_liveYaw.deadzoneUsed = true;
+ }
+ }
+ rbY_CheckUpdate( );
+ rbPtDeadzone.Checked = cbxYdeadzone.Checked;
+ UpdateChartItems( );
+ }
+
+ private void cbxPdeadzone_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeVert.deadzoneUsed = false;
+ if ( cbxPdeadzone.Checked == true ) {
+ m_liveStrafeVert.deadzoneUsed = true;
+ }
+ }
+ else {
+ m_livePitch.deadzoneUsed = false;
+ if ( cbxPdeadzone.Checked == true ) {
+ m_livePitch.deadzoneUsed = true;
+ }
+ }
+ rbP_CheckUpdate( );
+ rbPtDeadzone.Checked = cbxPdeadzone.Checked;
+ UpdateChartItems( );
+ }
+
+ private void cbxRdeadzone_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLon.deadzoneUsed = false;
+ if ( cbxRdeadzone.Checked == true ) {
+ m_liveStrafeLon.deadzoneUsed = true; // update storage
+ }
+ }
+ else {
+ m_liveRoll.deadzoneUsed = false;
+ if ( cbxRdeadzone.Checked == true ) {
+ m_liveRoll.deadzoneUsed = true; // update storage
+ }
+ }
+ rbR_CheckUpdate( );
+ rbPtDeadzone.Checked = cbxRdeadzone.Checked;
+ UpdateChartItems( );
+ }
+
+ #endregion
+
+ #region Checked Saturation Changed
+ private void cbxYsense_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLat.saturationUsed = false;
+ if ( cbxYsat.Checked == true ) {
+ m_liveStrafeLat.saturationUsed = true;
+ }
+ }
+ else {
+ m_liveYaw.saturationUsed = false;
+ if ( cbxYsat.Checked == true ) {
+ m_liveYaw.saturationUsed = true;
+ }
+ }
+ rbY_CheckUpdate( );
+ rbPtSaturation.Checked = cbxYsat.Checked;
+ UpdateChartItems( );
+ }
+
+ private void cbxPsense_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeVert.saturationUsed = false;
+ if ( cbxPsat.Checked == true ) {
+ m_liveStrafeVert.saturationUsed = true;
+ }
+ }
+ else {
+ m_livePitch.saturationUsed = false;
+ if ( cbxPsat.Checked == true ) {
+ m_livePitch.saturationUsed = true;
+ }
+ }
+ rbP_CheckUpdate( );
+ rbPtSaturation.Checked = cbxPsat.Checked;
+ UpdateChartItems( );
+ }
+
+ private void cbxRsense_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLon.saturationUsed = false;
+ if ( cbxRsat.Checked == true ) {
+ m_liveStrafeLon.saturationUsed = true;
+ }
+ }
+ else {
+ m_liveRoll.saturationUsed = false;
+ if ( cbxRsat.Checked == true ) {
+ m_liveRoll.saturationUsed = true;
+ }
+ }
+ rbR_CheckUpdate( );
+ rbPtSaturation.Checked = cbxRsat.Checked;
+ UpdateChartItems( );
+ }
+
+ #endregion
+
+ #region Checked Exponent Changed
+
+ private void cbxYexpo_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLat.exponentUsed = false;
+ if ( cbxYexpo.Checked == true ) {
+ m_liveStrafeLat.exponentUsed = true;
+ cbxYpts.Checked = false; // forced: either expo OR points
+ }
+ }
+ else {
+ m_liveYaw.exponentUsed = false;
+ if ( cbxYexpo.Checked == true ) {
+ m_liveYaw.exponentUsed = true;
+ cbxYpts.Checked = false; // forced: either expo OR points
+ }
+ }
+ rbY_CheckUpdate( );
+ UpdateChartItems( );
+ }
+
+ private void cbxPexpo_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeVert.exponentUsed = false;
+ if ( cbxPexpo.Checked == true ) {
+ m_liveStrafeVert.exponentUsed = true;
+ cbxPpts.Checked = false; // forced: either expo OR points
+ }
+ }
+ else {
+ m_livePitch.exponentUsed = false;
+ if ( cbxPexpo.Checked == true ) {
+ m_livePitch.exponentUsed = true;
+ cbxPpts.Checked = false; // forced: either expo OR points
+ }
+ }
+ rbP_CheckUpdate( );
+ UpdateChartItems( );
+ }
+
+ private void cbxRexpo_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLon.exponentUsed = false;
+ if ( cbxRexpo.Checked == true ) {
+ m_liveStrafeLon.exponentUsed = true;
+ cbxRpts.Checked = false; // forced: either expo OR points
+ }
+ }
+ else {
+ m_liveRoll.exponentUsed = false;
+ if ( cbxRexpo.Checked == true ) {
+ m_liveRoll.exponentUsed = true;
+ cbxRpts.Checked = false; // forced: either expo OR points
+ }
+ }
+ rbR_CheckUpdate( );
+ UpdateChartItems( );
+ }
+
+ #endregion
+
+ #region Checked Points Changed
+
+ private void cbxYpts_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLat.nonLinCurveUsed = false;
+ if ( cbxYpts.Checked == true ) {
+ m_liveStrafeLat.nonLinCurveUsed = true;
+ cbxYexpo.Checked = false; // forced: either expo OR points
+ }
+ }
+ else {
+ m_liveYaw.nonLinCurveUsed = false;
+ if ( cbxYpts.Checked == true ) {
+ m_liveYaw.nonLinCurveUsed = true;
+ cbxYexpo.Checked = false; // forced: either expo OR points
+ }
+ }
+ rbY_CheckUpdate( );
+ UpdateChartItems( );
+ }
- #endregion
+ private void cbxPpts_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeVert.nonLinCurveUsed = false;
+ if ( cbxPpts.Checked == true ) {
+ m_liveStrafeVert.nonLinCurveUsed = true;
+ cbxPexpo.Checked = false; // forced: either expo OR points
+ }
+ }
+ else {
+ m_livePitch.nonLinCurveUsed = false;
+ if ( cbxPpts.Checked == true ) {
+ m_livePitch.nonLinCurveUsed = true;
+ cbxPexpo.Checked = false; // forced: either expo OR points
+ }
+ }
+ rbP_CheckUpdate( );
+ UpdateChartItems( );
+ }
+ private void cbxRpts_CheckedChanged( object sender, EventArgs e )
+ {
+ if ( m_isStrafe ) {
+ m_liveStrafeLon.nonLinCurveUsed = false;
+ if ( cbxRpts.Checked == true ) {
+ m_liveStrafeLon.nonLinCurveUsed = true;
+ cbxRexpo.Checked = false; // forced: either expo OR points
+ }
+ }
+ else {
+ m_liveRoll.nonLinCurveUsed = false;
+ if ( cbxRpts.Checked == true ) {
+ m_liveRoll.nonLinCurveUsed = true;
+ cbxRexpo.Checked = false; // forced: either expo OR points
+ }
+ }
+ rbR_CheckUpdate( );
+ UpdateChartItems( );
+ }
+ #endregion
+ #region Skybox Checked Changed
+
+ private void rbOutThere1_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_OutThere1];
+ LoadSkybox( );
+ }
+
+ private void rbOutThere3_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_OutThere3];
+ LoadSkybox( );
+ }
+ private void rbCanyon_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Canyon];
+ LoadSkybox( );
+ }
+ private void rbShiodome_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Shiodome];
+ LoadSkybox( );
+ }
+ private void rbHighway_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Highway];
+ LoadSkybox( );
+ }
+ private void rbBigSight_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_BigSight];
+ LoadSkybox( );
+ }
+ private void rbHelipad_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_LA_Helipad];
+ LoadSkybox( );
}
+
+ private void rbSkybox_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Skybox];
+ LoadSkybox( );
+ }
+
+ private void rbSunset_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Sunset];
+ LoadSkybox( );
+ }
+
+
+
+ private void rbDyingStar_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_DyingStar];
+ LoadSkybox( );
+ }
+
+ private void rbBrokenMoon_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_BrokenMoon];
+ LoadSkybox( );
+ }
+
+ private void rbKareah_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Demien];
+ LoadSkybox( );
+ }
+
+ private void rbArea18_CheckedChanged( object sender, EventArgs e )
+ {
+ TMU0_Filename = SBFiles[SB_Area18];
+ LoadSkybox( );
+ }
+
+
+
+ #endregion
+
+
+ private void btZeroCoords_Click( object sender, EventArgs e )
+ {
+ m_right = Vector3d.UnitX;
+ m_up = Vector3d.UnitY;
+ m_front = Vector3d.UnitZ;
+ }
+
+
+ private void btCopyToAllAxis_Click( object sender, EventArgs e )
+ {
+ lblYin1.Text = lblIn1.Text; lblYout1.Text = lblOut1.Text;
+ lblYin2.Text = lblIn2.Text; lblYout2.Text = lblOut2.Text;
+ lblYin3.Text = lblIn3.Text; lblYout3.Text = lblOut3.Text;
+ if ( m_isStrafe ) {
+ if ( m_liveStrafeLat.nonLinCurve != null ) {
+ m_liveStrafeLat.nonLinCurve.Curve( float.Parse( lblYin1.Text ), float.Parse( lblYout1.Text ),
+ float.Parse( lblYin2.Text ), float.Parse( lblYout2.Text ),
+ float.Parse( lblYin3.Text ), float.Parse( lblYout3.Text ) );
+ }
+ }
+ else {
+ if ( m_liveYaw.nonLinCurve != null ) {
+ m_liveYaw.nonLinCurve.Curve( float.Parse( lblYin1.Text ), float.Parse( lblYout1.Text ),
+ float.Parse( lblYin2.Text ), float.Parse( lblYout2.Text ),
+ float.Parse( lblYin3.Text ), float.Parse( lblYout3.Text ) );
+ }
+ }
+
+ lblPin1.Text = lblIn1.Text; lblPout1.Text = lblOut1.Text;
+ lblPin2.Text = lblIn2.Text; lblPout2.Text = lblOut2.Text;
+ lblPin3.Text = lblIn3.Text; lblPout3.Text = lblOut3.Text;
+ if ( m_isStrafe ) {
+ if ( m_liveStrafeVert.nonLinCurve != null ) {
+ m_liveStrafeVert.nonLinCurve.Curve( float.Parse( lblPin1.Text ), float.Parse( lblPout1.Text ),
+ float.Parse( lblPin2.Text ), float.Parse( lblPout2.Text ),
+ float.Parse( lblPin3.Text ), float.Parse( lblPout3.Text ) );
+ }
+ }
+ else {
+ if ( m_livePitch.nonLinCurve != null ) {
+ m_livePitch.nonLinCurve.Curve( float.Parse( lblPin1.Text ), float.Parse( lblPout1.Text ),
+ float.Parse( lblPin2.Text ), float.Parse( lblPout2.Text ),
+ float.Parse( lblPin3.Text ), float.Parse( lblPout3.Text ) );
+ }
+ }
+
+ lblRin1.Text = lblIn1.Text; lblRout1.Text = lblOut1.Text;
+ lblRin2.Text = lblIn2.Text; lblRout2.Text = lblOut2.Text;
+ lblRin3.Text = lblIn3.Text; lblRout3.Text = lblOut3.Text;
+ if ( m_isStrafe ) {
+ if ( m_liveStrafeLon.nonLinCurve != null ) {
+ m_liveStrafeLon.nonLinCurve.Curve( float.Parse( lblRin1.Text ), float.Parse( lblRout1.Text ),
+ float.Parse( lblRin2.Text ), float.Parse( lblRout2.Text ),
+ float.Parse( lblRin3.Text ), float.Parse( lblRout3.Text ) );
+ }
+ }
+ else {
+ if ( m_liveRoll.nonLinCurve != null ) {
+ m_liveRoll.nonLinCurve.Curve( float.Parse( lblRin1.Text ), float.Parse( lblRout1.Text ),
+ float.Parse( lblRin2.Text ), float.Parse( lblRout2.Text ),
+ float.Parse( lblRin3.Text ), float.Parse( lblRout3.Text ) );
+ }
+ }
+ }
+
+ private void btDone_Click( object sender, EventArgs e )
+ {
+ // It ai setup as OK button - nothing here so far...
+ }
+
+
+ #endregion
+
+
+
+
+
+
+
+
+ }
}
diff --git a/ReadMe.txt b/ReadMe.txt
index 41c7503..d9a521f 100644
--- a/ReadMe.txt
+++ b/ReadMe.txt
@@ -41,10 +41,13 @@ cassini@burri-web.org
Changelog:
V 2.35 - BETA Build 69
-- add - provide CIG asset texts for actions and maps
+- add - provide CIG asset texts/translations for actions and maps
(use Settings to choose - for now only French and German are in but have no translations
for English not all have a proper text - may not be used in the game ??)
+- add - tooltips for profile action names in treeview (enable in Settings)
+- add - mouse tuning items (curve, expo, invert)
- improvement - cache CIG assets into the app/Storage folder, reads from p4k file only if those are updated
+- fix - window should always be visible on startup now
- internal cleanup - to many to list
V 2.34 - BETA Build 68
- improvement - complete rework of XML defaultProfile/mapping parsing
diff --git a/SC/DProfileReader.cs b/SC/DProfileReader.cs
index e9e81ab..1c1a56c 100644
--- a/SC/DProfileReader.cs
+++ b/SC/DProfileReader.cs
@@ -11,6 +11,7 @@ using SCJMapper_V2.Devices.Joystick;
using SCJMapper_V2.Devices.Keyboard;
using SCJMapper_V2.Devices.Mouse;
using SCJMapper_V2.Devices.Gamepad;
+using SCJMapper_V2.Devices.Options;
namespace SCJMapper_V2.SC
{
@@ -218,6 +219,7 @@ namespace SCJMapper_V2.SC
string uiLabel = (string)action.Attribute( "UILabel" );
if ( string.IsNullOrEmpty( uiLabel ) )
uiLabel = name; // subst if not found in Action node
+ SCUiText.Instance.Add( name, uiLabel ); // Register item for translation
// prep all kinds
var jAC = new ProfileAction( ) { Name = name, UILabel = uiLabel, DevID = Act.DevTag( JoystickCls.DeviceClass ) };
@@ -304,6 +306,7 @@ namespace SCJMapper_V2.SC
string uiLabel = (string)actionmap.Attribute( "UILabel" );
if ( string.IsNullOrEmpty( uiLabel ) )
uiLabel = mapName; // subst if not found in Action node
+ SCUiText.Instance.Add( mapName, uiLabel ); // Register item for translation
string item = Array.Find( ActionMapsCls.ActionMaps, delegate ( string sstr ) { return sstr == mapName; } );
if ( !string.IsNullOrEmpty( item ) ) {
@@ -354,6 +357,7 @@ namespace SCJMapper_V2.SC
return true;
}
+
///
/// Read the defaultProfile.xml - do some sanity check
///
@@ -400,6 +404,14 @@ namespace SCJMapper_V2.SC
ValidContent &= Modifiers.Instance.FromXML( modifier, true );
}
+ OptionTree.InitOptionReader( );
+ IEnumerable optiontrees = from x in el.Elements( )
+ where ( x.Name == "optiontree" )
+ select x;
+ foreach ( XElement optiontree in optiontrees ) {
+ ValidContent &= OptionTree.fromProfileXML( optiontree );
+ }
+
IEnumerable actionmaps = from x in el.Elements( )
where ( x.Name == "actionmap" )
select x;
diff --git a/SC/SCUiText.cs b/SC/SCUiText.cs
index 23dbe0f..0b050b7 100644
--- a/SC/SCUiText.cs
+++ b/SC/SCUiText.cs
@@ -27,8 +27,9 @@ namespace SCJMapper_V2.SC
new SCLocale( Languages.french.ToString( ) ),
new SCLocale( Languages.german.ToString( ) ) }; // add supported languages
+ private Dictionary m_action2label = new Dictionary( );
- private Languages m_language = Languages.english;
+ private Languages m_language = Languages.english;
///
/// Set the language to be used
///
@@ -83,6 +84,34 @@ namespace SCJMapper_V2.SC
}// all files
}
+ ///
+ /// Add an Action - UILabel pair to the translation table
+ ///
+ /// An item from defaultProfile
+ /// The UILabel of the item
+ public void Add(string action, string uiLabel )
+ {
+ if ( m_action2label.ContainsKey( action ) ) {
+ return;
+ }
+ m_action2label.Add( action, uiLabel );
+ }
+
+
+ ///
+ /// Returns the content from the matching UILabel in the set Language
+ ///
+ /// The profile item (action etc)
+ /// A text string
+ public string Text( string action )
+ {
+ if ( m_action2label.ContainsKey( action ) ) {
+ return Text( m_action2label[action], action );
+ }
+ else return action; // no translation possible
+ }
+
+
///
/// Returns the content from the UILabel in the set Language
///
diff --git a/SCJMapper-V2.csproj b/SCJMapper-V2.csproj
index 809dbce..ab90cc5 100644
--- a/SCJMapper-V2.csproj
+++ b/SCJMapper-V2.csproj
@@ -238,7 +238,6 @@
-
diff --git a/Table/DS_ActionMaps.Designer.cs b/Table/DS_ActionMaps.Designer.cs
index 7377572..00d6018 100644
--- a/Table/DS_ActionMaps.Designer.cs
+++ b/Table/DS_ActionMaps.Designer.cs
@@ -33,7 +33,7 @@ namespace SCJMapper_V2.Table {
private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public DS_ActionMaps() {
this.BeginInit();
this.InitClass();
@@ -44,7 +44,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected DS_ActionMaps(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) :
base(info, context, false) {
if ((this.IsBinarySerialized(info, context) == true)) {
@@ -83,7 +83,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.Browsable(false)]
[global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)]
public T_ActionMapDataTable T_ActionMap {
@@ -93,7 +93,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.Browsable(false)]
[global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)]
public T_ActionDataTable T_Action {
@@ -103,7 +103,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.BrowsableAttribute(true)]
[global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)]
public override global::System.Data.SchemaSerializationMode SchemaSerializationMode {
@@ -116,7 +116,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)]
public new global::System.Data.DataTableCollection Tables {
get {
@@ -125,7 +125,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)]
public new global::System.Data.DataRelationCollection Relations {
get {
@@ -134,7 +134,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void InitializeDerivedDataSet() {
this.BeginInit();
this.InitClass();
@@ -142,7 +142,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public override global::System.Data.DataSet Clone() {
DS_ActionMaps cln = ((DS_ActionMaps)(base.Clone()));
cln.InitVars();
@@ -151,19 +151,19 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override bool ShouldSerializeTables() {
return false;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override bool ShouldSerializeRelations() {
return false;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) {
if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) {
this.Reset();
@@ -191,7 +191,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() {
global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream();
this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null));
@@ -200,13 +200,13 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal void InitVars() {
this.InitVars(true);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal void InitVars(bool initTable) {
this.tableT_ActionMap = ((T_ActionMapDataTable)(base.Tables["T_ActionMap"]));
if ((initTable == true)) {
@@ -224,7 +224,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
private void InitClass() {
this.DataSetName = "DS_ActionMaps";
this.Prefix = "";
@@ -242,19 +242,19 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
private bool ShouldSerializeT_ActionMap() {
return false;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
private bool ShouldSerializeT_Action() {
return false;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) {
if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) {
this.InitVars();
@@ -262,7 +262,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) {
DS_ActionMaps ds = new DS_ActionMaps();
global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType();
@@ -308,10 +308,10 @@ namespace SCJMapper_V2.Table {
return type;
}
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public delegate void T_ActionMapRowChangeEventHandler(object sender, T_ActionMapRowChangeEvent e);
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public delegate void T_ActionRowChangeEventHandler(object sender, T_ActionRowChangeEvent e);
///
@@ -324,7 +324,7 @@ namespace SCJMapper_V2.Table {
private global::System.Data.DataColumn columnID_ActionMap;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapDataTable() {
this.TableName = "T_ActionMap";
this.BeginInit();
@@ -333,7 +333,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal T_ActionMapDataTable(global::System.Data.DataTable table) {
this.TableName = table.TableName;
if ((table.CaseSensitive != table.DataSet.CaseSensitive)) {
@@ -350,14 +350,14 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected T_ActionMapDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) :
base(info, context) {
this.InitVars();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn ID_ActionMapColumn {
get {
return this.columnID_ActionMap;
@@ -365,7 +365,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.Browsable(false)]
public int Count {
get {
@@ -374,33 +374,33 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRow this[int index] {
get {
return ((T_ActionMapRow)(this.Rows[index]));
}
}
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionMapRowChangeEventHandler T_ActionMapRowChanging;
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionMapRowChangeEventHandler T_ActionMapRowChanged;
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionMapRowChangeEventHandler T_ActionMapRowDeleting;
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionMapRowChangeEventHandler T_ActionMapRowDeleted;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void AddT_ActionMapRow(T_ActionMapRow row) {
this.Rows.Add(row);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRow AddT_ActionMapRow(string ID_ActionMap) {
T_ActionMapRow rowT_ActionMapRow = ((T_ActionMapRow)(this.NewRow()));
object[] columnValuesArray = new object[] {
@@ -411,14 +411,14 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRow FindByID_ActionMap(string ID_ActionMap) {
return ((T_ActionMapRow)(this.Rows.Find(new object[] {
ID_ActionMap})));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public override global::System.Data.DataTable Clone() {
T_ActionMapDataTable cln = ((T_ActionMapDataTable)(base.Clone()));
cln.InitVars();
@@ -426,19 +426,19 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Data.DataTable CreateInstance() {
return new T_ActionMapDataTable();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal void InitVars() {
this.columnID_ActionMap = base.Columns["ID_ActionMap"];
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
private void InitClass() {
this.columnID_ActionMap = new global::System.Data.DataColumn("ID_ActionMap", typeof(string), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnID_ActionMap);
@@ -451,25 +451,25 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRow NewT_ActionMapRow() {
return ((T_ActionMapRow)(this.NewRow()));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) {
return new T_ActionMapRow(builder);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Type GetRowType() {
return typeof(T_ActionMapRow);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowChanged(e);
if ((this.T_ActionMapRowChanged != null)) {
@@ -478,7 +478,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowChanging(e);
if ((this.T_ActionMapRowChanging != null)) {
@@ -487,7 +487,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowDeleted(e);
if ((this.T_ActionMapRowDeleted != null)) {
@@ -496,7 +496,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowDeleting(e);
if ((this.T_ActionMapRowDeleting != null)) {
@@ -505,13 +505,13 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void RemoveT_ActionMapRow(T_ActionMapRow row) {
this.Rows.Remove(row);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) {
global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType();
global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence();
@@ -585,6 +585,8 @@ namespace SCJMapper_V2.Table {
private global::System.Data.DataColumn columnREF_ActionMap;
+ private global::System.Data.DataColumn columnActionText;
+
private global::System.Data.DataColumn columnActionName;
private global::System.Data.DataColumn columnDevice;
@@ -602,7 +604,7 @@ namespace SCJMapper_V2.Table {
private global::System.Data.DataColumn columnDisabled;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionDataTable() {
this.TableName = "T_Action";
this.BeginInit();
@@ -611,7 +613,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal T_ActionDataTable(global::System.Data.DataTable table) {
this.TableName = table.TableName;
if ((table.CaseSensitive != table.DataSet.CaseSensitive)) {
@@ -628,14 +630,14 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected T_ActionDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) :
base(info, context) {
this.InitVars();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn ID_ActionColumn {
get {
return this.columnID_Action;
@@ -643,7 +645,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn REF_ActionMapColumn {
get {
return this.columnREF_ActionMap;
@@ -651,7 +653,15 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
+ public global::System.Data.DataColumn ActionTextColumn {
+ get {
+ return this.columnActionText;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn ActionNameColumn {
get {
return this.columnActionName;
@@ -659,7 +669,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn DeviceColumn {
get {
return this.columnDevice;
@@ -667,7 +677,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn Def_BindingColumn {
get {
return this.columnDef_Binding;
@@ -675,7 +685,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn Def_ModifierColumn {
get {
return this.columnDef_Modifier;
@@ -683,7 +693,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn AddBindColumn {
get {
return this.columnAddBind;
@@ -691,7 +701,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn Usr_BindingColumn {
get {
return this.columnUsr_Binding;
@@ -699,7 +709,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn Usr_ModifierColumn {
get {
return this.columnUsr_Modifier;
@@ -707,7 +717,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataColumn DisabledColumn {
get {
return this.columnDisabled;
@@ -715,7 +725,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
[global::System.ComponentModel.Browsable(false)]
public int Count {
get {
@@ -724,38 +734,39 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionRow this[int index] {
get {
return ((T_ActionRow)(this.Rows[index]));
}
}
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionRowChangeEventHandler T_ActionRowChanging;
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionRowChangeEventHandler T_ActionRowChanged;
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionRowChangeEventHandler T_ActionRowDeleting;
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public event T_ActionRowChangeEventHandler T_ActionRowDeleted;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void AddT_ActionRow(T_ActionRow row) {
this.Rows.Add(row);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
- public T_ActionRow AddT_ActionRow(string ID_Action, T_ActionMapRow parentT_ActionMapRowByT_ActionMap_T_Action, string ActionName, string Device, string Def_Binding, string Def_Modifier, bool AddBind, string Usr_Binding, string Usr_Modifier, bool Disabled) {
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
+ public T_ActionRow AddT_ActionRow(string ID_Action, T_ActionMapRow parentT_ActionMapRowByT_ActionMap_T_Action, string ActionText, string ActionName, string Device, string Def_Binding, string Def_Modifier, bool AddBind, string Usr_Binding, string Usr_Modifier, bool Disabled) {
T_ActionRow rowT_ActionRow = ((T_ActionRow)(this.NewRow()));
object[] columnValuesArray = new object[] {
ID_Action,
null,
+ ActionText,
ActionName,
Device,
Def_Binding,
@@ -773,14 +784,14 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionRow FindByID_Action(string ID_Action) {
return ((T_ActionRow)(this.Rows.Find(new object[] {
ID_Action})));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public override global::System.Data.DataTable Clone() {
T_ActionDataTable cln = ((T_ActionDataTable)(base.Clone()));
cln.InitVars();
@@ -788,16 +799,17 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Data.DataTable CreateInstance() {
return new T_ActionDataTable();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal void InitVars() {
this.columnID_Action = base.Columns["ID_Action"];
this.columnREF_ActionMap = base.Columns["REF_ActionMap"];
+ this.columnActionText = base.Columns["ActionText"];
this.columnActionName = base.Columns["ActionName"];
this.columnDevice = base.Columns["Device"];
this.columnDef_Binding = base.Columns["Def_Binding"];
@@ -809,12 +821,14 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
private void InitClass() {
this.columnID_Action = new global::System.Data.DataColumn("ID_Action", typeof(string), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnID_Action);
this.columnREF_ActionMap = new global::System.Data.DataColumn("REF_ActionMap", typeof(string), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnREF_ActionMap);
+ this.columnActionText = new global::System.Data.DataColumn("ActionText", typeof(string), null, global::System.Data.MappingType.Element);
+ base.Columns.Add(this.columnActionText);
this.columnActionName = new global::System.Data.DataColumn("ActionName", typeof(string), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnActionName);
this.columnDevice = new global::System.Data.DataColumn("Device", typeof(string), null, global::System.Data.MappingType.Element);
@@ -841,6 +855,9 @@ namespace SCJMapper_V2.Table {
this.columnREF_ActionMap.ReadOnly = true;
this.columnREF_ActionMap.Caption = "ActionMap";
this.columnREF_ActionMap.DefaultValue = ((string)("\"\""));
+ this.columnActionText.AllowDBNull = false;
+ this.columnActionText.ReadOnly = true;
+ this.columnActionText.DefaultValue = ((string)("\"\""));
this.columnActionName.AllowDBNull = false;
this.columnActionName.ReadOnly = true;
this.columnActionName.DefaultValue = ((string)("\"\""));
@@ -859,25 +876,25 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionRow NewT_ActionRow() {
return ((T_ActionRow)(this.NewRow()));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) {
return new T_ActionRow(builder);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override global::System.Type GetRowType() {
return typeof(T_ActionRow);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowChanged(e);
if ((this.T_ActionRowChanged != null)) {
@@ -886,7 +903,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowChanging(e);
if ((this.T_ActionRowChanging != null)) {
@@ -895,7 +912,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowDeleted(e);
if ((this.T_ActionRowDeleted != null)) {
@@ -904,7 +921,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) {
base.OnRowDeleting(e);
if ((this.T_ActionRowDeleting != null)) {
@@ -913,13 +930,13 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void RemoveT_ActionRow(T_ActionRow row) {
this.Rows.Remove(row);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) {
global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType();
global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence();
@@ -990,14 +1007,14 @@ namespace SCJMapper_V2.Table {
private T_ActionMapDataTable tableT_ActionMap;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal T_ActionMapRow(global::System.Data.DataRowBuilder rb) :
base(rb) {
this.tableT_ActionMap = ((T_ActionMapDataTable)(this.Table));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string ID_ActionMap {
get {
return ((string)(this[this.tableT_ActionMap.ID_ActionMapColumn]));
@@ -1008,7 +1025,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionRow[] GetT_ActionRows() {
if ((this.Table.ChildRelations["T_ActionMap_T_Action"] == null)) {
return new T_ActionRow[0];
@@ -1027,14 +1044,14 @@ namespace SCJMapper_V2.Table {
private T_ActionDataTable tableT_Action;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
internal T_ActionRow(global::System.Data.DataRowBuilder rb) :
base(rb) {
this.tableT_Action = ((T_ActionDataTable)(this.Table));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string ID_Action {
get {
return ((string)(this[this.tableT_Action.ID_ActionColumn]));
@@ -1045,7 +1062,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string REF_ActionMap {
get {
return ((string)(this[this.tableT_Action.REF_ActionMapColumn]));
@@ -1056,7 +1073,18 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
+ public string ActionText {
+ get {
+ return ((string)(this[this.tableT_Action.ActionTextColumn]));
+ }
+ set {
+ this[this.tableT_Action.ActionTextColumn] = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string ActionName {
get {
return ((string)(this[this.tableT_Action.ActionNameColumn]));
@@ -1067,7 +1095,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string Device {
get {
try {
@@ -1083,7 +1111,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string Def_Binding {
get {
try {
@@ -1099,7 +1127,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string Def_Modifier {
get {
try {
@@ -1115,7 +1143,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool AddBind {
get {
try {
@@ -1131,7 +1159,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string Usr_Binding {
get {
try {
@@ -1147,7 +1175,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public string Usr_Modifier {
get {
try {
@@ -1163,7 +1191,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool Disabled {
get {
return ((bool)(this[this.tableT_Action.DisabledColumn]));
@@ -1174,7 +1202,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRow T_ActionMapRow {
get {
return ((T_ActionMapRow)(this.GetParentRow(this.Table.ParentRelations["T_ActionMap_T_Action"])));
@@ -1185,73 +1213,73 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool IsDeviceNull() {
return this.IsNull(this.tableT_Action.DeviceColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void SetDeviceNull() {
this[this.tableT_Action.DeviceColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool IsDef_BindingNull() {
return this.IsNull(this.tableT_Action.Def_BindingColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void SetDef_BindingNull() {
this[this.tableT_Action.Def_BindingColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool IsDef_ModifierNull() {
return this.IsNull(this.tableT_Action.Def_ModifierColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void SetDef_ModifierNull() {
this[this.tableT_Action.Def_ModifierColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool IsAddBindNull() {
return this.IsNull(this.tableT_Action.AddBindColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void SetAddBindNull() {
this[this.tableT_Action.AddBindColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool IsUsr_BindingNull() {
return this.IsNull(this.tableT_Action.Usr_BindingColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void SetUsr_BindingNull() {
this[this.tableT_Action.Usr_BindingColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public bool IsUsr_ModifierNull() {
return this.IsNull(this.tableT_Action.Usr_ModifierColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public void SetUsr_ModifierNull() {
this[this.tableT_Action.Usr_ModifierColumn] = global::System.Convert.DBNull;
}
@@ -1260,7 +1288,7 @@ namespace SCJMapper_V2.Table {
///
///Row event argument class
///
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public class T_ActionMapRowChangeEvent : global::System.EventArgs {
private T_ActionMapRow eventRow;
@@ -1268,14 +1296,14 @@ namespace SCJMapper_V2.Table {
private global::System.Data.DataRowAction eventAction;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRowChangeEvent(T_ActionMapRow row, global::System.Data.DataRowAction action) {
this.eventRow = row;
this.eventAction = action;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionMapRow Row {
get {
return this.eventRow;
@@ -1283,7 +1311,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataRowAction Action {
get {
return this.eventAction;
@@ -1294,7 +1322,7 @@ namespace SCJMapper_V2.Table {
///
///Row event argument class
///
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public class T_ActionRowChangeEvent : global::System.EventArgs {
private T_ActionRow eventRow;
@@ -1302,14 +1330,14 @@ namespace SCJMapper_V2.Table {
private global::System.Data.DataRowAction eventAction;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionRowChangeEvent(T_ActionRow row, global::System.Data.DataRowAction action) {
this.eventRow = row;
this.eventAction = action;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public T_ActionRow Row {
get {
return this.eventRow;
@@ -1317,7 +1345,7 @@ namespace SCJMapper_V2.Table {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "15.0.0.0")]
public global::System.Data.DataRowAction Action {
get {
return this.eventAction;
diff --git a/Table/DS_ActionMaps.xsd b/Table/DS_ActionMaps.xsd
index af27901..43752dd 100644
--- a/Table/DS_ActionMaps.xsd
+++ b/Table/DS_ActionMaps.xsd
@@ -12,18 +12,19 @@
-
+
-
+
+
@@ -48,7 +49,7 @@
-
+
\ No newline at end of file
diff --git a/Table/DS_ActionMaps.xss b/Table/DS_ActionMaps.xss
index 2706a30..2d04fef 100644
--- a/Table/DS_ActionMaps.xss
+++ b/Table/DS_ActionMaps.xss
@@ -7,7 +7,7 @@
-
+
@@ -18,11 +18,11 @@
494
- 287
+ 300
627
- 287
+ 300
diff --git a/Table/FormTable.cs b/Table/FormTable.cs
index da57d6a..b077b5a 100644
--- a/Table/FormTable.cs
+++ b/Table/FormTable.cs
@@ -13,7 +13,7 @@ namespace SCJMapper_V2.Table
{
public partial class FormTable : Form
{
- public FormTable( )
+ public FormTable()
{
InitializeComponent( );
@@ -31,6 +31,7 @@ namespace SCJMapper_V2.Table
btUpdateFromEdit.Enabled = chkEditBlend.Checked;
DGV.Columns["Usr_Binding"].ReadOnly = true;
DGV.Columns["Usr_Modifier"].ReadOnly = true;
+ DGV.Columns["ActionName"].Visible = false;
DGV.ReadOnly = !chkEditBlend.Checked;
}
@@ -45,7 +46,7 @@ namespace SCJMapper_V2.Table
}
public event EventHandler UpdateEditEvent;
- private void RaiseUpdateEditEvent( )
+ private void RaiseUpdateEditEvent()
{
if ( UpdateEditEvent != null ) {
UpdateEditEvent( this, new UpdateEditEventArgs( ) );
@@ -57,7 +58,7 @@ namespace SCJMapper_V2.Table
public Point LastLocation { get; set; }
public string LastColSize { get; set; }
- private BindingSource m_bSrc = new BindingSource();
+ private BindingSource m_bSrc = new BindingSource( );
///
/// Assign or retrieve the underlying DataSet
@@ -65,8 +66,8 @@ namespace SCJMapper_V2.Table
public DS_ActionMaps DS_AMaps { get; private set; }
-
- public void SuspendDGV( )
+
+ public void SuspendDGV()
{
// add things to improve speed while re-loading the DataSet outside - nothing found so far
}
@@ -80,12 +81,12 @@ namespace SCJMapper_V2.Table
///
/// Populate the view from the dataset
///
- public void Populate( )
+ public void Populate()
{
-// DGV.SuspendLayout( );
+ // DGV.SuspendLayout( );
if ( !string.IsNullOrEmpty( LastColSize ) ) {
- string[] e = LastColSize.Split( new char [] {';'}, StringSplitOptions.RemoveEmptyEntries );
+ string[] e = LastColSize.Split( new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries );
for ( int i = 0; i < e.Length; i++ ) {
if ( i < DGV.Columns.Count )
DGV.Columns[i].Width = int.Parse( e[i] );
@@ -93,7 +94,7 @@ namespace SCJMapper_V2.Table
}
DGV.AllowUserToResizeColumns = true;
ComposeFilter( );
- // DGV.ResumeLayout( );
+ // DGV.ResumeLayout( );
}
///
@@ -114,11 +115,11 @@ namespace SCJMapper_V2.Table
///
private void EditRow( int rowIndex )
{
- string id = DGV.Rows[rowIndex].Cells["ID_Action"].Value.ToString();
+ string id = DGV.Rows[rowIndex].Cells["ID_Action"].Value.ToString( );
// we have nn-actionmap.actionkey.nodeindex
- string actionMap = DS_ActionMap.ActionMap(id);
- string actionKey = DS_ActionMap.ActionKey(id);
- int nodeIndex = DS_ActionMap.ActionCommandIndex(id);
+ string actionMap = DS_ActionMap.ActionMap( id );
+ string actionKey = DS_ActionMap.ActionKey( id );
+ int nodeIndex = DS_ActionMap.ActionCommandIndex( id );
RaiseEditActionEvent( actionMap, actionKey, nodeIndex );
}
@@ -127,11 +128,11 @@ namespace SCJMapper_V2.Table
- private void ComposeFilter( )
+ private void ComposeFilter()
{
// make sure we only add parts that are really used - else it is using too much time to resolve '*'
string filter = "";
- if ( ! string.IsNullOrEmpty( txFilterAction.Text)) {
+ if ( !string.IsNullOrEmpty( txFilterAction.Text ) ) {
filter += string.Format( "(ActionName LIKE '*{0}*')", txFilterAction.Text );
}
if ( !string.IsNullOrEmpty( txFilterDefBinding.Text ) ) {
@@ -146,7 +147,8 @@ namespace SCJMapper_V2.Table
string deviceFilter = "";
if ( ( chkJoystick.Checked == false ) && ( chkGamepad.Checked == false ) && ( chkMouse.Checked == false ) && ( chkKbd.Checked == false ) ) {
// none checked means all
- } else {
+ }
+ else {
deviceFilter = "( Device='X'"
+ ( ( chkJoystick.Checked ) ? string.Format( " OR Device = 'joystick'" ) : "" )
+ ( ( chkGamepad.Checked ) ? string.Format( " OR Device = 'xboxpad'" ) : "" )
@@ -229,21 +231,25 @@ namespace SCJMapper_V2.Table
private void FormTable_LocationChanged( object sender, EventArgs e )
{
- LastLocation = this.Location;
+ if ( this.WindowState == FormWindowState.Normal )
+ LastLocation = this.Location;
}
private void FormTable_SizeChanged( object sender, EventArgs e )
{
- LastSize = this.Size;
+ if ( this.WindowState == FormWindowState.Normal )
+ LastSize = this.Size;
}
private void DGV_ColumnWidthChanged( object sender, DataGridViewColumnEventArgs e )
{
- string setting = "";
- foreach ( DataGridViewColumn col in DGV.Columns ) {
- setting += string.Format( "{0};", col.Width.ToString( ) );
+ if ( this.WindowState == FormWindowState.Normal ) {
+ string setting = "";
+ foreach ( DataGridViewColumn col in DGV.Columns ) {
+ setting += string.Format( "{0};", col.Width.ToString( ) );
+ }
+ LastColSize = setting;
}
- LastColSize = setting;
}
@@ -294,7 +300,7 @@ namespace SCJMapper_V2.Table
if ( !chkEditBlend.Checked ) return; // only if Edit is allowed
foreach ( DataGridViewRow row in DGV.Rows ) {
- if (string.IsNullOrEmpty((string) row.Cells[DGV.Columns["Usr_Binding"].Index].Value ))
+ if ( string.IsNullOrEmpty( (string)row.Cells[DGV.Columns["Usr_Binding"].Index].Value ) )
row.Cells[DGV.Columns["Disabled"].Index].Value = true;
}
}
@@ -308,9 +314,10 @@ namespace SCJMapper_V2.Table
// only if dirty and the Blended column ..
// it still has it's previous value i.e. inverse the logic here - commit the value imediately
- if ( ( bool )DGV.Rows[DGV.CurrentCell.RowIndex].Cells[DGV.Columns["Disabled"].Index].Value == false ) {
+ if ( (bool)DGV.Rows[DGV.CurrentCell.RowIndex].Cells[DGV.Columns["Disabled"].Index].Value == false ) {
DGV.Rows[DGV.CurrentCell.RowIndex].Cells[DGV.Columns["Disabled"].Index].Value = true; // toggle value - triggers the ValueChanged Event below
- } else {
+ }
+ else {
DGV.Rows[DGV.CurrentCell.RowIndex].Cells[DGV.Columns["Disabled"].Index].Value = false;
}
DGV.NotifyCurrentCellDirty( false ); // have set the value - so set not dirty anymore
@@ -321,7 +328,7 @@ namespace SCJMapper_V2.Table
// set the Usr_Binding only if Blended column items Changes
if ( e.ColumnIndex != DGV.Columns["Disabled"].Index ) return;
- if ( ( bool )DGV.Rows[e.RowIndex].Cells[DGV.Columns["Disabled"].Index].Value == true )
+ if ( (bool)DGV.Rows[e.RowIndex].Cells[DGV.Columns["Disabled"].Index].Value == true )
DGV.Rows[e.RowIndex].Cells[DGV.Columns["Usr_Binding"].Index].Value = DeviceCls.DisabledInput;
else
DGV.Rows[e.RowIndex].Cells[DGV.Columns["Usr_Binding"].Index].Value = ""; // don't know anything else...
diff --git a/actions/ActionCls.cs b/actions/ActionCls.cs
index 93ec2a1..d995cec 100644
--- a/actions/ActionCls.cs
+++ b/actions/ActionCls.cs
@@ -47,7 +47,7 @@ namespace SCJMapper_V2.Actions
private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
public string Key { get; set; } // the key is the "Daction" formatted item (as we can have the same name multiple times)
- public string ActionName { get; set; } // the plain action name e.g. v_yaw
+ public string ActionName { get; set; } // the plain action name e.g. v_yaw
public Act.ActionDevice ActionDevice { get; set; } // the enum of the device
public string Device { get; set; } // name of the device (uses DeviceClass)
public string DefBinding { get; set; } // the default binding
@@ -77,7 +77,6 @@ namespace SCJMapper_V2.Actions
public ActionCls ReassignJsN( JsReassingList newJsList )
{
ActionCls newAc = this.MyClone( );
-
// creates a copy of the list with reassigned jsN devs
newAc.InputList.Clear( ); // get rid of cloned list
foreach ( ActionCommandCls acc in InputList ) {
@@ -87,7 +86,6 @@ namespace SCJMapper_V2.Actions
return newAc;
}
-
///
/// ctor
///
@@ -102,7 +100,6 @@ namespace SCJMapper_V2.Actions
InputList = new List( ); // empty list
}
-
///
/// Creates and adds the inputCommand list with given input string
/// AC2 style input is used i.e. with device tag in front
@@ -122,17 +119,22 @@ namespace SCJMapper_V2.Actions
/// Add an ActionCommand with Input at nodeindex
/// apply default ActivationMode
///
- ///
- ///
- ///
+ /// The input to apply
+ /// The nodeindex
+ /// The created ActionCommand
public ActionCommandCls AddCommand( string devInput, int index )
{
- ActionCommandCls acc = new ActionCommandCls( devInput, index );
- acc.ActivationMode = new ActivationMode( ActivationMode.Default );
+ ActionCommandCls acc = new ActionCommandCls( devInput, index ) {
+ ActivationMode = new ActivationMode( ActivationMode.Default )
+ };
InputList.Add( acc );
return acc;
}
+ ///
+ /// Delete an ActionCommand with nodeindex
+ ///
+ /// The nodeindex
public void DelCommand( int index )
{
int removeIt = -1;
@@ -144,7 +146,6 @@ namespace SCJMapper_V2.Actions
if ( removeIt >= 0 ) InputList.RemoveAt( removeIt );
}
-
///
/// Merge action is simply copying the new input control
///
@@ -157,8 +158,6 @@ namespace SCJMapper_V2.Actions
}
}
-
-
///
/// Updates an actionCommand with a new input (command)
///
@@ -193,7 +192,6 @@ namespace SCJMapper_V2.Actions
return acc;
}
-
///
/// Find an ActionCommand with index in an Action
///
@@ -212,7 +210,6 @@ namespace SCJMapper_V2.Actions
return acc;
}
-
///
/// Dump the action as partial XML nicely formatted
///
@@ -233,7 +230,6 @@ namespace SCJMapper_V2.Actions
r += string.Format( "\t\t\n" );
}
}
-
return r;
}
diff --git a/actions/ActionMapCls.cs b/actions/ActionMapCls.cs
index 1c07340..317693a 100644
--- a/actions/ActionMapCls.cs
+++ b/actions/ActionMapCls.cs
@@ -26,7 +26,7 @@ namespace SCJMapper_V2.Actions
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
- public string Name { get; set; }
+ public string MapName { get; set; }
///
/// Copy return the complete ActionMap while reassigning the JsN Tag
@@ -47,11 +47,14 @@ namespace SCJMapper_V2.Actions
private ActionMapCls( ActionMapCls other )
{
- this.Name = other.Name;
+ this.MapName = other.MapName;
// no deep copy of refs
}
- public ActionMapCls() { }
+ public ActionMapCls()
+ {
+ MapName = "";
+ }
///
/// Merge the given Map with this Map
@@ -74,7 +77,6 @@ namespace SCJMapper_V2.Actions
}
}
-
///
/// Dump the actionmap as partial XML nicely formatted
///
@@ -87,7 +89,7 @@ namespace SCJMapper_V2.Actions
if ( !string.IsNullOrEmpty( x ) ) acs += string.Format( "\t{0}", x );
}
if ( !string.IsNullOrWhiteSpace( acs ) ) {
- string r = string.Format( "\t\n", Name );
+ string r = string.Format( "\t\n", MapName );
r += acs;
r += string.Format( "\t\n" );
return r;
@@ -96,7 +98,6 @@ namespace SCJMapper_V2.Actions
return "";
}
-
///
/// Read an actionmap from XML - do some sanity check
///
@@ -104,7 +105,7 @@ namespace SCJMapper_V2.Actions
/// True if an action was decoded
public bool fromXML( XElement actionmap )
{
- Name = (string)actionmap.Attribute( "name" ); // mandadory
+ MapName = (string)actionmap.Attribute( "name" ); // mandadory
foreach ( XElement actionNode in actionmap.Nodes( ) ) {
ActionCls ac = new ActionCls( );
if ( ac.fromXML( actionNode ) ) {
diff --git a/actions/ActionMapsCls.cs b/actions/ActionMapsCls.cs
index 2220317..6a67540 100644
--- a/actions/ActionMapsCls.cs
+++ b/actions/ActionMapsCls.cs
@@ -1,9 +1,4 @@
-
-
-#define USE_DS_ACTIONMAPS
-
-
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
@@ -111,10 +106,11 @@ namespace SCJMapper_V2.Actions
/// The ActionMaps copy with reassigned input
public ActionMapsCls ReassignJsN( JsReassingList newJsList )
{
- var newMaps = new ActionMapsCls( this );
- newMaps.m_uiCustHeader = (UICustHeader)this.m_uiCustHeader.Clone( );
- newMaps.m_tuningOptions = (Tuningoptions)this.m_tuningOptions.Clone( );
- newMaps.m_deviceOptions = (Deviceoptions)this.m_deviceOptions.Clone( );
+ var newMaps = new ActionMapsCls( this ) {
+ m_uiCustHeader = (UICustHeader)this.m_uiCustHeader.Clone( ),
+ m_tuningOptions = (Tuningoptions)this.m_tuningOptions.Clone( ),
+ m_deviceOptions = (Deviceoptions)this.m_deviceOptions.Clone( )
+ };
foreach ( ActionMapCls am in this ) {
newMaps.Add( am.ReassignJsN( newJsList ) ); // creates the deep copy of the tree
@@ -125,7 +121,10 @@ namespace SCJMapper_V2.Actions
return newMaps;
}
-
+ ///
+ /// cTor: private copy constructor
+ ///
+ ///
private ActionMapsCls( ActionMapsCls other )
{
this.version = other.version;
@@ -135,7 +134,7 @@ namespace SCJMapper_V2.Actions
}
///
- /// ctor
+ /// cTor: plain, initializes values
///
public ActionMapsCls()
{
@@ -147,16 +146,14 @@ namespace SCJMapper_V2.Actions
for ( int i = 0; i < JoystickCls.JSnum_MAX; i++ ) {
m_js[i] = ""; m_GUIDs[i] = "";
}
-
// create the default mapped optiontree
- CreateNewOptions( );
-
- //LoadSupportedActionMaps( ); // get them from config @@@@@@@@@
+ // CreateNewOptions( );
}
-
-
- private void CreateNewOptions()
+ ///
+ /// Helper to create all needed objs
+ ///
+ public void CreateNewOptions()
{
// create options objs
m_uiCustHeader = new UICustHeader( );
@@ -171,11 +168,9 @@ namespace SCJMapper_V2.Actions
///
private void Merge( ActionMapCls newAcm )
{
- log.Debug( "Merge - Entry" );
-
// do we find an actionmap like the new one in our list ?
ActionMapCls ACM = this.Find( delegate ( ActionMapCls acm ) {
- return acm.Name == newAcm.Name;
+ return acm.MapName == newAcm.MapName;
} );
if ( ACM == null ) {
; // this.Add( newAcm ); // no, add new
@@ -186,8 +181,10 @@ namespace SCJMapper_V2.Actions
}
-#if USE_DS_ACTIONMAPS // see and (un)define on top of file to allow for editing the DataSet entities
-
+ ///
+ /// Converts all maps into a DataSet
+ ///
+ /// The dataset to populate
public void ToDataSet( DS_ActionMaps dsa )
{
dsa.Clear( );
@@ -196,7 +193,7 @@ namespace SCJMapper_V2.Actions
int AMcount = 1;
foreach ( ActionMapCls am in this ) {
DS_ActionMaps.T_ActionMapRow amr = dsa.T_ActionMap.NewT_ActionMapRow( );
- string amShown = DS_ActionMap.ActionMapShown( am.Name, AMcount++ );
+ string amShown = DS_ActionMap.ActionMapShown( SCUiText.Instance.Text( am.MapName), AMcount++ );
amr.ID_ActionMap = amShown;
dsa.T_ActionMap.AddT_ActionMapRow( amr );
@@ -205,10 +202,11 @@ namespace SCJMapper_V2.Actions
int ilIndex = 0;
while ( ac.InputList.Count > ilIndex ) {
DS_ActionMaps.T_ActionRow ar = dsa.T_Action.NewT_ActionRow( );
- ar.ID_Action = DS_ActionMap.ActionID( am.Name, ac.Key, ac.InputList[ilIndex].NodeIndex ); // make a unique key
+ ar.ID_Action = DS_ActionMap.ActionID( am.MapName, ac.Key, ac.InputList[ilIndex].NodeIndex ); // make a unique key
ar.AddBind = ( ilIndex > 0 ); // all but the first are addbinds
ar.REF_ActionMap = amShown;
ar.ActionName = ac.ActionName;
+ ar.ActionText = SCUiText.Instance.Text( ac.ActionName );
ar.Device = ac.Device;
ar.Def_Binding = ac.DefBinding;
ar.Def_Modifier = ac.DefActivationMode.Name;
@@ -228,6 +226,11 @@ namespace SCJMapper_V2.Actions
dsa.AcceptChanges( );
}
+ ///
+ /// Update the dataset
+ ///
+ /// The dataset
+ /// The actionID to update from
public void UpdateDataSet( DS_ActionMaps dsa, string actionID )
{
foreach ( ActionMapCls am in this ) {
@@ -236,7 +239,7 @@ namespace SCJMapper_V2.Actions
foreach ( ActionCls ac in am ) {
int ilIndex = 0;
while ( ac.InputList.Count > ilIndex ) {
- if ( actionID == DS_ActionMap.ActionID( am.Name, ac.Key, ac.InputList[ilIndex].NodeIndex ) ) {
+ if ( actionID == DS_ActionMap.ActionID( am.MapName, ac.Key, ac.InputList[ilIndex].NodeIndex ) ) {
DS_ActionMaps.T_ActionRow ar = dsa.T_Action.FindByID_Action( actionID );
ar.Usr_Binding = ac.InputList[ilIndex].DevInput;
ar.Usr_Modifier = ac.InputList[ilIndex].ActivationMode.Name;
@@ -248,13 +251,8 @@ namespace SCJMapper_V2.Actions
}
}// each Action
}// each ActionMap
-
}
-#endif
-
-
-
///
/// Dump the ActionMaps as partial XML nicely formatted
///
@@ -281,7 +279,6 @@ namespace SCJMapper_V2.Actions
// close the tag
r += string.Format( ">\n" );
-
// *** CustomisationUIHeader
// and dump the option contents - prepare with new data
diff --git a/actions/ActionTree.cs b/actions/ActionTree.cs
index 847eac1..3ebdf64 100644
--- a/actions/ActionTree.cs
+++ b/actions/ActionTree.cs
@@ -52,6 +52,10 @@ namespace SCJMapper_V2.Actions
private TreeView m_MasterTree = new TreeView( ); // the master TreeView (mem only)
private TreeView m_tvCtrlRef = null; // the TreeView in the GUI - injected from GUI via Ctrl property
+ ///
+ /// Property TreeView Control
+ /// The class is owning the TreeView Control and manages it
+ ///
public TreeView Ctrl
{
get { return m_tvCtrlRef; }
@@ -70,8 +74,6 @@ namespace SCJMapper_V2.Actions
}
}
-
-
///
/// If a node was selected, update it from the tree content
///
@@ -82,13 +84,15 @@ namespace SCJMapper_V2.Actions
NodeSelected( );
}
-
+ // filters
private bool m_showJoy = true;
private bool m_showGameP = true;
private bool m_showKbd = true;
private bool m_showMouse = true;
private bool m_showMappedOnly = false;
+ private string m_Filter = ""; // the tree content filter
+
///
/// maintains the change status (gets reset by reloading the complete tree)
@@ -100,9 +104,6 @@ namespace SCJMapper_V2.Actions
///
public string IgnoreMaps { get; set; }
- private string m_Filter = ""; // the tree content filter
-
-
///
/// ctor
///
@@ -146,6 +147,9 @@ namespace SCJMapper_V2.Actions
#region Properties
+ ///
+ /// Returns if one can Assign a new binding on the selected node
+ ///
public bool CanAssignBinding
{
get {
@@ -154,7 +158,10 @@ namespace SCJMapper_V2.Actions
}
}
- public bool CanBlendBinding
+ ///
+ /// Returns if one can Disable (mask) a binding on the selected node
+ ///
+ public bool CanDisableBinding
{
get {
if ( Ctrl.SelectedNode == null ) return false;
@@ -163,7 +170,7 @@ namespace SCJMapper_V2.Actions
}
///
- /// Returns true if a binding can be cleared
+ /// Returns true if a binding can be cleared on the selected node
///
public bool CanClearBinding
{
@@ -173,7 +180,9 @@ namespace SCJMapper_V2.Actions
}
}
-
+ ///
+ /// Returns if one can Add a binding on the selected node
+ ///
public bool CanAddBinding
{
get {
@@ -182,6 +191,9 @@ namespace SCJMapper_V2.Actions
}
}
+ ///
+ /// Returns if one can Delete a binding on the selected node
+ ///
public bool CanDelBinding
{
get {
@@ -218,7 +230,12 @@ namespace SCJMapper_V2.Actions
}
}
-
+ ///
+ /// Returns if an Action must be shown (based on device, mapped filters)
+ ///
+ /// The Action device
+ /// The device input string
+ /// True if it must be shown
public bool ShowAction( Act.ActionDevice actDev, string input )
{
if ( Act.IsDisabledInput( input ) && m_showMappedOnly ) return false;
@@ -231,7 +248,6 @@ namespace SCJMapper_V2.Actions
}
}
-
#endregion
///
@@ -262,7 +278,6 @@ namespace SCJMapper_V2.Actions
}
}
-
///
/// Delete the selected ActionChild and remove corresponding ActionCommands
///
@@ -282,18 +297,22 @@ namespace SCJMapper_V2.Actions
FindAndSelectCtrlByName( matn.Name, ( matn.Parent as ActionTreeNode ).Action );
}
-
+ ///
+ /// Disables the binding of the selected node
+ ///
public void DisableBinding()
{
UpdateSelectedItem( DeviceCls.DisabledInput, Act.ActionDevice.AD_Unknown, false );
}
+ ///
+ /// Clears the binding of the selected node
+ ///
public void ClearBinding()
{
UpdateSelectedItem( "", Act.ActionDevice.AD_Unknown, false );
}
-
///
/// Dumps the actions to an XML string
///
@@ -311,6 +330,10 @@ namespace SCJMapper_V2.Actions
#region MasterTree Actions
+ ///
+ /// Update the master tree with the given node
+ ///
+ /// The node to update from
private void UpdateMasterNode( ActionTreeNode node )
{
// copy to master node
@@ -324,6 +347,10 @@ namespace SCJMapper_V2.Actions
}
}
+ ///
+ /// Update the master tree with the given input node
+ ///
+ /// The input node to update from
private void UpdateMasterNode( ActionTreeInputNode node )
{
log.DebugFormat( "UpdateMasterNode - Entry {0}", m_MasterTree.GetHashCode( ).ToString( ) );
@@ -338,7 +365,6 @@ namespace SCJMapper_V2.Actions
}
}
-
///
/// Find the master element for the given ActionNode
///
@@ -381,8 +407,6 @@ namespace SCJMapper_V2.Actions
return null;
}
-
-
///
/// Apply the filter to the GUI TreeView
///
@@ -448,7 +472,6 @@ namespace SCJMapper_V2.Actions
ApplyFilter( ); // to the GUI tree
}
-
///
/// Filters entries with given criteria
///
@@ -462,10 +485,9 @@ namespace SCJMapper_V2.Actions
#endregion
///
- /// Load Mappings into the ActionList and create the Master TreeView
+ /// Load Mappings from defaultProfile into the ActionList and create the Master TreeView
///
- /// The name of the profile to load (w extension)
- /// True if default mappings should be carried on
+ /// True if default mappings should be used as current mappings
public void LoadProfileTree( bool applyDefaults )
{
log.Debug( "LoadProfileTree - Entry" );
@@ -507,8 +529,9 @@ namespace SCJMapper_V2.Actions
if ( !IgnoreMaps.Contains( "," + elem[iMap] + "," ) ) {
// must have 2 elements min
Array.Resize( ref cnl, 0 );
- acm = new ActionMapCls { Name = elem[iMap] }; // get actionmap name
- for ( int eIndex = iAction; eIndex < elem.Length; eIndex += 5 ) { // step 2 - action;actionlabel;defaultBinding;defaultActivationMode;defMultiTap come in as 5groups
+ acm = new ActionMapCls { MapName = elem[iMap] };
+ for ( int eIndex = iAction; eIndex < elem.Length; eIndex += 5 ) {
+ // step 2 - action;actionlabel;defaultBinding;defaultActivationMode;defMultiTap come in as 5groups
if ( !string.IsNullOrEmpty( elem[eIndex] ) ) {
// default assignments
string action = elem[eIndex].Substring( 1 ); // has a device Tag as first char
@@ -524,7 +547,7 @@ namespace SCJMapper_V2.Actions
// visual item for the action
cn = new ActionTreeNode( "UNDEF" ) {
- Name = elem[eIndex], Action = action, ActionLabel = actionLabel, BackColor = Color.White, ImageKey = devID // name with the key it to find it..
+ Name = elem[eIndex], Action = action, BackColor = Color.White, ImageKey = devID // name with the key it to find it..
};
cn.BackColor = Color.White; // some stuff does not work properly...
if ( ActivationMode.IsDefault( defActivationModeName ) ) {
@@ -586,9 +609,9 @@ namespace SCJMapper_V2.Actions
}
}//for
// ActionMap node
- tn = new ActionTreeNode( acm.Name, cnl ) {
- Name = acm.Name, ActionLabel = elem[iMapLabel],
- Action = acm.Name, // name it to find it..
+ tn = new ActionTreeNode( acm.MapName, cnl ) {
+ Name = acm.MapName,
+ Action = acm.MapName, // name it to find it..
ImageIndex = 0, NodeFont = FontActionmap // new Font( m_MasterTree.Font, FontStyle.Bold );
};
m_MasterTree.BackColor = Color.White; // fix for defect TreeView (cut off bold text)
@@ -610,6 +633,7 @@ namespace SCJMapper_V2.Actions
m_MasterTree.Nodes.RemoveByKey( "DUMMY" );
// fix for defect TreeView (cut off bold text)
+ ActionMaps.CreateNewOptions( );
txReader = null;
Dirty = false;
@@ -669,7 +693,6 @@ namespace SCJMapper_V2.Actions
// this is the main node with Action Cmd
ActionTreeNode atn = ( Ctrl.SelectedNode as ActionTreeNode ); // the treenode from a level 1
ActionCls ac = FindActionObject( atn.Parent.Name, atn.Name ); if ( ac == null ) return; // ERROR exit
- // ActionCommandCls acc = ac.FindActionInputObject( ActionTreeNode.CommandFromNodeText( atn.Text ) ); if ( acc == null ) return; // ERROR exit
ActionCommandCls acc = ac.FindActionInputObject( atn.Command ); if ( acc == null ) return; // ERROR exit
// new am is either a named one or the Default from Profile (which is the default from the Action due to multiTaps..)
if ( ActivationMode.IsDefault( newActivationModeName ) ) {
@@ -724,7 +747,6 @@ namespace SCJMapper_V2.Actions
ActionCls ac = FindActionObject( atn.Parent.Name, atn.Name ); // the related action in an actionmap
if ( ac == null ) return false; // ERROR exit
if ( checkKind && ( ac.ActionDevice != inKind ) ) return false; // ERROR exit
- // ActionCommandCls acc = ac.FindActionInputObject( ActionTreeNode.CommandFromNodeText( atn.Text ) );
ActionCommandCls acc = ac.FindActionInputObject( atn.Command ); if ( acc == null ) return false; // ERROR exit
// have it - continue
ac.UpdateCommandFromInput( Act.DevInput( input, inKind ), acc.NodeIndex + 1 );
@@ -771,10 +793,9 @@ namespace SCJMapper_V2.Actions
/// An actionCommand or null if not found
private ActionCommandCls FindActionInputObject( string actionMap, string actionKey, string devInput )
{
- //log.Debug( "FindActionInputObject - Entry" );
// Apply the input to the ActionTree
ActionCls ac = null; ActionCommandCls acc = null;
- ActionMapCls ACM = ActionMaps.Find( delegate ( ActionMapCls _ACM ) { return _ACM.Name == actionMap; } );
+ ActionMapCls ACM = ActionMaps.Find( delegate ( ActionMapCls _ACM ) { return _ACM.MapName == actionMap; } );
if ( ACM != null ) ac = ACM.Find( delegate ( ActionCls _AC ) { return _AC.Key == actionKey; } );
if ( ac != null ) acc = ac.InputList.Find( delegate ( ActionCommandCls _ACC ) { return _ACC.DevInput == devInput; } );
if ( acc == null ) {
@@ -793,10 +814,9 @@ namespace SCJMapper_V2.Actions
/// An actionCommand or null if not found
private ActionCommandCls FindActionInputObject( ActionTree tree, string actionMap, string actionKey, int index )
{
- //log.Debug( "FindActionInputObject - Entry" );
// Apply the input to the ActionTree
ActionCls ac = null; ActionCommandCls acc = null;
- ActionMapCls ACM = tree.ActionMaps.Find( delegate ( ActionMapCls _ACM ) { return _ACM.Name == actionMap; } );
+ ActionMapCls ACM = tree.ActionMaps.Find( delegate ( ActionMapCls _ACM ) { return _ACM.MapName == actionMap; } );
if ( ACM != null ) ac = ACM.Find( delegate ( ActionCls _AC ) { return _AC.Key == actionKey; } );
if ( ac != null ) acc = ac.InputList.Find( delegate ( ActionCommandCls _ACC ) { return _ACC.NodeIndex == index; } );
if ( acc == null ) {
@@ -814,10 +834,9 @@ namespace SCJMapper_V2.Actions
/// An action or null if not found
private ActionCls FindActionObject( string actionMap, string action )
{
- //log.Debug( "FindActionObject - Entry" );
// Apply the input to the ActionTree
ActionCls ac = null;
- ActionMapCls ACM = ActionMaps.Find( delegate ( ActionMapCls acm ) { return acm.Name == actionMap; } );
+ ActionMapCls ACM = ActionMaps.Find( delegate ( ActionMapCls acm ) { return acm.MapName == actionMap; } );
if ( ACM != null ) ac = ACM.Find( delegate ( ActionCls _AC ) { return _AC.Key == action; } );
if ( ac == null ) {
log.Error( "FindActionObject - Action Not found in tree" );
@@ -842,7 +861,6 @@ namespace SCJMapper_V2.Actions
m_showMappedOnly = showMappedOnly;
}
-
///
/// Loads the mappings back into the treeview control
/// Note: this takes a while as the list grows...
@@ -852,9 +870,9 @@ namespace SCJMapper_V2.Actions
log.DebugFormat( "ReloadTreeView - Entry {0}", m_MasterTree.GetHashCode( ).ToString( ) );
foreach ( ActionMapCls acm in ActionMaps ) {
- if ( IgnoreMaps.Contains( "," + acm.Name + "," ) ) break; // next
+ if ( IgnoreMaps.Contains( "," + acm.MapName + "," ) ) break; // next
try {
- ActionTreeNode mtn = (ActionTreeNode)m_MasterTree.Nodes[acm.Name]; // get the map node
+ ActionTreeNode mtn = (ActionTreeNode)m_MasterTree.Nodes[acm.MapName]; // get the map node
// find the item to reload into the treeview
foreach ( ActionCls ac in acm ) {
ActionTreeNode matn = (ActionTreeNode)mtn.Nodes[ac.Key]; // get the action node
@@ -871,10 +889,8 @@ namespace SCJMapper_V2.Actions
}
else {
// have to recreate the action child nodes
- //ActionTreeInputNode matin = new ActionTreeInputNode( "UNDEF" ); matin.ImageKey = "Add";
ActionTreeInputNode matin = new ActionTreeInputNode( ac.ActionName ) { ImageKey = "Add" };
matin.Update( matn); matin.Command = "";
-
acc.NodeIndex = matin.Index; // assign visual reference
matn.Nodes.Add( matin ); // add to master tree
matin.UpdateAction( acc ); UpdateMasterNode( matin );
@@ -895,7 +911,6 @@ namespace SCJMapper_V2.Actions
FilterTree( );
}
-
///
/// Find a control that contains the string and mark it
/// this method is applied to the GUI TreeView only
@@ -906,7 +921,6 @@ namespace SCJMapper_V2.Actions
log.Debug( "FindAndSelectActionKey - Entry" );
foreach ( ActionTreeNode tn in Ctrl.Nodes ) {
- // if ( string.IsNullOrEmpty( actionmap ) || ( tn.Text == actionmap ) ) {
if ( string.IsNullOrEmpty( actionmap ) || ( tn.Action == actionmap ) ) {
// have to search nodes of nodes
foreach ( ActionTreeNode stn in tn.Nodes ) {
@@ -948,8 +962,7 @@ namespace SCJMapper_V2.Actions
// have to search nodes of nodes
if ( string.IsNullOrEmpty( actionmap ) || ( tn.Action == actionmap ) ) {
foreach ( ActionTreeNode stn in tn.Nodes ) {
- //if ( stn.Text.Contains( ctrl ) ) {
- if ( stn.Contains( ctrl ) ) {
+ if ( stn.ContainsCtrl( ctrl ) ) {
if ( Ctrl.SelectedNode == stn ) NodeSelected( );
Ctrl.SelectedNode = stn;
Ctrl.SelectedNode.EnsureVisible( );
@@ -957,8 +970,7 @@ namespace SCJMapper_V2.Actions
}
// have to search nodes of nodes
foreach ( ActionTreeInputNode sstn in stn.Nodes ) {
- //if ( sstn.Text.Contains( ctrl ) ) {
- if ( sstn.Contains( ctrl ) ) {
+ if ( sstn.ContainsCtrl( ctrl ) ) {
if ( Ctrl.SelectedNode == sstn ) NodeSelected( );
Ctrl.SelectedNode = sstn;
Ctrl.SelectedNode.EnsureVisible( );
@@ -970,7 +982,6 @@ namespace SCJMapper_V2.Actions
}
}
-
///
/// Find a control that contains the string and mark it
/// this method is applied to the GUI TreeView only
@@ -1003,7 +1014,6 @@ namespace SCJMapper_V2.Actions
}
}
-
///
/// Find all actions that are mapped to this input
///
@@ -1026,7 +1036,7 @@ namespace SCJMapper_V2.Actions
if ( ac.DefBinding == input ) {
ret.Add( "" );
aMode = string.Format( "{0};{1}", ac.DefActivationMode.Name, ac.DefActivationMode.MultiTap );
- l = string.Format( "{0} - {1} - {2} - {3}", "profile", ac.ActionName, acm.Name, aMode );
+ l = string.Format( "{0} - {1} - {2} - {3}", "profile", ac.ActionName, acm.MapName, aMode );
ret.Add( l );
}
foreach ( ActionCommandCls acc in ac.InputList ) {
@@ -1034,7 +1044,7 @@ namespace SCJMapper_V2.Actions
aMode = string.Format( "modified;{0};{1}", acc.ActivationMode.Name, acc.ActivationMode.MultiTap );
if ( acc.ActivationMode == ActivationMode.Default )
aMode = string.Format( "default" );
- l = string.Format( "{0} - {1} - {2} - {3}", "mapped ", ac.ActionName, acm.Name, aMode );
+ l = string.Format( "{0} - {1} - {2} - {3}", "mapped ", ac.ActionName, acm.MapName, aMode );
ret.Add( l );
}
}
@@ -1075,7 +1085,7 @@ namespace SCJMapper_V2.Actions
if ( acc.ActivationMode == ActivationMode.Default )
aMode = string.Format( "default" );
rtf.RHighlightColor = RTF.RTFformatter.ERColor.ERC_Green;
- rtf.Write( "mapped" ); rtf.WriteTab( ac.ActionName ); rtf.WriteTab( acm.Name ); rtf.WriteTab( aMode.PadRight( 80 ) ); rtf.WriteLn( );
+ rtf.Write( "mapped" ); rtf.WriteTab( ac.ActionName ); rtf.WriteTab( acm.MapName ); rtf.WriteTab( aMode.PadRight( 80 ) ); rtf.WriteLn( );
rtf.RHighlightColor = RTF.RTFformatter.ERColor.ERC_Black;
rtf.WriteLn( );
used = true;
@@ -1084,16 +1094,15 @@ namespace SCJMapper_V2.Actions
}
if ( ( !used ) && ac.DefBinding == input ) {
aMode = string.Format( "{0};{1}", ac.DefActivationMode.Name, ac.DefActivationMode.MultiTap );
- rtf.Write( "profile" ); rtf.WriteTab( ac.ActionName ); rtf.WriteTab( acm.Name ); rtf.WriteTab( aMode ); rtf.WriteLn( );
+ rtf.Write( "profile" ); rtf.WriteTab( ac.ActionName ); rtf.WriteTab( acm.MapName ); rtf.WriteTab( aMode ); rtf.WriteLn( );
rtf.WriteLn( );
}
}
}
}
-
///
- /// Find a control the the actionmap that contains the Text
+ /// Find a control the the actionmap that contains the ActionText
///
/// The actionmap to find the string, empty string matches all actionmaps
/// The string to find
@@ -1125,7 +1134,6 @@ namespace SCJMapper_V2.Actions
return FindText( "", text );
}
-
///
/// Returns Action and Ctrl of the currently selected node
///
@@ -1138,15 +1146,11 @@ namespace SCJMapper_V2.Actions
if ( Ctrl.SelectedNode.Level == 1 ) {
ActionTreeNode matn = FindMasterAction( (ActionTreeNode)Ctrl.SelectedNode );
- // action = ActionTreeNode.ActionFromNodeText( matn.Text );
- // ctrl = ActionTreeNode.CommandFromNodeText( matn.Text );
action = matn.Action;
ctrl = matn.Command;
}
else if ( Ctrl.SelectedNode.Level == 2 ) {
ActionTreeNode matn = FindMasterAction( (ActionTreeInputNode)Ctrl.SelectedNode ); // the parent treenode
- // action = ActionTreeNode.ActionFromNodeText( matn.Text );
- // ctrl = ActionTreeNode.CommandFromNodeText( matn.Text );
action = matn.Action;
ctrl = matn.Command;
}
@@ -1161,12 +1165,10 @@ namespace SCJMapper_V2.Actions
if ( Ctrl.SelectedNode == null ) return "";
if ( Ctrl.SelectedNode.Level == 1 ) {
ActionTreeNode matn = FindMasterAction( (ActionTreeNode)Ctrl.SelectedNode );
- // return ActionTreeNode.CommandFromNodeText( matn.Text );
return matn.Command;
}
else if ( Ctrl.SelectedNode.Level == 2 ) {
ActionTreeNode matn = FindMasterAction( (ActionTreeInputNode)Ctrl.SelectedNode ); // the parent treenode
- // return ActionTreeNode.CommandFromNodeText( matn.Text );
return matn.Command;
}
else return "";
@@ -1182,12 +1184,10 @@ namespace SCJMapper_V2.Actions
if ( Ctrl.SelectedNode == null ) return "";
if ( Ctrl.SelectedNode.Level == 1 ) {
ActionTreeNode matn = FindMasterAction( (ActionTreeNode)Ctrl.SelectedNode );
- // return ActionTreeNode.ActionFromNodeText( matn.Text );
return matn.Action;
}
else if ( Ctrl.SelectedNode.Level == 2 ) {
ActionTreeNode matn = FindMasterAction( (ActionTreeNode)Ctrl.SelectedNode.Parent ); // the parent treenode
- // return ActionTreeNode.ActionFromNodeText( matn.Text );
return matn.Action;
}
else return "";
@@ -1210,7 +1210,6 @@ namespace SCJMapper_V2.Actions
ActionTreeNode atn = ( Ctrl.SelectedNode as ActionTreeNode ); // the treenode from a level 1
ActionCls ac = FindActionObject( atn.Parent.Name, atn.Name ); // the related action in an actionmap
if ( ac == null ) return ""; // ERROR exit
- // ActionCommandCls acc = ac.FindActionInputObject( ActionTreeNode.CommandFromNodeText( atn.Text ) ); if ( acc == null ) return ""; // ERROR exit
ActionCommandCls acc = ac.FindActionInputObject( atn.Command ); if ( acc == null ) return ""; // ERROR exit
// have it - continue
string actionID = DS_ActionMap.ActionID( atn.Parent.Name, ac.Key, acc.NodeIndex );
@@ -1277,15 +1276,13 @@ namespace SCJMapper_V2.Actions
}
-
-
///
/// Reports a summary list of the mapped items
///
///
public string ReportActions()
{
- log.Debug( "FindCtrl - ReportActions" );
+ log.Debug( "ReportActions - Entry" );
string repList = "";
// JS assignments
@@ -1293,25 +1290,30 @@ namespace SCJMapper_V2.Actions
if ( !string.IsNullOrEmpty( ActionMaps.jsN[i] ) ) repList += string.Format( "** js{0} = {1}\n", i + 1, ActionMaps.jsN[i] );
}
// now the mapped actions
- const int padAction = 42;
+ const int padAction = 50;
const int padDevice = 4;
const int padInput = 25;
repList += string.Format( "\n" );
- repList += string.Format( " {0}+- {1} _ {2}#-[{4}] {3}\n\n", "Action".PadRight( padAction ), "Dev".PadRight( padDevice ), "Binding".PadRight( padInput ), "Activation", "T" ); // col description line
+ repList += string.Format( " {0}+- {1} _ {2}#-[{4}] {3}\n\n", "Action".PadRight( padAction ),
+ "Dev".PadRight( padDevice ),
+ "Binding".PadRight( padInput ),
+ "Activation", "T" ); // col description line
foreach ( ActionMapCls acm in ActionMaps ) {
- string rep = string.Format( "*** {0}\n", acm.Name );
+ string rep = string.Format( "*** {0}\n", SCUiText.Instance.Text( acm.MapName ) );
repList += rep;
foreach ( ActionCls ac in acm ) {
foreach ( ActionCommandCls acc in ac.InputList ) {
if ( ShowAction( ac.ActionDevice, acc.Input ) ) {
if ( !string.IsNullOrEmpty( acc.Input ) /* && !( acc.Input == DeviceCls.BlendedInput )*/ ) {
+ string actionName = SCUiText.Instance.Text( ac.ActionName );
+ if ( actionName.Length > padAction ) actionName = actionName.Substring( 0, padAction );
if ( acc.DevInput == ac.DefBinding ) {
- rep = string.Format( " {0} . {1} _ {2}", ac.ActionName.PadRight( padAction ), acc.DevID.PadRight( padDevice ), acc.Input.PadRight( padInput ) );
+ rep = string.Format( " {0} . {1} _ {2}", actionName.PadRight( padAction ), acc.DevID.PadRight( padDevice ), acc.Input.PadRight( padInput ) );
}
else {
- rep = string.Format( " {0} + {1} _ {2}", ac.ActionName.PadRight( padAction ), acc.DevID.PadRight( padDevice ), acc.Input.PadRight( padInput ) ); // my binding
+ rep = string.Format( " {0} + {1} _ {2}", actionName.PadRight( padAction ), acc.DevID.PadRight( padDevice ), acc.Input.PadRight( padInput ) ); // my binding
}
if ( acc.ActivationMode == ActivationMode.Default ) {
rep += string.Format( " . [{1}] {0}\n", ac.DefActivationMode.Name, ac.DefActivationMode.MultiTap );
@@ -1330,14 +1332,13 @@ namespace SCJMapper_V2.Actions
return repList;
}
-
///
/// Reports a summary list of the mapped items
///
///
public string ReportActionsCSV( bool listModifiers )
{
- log.Debug( "FindCtrl - ReportActions2" );
+ log.Debug( "ReportActionsCSV - Entry" );
string repList = "";
// JS assignments
@@ -1384,7 +1385,8 @@ namespace SCJMapper_V2.Actions
}
// action changed - restart collection
action = ac.ActionName;
- rep = string.Format( "{0};{1};", acm.Name, ac.ActionName ); // actionmap; action
+ rep = string.Format( "{0};{1};", SCUiText.Instance.Text( acm.MapName),
+ SCUiText.Instance.Text( ac.ActionName )); // actionmap; action
// note: don't add trailing semicolons as the are applied in the output formatting
if ( listModifiers ) {
kbA = "n.a.;;;;"; // defaults tag;input;mod-tag;mod-name;mod-mult
diff --git a/actions/ActionTreeInputNode.cs b/actions/ActionTreeInputNode.cs
index 4ee616c..33ebe57 100644
--- a/actions/ActionTreeInputNode.cs
+++ b/actions/ActionTreeInputNode.cs
@@ -7,67 +7,12 @@ using System.Windows.Forms;
namespace SCJMapper_V2.Actions
{
///
- /// Our INPUT TreeNode - inherits a ActionTreeNode one and adds some functionality
+ /// Our INPUT TreeNode - inherits from ActionTreeNode - serves as a distinct type in the ActionTree for Inputs
///
- /// contains the input command i.e. - js2_button3 OR ! js1_x (MODs applies at the very beginning of the string)
///
class ActionTreeInputNode : ActionTreeNode
{
- #region Static items
-
-
- // Handle all text label composition and extraction here
-
- /////
- ///// Returns a the cmd with standard modifier if modified == true
- /////
- ///// Any string
- ///// Bool true if a modifier shall be added
- ///// The string with added Modifier if requested
- //private static string ComposeNodeText( string cmd, bool modified = false )
- //{
- // if ( string.IsNullOrEmpty( cmd ) ) {
- // return "";
- // }
- // else {
- // if ( modified )
- // return string.Format( "{0} {1}", cmd, ActionTreeNode.ModDiv ); // js1_button1 #
- // else
- // return string.Format( "{0}", cmd ); // js1_button1
- // }
- //}
-
- /////
- ///// Returns the cmd part of a string like "cmd - anything #"
- /////
- ///// A nodetext string like "cmd - anything #"
- ///// contains the cmd part if delimiters are present - else returns the input
- //private static void DecompNodeText( string nodeText, out string cmd )
- //{
- // string[] e = nodeText.Split( new char[] { RegDiv, ModDiv }, StringSplitOptions.RemoveEmptyEntries );
- // if ( e.Length > 0 )
- // cmd = e[0].TrimEnd( );
- // else
- // cmd = nodeText;
- //}
-
-
- /////
- ///// Returns the command part from a node text
- ///// i.e. "v_pitch - js1_x" returns v_pitch
- /////
- ///// The node text in 'action - command' notation
- ///// the command part or an empty string
- //private new static string CommandFromNodeText( string nodeText )
- //{
- // ActionTreeInputNode.DecompNodeText( nodeText, out string cmd );
- // return cmd;
- //}
-
- #endregion
-
-
// Object defs
///
@@ -108,35 +53,5 @@ namespace SCJMapper_V2.Actions
{
}
-
- /////
- ///// Property Text of an Input node
- /////
- //public new string Text
- //{
- // get { return base.Text; }
- // set
- // {
- // ActionTreeInputNode.DecompNodeText( value, out m_command );
- // m_actionText = ActionTreeInputNode.ComposeNodeText( AddDiv + m_command, m_modified ); // tag for the node processing
- // base.Text = m_actionText; // TODO
- // }
- //}
-
-
- //public new string Command
- /////
- ///// Property Command of an Input node
- /////
- //{
- // get { return m_command; }
- // set
- // {
- // m_command = value;
- // m_actionText = ActionTreeInputNode.ComposeNodeText( m_command, m_modified ); // compose - later it will be decomposed again
- // base.Text = m_actionText; // TODO
- // }
- //}
-
}
}
diff --git a/actions/ActionTreeNode.cs b/actions/ActionTreeNode.cs
index 49b6d91..6f0971e 100644
--- a/actions/ActionTreeNode.cs
+++ b/actions/ActionTreeNode.cs
@@ -155,7 +155,6 @@ namespace SCJMapper_V2.Actions
this.NodeFont = srcNode.NodeFont;
this.ImageKey = srcNode.ImageKey;
this.Tag = srcNode.Tag;
- this.m_actionLabel = srcNode.m_actionLabel;
this.m_action = srcNode.m_action;
this.m_actionDevice = srcNode.m_actionDevice;
this.m_actionText = srcNode.m_actionText;
@@ -165,7 +164,6 @@ namespace SCJMapper_V2.Actions
}
// our own properties
- private string m_actionLabel = ""; // the text shown - translated m_action
protected string m_actionText = ""; // contains the former Text property of the TreeNode
private string m_action = ""; // i.e. v_pitch
protected string m_command = ""; // i.e. js2_button3
@@ -176,9 +174,9 @@ namespace SCJMapper_V2.Actions
/// Crates the translated node text for display
///
/// A composed string
- protected string ComposeNodeText( )
+ protected string ComposeNodeText()
{
- string tAction = SC.SCUiText.Instance.Text( m_actionLabel, m_action );
+ string tAction = SC.SCUiText.Instance.Text( m_action );
if ( string.IsNullOrEmpty( m_command ) ) {
return tAction; // v_eject
@@ -194,8 +192,6 @@ namespace SCJMapper_V2.Actions
}
}
-
-
///
/// Update this node from the other node
/// applies dynamic props only
@@ -205,10 +201,11 @@ namespace SCJMapper_V2.Actions
{
// TreeNode props
this.BackColor = other.BackColor;
+ this.ToolTipText = other.ToolTipText;
+
// own props
this.Command = other.Command;
this.Modified = other.Modified;
- this.ActionLabel = other.ActionLabel;
this.Action = other.Action; //? does this fill all the rest properly?
}
@@ -228,7 +225,6 @@ namespace SCJMapper_V2.Actions
this.Command = ""; this.BackColor = MyColors.UnassignedColor;
if ( this.Level == 2 ) {
this.Action = ( this.Parent as ActionTreeNode ).Action;
- this.ActionLabel = (this.Parent as ActionTreeNode).ActionLabel; // apply UNDEF - 20160525 fix addbind not showing UNDEF if assigned
}
}
// blended mapped ones - can only get a Blend Background
@@ -244,29 +240,10 @@ namespace SCJMapper_V2.Actions
this.Modified = !actionCmd.DefaultActivationMode; // apply modifier visual
}
-
- /////
- ///// Property Text of an Action node
- /////
- //public new string Text
- //{
- // get { return base.Text; }
- // private set {
- // ActionTreeNode.DecompNodeActionText( value, out m_action, out m_command );
- // m_actionText = ActionTreeNode.ComposeNodeActionText( m_action, m_command, m_modified );
- // base.Text = ComposeNodeText(); // TODO for now
- // }
- //}
-
///
/// Property ActionText (action in profile notation i.e. v_something) of an Action node
///
public string ActionText { get => m_actionText; }
-
- ///
- /// Property ActionLabel of an Action node
- ///
- public string ActionLabel { get => m_actionLabel; set => m_actionLabel = value; }
///
/// Property Action of an Action node
@@ -277,6 +254,7 @@ namespace SCJMapper_V2.Actions
set {
m_action = value;
// may need to update too
+ this.ToolTipText = m_action;
m_actionText = ActionTreeNode.ComposeNodeActionText( m_action, m_command, m_modified );
base.Text = ComposeNodeText( );
}
@@ -306,19 +284,37 @@ namespace SCJMapper_V2.Actions
m_modified = value;
// may need to update too
m_actionText = ActionTreeNode.ComposeNodeActionText( m_action, m_command, m_modified );
- base.Text = ComposeNodeText( );
+ base.Text = ComposeNodeText( );
}
}
///
/// Property ActionDevice of an Action node
///
- public Act.ActionDevice ActionDevice
+ public Act.ActionDevice ActionDevice { get => m_actionDevice; set => m_actionDevice = value; }
+
+ ///
+ /// Return true if the content of Action - Command contains the match string
+ ///
+ /// A string to match
+ /// True if the node contains the match
+ public bool Contains( string match )
+ {
+ string m = match.ToLowerInvariant( );
+ if ( m_actionText.Contains( m ) || this.Text.ToLowerInvariant().Contains( m ) ) return true;
+ return false;
+ }
+
+ ///
+ /// Return true if the content of Action - Command contains the match string
+ ///
+ /// A string to match
+ /// True if the node contains the match
+ public bool ContainsCtrl( string match )
{
- get { return m_actionDevice; }
- set {
- m_actionDevice = value;
- }
+ string m = match.ToLowerInvariant( );
+ if ( m_command.Contains( m ) ) return true;
+ return false;
}
///
@@ -326,9 +322,10 @@ namespace SCJMapper_V2.Actions
///
/// A string to match
/// True if the node contains the match
- public bool Contains( string match )
+ public bool ContainsAction( string match )
{
- if ( m_actionText.Contains( match ) ) return true;
+ string m = match.ToLowerInvariant( );
+ if ( m_action.Contains( m ) ) return true;
return false;
}
diff --git a/defaultProfile-PTU3.0.0-V1.zip b/defaultProfile-PTU3.0.0-V1.zip
deleted file mode 100644
index e089234..0000000
Binary files a/defaultProfile-PTU3.0.0-V1.zip and /dev/null differ