diff --git a/MobiFlight/ExecutionManager.cs b/MobiFlight/ExecutionManager.cs index 7fe5a416d..03c95277b 100644 --- a/MobiFlight/ExecutionManager.cs +++ b/MobiFlight/ExecutionManager.cs @@ -601,8 +601,14 @@ private ConnectorValue ExecuteRead(OutputConfigItem cfg) } else if (cfg.SourceType == SourceType.VARIABLE) { - result.type = FSUIPCOffsetType.Float; - result.Float64 = mobiFlightCache.GetMobiFlightVariable(cfg.MobiFlightVariable.Name).Number; + if (cfg.MobiFlightVariable.TYPE == MobiFlightVariable.TYPE_NUMBER) { + result.type = FSUIPCOffsetType.Float; + result.Float64 = mobiFlightCache.GetMobiFlightVariable(cfg.MobiFlightVariable.Name).Number; + } else if (cfg.MobiFlightVariable.TYPE == MobiFlightVariable.TYPE_STRING) + { + result.type = FSUIPCOffsetType.String; + result.String = mobiFlightCache.GetMobiFlightVariable(cfg.MobiFlightVariable.Name).Text; + } } else { diff --git a/MobiFlight/InputConfig/ButtonInputConfig.cs b/MobiFlight/InputConfig/ButtonInputConfig.cs index be9368d0f..5d705108b 100644 --- a/MobiFlight/InputConfig/ButtonInputConfig.cs +++ b/MobiFlight/InputConfig/ButtonInputConfig.cs @@ -78,6 +78,11 @@ public void ReadXml(System.Xml.XmlReader reader) onPress = new MSFS2020EventIdInputAction(); onPress.ReadXml(reader); break; + + case VariableInputAction.TYPE: + onPress = new VariableInputAction(); + onPress.ReadXml(reader); + break; } reader.Read(); // Closing onPress } @@ -130,6 +135,11 @@ public void ReadXml(System.Xml.XmlReader reader) onRelease = new MSFS2020EventIdInputAction(); onRelease.ReadXml(reader); break; + + case VariableInputAction.TYPE: + onRelease = new VariableInputAction(); + onRelease.ReadXml(reader); + break; } reader.Read(); // closing onRelease diff --git a/MobiFlight/InputConfig/EncoderInputConfig.cs b/MobiFlight/InputConfig/EncoderInputConfig.cs index c7e193838..613945ede 100644 --- a/MobiFlight/InputConfig/EncoderInputConfig.cs +++ b/MobiFlight/InputConfig/EncoderInputConfig.cs @@ -64,10 +64,16 @@ public void ReadXml(System.Xml.XmlReader reader) onLeft = new LuaMacroInputAction(); onLeft.ReadXml(reader); break; + case MSFS2020EventIdInputAction.TYPE: onLeft = new MSFS2020EventIdInputAction(); onLeft.ReadXml(reader); break; + + case VariableInputAction.TYPE: + onLeft = new VariableInputAction(); + onLeft.ReadXml(reader); + break; } reader.Read(); // advance to the next @@ -111,6 +117,11 @@ public void ReadXml(System.Xml.XmlReader reader) onLeftFast = new MSFS2020EventIdInputAction(); onLeftFast.ReadXml(reader); break; + + case VariableInputAction.TYPE: + onLeftFast = new VariableInputAction(); + onLeftFast.ReadXml(reader); + break; } reader.Read(); // advance to the next @@ -154,6 +165,11 @@ public void ReadXml(System.Xml.XmlReader reader) onRight = new MSFS2020EventIdInputAction(); onRight.ReadXml(reader); break; + + case VariableInputAction.TYPE: + onRight = new VariableInputAction(); + onRight.ReadXml(reader); + break; } reader.Read(); // advance to the next @@ -197,6 +213,11 @@ public void ReadXml(System.Xml.XmlReader reader) onRightFast = new MSFS2020EventIdInputAction(); onRightFast.ReadXml(reader); break; + + case VariableInputAction.TYPE: + onRightFast = new VariableInputAction(); + onRightFast.ReadXml(reader); + break; } reader.Read(); // advance to the next diff --git a/MobiFlight/InputConfig/VariableInputAction.cs b/MobiFlight/InputConfig/VariableInputAction.cs index fc9c15661..0fc3b402d 100644 --- a/MobiFlight/InputConfig/VariableInputAction.cs +++ b/MobiFlight/InputConfig/VariableInputAction.cs @@ -58,7 +58,7 @@ public override void execute(FSUIPC.FSUIPCCacheInterface fsuipcCache, if (result.Contains("$")) { MobiFlightVariable variable = moduleCache.GetMobiFlightVariable(Variable.Name); - Tuple replacement = new Tuple("$", variable.TYPE == "number" ? variable.Number.ToString() : variable.Text); + Tuple replacement = new Tuple("$", variable.TYPE == MobiFlightVariable.TYPE_NUMBER ? variable.Number.ToString() : variable.Text); replacements.Add(replacement); } @@ -70,7 +70,20 @@ public override void execute(FSUIPC.FSUIPCCacheInterface fsuipcCache, } result = Replace(result, replacements); - Variable.Number = double.Parse(result); + + if (Variable.TYPE == MobiFlightVariable.TYPE_NUMBER) + { + try + { + Variable.Number = double.Parse(result); + } + catch (Exception) + { + + + } + } + Variable.Text = result; moduleCache.SetMobiFlightVariable(Variable); } diff --git a/MobiFlight/MobiFlightVariable.cs b/MobiFlight/MobiFlightVariable.cs index a36b00294..ae412fec3 100644 --- a/MobiFlight/MobiFlightVariable.cs +++ b/MobiFlight/MobiFlightVariable.cs @@ -5,7 +5,10 @@ namespace MobiFlight { public class MobiFlightVariable { - public string TYPE = "number"; + public const string TYPE_NUMBER = "number"; + public const string TYPE_STRING = "string"; + + public string TYPE = TYPE_NUMBER; public string Name = "MyVar"; public double Number; public string Text = ""; diff --git a/MobiFlightConnector.csproj b/MobiFlightConnector.csproj index 77ba771ea..df06f8b22 100644 --- a/MobiFlightConnector.csproj +++ b/MobiFlightConnector.csproj @@ -785,6 +785,9 @@ TransformOptionsGroup.cs + + VariablePanel.cs + VariablePanel.cs diff --git a/UI/Panels/Action/VariableInputPanel.cs b/UI/Panels/Action/VariableInputPanel.cs index 092bb6e4c..961415465 100644 --- a/UI/Panels/Action/VariableInputPanel.cs +++ b/UI/Panels/Action/VariableInputPanel.cs @@ -17,11 +17,27 @@ public VariableInputPanel() { InitializeComponent(); InitWithVariable(new MobiFlightVariable()); + + List options = new List(); + options.Add(new ListItem() { Value = MobiFlightVariable.TYPE_NUMBER, Label = "Number" }); + options.Add(new ListItem() { Value = MobiFlightVariable.TYPE_STRING, Label = "String" }); + + TypeComboBox.DisplayMember = "Label"; + TypeComboBox.ValueMember = "Value"; + TypeComboBox.DataSource = options; + TypeComboBox.SelectedIndex = 0; } private void InitWithVariable(MobiFlightVariable Variable) { - ComboBoxHelper.SetSelectedItem(TypeComboBox, Variable.TYPE); + try + { + TypeComboBox.SelectedValue = Variable.TYPE; + } + catch (Exception) + { + TypeComboBox.SelectedValue = MobiFlightVariable.TYPE_NUMBER; + } NameTextBox.Text = Variable.Name; ValueTextBox.Text = Variable.Expression; } @@ -30,7 +46,14 @@ internal void syncFromConfig(InputConfig.VariableInputAction inputAction) { if (inputAction == null) inputAction = new InputConfig.VariableInputAction(); - ComboBoxHelper.SetSelectedItem(TypeComboBox, inputAction.Variable.TYPE); + try + { + TypeComboBox.SelectedValue = inputAction.Variable.TYPE; + } + catch (Exception) + { + TypeComboBox.SelectedValue = MobiFlightVariable.TYPE_NUMBER; + } NameTextBox.Text = inputAction.Variable.Name; ValueTextBox.Text = inputAction.Variable.Expression; } @@ -38,7 +61,7 @@ internal void syncFromConfig(InputConfig.VariableInputAction inputAction) internal InputConfig.InputAction ToConfig() { MobiFlight.InputConfig.VariableInputAction result = new InputConfig.VariableInputAction(); - result.Variable.TYPE = TypeComboBox.Text; + result.Variable.TYPE = TypeComboBox.SelectedValue.ToString(); result.Variable.Name = NameTextBox.Text; result.Variable.Expression = ValueTextBox.Text; return result; diff --git a/UI/Panels/Config/FsuipcConfigPanel.Designer.cs b/UI/Panels/Config/FsuipcConfigPanel.Designer.cs index 685a5c790..80a1daaab 100644 --- a/UI/Panels/Config/FsuipcConfigPanel.Designer.cs +++ b/UI/Panels/Config/FsuipcConfigPanel.Designer.cs @@ -50,7 +50,7 @@ private void InitializeComponent() this.offsetPanel = new System.Windows.Forms.Panel(); this.fsuipcTypeLabel = new System.Windows.Forms.Label(); this.fsuipcOffsetTypeComboBox = new System.Windows.Forms.ComboBox(); - this.label2 = new System.Windows.Forms.Label(); + this.fsuipcSizeLabel = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.fsuipcSizeComboBox = new System.Windows.Forms.ComboBox(); this.fsuipcOffsetTextBox = new System.Windows.Forms.TextBox(); @@ -113,9 +113,9 @@ private void InitializeComponent() // // SubstringTransformationCheckBox // - resources.ApplyResources(this.SubstringTransformationCheckBox, "SubstringTransformationCheckBox"); this.SubstringTransformationCheckBox.Checked = true; this.SubstringTransformationCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + resources.ApplyResources(this.SubstringTransformationCheckBox, "SubstringTransformationCheckBox"); this.SubstringTransformationCheckBox.Name = "SubstringTransformationCheckBox"; this.SubstringTransformationCheckBox.UseVisualStyleBackColor = true; // @@ -143,9 +143,9 @@ private void InitializeComponent() // // TransformationCheckBox // - resources.ApplyResources(this.TransformationCheckBox, "TransformationCheckBox"); this.TransformationCheckBox.Checked = true; this.TransformationCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + resources.ApplyResources(this.TransformationCheckBox, "TransformationCheckBox"); this.TransformationCheckBox.Name = "TransformationCheckBox"; this.TransformationCheckBox.UseVisualStyleBackColor = true; this.TransformationCheckBox.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); @@ -202,7 +202,7 @@ private void InitializeComponent() resources.ApplyResources(this.offsetPanel, "offsetPanel"); this.offsetPanel.Controls.Add(this.fsuipcTypeLabel); this.offsetPanel.Controls.Add(this.fsuipcOffsetTypeComboBox); - this.offsetPanel.Controls.Add(this.label2); + this.offsetPanel.Controls.Add(this.fsuipcSizeLabel); this.offsetPanel.Controls.Add(this.label1); this.offsetPanel.Controls.Add(this.fsuipcSizeComboBox); this.offsetPanel.Controls.Add(this.fsuipcOffsetTextBox); @@ -215,20 +215,20 @@ private void InitializeComponent() // // fsuipcOffsetTypeComboBox // - resources.ApplyResources(this.fsuipcOffsetTypeComboBox, "fsuipcOffsetTypeComboBox"); this.fsuipcOffsetTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.fsuipcOffsetTypeComboBox.FormattingEnabled = true; this.fsuipcOffsetTypeComboBox.Items.AddRange(new object[] { resources.GetString("fsuipcOffsetTypeComboBox.Items"), resources.GetString("fsuipcOffsetTypeComboBox.Items1"), resources.GetString("fsuipcOffsetTypeComboBox.Items2")}); + resources.ApplyResources(this.fsuipcOffsetTypeComboBox, "fsuipcOffsetTypeComboBox"); this.fsuipcOffsetTypeComboBox.Name = "fsuipcOffsetTypeComboBox"; this.fsuipcOffsetTypeComboBox.SelectedIndexChanged += new System.EventHandler(this.fsuipcOffsetTypeComboBox_SelectedIndexChanged); // - // label2 + // fsuipcSizeLabel // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; + resources.ApplyResources(this.fsuipcSizeLabel, "fsuipcSizeLabel"); + this.fsuipcSizeLabel.Name = "fsuipcSizeLabel"; // // label1 // @@ -237,7 +237,6 @@ private void InitializeComponent() // // fsuipcSizeComboBox // - resources.ApplyResources(this.fsuipcSizeComboBox, "fsuipcSizeComboBox"); this.fsuipcSizeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.fsuipcSizeComboBox.FormattingEnabled = true; this.fsuipcSizeComboBox.Items.AddRange(new object[] { @@ -245,6 +244,7 @@ private void InitializeComponent() resources.GetString("fsuipcSizeComboBox.Items1"), resources.GetString("fsuipcSizeComboBox.Items2"), resources.GetString("fsuipcSizeComboBox.Items3")}); + resources.ApplyResources(this.fsuipcSizeComboBox, "fsuipcSizeComboBox"); this.fsuipcSizeComboBox.Name = "fsuipcSizeComboBox"; this.fsuipcSizeComboBox.SelectedIndexChanged += new System.EventHandler(this.fsuipcSizeComboBox_SelectedIndexChanged); // @@ -256,10 +256,10 @@ private void InitializeComponent() // // fsuipcLoadPresetGroupBox // - resources.ApplyResources(this.fsuipcLoadPresetGroupBox, "fsuipcLoadPresetGroupBox"); this.fsuipcLoadPresetGroupBox.Controls.Add(this.fsuipcPresetUseButton); this.fsuipcLoadPresetGroupBox.Controls.Add(this.labelFsuipcPreset); this.fsuipcLoadPresetGroupBox.Controls.Add(this.fsuipcPresetComboBox); + resources.ApplyResources(this.fsuipcLoadPresetGroupBox, "fsuipcLoadPresetGroupBox"); this.fsuipcLoadPresetGroupBox.Name = "fsuipcLoadPresetGroupBox"; this.fsuipcLoadPresetGroupBox.TabStop = false; // @@ -355,7 +355,7 @@ private void InitializeComponent() private System.Windows.Forms.Panel offsetPanel; private System.Windows.Forms.Label fsuipcTypeLabel; private System.Windows.Forms.ComboBox fsuipcOffsetTypeComboBox; - private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label fsuipcSizeLabel; private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox fsuipcSizeComboBox; private System.Windows.Forms.TextBox fsuipcOffsetTextBox; diff --git a/UI/Panels/Config/FsuipcConfigPanel.cs b/UI/Panels/Config/FsuipcConfigPanel.cs index ef6dc98be..ce3ed0dc0 100644 --- a/UI/Panels/Config/FsuipcConfigPanel.cs +++ b/UI/Panels/Config/FsuipcConfigPanel.cs @@ -169,6 +169,7 @@ private void updateByteSizeComboBox() { string selectedText = fsuipcSizeComboBox.Text; fsuipcSizeComboBox.Items.Clear(); + fsuipcSizeLabel.Visible = true; fsuipcSizeComboBox.Enabled = true; fsuipcSizeComboBox.Visible = true; maskAndBcdPanel.Visible = true; @@ -208,6 +209,7 @@ private void updateByteSizeComboBox() // by the zero-termination // this makes it easier for the user // because s/he doesn't have to care about it. + fsuipcSizeLabel.Visible = false; fsuipcSizeComboBox.Enabled = false; fsuipcSizeComboBox.Visible = false; diff --git a/UI/Panels/Config/FsuipcConfigPanel.resx b/UI/Panels/Config/FsuipcConfigPanel.resx index 209d4b3f5..4c0339842 100644 --- a/UI/Panels/Config/FsuipcConfigPanel.resx +++ b/UI/Panels/Config/FsuipcConfigPanel.resx @@ -117,883 +117,877 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3 + + + True - - Use preset + + True - - 101, 16 - - - maskAndBcdPanel - - - - 9 - - + MiddleRight - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Top, Left, Right + + NoControl - - $this + + 7, 5 - - Top, Left, Right + + 97, 17 - - 3, 67 + + 18 - - 0 + + Set Value + + + MiddleRight + + + label5 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - GrowAndShrink + + valuePanel - - fsuipcPresetUseButton + + 0 - - 187, 21 + + Top, Left, Right - - 0 + + 110, 2 - - 0, 49 + + 221, 20 - - FsuipcConfigPanel + + 17 - - 18 + + fsuipcValueTextBox - - Top, Left, Right + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + valuePanel - - SubstringPanel + + 1 - - GrowAndShrink + + Top - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3, 65 - - settingsColumn + + 337, 25 - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 9 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + valuePanel - - 15 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Substring from + + fsuipcMoreOptionsGroupBox - + 0 - + True - - 110, 1 + + NoControl - - 3, 16 + + 10, 3 - - 302, 20 + + 95, 18 - - MiddleRight + + 21 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Substring from - - 3, 65 + + MiddleRight - - 24, 23 + + SubstringTransformationCheckBox - - fsuipcBaseSettingsGroupBox + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 103, 18 + + SubstringPanel - - 17 + + 0 - - 2 + + 189, 2 - - SubStringFromTextBox + + 52, 20 - - 49, 20 + + 20 - - MiddleRight + + SubStringToTextBox - - 17 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + SubstringPanel - - Top, Right + + 1 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + MiddleRight - - 0 + + NoControl - - 3 + + 162, 5 - - True + + 26, 13 - - BCD Mode + + 19 - - use + + to - - Top + + MiddleRight - - labelFsuipcPreset + + SubStringToLabel - - SubstringPanel + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - offsetPanel + + SubstringPanel - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 110, 2 - - 11 + + 49, 20 17 - - 10, 3 + + SubStringFromTextBox - + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + SubstringPanel - - SubStringToLabel + + 3 - + Top - - 19 - - - 97, 17 + + 3, 40 - - 2 + + 337, 25 - - NoControl + + 11 - - fsuipcValueTextBox + + SubstringPanel - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label1 + + fsuipcMoreOptionsGroupBox - - Mask value with + + 1 - + True - - 1 - - - Set Value + + GrowAndShrink - - ... + + NoControl - - 257, 3 + + 10, 3 94, 18 - - fsuipcMultiplyTextBox - - - multiplyPanel + + 15 - - 162, 5 + + Transform - - offsetPanel + + MiddleRight - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + TransformationCheckBox - + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - valuePanel - - - True - - - 343, 250 - - - Top, Right + + multiplyPanel - - 10, 3 + + 0 - - NoControl + + Top, Left, Right - - 1 + + 110, 1 - - 1 + + 221, 20 - - 337, 51 + + 13 - - offsetPanel + + fsuipcMultiplyTextBox - - 21 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 multiplyPanel - - Top + + 1 - - Top, Right + + Top - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3, 16 - - 16 + + 337, 24 - - label5 + + 15 - - 20 + + multiplyPanel - - 337, 25 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - String + + fsuipcMoreOptionsGroupBox - - Float + + 2 - - 101, 22 + + Top - - 10 + + 0, 144 - - description + + 343, 93 - - $this + + 21 - - maskAndBcdPanel + + More Options - - 3, 4 + + fsuipcMoreOptionsGroupBox - - SubstringPanel + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - MiddleRight + + $this - - 0, 144 + + 0 - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - Int + + GrowAndShrink - - fsuipcBcdModeCheckBox + + Top, Right - - MiddleRight + + NoControl - - 281, 27 + + 214, -1 - - 0, 0, 0, 0 + + 24, 23 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17 - - Top + + ... - - 337, 24 + + maskEditorButton - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 2 - - - 1, 28 - - - Value Type + + maskAndBcdPanel - - fsuipcTypeLabel + + 0 - - 113, 21 + + Top, Right - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - presetsDataSet + + NoControl - - 82, 17 + + 257, 3 - - to + + 78, 17 - - 1 + + 15 - - Base settings + + BCD Mode - - fsuipcOffsetTypeComboBox + + fsuipcBcdModeCheckBox - - MiddleRight + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3, 16 + + maskAndBcdPanel - - 7, 5 + + 1 - - offsetPanel + + NoControl - - 11 + + 4, 4 - - Top + + 101, 16 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 16 - - offsetPanel + + Mask value with - - 1 + + MiddleRight - - 21 + + label3 - - fsuipcOffsetTextBox + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + maskAndBcdPanel - - 0 + + 2 - - 5 + + Top, Left, Right 110, 1 - - maskEditorButton - - - maskAndBcdPanel - - - fsuipcLoadPresetGroupBox - - - 189, 2 - - - presetDataTable + + 101, 20 - - 95, 18 + + 14 + + + fsuipcMaskTextBox System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + maskAndBcdPanel - - 52, 20 + + 3 - + Top - - 3 + + 3, 67 - - True + + 0, 0, 0, 0 - - 4 + + 337, 25 - - 26, 13 + + 14 - - Top, Right + + maskAndBcdPanel - - 12 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - More Options + + fsuipcBaseSettingsGroupBox - - fsuipcPresetComboBox + + 0 - - fsuipcSizeComboBox + + True - - 36, 23 + + True - - Top + + NoControl - - 337, 25 + + 1, 28 - - 0 + + 103, 18 - - NoControl + + 13 - - fsuipcBaseSettingsGroupBox + + Value Type - - Top, Right + + MiddleRight - - 4, 4 + + fsuipcTypeLabel - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + offsetPanel - - 22 + + 0 - - 20 + + Int - - Transform + + Float - - NoControl + + String - - 0, 0 + + 110, 27 - - NoControl + + 65, 21 - - SubStringToTextBox + + 14 - - fsuipcBaseSettingsGroupBox + + fsuipcOffsetTypeComboBox - - TransformationCheckBox + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3, 40 + + offsetPanel - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1 - - 2 + + NoControl - - maskAndBcdPanel + + 199, 29 - - MiddleRight + + 82, 17 - + 10 - - 343, 93 - - - 343, 95 + + Size in Bytes - - NoControl + + MiddleRight - - Load preset + + fsuipcSizeLabel - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - maskAndBcdPanel + + offsetPanel - - 1 + + 2 - - 110, 2 + + NoControl - - 52, 20 + + 3, 4 - - offsetPanel + + 101, 20 - - System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 9 - - label3 + + Offset - - Size in Bytes + + MiddleRight - - fsuipcMoreOptionsGroupBox + + label1 - - fsuipcLoadPresetGroupBox + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - GrowAndShrink + + offsetPanel - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3 - + 1 - - 13 + + 2 - - 15 + + 4 - - 343, 49 + + 8 + + + 281, 27 50, 21 - - True - - - 0 + + 12 - - 110, 2 + + fsuipcSizeComboBox - - 221, 20 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label2 + + offsetPanel - - 0 + + 4 110, 4 - - 214, -1 + + 52, 20 - - 101, 20 + + 11 - - MiddleRight + + 0xAAAA + + + fsuipcOffsetTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + offsetPanel - - 2 + + 5 - - fsuipcMoreOptionsGroupBox + + Top - - 15 + + 3, 16 - - 6, 13 + + 337, 51 - - 78, 17 + + 10 - - 9 + + offsetPanel - - True + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + fsuipcBaseSettingsGroupBox - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1 - - 6 + + Top - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0, 49 - - Top, Left, Right + + 343, 95 - - System.Data.DataSet, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 20 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Base settings - - 65, 21 + + fsuipcBaseSettingsGroupBox - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this - - 0 + + 1 + + + Top, Right NoControl - - 4 + + 302, 20 - - SubstringTransformationCheckBox + + 36, 23 - - 4 + + 6 - - MiddleRight + + use - - 199, 29 + + fsuipcPresetUseButton - - 221, 20 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 14 + + fsuipcLoadPresetGroupBox - - NoControl + + 0 - - 13 + + NoControl - - 0xAAAA + + 7, 21 - - multiplyPanel + + 101, 22 5 + + Use preset + + + MiddleRight + + + labelFsuipcPreset + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + fsuipcLoadPresetGroupBox - - valuePanel - - + 1 - - Offset + + Top, Left, Right - - 2 + + 113, 21 - - True + + 187, 21 - - MiddleRight + + 4 - - 14 + + fsuipcPresetComboBox - - 337, 25 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - NoControl + + fsuipcLoadPresetGroupBox - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 - - 7, 21 + + Top - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0, 0 - - fsuipcLoadPresetGroupBox + + 343, 49 - - MiddleRight + + 22 - - 101, 20 + + Load preset - - 110, 27 + + fsuipcLoadPresetGroupBox - - 8 + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Top + + $this - + 2 - - fsuipcMoreOptionsGroupBox - - - valuePanel + + 17, 17 + + + True + + + 6, 13 - - fsuipcMaskTextBox + + GrowAndShrink - - offsetPanel + + 343, 335 - - SubstringPanel + + presetsDataSet - - fsuipcMoreOptionsGroupBox + + System.Data.DataSet, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + presetDataTable System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 14 + + description + + + System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + settingsColumn + + + System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + FsuipcConfigPanel + + + System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - - - 17, 17 - \ No newline at end of file diff --git a/UI/Panels/Config/TransformOptionsGroup.cs b/UI/Panels/Config/TransformOptionsGroup.cs index 5a63b8aa3..baac26d40 100644 --- a/UI/Panels/Config/TransformOptionsGroup.cs +++ b/UI/Panels/Config/TransformOptionsGroup.cs @@ -35,17 +35,17 @@ public void setMode(bool isOutputPanel) public void ShowMultiplyPanel(bool visible) { - MultiplyPanel.Visible = false && PanelMode; + MultiplyPanel.Visible = visible; } public void ShowSubStringPanel(bool visible) { - SubstringPanel.Visible = false && PanelMode; + SubstringPanel.Visible = visible; } public void ShowValuePanel(bool visible) { - ValuePanel.Visible = false && PanelMode; + ValuePanel.Visible = visible; } internal void syncFromConfig(OutputConfigItem config) @@ -57,15 +57,19 @@ internal void syncFromConfig(OutputConfigItem config) } // multiplier - if (config.FSUIPC.OffsetType != FSUIPCOffsetType.String) + if ((config.SourceType == SourceType.FSUIPC && config.FSUIPC.OffsetType == FSUIPCOffsetType.String) + || (config.SourceType == SourceType.VARIABLE && config.MobiFlightVariable.TYPE == "string") + + ) { - TransformationCheckBox.Checked = config.Transform.Active; - SubstringTransformationCheckBox.Checked = false; + TransformationCheckBox.Checked = false; + SubstringTransformationCheckBox.Checked = config.Transform.Active; } else { - TransformationCheckBox.Checked = false; - SubstringTransformationCheckBox.Checked = config.Transform.Active; + TransformationCheckBox.Checked = config.Transform.Active; + SubstringTransformationCheckBox.Checked = false; + } fsuipcMultiplyTextBox.Text = config.Transform.Expression; @@ -78,13 +82,16 @@ internal void syncFromConfig(OutputConfigItem config) internal void syncToConfig(OutputConfigItem config) { - if (config.FSUIPC.OffsetType != FSUIPCOffsetType.String) + if ((config.SourceType == SourceType.FSUIPC && config.FSUIPC.OffsetType == FSUIPCOffsetType.String) + || (config.SourceType == SourceType.VARIABLE && config.MobiFlightVariable.TYPE == "string") + + ) { - config.Transform.Active = TransformationCheckBox.Checked; + config.Transform.Active = SubstringTransformationCheckBox.Checked; } else { - config.Transform.Active = SubstringTransformationCheckBox.Checked; + config.Transform.Active = TransformationCheckBox.Checked; } // TODO: refactor this conditional stuff. diff --git a/UI/Panels/Config/VariablePanel.Designer.cs b/UI/Panels/Config/VariablePanel.Designer.cs index 81c31eaad..79941151a 100644 --- a/UI/Panels/Config/VariablePanel.Designer.cs +++ b/UI/Panels/Config/VariablePanel.Designer.cs @@ -29,13 +29,14 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VariablePanel)); this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label1 = new System.Windows.Forms.Label(); this.TypeComboBox = new System.Windows.Forms.ComboBox(); this.NameTextBox = new System.Windows.Forms.TextBox(); this.TypeLabel = new System.Windows.Forms.Label(); this.NameLabel = new System.Windows.Forms.Label(); this.transformOptionsGroup1 = new MobiFlight.UI.Panels.Config.TransformOptionsGroup(); - this.label1 = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // @@ -46,84 +47,53 @@ private void InitializeComponent() this.groupBox1.Controls.Add(this.NameTextBox); this.groupBox1.Controls.Add(this.TypeLabel); this.groupBox1.Controls.Add(this.NameLabel); - this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox1.Location = new System.Drawing.Point(0, 0); + resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(310, 101); - this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; - this.groupBox1.Text = "Variable Settings"; + // + // label1 + // + resources.ApplyResources(this.label1, "label1"); + this.label1.Name = "label1"; // // TypeComboBox // this.TypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.TypeComboBox.FormattingEnabled = true; this.TypeComboBox.Items.AddRange(new object[] { - "Number", - "String"}); - this.TypeComboBox.Location = new System.Drawing.Point(63, 37); + resources.GetString("TypeComboBox.Items"), + resources.GetString("TypeComboBox.Items1")}); + resources.ApplyResources(this.TypeComboBox, "TypeComboBox"); this.TypeComboBox.Name = "TypeComboBox"; - this.TypeComboBox.Size = new System.Drawing.Size(89, 21); - this.TypeComboBox.TabIndex = 22; + this.TypeComboBox.SelectedIndexChanged += new System.EventHandler(this.TypeComboBox_SelectedIndexChanged); // // NameTextBox // - this.NameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.NameTextBox.Location = new System.Drawing.Point(63, 61); - this.NameTextBox.Margin = new System.Windows.Forms.Padding(2); + resources.ApplyResources(this.NameTextBox, "NameTextBox"); this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(235, 20); - this.NameTextBox.TabIndex = 21; // // TypeLabel // - this.TypeLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.TypeLabel.Location = new System.Drawing.Point(10, 40); - this.TypeLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + resources.ApplyResources(this.TypeLabel, "TypeLabel"); this.TypeLabel.Name = "TypeLabel"; - this.TypeLabel.Size = new System.Drawing.Size(47, 13); - this.TypeLabel.TabIndex = 20; - this.TypeLabel.Text = "Type"; - this.TypeLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // NameLabel // - this.NameLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.NameLabel.Location = new System.Drawing.Point(13, 64); - this.NameLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + resources.ApplyResources(this.NameLabel, "NameLabel"); this.NameLabel.Name = "NameLabel"; - this.NameLabel.Size = new System.Drawing.Size(44, 13); - this.NameLabel.TabIndex = 19; - this.NameLabel.Text = "Name"; - this.NameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // transformOptionsGroup1 // - this.transformOptionsGroup1.Dock = System.Windows.Forms.DockStyle.Top; - this.transformOptionsGroup1.Location = new System.Drawing.Point(0, 101); + resources.ApplyResources(this.transformOptionsGroup1, "transformOptionsGroup1"); this.transformOptionsGroup1.Name = "transformOptionsGroup1"; - this.transformOptionsGroup1.Size = new System.Drawing.Size(310, 94); - this.transformOptionsGroup1.TabIndex = 1; - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Top; - this.label1.Location = new System.Drawing.Point(3, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(304, 19); - this.label1.TabIndex = 23; - this.label1.Text = "Access a local variable by type and name."; // // VariablePanel // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoSize = true; this.Controls.Add(this.transformOptionsGroup1); this.Controls.Add(this.groupBox1); this.Name = "VariablePanel"; - this.Size = new System.Drawing.Size(310, 195); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); diff --git a/UI/Panels/Config/VariablePanel.cs b/UI/Panels/Config/VariablePanel.cs index f5a34d00b..d341ddf0b 100644 --- a/UI/Panels/Config/VariablePanel.cs +++ b/UI/Panels/Config/VariablePanel.cs @@ -19,20 +19,41 @@ public VariablePanel() // hide the string options. transformOptionsGroup1.setMode(true); transformOptionsGroup1.ShowSubStringPanel(false); + + List options = new List(); + options.Add(new ListItem() { Value = MobiFlightVariable.TYPE_NUMBER, Label = "Number" }); + options.Add(new ListItem() { Value = MobiFlightVariable.TYPE_STRING, Label = "String" }); + + TypeComboBox.DisplayMember = "Label"; + TypeComboBox.ValueMember = "Value"; + TypeComboBox.DataSource = options; + TypeComboBox.SelectedIndex = 0; } internal void syncToConfig(OutputConfigItem config) { - config.MobiFlightVariable.TYPE = TypeComboBox.Text; + config.MobiFlightVariable.TYPE = TypeComboBox.SelectedValue.ToString(); config.MobiFlightVariable.Name = NameTextBox.Text; transformOptionsGroup1.syncToConfig(config); } internal void syncFromConfig(OutputConfigItem config) { - ComboBoxHelper.SetSelectedItem(TypeComboBox, config.MobiFlightVariable.TYPE); + try { + TypeComboBox.SelectedValue = config.MobiFlightVariable.TYPE; + } catch (Exception) + { + TypeComboBox.SelectedValue = MobiFlightVariable.TYPE_NUMBER; + } + NameTextBox.Text = config.MobiFlightVariable.Name; transformOptionsGroup1.syncFromConfig(config); } + + private void TypeComboBox_SelectedIndexChanged(object sender, EventArgs e) + { + transformOptionsGroup1.ShowMultiplyPanel(MobiFlightVariable.TYPE_NUMBER == (sender as ComboBox).SelectedValue.ToString()); + transformOptionsGroup1.ShowSubStringPanel(MobiFlightVariable.TYPE_STRING == (sender as ComboBox).SelectedValue.ToString()); + } } } diff --git a/UI/Panels/Config/VariablePanel.de.resx b/UI/Panels/Config/VariablePanel.de.resx new file mode 100644 index 000000000..8903b8ef2 --- /dev/null +++ b/UI/Panels/Config/VariablePanel.de.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Verwende eine lokale Variable mit bestimmten Typ und Namen + + + + Typ + + + Variable Einstellung + + \ No newline at end of file diff --git a/UI/Panels/Config/VariablePanel.resx b/UI/Panels/Config/VariablePanel.resx index 1af7de150..9a01799d6 100644 --- a/UI/Panels/Config/VariablePanel.resx +++ b/UI/Panels/Config/VariablePanel.resx @@ -117,4 +117,223 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Top + + + + 3, 16 + + + 304, 19 + + + + 23 + + + Access a local variable by type and name. + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + + + Number + + + String + + + 63, 37 + + + 89, 21 + + + 22 + + + TypeComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + + + Top, Left, Right + + + 63, 61 + + + 2, 2, 2, 2 + + + 238, 20 + + + 21 + + + NameTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 2 + + + NoControl + + + 10, 40 + + + 2, 0, 2, 0 + + + 47, 13 + + + 20 + + + Type + + + MiddleRight + + + TypeLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 3 + + + NoControl + + + 13, 64 + + + 2, 0, 2, 0 + + + 44, 13 + + + 19 + + + Name + + + MiddleRight + + + NameLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 4 + + + Top + + + 0, 0 + + + 310, 95 + + + 0 + + + Variable Settings + + + groupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top + + + 0, 95 + + + 310, 94 + + + 1 + + + transformOptionsGroup1 + + + MobiFlight.UI.Panels.Config.TransformOptionsGroup, MFConnector, Version=8.2.0.4, Culture=neutral, PublicKeyToken=null + + + $this + + + 0 + + + True + + + 6, 13 + + + True + + + 310, 195 + + + VariablePanel + + + System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file