diff --git a/GUI.NET/Config/InputInfo.cs b/GUI.NET/Config/InputInfo.cs index 299a1ddd..3eab70e5 100644 --- a/GUI.NET/Config/InputInfo.cs +++ b/GUI.NET/Config/InputInfo.cs @@ -27,89 +27,9 @@ namespace Mesen.GUI.Config { } - public KeyMappings(int controllerIndex, int keySetIndex) + public KeyMappings Clone() { - if(controllerIndex == 0) { - if(keySetIndex == 0) { - A = InteropEmu.GetKeyCode("A"); - B = InteropEmu.GetKeyCode("S"); - Select = InteropEmu.GetKeyCode("Q"); - Start = InteropEmu.GetKeyCode("W"); - Up = InteropEmu.GetKeyCode("Up Arrow"); - Down = InteropEmu.GetKeyCode("Down Arrow"); - Left = InteropEmu.GetKeyCode("Left Arrow"); - Right = InteropEmu.GetKeyCode("Right Arrow"); - - TurboA = InteropEmu.GetKeyCode("Z"); - TurboB = InteropEmu.GetKeyCode("X"); - } else if(keySetIndex == 1) { - //XInput Default (Xbox controllers) - A = InteropEmu.GetKeyCode("Pad1 A"); - B = InteropEmu.GetKeyCode("Pad1 X"); - Select = InteropEmu.GetKeyCode("Pad1 Back"); - Start = InteropEmu.GetKeyCode("Pad1 Start"); - Up = InteropEmu.GetKeyCode("Pad1 Up"); - Down = InteropEmu.GetKeyCode("Pad1 Down"); - Left = InteropEmu.GetKeyCode("Pad1 Left"); - Right = InteropEmu.GetKeyCode("Pad1 Right"); - - TurboA = InteropEmu.GetKeyCode("Pad1 B"); - TurboB = InteropEmu.GetKeyCode("Pad1 Y"); - } else if(keySetIndex == 2) { - //DirectInput Default (Used PS4 controller as a default) - A = InteropEmu.GetKeyCode("Joy1 But2"); - B = InteropEmu.GetKeyCode("Joy1 But1"); - Select = InteropEmu.GetKeyCode("Joy1 But9"); - Start = InteropEmu.GetKeyCode("Joy1 But10"); - Up = InteropEmu.GetKeyCode("Joy1 DPad Up"); - Down = InteropEmu.GetKeyCode("Joy1 DPad Down"); - Left = InteropEmu.GetKeyCode("Joy1 DPad Left"); - Right = InteropEmu.GetKeyCode("Joy1 DPad Right"); - - TurboA = InteropEmu.GetKeyCode("Joy1 But3"); - TurboB = InteropEmu.GetKeyCode("Joy1 But4"); - } - } else if(controllerIndex == 1) { - if(keySetIndex == 0) { - A = InteropEmu.GetKeyCode("G"); - B = InteropEmu.GetKeyCode("H"); - Select = InteropEmu.GetKeyCode("T"); - Start = InteropEmu.GetKeyCode("Y"); - Up = InteropEmu.GetKeyCode("I"); - Down = InteropEmu.GetKeyCode("K"); - Left = InteropEmu.GetKeyCode("J"); - Right = InteropEmu.GetKeyCode("L"); - - TurboA = InteropEmu.GetKeyCode("B"); - TurboB = InteropEmu.GetKeyCode("N"); - } else if(keySetIndex == 1) { - //XInput Default (Xbox controllers) - A = InteropEmu.GetKeyCode("Pad2 A"); - B = InteropEmu.GetKeyCode("Pad2 X"); - Select = InteropEmu.GetKeyCode("Pad2 Back"); - Start = InteropEmu.GetKeyCode("Pad2 Start"); - Up = InteropEmu.GetKeyCode("Pad2 Up"); - Down = InteropEmu.GetKeyCode("Pad2 Down"); - Left = InteropEmu.GetKeyCode("Pad2 Left"); - Right = InteropEmu.GetKeyCode("Pad2 Right"); - - TurboA = InteropEmu.GetKeyCode("Pad2 B"); - TurboB = InteropEmu.GetKeyCode("Pad2 Y"); - } else if(keySetIndex == 2) { - //DirectInput Default (Used PS4 controller as a default) - A = InteropEmu.GetKeyCode("Joy2 But2"); - B = InteropEmu.GetKeyCode("Joy2 But1"); - Select = InteropEmu.GetKeyCode("Joy2 But9"); - Start = InteropEmu.GetKeyCode("Joy2 But10"); - Up = InteropEmu.GetKeyCode("Joy2 DPad Up"); - Down = InteropEmu.GetKeyCode("Joy2 DPad Down"); - Left = InteropEmu.GetKeyCode("Joy2 DPad Left"); - Right = InteropEmu.GetKeyCode("Joy2 DPad Right"); - - TurboA = InteropEmu.GetKeyCode("Joy2 But3"); - TurboB = InteropEmu.GetKeyCode("Joy2 But4"); - } - } + return (KeyMappings)this.MemberwiseClone(); } public InteropEmu.KeyMapping ToInteropMapping() @@ -174,14 +94,15 @@ namespace Mesen.GUI.Config public void InitializeDefaults() { + KeyPresets presets = new KeyPresets(); while(Controllers.Count < 4) { var controllerInfo = new ControllerInfo(); controllerInfo.ControllerType = Controllers.Count <= 1 ? InteropEmu.ControllerType.StandardController : InteropEmu.ControllerType.None; if(Controllers.Count <= 1) { - controllerInfo.Keys.Add(new KeyMappings(Controllers.Count, 0)); - controllerInfo.Keys.Add(new KeyMappings(Controllers.Count, 1)); - controllerInfo.Keys.Add(new KeyMappings(Controllers.Count, 2)); + controllerInfo.Keys.Add(Controllers.Count == 0 ? presets.ArrowLayout : presets.NestopiaLayout); + controllerInfo.Keys.Add(Controllers.Count == 0 ? presets.XboxLayout1 : presets.XboxLayout2); + controllerInfo.Keys.Add(Controllers.Count == 0 ? presets.Ps4Layout1 : presets.Ps4Layout2); } Controllers.Add(controllerInfo); } diff --git a/GUI.NET/Config/KeyPresets.cs b/GUI.NET/Config/KeyPresets.cs new file mode 100644 index 00000000..5758fc9e --- /dev/null +++ b/GUI.NET/Config/KeyPresets.cs @@ -0,0 +1,87 @@ +namespace Mesen.GUI.Config +{ + public class KeyPresets + { + KeyMappings _wasdLayout; + KeyMappings _arrowLayout; + KeyMappings _nestopiaLayout; + KeyMappings _fceuxLayout; + KeyMappings[] _xboxLayouts = new KeyMappings[2]; + KeyMappings[] _ps4Layouts = new KeyMappings[2]; + KeyMappings[] _snes30Layouts = new KeyMappings[2]; + + public KeyMappings WasdLayout { get { return _wasdLayout.Clone(); } } + public KeyMappings ArrowLayout { get { return _arrowLayout.Clone(); } } + public KeyMappings NestopiaLayout { get { return _nestopiaLayout.Clone(); } } + public KeyMappings FceuxLayout { get { return _fceuxLayout.Clone(); } } + public KeyMappings XboxLayout1 { get { return _xboxLayouts[0].Clone(); } } + public KeyMappings XboxLayout2 { get { return _xboxLayouts[1].Clone(); } } + public KeyMappings Ps4Layout1 { get { return _ps4Layouts[0].Clone(); } } + public KeyMappings Ps4Layout2 { get { return _ps4Layouts[1].Clone(); } } + public KeyMappings Snes30Layout1 { get { return _snes30Layouts[0].Clone(); } } + public KeyMappings Snes30Layout2 { get { return _snes30Layouts[1].Clone(); } } + + public KeyPresets() + { + _wasdLayout = new KeyMappings() { + A = InteropEmu.GetKeyCode("K"), B = InteropEmu.GetKeyCode("J"), + TurboA = InteropEmu.GetKeyCode(","), TurboB = InteropEmu.GetKeyCode("M"), + Select = InteropEmu.GetKeyCode("U"), Start = InteropEmu.GetKeyCode("I"), + Up = InteropEmu.GetKeyCode("W"), Down = InteropEmu.GetKeyCode("S"), + Left = InteropEmu.GetKeyCode("A"), Right = InteropEmu.GetKeyCode("D") + }; + + _arrowLayout= new KeyMappings() { + A = InteropEmu.GetKeyCode("S"), B = InteropEmu.GetKeyCode("A"), + TurboA = InteropEmu.GetKeyCode("Z"), TurboB = InteropEmu.GetKeyCode("X"), + Select = InteropEmu.GetKeyCode("Q"), Start = InteropEmu.GetKeyCode("W"), + Up = InteropEmu.GetKeyCode("Up Arrow"), Down = InteropEmu.GetKeyCode("Down Arrow"), + Left = InteropEmu.GetKeyCode("Left Arrow"), Right = InteropEmu.GetKeyCode("Right Arrow") + }; + + _nestopiaLayout = new KeyMappings() { + A = InteropEmu.GetKeyCode("."), B = InteropEmu.GetKeyCode(","), + TurboA = InteropEmu.GetKeyCode("L"), TurboB = InteropEmu.GetKeyCode("K"), + Select = InteropEmu.GetKeyCode("Shift"), Start = InteropEmu.GetKeyCode("Enter"), + Up = InteropEmu.GetKeyCode("Up Arrow"), Down = InteropEmu.GetKeyCode("Down Arrow"), + Left = InteropEmu.GetKeyCode("Left Arrow"), Right = InteropEmu.GetKeyCode("Right Arrow") + }; + + _fceuxLayout = new KeyMappings() { + A = InteropEmu.GetKeyCode("F"), B = InteropEmu.GetKeyCode("D"), + TurboA = 0, TurboB = 0, + Select = InteropEmu.GetKeyCode("S"), Start = InteropEmu.GetKeyCode("Enter"), + Up = InteropEmu.GetKeyCode("Up Arrow"), Down = InteropEmu.GetKeyCode("Down Arrow"), + Left = InteropEmu.GetKeyCode("Left Arrow"), Right = InteropEmu.GetKeyCode("Right Arrow") + }; + + for(int i = 0; i < 2; i++) { + string prefix = "Pad" + (i+1).ToString() + " "; + _xboxLayouts[i] = new KeyMappings() { + A = InteropEmu.GetKeyCode(prefix + "A"), B = InteropEmu.GetKeyCode(prefix + "X"), + TurboA = InteropEmu.GetKeyCode(prefix + "B"), TurboB = InteropEmu.GetKeyCode(prefix + "Y"), + Select = InteropEmu.GetKeyCode(prefix + "Back"), Start = InteropEmu.GetKeyCode(prefix + "Start"), + Up = InteropEmu.GetKeyCode(prefix + "Up"), Down = InteropEmu.GetKeyCode(prefix + "Down"), + Left = InteropEmu.GetKeyCode(prefix + "Left"), Right = InteropEmu.GetKeyCode(prefix + "Right") + }; + + prefix = "Joy" + (i+1).ToString() + " "; + _ps4Layouts[i] = new KeyMappings() { + A = InteropEmu.GetKeyCode(prefix + "But2"), B = InteropEmu.GetKeyCode(prefix + "But1"), + TurboA = InteropEmu.GetKeyCode(prefix + "But3"), TurboB = InteropEmu.GetKeyCode(prefix + "But4"), + Select = InteropEmu.GetKeyCode(prefix + "But9"), Start = InteropEmu.GetKeyCode(prefix + "But10"), + Up = InteropEmu.GetKeyCode(prefix + "DPad Up"), Down = InteropEmu.GetKeyCode(prefix + "DPad Down"), + Left = InteropEmu.GetKeyCode(prefix + "DPad Left"), Right = InteropEmu.GetKeyCode(prefix + "DPad Right") + }; + + _snes30Layouts[i] = new KeyMappings() { + A = InteropEmu.GetKeyCode(prefix + "But2"), B = InteropEmu.GetKeyCode(prefix + "But5"), + TurboA = InteropEmu.GetKeyCode(prefix + "But1"), TurboB = InteropEmu.GetKeyCode(prefix + "But4"), + Select = InteropEmu.GetKeyCode(prefix + "But11"), Start = InteropEmu.GetKeyCode(prefix + "But12"), + Up = InteropEmu.GetKeyCode(prefix + "Y+"), Down = InteropEmu.GetKeyCode(prefix + "Y-"), + Left = InteropEmu.GetKeyCode(prefix + "X-"), Right = InteropEmu.GetKeyCode(prefix + "X+") + }; + } + } + } +} diff --git a/GUI.NET/Dependencies/resources.fr.xml b/GUI.NET/Dependencies/resources.fr.xml index 3965d829..acbec76c 100644 --- a/GUI.NET/Dependencies/resources.fr.xml +++ b/GUI.NET/Dependencies/resources.fr.xml @@ -177,7 +177,23 @@ Mappage #2 Mappage #3 Mappage #4 - Réinitialiser + + Choisir un préréglage... + Clavier + Déplacement avec WSAD + Déplacement avec les flèches + Disposition par défaut de FCEUX + Disposition par défaut de Nestopia + Manette Xbox + Manette #1 + Manette #2 + Manette PS4 + Manette #1 + Manette #2 + Manette SNES30 + Manette #1 + Manette #2 + Effacer le mappage OK Annuler diff --git a/GUI.NET/Dependencies/resources.ja.xml b/GUI.NET/Dependencies/resources.ja.xml index 64d6a370..14982a8d 100644 --- a/GUI.NET/Dependencies/resources.ja.xml +++ b/GUI.NET/Dependencies/resources.ja.xml @@ -177,7 +177,23 @@ キーセット 2 キーセット 3 キーセット 4 - リセット + + プリセットを選ぶ.. + キーボード + WSADレイアウト + アローキーレイアウト + FCEUXのデフォルトレイアウト + Nestopiaのデフォルトレイアウト + Xboxコントローラ + コントローラ1 + コントローラ2 + PS4コントローラ + コントローラ1 + コントローラ2 + SFC30コントローラ + コントローラ1 + コントローラ2 + キーセットを削除 OK キャンセル diff --git a/GUI.NET/Forms/Config/ctrlStandardController.cs b/GUI.NET/Forms/Config/ctrlStandardController.cs index 28e8e692..30695716 100644 --- a/GUI.NET/Forms/Config/ctrlStandardController.cs +++ b/GUI.NET/Forms/Config/ctrlStandardController.cs @@ -13,9 +13,21 @@ namespace Mesen.GUI.Forms.Config { public partial class ctrlStandardController : UserControl { + public event EventHandler OnChange; + + public enum MappedKeyType + { + None, + Keyboard, + Controller + } + public ctrlStandardController() { InitializeComponent(); + if(LicenseManager.UsageMode != LicenseUsageMode.Designtime) { + Initialize(new KeyMappings()); + } } private void InitButton(Button btn, UInt32 scanCode) @@ -36,6 +48,22 @@ namespace Mesen.GUI.Forms.Config InitButton(btnRight, mappings.Right); InitButton(btnTurboA, mappings.TurboA); InitButton(btnTurboB, mappings.TurboB); + + this.OnChange?.Invoke(this, null); + } + + public MappedKeyType GetKeyType() + { + KeyMappings mappings = GetKeyMappings(); + MappedKeyType keyType = MappedKeyType.None; + if(mappings.A > 0xFFFF || mappings.B > 0xFFFF || mappings.Down > 0xFFFF || mappings.Left > 0xFFFF || mappings.Right > 0xFFFF || mappings.Select > 0xFFFF || + mappings.Start > 0xFFFF || mappings.TurboA > 0xFFFF || mappings.TurboB > 0xFFFF || mappings.TurboSelect > 0xFFFF || mappings.TurboStart > 0xFFFF || mappings.Up > 0xFFFF) { + keyType = MappedKeyType.Controller; + } else if(mappings.A > 0 || mappings.B > 0 || mappings.Down > 0 || mappings.Left > 0 || mappings.Right > 0 || mappings.Select > 0 || + mappings.Start > 0 || mappings.TurboA > 0 || mappings.TurboB > 0 || mappings.TurboSelect > 0 || mappings.TurboStart > 0 || mappings.Up > 0) { + keyType = MappedKeyType.Keyboard; + } + return keyType; } public void ClearKeys() @@ -50,6 +78,8 @@ namespace Mesen.GUI.Forms.Config InitButton(btnRight, 0); InitButton(btnTurboA, 0); InitButton(btnTurboB, 0); + + this.OnChange?.Invoke(this, null); } private void btnMapping_Click(object sender, EventArgs e) @@ -58,6 +88,8 @@ namespace Mesen.GUI.Forms.Config frm.ShowDialog(); ((Button)sender).Text = frm.BindedKeyName; ((Button)sender).Tag = frm.BindedKeyCode; + + this.OnChange?.Invoke(this, null); } public KeyMappings GetKeyMappings() diff --git a/GUI.NET/Forms/Config/frmControllerConfig.Designer.cs b/GUI.NET/Forms/Config/frmControllerConfig.Designer.cs index 8bc912b7..c32b4f5e 100644 --- a/GUI.NET/Forms/Config/frmControllerConfig.Designer.cs +++ b/GUI.NET/Forms/Config/frmControllerConfig.Designer.cs @@ -27,6 +27,8 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmControllerConfig)); this.ctrlStandardController0 = new Mesen.GUI.Forms.Config.ctrlStandardController(); this.tabMain = new System.Windows.Forms.TabControl(); this.tpgSet1 = new System.Windows.Forms.TabPage(); @@ -36,15 +38,32 @@ this.ctrlStandardController2 = new Mesen.GUI.Forms.Config.ctrlStandardController(); this.tpgSet4 = new System.Windows.Forms.TabPage(); this.ctrlStandardController3 = new Mesen.GUI.Forms.Config.ctrlStandardController(); + this.imageList = new System.Windows.Forms.ImageList(this.components); this.btnClear = new System.Windows.Forms.Button(); - this.btnReset = new System.Windows.Forms.Button(); this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btnSelectPreset = new System.Windows.Forms.Button(); this.trkTurboSpeed = new System.Windows.Forms.TrackBar(); this.lblTurboSpeed = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.lblTurboFast = new System.Windows.Forms.Label(); this.lblSlow = new System.Windows.Forms.Label(); + this.mnuStripPreset = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mnuKeyboard = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuWasdLayout = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuArrowLayout = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuFceuxLayout = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNestopiaLayout = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuXboxController = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuXboxLayout1 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuXboxLayout2 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPs4Controller = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPs4Layout1 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPs4Layout2 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSnes30Controller = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSnes30Layout1 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSnes30Layout2 = new System.Windows.Forms.ToolStripMenuItem(); this.baseConfigPanel.SuspendLayout(); this.tabMain.SuspendLayout(); this.tpgSet1.SuspendLayout(); @@ -55,6 +74,7 @@ this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.trkTurboSpeed)).BeginInit(); this.panel1.SuspendLayout(); + this.mnuStripPreset.SuspendLayout(); this.SuspendLayout(); // // baseConfigPanel @@ -70,8 +90,9 @@ this.ctrlStandardController0.Location = new System.Drawing.Point(0, 0); this.ctrlStandardController0.Margin = new System.Windows.Forms.Padding(0); this.ctrlStandardController0.Name = "ctrlStandardController0"; - this.ctrlStandardController0.Size = new System.Drawing.Size(585, 209); + this.ctrlStandardController0.Size = new System.Drawing.Size(585, 208); this.ctrlStandardController0.TabIndex = 0; + this.ctrlStandardController0.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange); // // tabMain // @@ -81,6 +102,7 @@ this.tabMain.Controls.Add(this.tpgSet3); this.tabMain.Controls.Add(this.tpgSet4); this.tabMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabMain.ImageList = this.imageList; this.tabMain.Location = new System.Drawing.Point(3, 3); this.tabMain.Name = "tabMain"; this.tabMain.SelectedIndex = 0; @@ -90,9 +112,9 @@ // tpgSet1 // this.tpgSet1.Controls.Add(this.ctrlStandardController0); - this.tpgSet1.Location = new System.Drawing.Point(4, 22); + this.tpgSet1.Location = new System.Drawing.Point(4, 23); this.tpgSet1.Name = "tpgSet1"; - this.tpgSet1.Size = new System.Drawing.Size(585, 209); + this.tpgSet1.Size = new System.Drawing.Size(585, 208); this.tpgSet1.TabIndex = 0; this.tpgSet1.Text = "Key Set #1"; this.tpgSet1.UseVisualStyleBackColor = true; @@ -100,9 +122,9 @@ // tpgSet2 // this.tpgSet2.Controls.Add(this.ctrlStandardController1); - this.tpgSet2.Location = new System.Drawing.Point(4, 22); + this.tpgSet2.Location = new System.Drawing.Point(4, 23); this.tpgSet2.Name = "tpgSet2"; - this.tpgSet2.Size = new System.Drawing.Size(585, 209); + this.tpgSet2.Size = new System.Drawing.Size(585, 208); this.tpgSet2.TabIndex = 1; this.tpgSet2.Text = "Key Set #2"; this.tpgSet2.UseVisualStyleBackColor = true; @@ -113,15 +135,16 @@ this.ctrlStandardController1.Location = new System.Drawing.Point(0, 0); this.ctrlStandardController1.Margin = new System.Windows.Forms.Padding(0); this.ctrlStandardController1.Name = "ctrlStandardController1"; - this.ctrlStandardController1.Size = new System.Drawing.Size(585, 209); + this.ctrlStandardController1.Size = new System.Drawing.Size(585, 208); this.ctrlStandardController1.TabIndex = 1; + this.ctrlStandardController1.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange); // // tpgSet3 // this.tpgSet3.Controls.Add(this.ctrlStandardController2); - this.tpgSet3.Location = new System.Drawing.Point(4, 22); + this.tpgSet3.Location = new System.Drawing.Point(4, 23); this.tpgSet3.Name = "tpgSet3"; - this.tpgSet3.Size = new System.Drawing.Size(585, 209); + this.tpgSet3.Size = new System.Drawing.Size(585, 208); this.tpgSet3.TabIndex = 2; this.tpgSet3.Text = "Key Set #3"; this.tpgSet3.UseVisualStyleBackColor = true; @@ -132,15 +155,16 @@ this.ctrlStandardController2.Location = new System.Drawing.Point(0, 0); this.ctrlStandardController2.Margin = new System.Windows.Forms.Padding(0); this.ctrlStandardController2.Name = "ctrlStandardController2"; - this.ctrlStandardController2.Size = new System.Drawing.Size(585, 209); + this.ctrlStandardController2.Size = new System.Drawing.Size(585, 208); this.ctrlStandardController2.TabIndex = 1; + this.ctrlStandardController2.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange); // // tpgSet4 // this.tpgSet4.Controls.Add(this.ctrlStandardController3); - this.tpgSet4.Location = new System.Drawing.Point(4, 22); + this.tpgSet4.Location = new System.Drawing.Point(4, 23); this.tpgSet4.Name = "tpgSet4"; - this.tpgSet4.Size = new System.Drawing.Size(585, 209); + this.tpgSet4.Size = new System.Drawing.Size(585, 208); this.tpgSet4.TabIndex = 3; this.tpgSet4.Text = "Key Set #4"; this.tpgSet4.UseVisualStyleBackColor = true; @@ -151,35 +175,30 @@ this.ctrlStandardController3.Location = new System.Drawing.Point(0, 0); this.ctrlStandardController3.Margin = new System.Windows.Forms.Padding(0); this.ctrlStandardController3.Name = "ctrlStandardController3"; - this.ctrlStandardController3.Size = new System.Drawing.Size(585, 209); + this.ctrlStandardController3.Size = new System.Drawing.Size(585, 208); this.ctrlStandardController3.TabIndex = 1; + this.ctrlStandardController3.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange); + // + // imageList + // + this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + this.imageList.Images.SetKeyName(0, "Keyboard"); + this.imageList.Images.SetKeyName(1, "Controller"); // // btnClear // this.btnClear.AutoSize = true; - this.btnClear.Location = new System.Drawing.Point(118, 3); + this.btnClear.Location = new System.Drawing.Point(3, 3); this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(109, 23); + this.btnClear.Size = new System.Drawing.Size(105, 23); this.btnClear.TabIndex = 3; this.btnClear.Text = "Clear Key Bindings"; this.btnClear.UseVisualStyleBackColor = true; this.btnClear.Click += new System.EventHandler(this.btnClear_Click); // - // btnReset - // - this.btnReset.AutoSize = true; - this.btnReset.Location = new System.Drawing.Point(3, 3); - this.btnReset.Name = "btnReset"; - this.btnReset.Size = new System.Drawing.Size(109, 23); - this.btnReset.TabIndex = 4; - this.btnReset.Text = "Reset to Default"; - this.btnReset.UseVisualStyleBackColor = true; - this.btnReset.Visible = false; - this.btnReset.Click += new System.EventHandler(this.btnReset_Click); - // // flowLayoutPanel2 // - this.flowLayoutPanel2.Controls.Add(this.btnReset); this.flowLayoutPanel2.Controls.Add(this.btnClear); this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Left; this.flowLayoutPanel2.Location = new System.Drawing.Point(0, 0); @@ -194,6 +213,7 @@ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.btnSelectPreset, 0, 1); this.tableLayoutPanel1.Controls.Add(this.trkTurboSpeed, 2, 1); this.tableLayoutPanel1.Controls.Add(this.lblTurboSpeed, 1, 1); this.tableLayoutPanel1.Controls.Add(this.panel1, 2, 2); @@ -209,6 +229,20 @@ this.tableLayoutPanel1.Size = new System.Drawing.Size(599, 288); this.tableLayoutPanel1.TabIndex = 23; // + // btnSelectPreset + // + this.btnSelectPreset.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.btnSelectPreset.AutoSize = true; + this.btnSelectPreset.Image = ((System.Drawing.Image)(resources.GetObject("btnSelectPreset.Image"))); + this.btnSelectPreset.Location = new System.Drawing.Point(3, 245); + this.btnSelectPreset.Name = "btnSelectPreset"; + this.btnSelectPreset.Size = new System.Drawing.Size(105, 23); + this.btnSelectPreset.TabIndex = 4; + this.btnSelectPreset.Text = "Select Preset..."; + this.btnSelectPreset.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage; + this.btnSelectPreset.UseVisualStyleBackColor = true; + this.btnSelectPreset.Click += new System.EventHandler(this.btnSelectPreset_Click); + // // trkTurboSpeed // this.trkTurboSpeed.LargeChange = 2; @@ -257,6 +291,130 @@ this.lblSlow.TabIndex = 0; this.lblSlow.Text = "Slow"; // + // mnuStripPreset + // + this.mnuStripPreset.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuKeyboard, + this.toolStripMenuItem1, + this.mnuXboxController, + this.mnuPs4Controller, + this.mnuSnes30Controller}); + this.mnuStripPreset.Name = "mnuStripPreset"; + this.mnuStripPreset.Size = new System.Drawing.Size(170, 120); + // + // mnuKeyboard + // + this.mnuKeyboard.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuWasdLayout, + this.mnuArrowLayout, + this.mnuFceuxLayout, + this.mnuNestopiaLayout}); + this.mnuKeyboard.Name = "mnuKeyboard"; + this.mnuKeyboard.Size = new System.Drawing.Size(169, 22); + this.mnuKeyboard.Text = "Keyboard"; + // + // mnuWasdLayout + // + this.mnuWasdLayout.Name = "mnuWasdLayout"; + this.mnuWasdLayout.Size = new System.Drawing.Size(172, 22); + this.mnuWasdLayout.Text = "WASD Layout"; + this.mnuWasdLayout.Click += new System.EventHandler(this.mnuWasdLayout_Click); + // + // mnuArrowLayout + // + this.mnuArrowLayout.Name = "mnuArrowLayout"; + this.mnuArrowLayout.Size = new System.Drawing.Size(172, 22); + this.mnuArrowLayout.Text = "Arrow Keys Layout"; + this.mnuArrowLayout.Click += new System.EventHandler(this.mnuArrowLayout_Click); + // + // mnuFceuxLayout + // + this.mnuFceuxLayout.Name = "mnuFceuxLayout"; + this.mnuFceuxLayout.Size = new System.Drawing.Size(172, 22); + this.mnuFceuxLayout.Text = "FCEUX Default"; + this.mnuFceuxLayout.Click += new System.EventHandler(this.mnuFceuxLayout_Click); + // + // mnuNestopiaLayout + // + this.mnuNestopiaLayout.Name = "mnuNestopiaLayout"; + this.mnuNestopiaLayout.Size = new System.Drawing.Size(172, 22); + this.mnuNestopiaLayout.Text = "Nestopia Default"; + this.mnuNestopiaLayout.Click += new System.EventHandler(this.mnuNestopiaLayout_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(166, 6); + // + // mnuXboxController + // + this.mnuXboxController.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuXboxLayout1, + this.mnuXboxLayout2}); + this.mnuXboxController.Name = "mnuXboxController"; + this.mnuXboxController.Size = new System.Drawing.Size(169, 22); + this.mnuXboxController.Text = "Xbox Controller"; + // + // mnuXboxLayout1 + // + this.mnuXboxLayout1.Name = "mnuXboxLayout1"; + this.mnuXboxLayout1.Size = new System.Drawing.Size(143, 22); + this.mnuXboxLayout1.Text = "Controller #1"; + this.mnuXboxLayout1.Click += new System.EventHandler(this.mnuXboxLayout1_Click); + // + // mnuXboxLayout2 + // + this.mnuXboxLayout2.Name = "mnuXboxLayout2"; + this.mnuXboxLayout2.Size = new System.Drawing.Size(143, 22); + this.mnuXboxLayout2.Text = "Controller #2"; + this.mnuXboxLayout2.Click += new System.EventHandler(this.mnuXboxLayout2_Click); + // + // mnuPs4Controller + // + this.mnuPs4Controller.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuPs4Layout1, + this.mnuPs4Layout2}); + this.mnuPs4Controller.Name = "mnuPs4Controller"; + this.mnuPs4Controller.Size = new System.Drawing.Size(169, 22); + this.mnuPs4Controller.Text = "PS4 Controller"; + // + // mnuPs4Layout1 + // + this.mnuPs4Layout1.Name = "mnuPs4Layout1"; + this.mnuPs4Layout1.Size = new System.Drawing.Size(152, 22); + this.mnuPs4Layout1.Text = "Controller #1"; + this.mnuPs4Layout1.Click += new System.EventHandler(this.mnuPs4Layout1_Click); + // + // mnuPs4Layout2 + // + this.mnuPs4Layout2.Name = "mnuPs4Layout2"; + this.mnuPs4Layout2.Size = new System.Drawing.Size(152, 22); + this.mnuPs4Layout2.Text = "Controller #2"; + this.mnuPs4Layout2.Click += new System.EventHandler(this.mnuPs4Layout2_Click); + // + // mnuSnes30Controller + // + this.mnuSnes30Controller.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuSnes30Layout1, + this.mnuSnes30Layout2}); + this.mnuSnes30Controller.Name = "mnuSnes30Controller"; + this.mnuSnes30Controller.Size = new System.Drawing.Size(169, 22); + this.mnuSnes30Controller.Text = "SNES30 Controller"; + // + // mnuSnes30Layout1 + // + this.mnuSnes30Layout1.Name = "mnuSnes30Layout1"; + this.mnuSnes30Layout1.Size = new System.Drawing.Size(152, 22); + this.mnuSnes30Layout1.Text = "Controller #1"; + this.mnuSnes30Layout1.Click += new System.EventHandler(this.mnuSnes30Layout1_Click); + // + // mnuSnes30Layout2 + // + this.mnuSnes30Layout2.Name = "mnuSnes30Layout2"; + this.mnuSnes30Layout2.Size = new System.Drawing.Size(152, 22); + this.mnuSnes30Layout2.Text = "Controller #2"; + this.mnuSnes30Layout2.Click += new System.EventHandler(this.mnuSnes30Layout2_Click); + // // frmControllerConfig // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -281,6 +439,7 @@ ((System.ComponentModel.ISupportInitialize)(this.trkTurboSpeed)).EndInit(); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); + this.mnuStripPreset.ResumeLayout(false); this.ResumeLayout(false); } @@ -289,7 +448,6 @@ private ctrlStandardController ctrlStandardController0; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; - private System.Windows.Forms.Button btnReset; private System.Windows.Forms.Button btnClear; private System.Windows.Forms.TabControl tabMain; private System.Windows.Forms.TabPage tpgSet1; @@ -305,5 +463,23 @@ private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Label lblTurboFast; private System.Windows.Forms.Label lblSlow; + private System.Windows.Forms.Button btnSelectPreset; + private System.Windows.Forms.ContextMenuStrip mnuStripPreset; + private System.Windows.Forms.ToolStripMenuItem mnuKeyboard; + private System.Windows.Forms.ToolStripMenuItem mnuWasdLayout; + private System.Windows.Forms.ToolStripMenuItem mnuArrowLayout; + private System.Windows.Forms.ToolStripMenuItem mnuFceuxLayout; + private System.Windows.Forms.ToolStripMenuItem mnuNestopiaLayout; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem mnuXboxController; + private System.Windows.Forms.ToolStripMenuItem mnuXboxLayout1; + private System.Windows.Forms.ToolStripMenuItem mnuXboxLayout2; + private System.Windows.Forms.ToolStripMenuItem mnuSnes30Controller; + private System.Windows.Forms.ToolStripMenuItem mnuPs4Controller; + private System.Windows.Forms.ToolStripMenuItem mnuPs4Layout1; + private System.Windows.Forms.ToolStripMenuItem mnuPs4Layout2; + private System.Windows.Forms.ToolStripMenuItem mnuSnes30Layout1; + private System.Windows.Forms.ToolStripMenuItem mnuSnes30Layout2; + private System.Windows.Forms.ImageList imageList; } } \ No newline at end of file diff --git a/GUI.NET/Forms/Config/frmControllerConfig.cs b/GUI.NET/Forms/Config/frmControllerConfig.cs index 8c0f1411..dca35cd4 100644 --- a/GUI.NET/Forms/Config/frmControllerConfig.cs +++ b/GUI.NET/Forms/Config/frmControllerConfig.cs @@ -13,6 +13,8 @@ namespace Mesen.GUI.Forms.Config { public partial class frmControllerConfig : BaseConfigForm { + private KeyPresets _presets = new KeyPresets(); + public frmControllerConfig(ControllerInfo controllerInfo) { InitializeComponent(); @@ -24,6 +26,31 @@ namespace Mesen.GUI.Forms.Config ctrlStandardController1.Initialize(controllerInfo.Keys[1]); ctrlStandardController2.Initialize(controllerInfo.Keys[2]); ctrlStandardController3.Initialize(controllerInfo.Keys[3]); + + ResourceHelper.ApplyResources(this, mnuStripPreset); + } + + private ctrlStandardController GetControllerControl() + { + if(tabMain.SelectedTab == tpgSet1) { + return ctrlStandardController0; + } else if(tabMain.SelectedTab == tpgSet2) { + return ctrlStandardController1; + } else if(tabMain.SelectedTab == tpgSet3) { + return ctrlStandardController2; + } else if(tabMain.SelectedTab == tpgSet4) { + return ctrlStandardController3; + } + + return ctrlStandardController0; + } + + private void UpdateTabIcons() + { + tpgSet1.ImageIndex = (int)ctrlStandardController0.GetKeyType() - 1; + tpgSet2.ImageIndex = (int)ctrlStandardController1.GetKeyType() - 1; + tpgSet3.ImageIndex = (int)ctrlStandardController2.GetKeyType() - 1; + tpgSet4.ImageIndex = (int)ctrlStandardController3.GetKeyType() - 1; } protected override void UpdateConfig() @@ -50,9 +77,64 @@ namespace Mesen.GUI.Forms.Config } } - private void btnReset_Click(object sender, EventArgs e) + private void btnSelectPreset_Click(object sender, EventArgs e) { - + mnuStripPreset.Show(btnSelectPreset.PointToScreen(new Point(0, btnSelectPreset.Height-1))); + } + + private void mnuWasdLayout_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.WasdLayout); + } + + private void mnuArrowLayout_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.ArrowLayout); + } + + private void mnuFceuxLayout_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.FceuxLayout); + } + + private void mnuNestopiaLayout_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.NestopiaLayout); + } + + private void mnuXboxLayout1_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.XboxLayout1); + } + + private void mnuXboxLayout2_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.XboxLayout1); + } + + private void mnuPs4Layout1_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.Ps4Layout1); + } + + private void mnuPs4Layout2_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.Ps4Layout2); + } + + private void mnuSnes30Layout1_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.Snes30Layout1); + } + + private void mnuSnes30Layout2_Click(object sender, EventArgs e) + { + GetControllerControl().Initialize(_presets.Snes30Layout2); + } + + private void ctrlStandardController_OnChange(object sender, EventArgs e) + { + UpdateTabIcons(); } } } diff --git a/GUI.NET/Forms/Config/frmControllerConfig.resx b/GUI.NET/Forms/Config/frmControllerConfig.resx index 8766f298..b44781d9 100644 --- a/GUI.NET/Forms/Config/frmControllerConfig.resx +++ b/GUI.NET/Forms/Config/frmControllerConfig.resx @@ -120,4 +120,65 @@ 17, 17 + + 242, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAK + CQAAAk1TRnQBSQFMAgEBAgEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAAQcO6wEHAbwO6wG8 + IAAB6wHvAe0BkgbtAZIB7QGSAe0B7wLrBPEC8Ai8AesgAAHsAfcB9AGSAfME8gHzAZIB8wGSAfMB9wHs + AesOvAHrIAAB7AEHCPcB7wP3AQcB7AHrCP8C9ALzAfIB9AHrIAAB7AHxAe8B9AHvAfQB7wH0Ae8B9AHv + A/MB7wHsAesB9AF0ASsBdAnyAfQB6yAAAe0BvAzvAbwB7QHrAf8DKwLyAQcC7AEHA/IB9AHrIAABkgEH + Af8BBwH/AQcB/wEHAf8BBwH/AQcC/wEHAZIB6wH/AXQBKwF0AvMB7AHzAbwB7APzAfQB6yAAAZIB8QG8 + AfEBvAHxAbwB8QG8AfEBvAHxArwB8QGSAesB/wXzAewB8wG8AewD8wH0AesgAAHwDvcB8AHrAf8F8wHs + AisBbgPzAfQB6yIAAf8B7AH/CwAB6wH/BPMBTAFSAlMBUgFMAvMB9AHrIwABBwG8Af8KAAHrBP8BmQFM + BCsBUgGTAf8B9AHrIwAB/wG8COwBBwH/AQABvATrAysBUgIrAVMBKwLrAbwsAAH/AQcB8AYAAUwDUgFM + ASsBUwFMMAAB9AGSBgABGgErAlIBTAErAVIBmTAAAf8B7AYAAf8CTAJSASsBTAH/OQAB/wGZAkwBmQH/ + JAABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/0kAAccB/wYAAeMB/wYAAeABAQYA + Af8B8QH4AQcEAAH/AfkB+AEHBAAB/wH5AfgBBwQAAv8B/AEPBAAL + + + + + + iVBORw0KGgoAAAANSUhEUgAAAAcAAAAGCAYAAAAPDoR2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUA + AAArSURBVBhXY/j//z9OjFUQhkEARGLHUBUYEmBxJCNQJFAkwRwkif///zMAAD5AXaOzoq98AAAAAElF + TkSuQmCC + + + + 107, 17 + \ No newline at end of file diff --git a/GUI.NET/GUI.NET.csproj b/GUI.NET/GUI.NET.csproj index 876d50c8..8859fe3e 100644 --- a/GUI.NET/GUI.NET.csproj +++ b/GUI.NET/GUI.NET.csproj @@ -209,6 +209,7 @@ +