diff --git a/DCS-Detent-Calculation-Spreadsheet.sln b/DCS-Detent-Calculation-Spreadsheet.sln
new file mode 100644
index 0000000..fa16b44
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30907.101
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DCS-Detent-Calculation-Spreadsheet", "DCS-Detent-Calculation-Spreadsheet\DCS-Detent-Calculation-Spreadsheet.csproj", "{D37B2840-7FEF-49A7-91BA-57214AC520AB}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D37B2840-7FEF-49A7-91BA-57214AC520AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D37B2840-7FEF-49A7-91BA-57214AC520AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D37B2840-7FEF-49A7-91BA-57214AC520AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D37B2840-7FEF-49A7-91BA-57214AC520AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {CF730799-4DC5-4143-839B-E38CD9724317}
+ EndGlobalSection
+EndGlobal
diff --git a/DCS-Detent-Calculation-Spreadsheet/App.config b/DCS-Detent-Calculation-Spreadsheet/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DCS-Detent-Calculation-Spreadsheet/App.xaml b/DCS-Detent-Calculation-Spreadsheet/App.xaml
new file mode 100644
index 0000000..9b67b79
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/DCS-Detent-Calculation-Spreadsheet/App.xaml.cs b/DCS-Detent-Calculation-Spreadsheet/App.xaml.cs
new file mode 100644
index 0000000..57c0e3f
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace DCS_Detent_Calculation_Spreadsheet
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/DCS-Detent-Calculation-Spreadsheet/DCS-Detent-Calculation-Spreadsheet.csproj b/DCS-Detent-Calculation-Spreadsheet/DCS-Detent-Calculation-Spreadsheet.csproj
new file mode 100644
index 0000000..36e1052
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/DCS-Detent-Calculation-Spreadsheet.csproj
@@ -0,0 +1,265 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ {D37B2840-7FEF-49A7-91BA-57214AC520AB}
+ WinExe
+ DCS_Detent_Calculation_Spreadsheet
+ DCS-Detent-Calculation-Spreadsheet
+ v4.7.2
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ InkLogoExcel1k.ico
+
+
+
+ ..\packages\Costura.Fody.5.1.0\lib\netstandard1.0\Costura.dll
+
+
+ ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll
+ True
+ True
+
+
+ ..\packages\OxyPlot.Core.2.0.0\lib\net45\OxyPlot.dll
+
+
+ ..\packages\OxyPlot.Wpf.2.0.0\lib\net45\OxyPlot.Wpf.dll
+
+
+
+
+ ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll
+ True
+ True
+
+
+
+
+ ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll
+ True
+ True
+
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll
+ True
+ True
+
+
+
+ ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll
+ True
+ True
+
+
+ ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll
+ True
+ True
+
+
+ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+ True
+ True
+
+
+
+ ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll
+ True
+ True
+
+
+ ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll
+ True
+ True
+
+
+ ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll
+ True
+ True
+
+
+ ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll
+ True
+ True
+
+
+ ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll
+ True
+ True
+
+
+ ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll
+ True
+ True
+
+
+ ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll
+ True
+ True
+
+
+
+
+ ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll
+ True
+ True
+
+
+ ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll
+ True
+ True
+
+
+
+
+
+
+
+ 4.0
+
+
+ ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll
+ True
+ True
+
+
+
+
+
+ ..\..\DCS-CMS-Editor\packages\Extended.Wpf.Toolkit.4.0.1\lib\net40\Xceed.Wpf.Toolkit.dll
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
\ No newline at end of file
diff --git a/DCS-Detent-Calculation-Spreadsheet/FodyWeavers.xml b/DCS-Detent-Calculation-Spreadsheet/FodyWeavers.xml
new file mode 100644
index 0000000..5029e70
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/DCS-Detent-Calculation-Spreadsheet/FodyWeavers.xsd b/DCS-Detent-Calculation-Spreadsheet/FodyWeavers.xsd
new file mode 100644
index 0000000..05e92c1
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/FodyWeavers.xsd
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of unmanaged 32 bit assembly names to include, delimited with line breaks.
+
+
+
+
+ A list of unmanaged 64 bit assembly names to include, delimited with line breaks.
+
+
+
+
+ The order of preloaded assemblies, delimited with line breaks.
+
+
+
+
+
+ This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
+
+
+
+
+ Controls if .pdbs for reference assemblies are also embedded.
+
+
+
+
+ Controls if runtime assemblies are also embedded.
+
+
+
+
+ Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.
+
+
+
+
+ Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
+
+
+
+
+ As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
+
+
+
+
+ Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
+
+
+
+
+ Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of unmanaged 32 bit assembly names to include, delimited with |.
+
+
+
+
+ A list of unmanaged 64 bit assembly names to include, delimited with |.
+
+
+
+
+ The order of preloaded assemblies, delimited with |.
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/DCS-Detent-Calculation-Spreadsheet/InkLogoExcel1k.ico b/DCS-Detent-Calculation-Spreadsheet/InkLogoExcel1k.ico
new file mode 100644
index 0000000..cd6d169
Binary files /dev/null and b/DCS-Detent-Calculation-Spreadsheet/InkLogoExcel1k.ico differ
diff --git a/DCS-Detent-Calculation-Spreadsheet/MainWindow.xaml b/DCS-Detent-Calculation-Spreadsheet/MainWindow.xaml
new file mode 100644
index 0000000..a05c470
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/MainWindow.xaml
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DCS-Detent-Calculation-Spreadsheet/MainWindow.xaml.cs b/DCS-Detent-Calculation-Spreadsheet/MainWindow.xaml.cs
new file mode 100644
index 0000000..f3c7663
--- /dev/null
+++ b/DCS-Detent-Calculation-Spreadsheet/MainWindow.xaml.cs
@@ -0,0 +1,253 @@
+using System;
+using System.Collections.Generic;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Shapes;
+
+/*
+Welcome to DCS-Detent Calculator Software!
+This program will allow you to hit that perfect sweetspot
+for your Mil and Afterburner settings every time, all the time.
+This software has been designed for every DCS aircraft and every
+kind of throttle system or axis.
+
+JC of DI made the original DCS-Detent Calculator Spreadsheet.
+Bailey created the digital representation.
+*/
+
+namespace DCS_Detent_Calculation_Spreadsheet
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ ///
+
+ public partial class MainWindow : Window
+ {
+ //https://stackoverflow.com/questions/9526626/add-an-array-to-a-dictionary-in-c-sharp
+ //Init the dictionary that will contain the aircraft name and their two properties
+ Dictionary dictionary_aircraftAndProperties = new Dictionary();
+
+ //percent increase of the scale when multiplied by 100
+ //this is used to size the drawing
+ double plotScale = 2;
+
+ Point[] points;//Init the points array
+ public MainWindow()
+ {
+ //===========================================//
+ //==!!!!!==Add the new aircraft here==!!!!!==//
+ //===========================================//
+
+ //do it like this...
+ //dictionary_aircraftAndProperties.Add("AircraftName", new double[] { 'afterburnerLocation' , 'milLocation' });
+ dictionary_aircraftAndProperties.Add("AJS37 Viggen", new double[] { 18.0, 19.0 });
+ dictionary_aircraftAndProperties.Add("F-16C", new double[] { 20.0, 21.0 });
+ dictionary_aircraftAndProperties.Add("F-18C", new double[] { 23.0, 24.0 });
+ dictionary_aircraftAndProperties.Add("MiG-29", new double[] { 38.0, 39.0 });
+ dictionary_aircraftAndProperties.Add("Su27/Su33", new double[] { 24.0, 25.0 });
+ dictionary_aircraftAndProperties.Add("F-14", new double[] { 19.0, 20.0 });
+ dictionary_aircraftAndProperties.Add("F-5E", new double[] { 18.0, 19.0 });
+ dictionary_aircraftAndProperties.Add("JF-17", new double[] { 8.0, 9.0 });
+ dictionary_aircraftAndProperties.Add("M-2000C", new double[] { 11.0, 12.0 });
+ dictionary_aircraftAndProperties.Add("Mig-21", new double[] { 8.0, 9.0 });
+ dictionary_aircraftAndProperties.Add("F-15C", new double[] { 19.0, 20.0 });
+ //dictionary_aircraftAndProperties.Add("Magic Carpet", new double[] { 40.0, 41.0 });//entry test success
+ //new aircraft section is finished. Program should be done now. Thanks for updating!
+
+ InitializeComponent();
+
+ //add each dictionary item to the list box. this will result in a list of the aircraft in the list box
+ foreach (KeyValuePair entry in dictionary_aircraftAndProperties)
+ {
+ listBox1.Items.Add(entry.Key.ToString());
+ }
+
+ textBlock_calculationText.Text = "Welcome";//Init the text to something friendly
+
+ //IntegerUpDown_detentLocation.Value = 20;//This will init the detent field
+ //i suggest not doing this because it may prevent the user from "knowing what to do next"
+
+ ////=====Sorts the list of aircraft=====//
+ listBox1.Items.SortDescriptions.Add(
+ new System.ComponentModel.SortDescription("",
+ System.ComponentModel.ListSortDirection.Ascending));
+
+ listBox1.SelectedIndex = 0;//selects the first item in the list. This prevents some null errors
+ isAircraftListBoxLoaded = true;//this makes sure that the calculations are not done too early
+ }
+
+ //==primary draw formula==//
+ private void DrawLine(Point[] points)
+ {
+ int i;
+ int count = points.Length;
+ for (i = 0; i < count - 1; i++)
+ {
+ Line myline = new Line();
+ myline.Stroke = Brushes.Blue;
+ myline.X1 = points[i].X;
+ myline.Y1 = points[i].Y;
+ myline.X2 = points[i + 1].X;
+ myline.Y2 = points[i + 1].Y;
+ canvas.Children.Add(myline);
+ }
+ }
+
+ //==spare draw formula==//
+ private void DrawLine2(Point[] points)
+ {
+ Polyline line = new Polyline();
+ PointCollection collection = new PointCollection();
+ foreach (Point p in points)
+ {
+ collection.Add(p);
+ }
+ line.Points = collection;
+ line.Stroke = new SolidColorBrush(Colors.Black);
+ line.StrokeThickness = 1;
+ canvas.Children.Add(line);
+ }
+
+ private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ action_aircraftChanged();
+ }
+
+ private void action_aircraftChanged()
+ {
+ //check to see if there is a number in the detent box
+ if (IntegerUpDown_detentLocation.Value > 0 && IntegerUpDown_detentLocation.Value < 100)
+ {
+ //if there is a number, then run calculations to get the updated graph
+ //these variables are populated by the stuff in the dictionary, which is
+ //selected by what the user selected in the list box
+ afterburnerLocation = dictionary_aircraftAndProperties[listBox1.SelectedItem.ToString()][0];
+ milLocation = dictionary_aircraftAndProperties[listBox1.SelectedItem.ToString()][1];
+
+ //grab the number that is in the box
+ detentLocation = Convert.ToInt32(IntegerUpDown_detentLocation.Value);
+ Console.WriteLine("=====NEW CALCULATION for: " + listBox1.SelectedItem + "=====");
+ Console.WriteLine("Afterburner Location: " + afterburnerLocation);
+ Console.WriteLine("Mil Location: " + milLocation);
+ Console.WriteLine("Detent Location: " + detentLocation);
+ calculateInputs();
+ PrintResultsText();
+ }
+ }
+
+ //https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/switch
+ double afterburnerLocation;
+ double milLocation;
+ double detentLocation;
+ double adSlope;
+ double adInt;
+
+ int[] calculationArray = new int[] { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };//just for using shorthand later
+ //https://stackoverflow.com/questions/9569673/accessing-a-dictionary-with-an-array-of-key-values
+ double[] resultsLineArray = new double[11];//should contain 11 results from the calculations
+
+ private void calculateInputs()
+ {
+ //==these are based on given stuff==//
+ adSlope = ((100 - milLocation) / (100 - detentLocation));
+ adInt = (-((adSlope - 1) * 100));
+ //debug math visual
+ Console.WriteLine("adSlope is: " + "(100 - " + milLocation + ") /" + "(100 - " + detentLocation + ") = " + adSlope);
+ Console.WriteLine("adInt is: " +"-(" + adSlope + "-1) * 100 = " + adInt);
+
+ //=====the calculation for the result is here==//
+ //https://www.google.com/search?q=c%23+clear+array&oq=C%23+clear+ara&aqs=chrome.1.69i57j0i10i22i30j69i58.3439j0j1&sourceid=chrome&ie=UTF-8
+ //re-init the array
+ Array.Clear(resultsLineArray, 0, 11);
+ resultsLineArray = new double[11];
+
+ //this math came from the excel spreadsheet
+ for (int i = 0; i < calculationArray.Length; i++)
+ {
+ if (calculationArray[i] < detentLocation)
+ {
+ resultsLineArray[i] = Convert.ToInt32(calculationArray[i] * (milLocation / detentLocation));
+ }
+ else
+ {
+ resultsLineArray[i] = Convert.ToInt32((calculationArray[i] * adSlope) + adInt);
+ }
+ }
+
+ //populate the text on the screen
+ textBlock_Result00.Text = resultsLineArray[0].ToString();
+ textBlock_Result01.Text = resultsLineArray[1].ToString();
+ textBlock_Result02.Text = resultsLineArray[2].ToString();
+ textBlock_Result03.Text = resultsLineArray[3].ToString();
+ textBlock_Result04.Text = resultsLineArray[4].ToString();
+ textBlock_Result05.Text = resultsLineArray[5].ToString();
+ textBlock_Result06.Text = resultsLineArray[6].ToString();
+ textBlock_Result07.Text = resultsLineArray[7].ToString();
+ textBlock_Result08.Text = resultsLineArray[8].ToString();
+ textBlock_Result09.Text = resultsLineArray[9].ToString();
+ textBlock_Result10.Text = resultsLineArray[10].ToString();
+
+ //results debug
+ Console.WriteLine("Results: " + resultsLineArray[0] + "|" + resultsLineArray[1] + "|" + resultsLineArray[2] + "|" + resultsLineArray[3] + "|" +
+ resultsLineArray[4] + "|" + resultsLineArray[5] + "|" + resultsLineArray[6] + "|" + resultsLineArray[7] + "|" + resultsLineArray[8] + "|" +
+ resultsLineArray[9] + "|" + resultsLineArray[10]);
+ }
+
+ private void PrintResultsText()
+ {
+ canvas.Children.Clear();//clear the canvas from the old data
+ //if you dont clear the canvas, the old stuff will stay. trippy
+
+ //get the points ready then draw them.
+ points = new Point[11]
+ {
+ new Point(plotScale*calculationArray[0], plotScale*resultsLineArray[0]),
+ new Point(plotScale*calculationArray[1], plotScale*resultsLineArray[1]),
+ new Point(plotScale*calculationArray[2], plotScale*resultsLineArray[2]),
+ new Point(plotScale*calculationArray[3], plotScale*resultsLineArray[3]),
+ new Point(plotScale*calculationArray[4], plotScale*resultsLineArray[4]),
+ new Point(plotScale*calculationArray[5], plotScale*resultsLineArray[5]),
+ new Point(plotScale*calculationArray[6], plotScale*resultsLineArray[6]),
+ new Point(plotScale*calculationArray[7], plotScale*resultsLineArray[7]),
+ new Point(plotScale*calculationArray[8], plotScale*resultsLineArray[8]),
+ new Point(plotScale*calculationArray[9], plotScale*resultsLineArray[9]),
+ new Point(plotScale*calculationArray[10], plotScale*resultsLineArray[10]),
+ };
+ DrawLine(points);
+
+ //update the result text as a visual
+ textBlock_calculationText.Text = listBox1.SelectedItem.ToString() + " with " +
+ IntegerUpDown_detentLocation.Value.ToString() + " Detent";
+ }
+
+ private void IntegerUpDown_detentLocation_changed(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ action_aircraftChanged();
+ }
+
+ bool isAircraftListBoxLoaded;
+
+ private void IntegerUpDown_detentLocation_valueChanged(object sender, RoutedPropertyChangedEventArgs