Delete old virtualpad files
This commit is contained in:
parent
885f859647
commit
60d1784895
|
@ -884,6 +884,7 @@
|
|||
</Compile>
|
||||
<Compile Include="tools\VirtualPads\IVirtualPad.cs" />
|
||||
<Compile Include="tools\VirtualPads\PadSchema.cs" />
|
||||
<Compile Include="tools\VirtualPads\VirtualPadButton.cs" />
|
||||
<Compile Include="tools\VirtualPads\VirtualPadControl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPad : Panel , IVirtualPad
|
||||
{
|
||||
|
||||
public Point[] ButtonPoints = new Point[16];
|
||||
|
||||
|
||||
public CheckBox PU;
|
||||
public CheckBox PD;
|
||||
public CheckBox PL;
|
||||
public CheckBox PR;
|
||||
public CheckBox B1;
|
||||
public CheckBox B2;
|
||||
public CheckBox B3;
|
||||
public CheckBox B4;
|
||||
public CheckBox B5;
|
||||
public CheckBox B6;
|
||||
public CheckBox B7;
|
||||
public CheckBox B8;
|
||||
public string Controller { get; set; }
|
||||
|
||||
public VirtualPad()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Size = new Size(174, 74);
|
||||
Controller = "P1";
|
||||
}
|
||||
|
||||
public virtual string GetMnemonic()
|
||||
{
|
||||
return "......|";
|
||||
}
|
||||
|
||||
public virtual void Clear()
|
||||
{
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
B5.Checked = false;
|
||||
B6.Checked = false;
|
||||
B7.Checked = false;
|
||||
B8.Checked = false;
|
||||
}
|
||||
|
||||
public virtual void SetButtons(string buttons)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
|
@ -1,181 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
class VirtualPadA26 : VirtualPad
|
||||
{
|
||||
public VirtualPadA26()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(122, 24);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += this.Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "B",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PR.Checked ? "U" : ".");
|
||||
input.Append(PL.Checked ? "D" : ".");
|
||||
input.Append(PD.Checked ? "L" : ".");
|
||||
input.Append(PU.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "B" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 5) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A26" && Global.Emulator.SystemId != "C64") return;
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
else if (sender == B1)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Button", B1.Checked);
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A26" && Global.Emulator.SystemId != "C64") return;
|
||||
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,141 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
class VirtualPadA26Control : VirtualPad
|
||||
{
|
||||
public VirtualPadA26Control()
|
||||
{
|
||||
ButtonPoints[0] = new Point(2, 2);
|
||||
ButtonPoints[1] = new Point(56, 2);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(108, 34);
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 5,
|
||||
Text = "Reset",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
B1.ForeColor = Color.Red;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 6,
|
||||
Text = "Select",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
B2.ForeColor = Color.Red;
|
||||
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B1.Checked ? "r" : ".");
|
||||
input.Append(B2.Checked ? "s" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 2) return;
|
||||
if (buttons[0] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[1] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A26") return;
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B1.Checked);
|
||||
if (B1.Checked)
|
||||
{
|
||||
B1.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B1.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Select", B2.Checked);
|
||||
if (B2.Checked)
|
||||
{
|
||||
B2.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A26") return;
|
||||
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Pause", false);
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,137 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadA78
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.PL = new System.Windows.Forms.CheckBox();
|
||||
this.PD = new System.Windows.Forms.CheckBox();
|
||||
this.PR = new System.Windows.Forms.CheckBox();
|
||||
this.PU = new System.Windows.Forms.CheckBox();
|
||||
this.B2 = new System.Windows.Forms.CheckBox();
|
||||
this.B1 = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// PL
|
||||
//
|
||||
this.PL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL.AutoSize = true;
|
||||
this.PL.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL.Location = new System.Drawing.Point(32, 19);
|
||||
this.PL.Name = "PL";
|
||||
this.PL.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL.TabIndex = 7;
|
||||
this.PL.UseVisualStyleBackColor = true;
|
||||
this.PL.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PD
|
||||
//
|
||||
this.PD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD.AutoSize = true;
|
||||
this.PD.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD.Location = new System.Drawing.Point(53, 28);
|
||||
this.PD.Name = "PD";
|
||||
this.PD.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD.TabIndex = 6;
|
||||
this.PD.UseVisualStyleBackColor = true;
|
||||
this.PD.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PR
|
||||
//
|
||||
this.PR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR.AutoSize = true;
|
||||
this.PR.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR.Location = new System.Drawing.Point(74, 19);
|
||||
this.PR.Name = "PR";
|
||||
this.PR.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR.TabIndex = 5;
|
||||
this.PR.UseVisualStyleBackColor = true;
|
||||
this.PR.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PU
|
||||
//
|
||||
this.PU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU.AutoSize = true;
|
||||
this.PU.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU.Location = new System.Drawing.Point(53, 7);
|
||||
this.PU.Name = "PU";
|
||||
this.PU.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU.TabIndex = 4;
|
||||
this.PU.UseVisualStyleBackColor = true;
|
||||
this.PU.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// B2
|
||||
//
|
||||
this.B2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B2.AutoSize = true;
|
||||
this.B2.Location = new System.Drawing.Point(93, 57);
|
||||
this.B2.Name = "B2";
|
||||
this.B2.Size = new System.Drawing.Size(23, 23);
|
||||
this.B2.TabIndex = 9;
|
||||
this.B2.Text = "2";
|
||||
this.B2.UseVisualStyleBackColor = true;
|
||||
this.B2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// B1
|
||||
//
|
||||
this.B1.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B1.AutoSize = true;
|
||||
this.B1.Location = new System.Drawing.Point(10, 57);
|
||||
this.B1.Name = "B1";
|
||||
this.B1.Size = new System.Drawing.Size(23, 23);
|
||||
this.B1.TabIndex = 8;
|
||||
this.B1.Text = "1";
|
||||
this.B1.UseVisualStyleBackColor = true;
|
||||
this.B1.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadA78
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.B2);
|
||||
this.Controls.Add(this.B1);
|
||||
this.Controls.Add(this.PL);
|
||||
this.Controls.Add(this.PD);
|
||||
this.Controls.Add(this.PR);
|
||||
this.Controls.Add(this.PU);
|
||||
this.Name = "VirtualPadA78";
|
||||
this.Size = new System.Drawing.Size(128, 89);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox PL;
|
||||
private System.Windows.Forms.CheckBox PD;
|
||||
private System.Windows.Forms.CheckBox PR;
|
||||
private System.Windows.Forms.CheckBox PU;
|
||||
private System.Windows.Forms.CheckBox B2;
|
||||
private System.Windows.Forms.CheckBox B1;
|
||||
}
|
||||
}
|
|
@ -1,129 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadA78 : UserControl, IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
|
||||
public VirtualPadA78()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = "P1";
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "1" : ".");
|
||||
input.Append(B2.Checked ? "2" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 6) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A78")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == PU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
}
|
||||
else if (sender == PD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
}
|
||||
else if (sender == PL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
}
|
||||
else if (sender == PR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Trigger", B1.Checked);
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Trigger 2", B2.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A78") return;
|
||||
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Trigger", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Trigger 2", false);
|
||||
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,108 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadA78Control
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.B2 = new System.Windows.Forms.CheckBox();
|
||||
this.B1 = new System.Windows.Forms.CheckBox();
|
||||
this.B4 = new System.Windows.Forms.CheckBox();
|
||||
this.B3 = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// B2
|
||||
//
|
||||
this.B2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B2.AutoSize = true;
|
||||
this.B2.Location = new System.Drawing.Point(56, 5);
|
||||
this.B2.Name = "B2";
|
||||
this.B2.Size = new System.Drawing.Size(45, 23);
|
||||
this.B2.TabIndex = 11;
|
||||
this.B2.Text = "Reset";
|
||||
this.B2.UseVisualStyleBackColor = true;
|
||||
this.B2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// B1
|
||||
//
|
||||
this.B1.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B1.AutoSize = true;
|
||||
this.B1.Location = new System.Drawing.Point(3, 5);
|
||||
this.B1.Name = "B1";
|
||||
this.B1.Size = new System.Drawing.Size(47, 23);
|
||||
this.B1.TabIndex = 10;
|
||||
this.B1.Text = "Power";
|
||||
this.B1.UseVisualStyleBackColor = true;
|
||||
this.B1.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// B4
|
||||
//
|
||||
this.B4.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B4.AutoSize = true;
|
||||
this.B4.Location = new System.Drawing.Point(160, 5);
|
||||
this.B4.Name = "B4";
|
||||
this.B4.Size = new System.Drawing.Size(47, 23);
|
||||
this.B4.TabIndex = 13;
|
||||
this.B4.Text = "Pause";
|
||||
this.B4.UseVisualStyleBackColor = true;
|
||||
this.B4.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// B3
|
||||
//
|
||||
this.B3.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B3.AutoSize = true;
|
||||
this.B3.Location = new System.Drawing.Point(107, 5);
|
||||
this.B3.Name = "B3";
|
||||
this.B3.Size = new System.Drawing.Size(47, 23);
|
||||
this.B3.TabIndex = 12;
|
||||
this.B3.Text = "Select";
|
||||
this.B3.UseVisualStyleBackColor = true;
|
||||
this.B3.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadA78Control
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.B4);
|
||||
this.Controls.Add(this.B3);
|
||||
this.Controls.Add(this.B2);
|
||||
this.Controls.Add(this.B1);
|
||||
this.Name = "VirtualPadA78Control";
|
||||
this.Size = new System.Drawing.Size(217, 34);
|
||||
this.Load += new System.EventHandler(this.VirtualPadA78Control_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox B2;
|
||||
private System.Windows.Forms.CheckBox B1;
|
||||
private System.Windows.Forms.CheckBox B4;
|
||||
private System.Windows.Forms.CheckBox B3;
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadA78Control : UserControl, IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
public VirtualPadA78Control()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = string.Empty;
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B1.Checked ? "P" : ".");
|
||||
input.Append(B2.Checked ? "r" : ".");
|
||||
input.Append(B3.Checked ? "s" : ".");
|
||||
input.Append(B4.Checked ? "p" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 4) return;
|
||||
if (buttons[0] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[1] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[2] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
if (buttons[3] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A78")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", B1.Checked);
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
|
||||
}
|
||||
else if (sender == B3)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Select", B3.Checked);
|
||||
}
|
||||
else if (sender == B4)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Pause", B4.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "A78") return;
|
||||
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Power", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky("Select", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky("Pause", false);
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
}
|
||||
|
||||
private void VirtualPadA78Control_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,635 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadC64Keyboard : UserControl , IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
public VirtualPadC64Keyboard()
|
||||
{
|
||||
InitializeComponent();
|
||||
Controller = string.Empty;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "C64")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == KF1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key F1", KF1.Checked);
|
||||
}
|
||||
else if (sender == KF3)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key F3", KF3.Checked);
|
||||
}
|
||||
else if (sender == KF5)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key F5", KF5.Checked);
|
||||
}
|
||||
else if (sender == KF7)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key F7", KF7.Checked);
|
||||
}
|
||||
else if (sender == KLeftArrow)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Left Arrow", KLeftArrow.Checked);
|
||||
}
|
||||
else if (sender == K1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 1", K1.Checked);
|
||||
}
|
||||
else if (sender == K2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 2", K2.Checked);
|
||||
}
|
||||
else if (sender == K3)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 3", K3.Checked);
|
||||
}
|
||||
else if (sender == K4)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 4", K4.Checked);
|
||||
}
|
||||
else if (sender == K5)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 5", K5.Checked);
|
||||
}
|
||||
else if (sender == K6)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 6", K6.Checked);
|
||||
}
|
||||
else if (sender == K7)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 7", K7.Checked);
|
||||
}
|
||||
else if (sender == K8)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 8", K8.Checked);
|
||||
}
|
||||
else if (sender == K9)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 9", K9.Checked);
|
||||
}
|
||||
else if (sender == K0)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key 0", K0.Checked);
|
||||
}
|
||||
else if (sender == KPlus)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Plus", KPlus.Checked);
|
||||
}
|
||||
else if (sender == KMinus)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Minus", KMinus.Checked);
|
||||
}
|
||||
else if (sender == KPound)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Pound", KPound.Checked);
|
||||
}
|
||||
else if (sender == KClear)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Clear/Home", KClear.Checked);
|
||||
}
|
||||
else if (sender == KInsert)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Insert/Delete", KInsert.Checked);
|
||||
}
|
||||
else if (sender == KCtrl)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Control", KCtrl.Checked);
|
||||
}
|
||||
else if (sender == KQ)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Q", KQ.Checked);
|
||||
}
|
||||
else if (sender == KW)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key W", KW.Checked);
|
||||
}
|
||||
else if (sender == KE)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key E", KE.Checked);
|
||||
}
|
||||
else if (sender == KR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key R", KR.Checked);
|
||||
}
|
||||
else if (sender == KT)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key T", KT.Checked);
|
||||
}
|
||||
else if (sender == KY)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Y", KY.Checked);
|
||||
}
|
||||
else if (sender == KU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key U", KU.Checked);
|
||||
}
|
||||
else if (sender == KI)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key I", KI.Checked);
|
||||
}
|
||||
else if (sender == KO)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key O", KO.Checked);
|
||||
}
|
||||
else if (sender == KP)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key P", KP.Checked);
|
||||
}
|
||||
else if (sender == KAt)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key At", KAt.Checked);
|
||||
}
|
||||
else if (sender == KAsterisk)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Asterisk", KAsterisk.Checked);
|
||||
}
|
||||
else if (sender == KUpArrow)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Up Arrow", KUpArrow.Checked);
|
||||
}
|
||||
else if (sender == KRST)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Restore", KRST.Checked);
|
||||
}
|
||||
else if (sender == KRun)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Run/Stop", KRun.Checked);
|
||||
}
|
||||
else if (sender == KLck)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Lck", KLck.Checked);
|
||||
}
|
||||
else if (sender == KA)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key A", KA.Checked);
|
||||
}
|
||||
else if (sender == KS)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key S", KS.Checked);
|
||||
}
|
||||
else if (sender == KD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key D", KD.Checked);
|
||||
}
|
||||
else if (sender == KF)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key F", KF.Checked);
|
||||
}
|
||||
else if (sender == KG)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key G", KG.Checked);
|
||||
}
|
||||
else if (sender == KH)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key H", KH.Checked);
|
||||
}
|
||||
else if (sender == KJ)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key J", KJ.Checked);
|
||||
}
|
||||
else if (sender == KK)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key K", KK.Checked);
|
||||
}
|
||||
else if (sender == KL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key L", KL.Checked);
|
||||
}
|
||||
else if (sender == KColon)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Colon", KColon.Checked);
|
||||
}
|
||||
else if (sender == KSemicolon)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Semicolon", KSemicolon.Checked);
|
||||
}
|
||||
else if (sender == KEquals)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Equal", KEquals.Checked);
|
||||
}
|
||||
else if (sender == KReturn)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Return", KReturn.Checked);
|
||||
}
|
||||
else if (sender == KCommodore)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Commodore", KCommodore.Checked);
|
||||
}
|
||||
else if (sender == KLeftShift)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Left Shift", KLeftShift.Checked);
|
||||
}
|
||||
else if (sender == KZ)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Z", KZ.Checked);
|
||||
}
|
||||
else if (sender == KX)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key X", KX.Checked);
|
||||
}
|
||||
else if (sender == KC)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key C", KC.Checked);
|
||||
}
|
||||
else if (sender == KV)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key V", KV.Checked);
|
||||
}
|
||||
else if (sender == KB)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key B", KB.Checked);
|
||||
}
|
||||
else if (sender == KN)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key N", KN.Checked);
|
||||
}
|
||||
else if (sender == KM)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key M", KM.Checked);
|
||||
}
|
||||
else if (sender == KComma)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Comma", KComma.Checked);
|
||||
}
|
||||
else if (sender == KSemicolon)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Semicolon", KSemicolon.Checked);
|
||||
}
|
||||
else if (sender == KEquals)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Equal", KEquals.Checked);
|
||||
}
|
||||
else if (sender == KReturn)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Return", KReturn.Checked);
|
||||
}
|
||||
else if (sender == KCommodore)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Commodore", KCommodore.Checked);
|
||||
}
|
||||
else if (sender == KLeftShift)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Left Shift", KLeftShift.Checked);
|
||||
}
|
||||
else if (sender == KZ)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Z", KZ.Checked);
|
||||
}
|
||||
else if (sender == KX)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key X", KX.Checked);
|
||||
}
|
||||
else if (sender == KC)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key C", KC.Checked);
|
||||
}
|
||||
else if (sender == KV)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key V", KV.Checked);
|
||||
}
|
||||
else if (sender == KB)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key B", KB.Checked);
|
||||
}
|
||||
else if (sender == KN)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key N", KN.Checked);
|
||||
}
|
||||
else if (sender == KM)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key M", KM.Checked);
|
||||
}
|
||||
else if (sender == KComma)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Comma", KComma.Checked);
|
||||
}
|
||||
else if (sender == KPeriod)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Period", KPeriod.Checked);
|
||||
}
|
||||
else if (sender == KSlash)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Slash", KSlash.Checked);
|
||||
}
|
||||
else if (sender == KRightShift)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Right Shift", KRightShift.Checked);
|
||||
}
|
||||
else if (sender == KCursorUp)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Cursor Up/Down", KCursorUp.Checked);
|
||||
}
|
||||
else if (sender == KCursorLeft)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Cursor Left/Right", KCursorLeft.Checked);
|
||||
}
|
||||
else if (sender == KSpace)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Key Space", KSpace.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "C64")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (KF1.Checked) Global.StickyXORAdapter.SetSticky("Key F1", false);
|
||||
if (KF3.Checked) Global.StickyXORAdapter.SetSticky("Key F3", false);
|
||||
if (KF5.Checked) Global.StickyXORAdapter.SetSticky("Key F5", false);
|
||||
if (KF7.Checked) Global.StickyXORAdapter.SetSticky("Key F7", false);
|
||||
if (KLeftArrow.Checked) Global.StickyXORAdapter.SetSticky("Key Left Arrow", false);
|
||||
if (K1.Checked) Global.StickyXORAdapter.SetSticky("Key 1", false);
|
||||
if (K2.Checked) Global.StickyXORAdapter.SetSticky("Key 2", false);
|
||||
if (K3.Checked) Global.StickyXORAdapter.SetSticky("Key 3", false);
|
||||
if (K4.Checked) Global.StickyXORAdapter.SetSticky("Key 4", false);
|
||||
if (K5.Checked) Global.StickyXORAdapter.SetSticky("Key 5", false);
|
||||
if (K6.Checked) Global.StickyXORAdapter.SetSticky("Key 6", false);
|
||||
if (K7.Checked) Global.StickyXORAdapter.SetSticky("Key 7", false);
|
||||
if (K8.Checked) Global.StickyXORAdapter.SetSticky("Key 8", false);
|
||||
if (K9.Checked) Global.StickyXORAdapter.SetSticky("Key 9", false);
|
||||
if (K0.Checked) Global.StickyXORAdapter.SetSticky("Key Plus", false);
|
||||
if (KPlus.Checked) Global.StickyXORAdapter.SetSticky("Key Minus", false);
|
||||
if (KMinus.Checked) Global.StickyXORAdapter.SetSticky("Key Pound", false);
|
||||
if (KPound.Checked) Global.StickyXORAdapter.SetSticky("Key Clear/Home", false);
|
||||
if (KClear.Checked) Global.StickyXORAdapter.SetSticky("Key Insert/Delete", false);
|
||||
if (KInsert.Checked) Global.StickyXORAdapter.SetSticky("Key Control", false);
|
||||
if (KCtrl.Checked) Global.StickyXORAdapter.SetSticky("Key Q", false);
|
||||
if (KQ.Checked) Global.StickyXORAdapter.SetSticky("Key W", false);
|
||||
if (KW.Checked) Global.StickyXORAdapter.SetSticky("Key E", false);
|
||||
if (KE.Checked) Global.StickyXORAdapter.SetSticky("Key R", false);
|
||||
if (KR.Checked) Global.StickyXORAdapter.SetSticky("Key T", false);
|
||||
if (KT.Checked) Global.StickyXORAdapter.SetSticky("Key Y", false);
|
||||
if (KY.Checked) Global.StickyXORAdapter.SetSticky("Key U", false);
|
||||
if (KU.Checked) Global.StickyXORAdapter.SetSticky("Key I", false);
|
||||
if (KI.Checked) Global.StickyXORAdapter.SetSticky("Key O", false);
|
||||
if (KO.Checked) Global.StickyXORAdapter.SetSticky("Key P", false);
|
||||
if (KP.Checked) Global.StickyXORAdapter.SetSticky("Key At", false);
|
||||
if (KAt.Checked) Global.StickyXORAdapter.SetSticky("Key Asterisk", false);
|
||||
if (KAsterisk.Checked) Global.StickyXORAdapter.SetSticky("Key Up Arrow", false);
|
||||
if (KUpArrow.Checked) Global.StickyXORAdapter.SetSticky("Key Restore", false);
|
||||
if (KRST.Checked) Global.StickyXORAdapter.SetSticky("Key Run/Stop", false);
|
||||
if (KRun.Checked) Global.StickyXORAdapter.SetSticky("Key Lck", false);
|
||||
if (KLck.Checked) Global.StickyXORAdapter.SetSticky("Key A", false);
|
||||
if (KA.Checked) Global.StickyXORAdapter.SetSticky("Key S", false);
|
||||
if (KS.Checked) Global.StickyXORAdapter.SetSticky("Key D", false);
|
||||
if (KD.Checked) Global.StickyXORAdapter.SetSticky("Key F", false);
|
||||
if (KF.Checked) Global.StickyXORAdapter.SetSticky("Key G", false);
|
||||
if (KG.Checked) Global.StickyXORAdapter.SetSticky("Key H", false);
|
||||
if (KH.Checked) Global.StickyXORAdapter.SetSticky("Key J", false);
|
||||
if (KJ.Checked) Global.StickyXORAdapter.SetSticky("Key K", false);
|
||||
if (KK.Checked) Global.StickyXORAdapter.SetSticky("Key L", false);
|
||||
if (KL.Checked) Global.StickyXORAdapter.SetSticky("Key Colon", false);
|
||||
if (KColon.Checked) Global.StickyXORAdapter.SetSticky("Key Semicolon", false);
|
||||
if (KSemicolon.Checked) Global.StickyXORAdapter.SetSticky("Key Equal", false);
|
||||
if (KEquals.Checked) Global.StickyXORAdapter.SetSticky("Key Return", false);
|
||||
if (KReturn.Checked) Global.StickyXORAdapter.SetSticky("Key Commodore", false);
|
||||
if (KCommodore.Checked) Global.StickyXORAdapter.SetSticky("Key Left Shift", false);
|
||||
if (KLeftShift.Checked) Global.StickyXORAdapter.SetSticky("Key Z", false);
|
||||
if (KZ.Checked) Global.StickyXORAdapter.SetSticky("Key X", false);
|
||||
if (KX.Checked) Global.StickyXORAdapter.SetSticky("Key C", false);
|
||||
if (KC.Checked) Global.StickyXORAdapter.SetSticky("Key V", false);
|
||||
if (KV.Checked) Global.StickyXORAdapter.SetSticky("Key B", false);
|
||||
if (KB.Checked) Global.StickyXORAdapter.SetSticky("Key N", false);
|
||||
if (KN.Checked) Global.StickyXORAdapter.SetSticky("Key M", false);
|
||||
if (KM.Checked) Global.StickyXORAdapter.SetSticky("Key Comma", false);
|
||||
if (KComma.Checked) Global.StickyXORAdapter.SetSticky("Key Period", false);
|
||||
if (KPeriod.Checked) Global.StickyXORAdapter.SetSticky("Key Slash", false);
|
||||
if (KSlash.Checked) Global.StickyXORAdapter.SetSticky("Key Right Shift", false);
|
||||
if (KRightShift.Checked) Global.StickyXORAdapter.SetSticky("Key Cursor Up/Down", false);
|
||||
if (KCursorUp.Checked) Global.StickyXORAdapter.SetSticky("Key Cursor Left/Right", false);
|
||||
if (KCursorLeft.Checked) Global.StickyXORAdapter.SetSticky("Key Space", false);
|
||||
|
||||
KF1.Checked = false;
|
||||
KF3.Checked = false;
|
||||
KF5.Checked = false;
|
||||
KF7.Checked = false;
|
||||
KLeftArrow.Checked = false;
|
||||
K1.Checked = false;
|
||||
K2.Checked = false;
|
||||
K3.Checked = false;
|
||||
K4.Checked = false;
|
||||
K5.Checked = false;
|
||||
K6.Checked = false;
|
||||
K7.Checked = false;
|
||||
K8.Checked = false;
|
||||
K9.Checked = false;
|
||||
K0.Checked = false;
|
||||
KPlus.Checked = false;
|
||||
KMinus.Checked = false;
|
||||
KPound.Checked = false;
|
||||
KClear.Checked = false;
|
||||
KInsert.Checked = false;
|
||||
KCtrl.Checked = false;
|
||||
KQ.Checked = false;
|
||||
KW.Checked = false;
|
||||
KE.Checked = false;
|
||||
KR.Checked = false;
|
||||
KT.Checked = false;
|
||||
KY.Checked = false;
|
||||
KU.Checked = false;
|
||||
KI.Checked = false;
|
||||
KO.Checked = false;
|
||||
KP.Checked = false;
|
||||
KAt.Checked = false;
|
||||
KAsterisk.Checked = false;
|
||||
KUpArrow.Checked = false;
|
||||
KRST.Checked = false;
|
||||
KRun.Checked = false;
|
||||
KLck.Checked = false;
|
||||
KA.Checked = false;
|
||||
KS.Checked = false;
|
||||
KD.Checked = false;
|
||||
KF.Checked = false;
|
||||
KG.Checked = false;
|
||||
KH.Checked = false;
|
||||
KJ.Checked = false;
|
||||
KK.Checked = false;
|
||||
KL.Checked = false;
|
||||
KColon.Checked = false;
|
||||
KSemicolon.Checked = false;
|
||||
KEquals.Checked = false;
|
||||
KReturn.Checked = false;
|
||||
KCommodore.Checked = false;
|
||||
KLeftShift.Checked = false;
|
||||
KZ.Checked = false;
|
||||
KX.Checked = false;
|
||||
KC.Checked = false;
|
||||
KV.Checked = false;
|
||||
KB.Checked = false;
|
||||
KN.Checked = false;
|
||||
KM.Checked = false;
|
||||
KComma.Checked = false;
|
||||
KPeriod.Checked = false;
|
||||
KSlash.Checked = false;
|
||||
KRightShift.Checked = false;
|
||||
KCursorUp.Checked = false;
|
||||
KCursorLeft.Checked = false;
|
||||
KSpace.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
|
||||
input.Append(KF1.Checked ? "1" : ".");
|
||||
input.Append(KF3.Checked ? "3" : ".");
|
||||
input.Append(KF5.Checked ? "5" : ".");
|
||||
input.Append(KF7.Checked ? "7" : ".");
|
||||
input.Append(KLeftArrow.Checked ? "l" : ".");
|
||||
input.Append(K1.Checked ? "1" : ".");
|
||||
input.Append(K2.Checked ? "2" : ".");
|
||||
input.Append(K3.Checked ? "3" : ".");
|
||||
input.Append(K4.Checked ? "4" : ".");
|
||||
input.Append(K5.Checked ? "5" : ".");
|
||||
input.Append(K6.Checked ? "6" : ".");
|
||||
input.Append(K7.Checked ? "7" : ".");
|
||||
input.Append(K8.Checked ? "8" : ".");
|
||||
input.Append(K9.Checked ? "9" : ".");
|
||||
input.Append(K0.Checked ? "0" : ".");
|
||||
input.Append(KPlus.Checked ? "+" : ".");
|
||||
input.Append(KMinus.Checked ? "-" : ".");
|
||||
input.Append(KPound.Checked ? "l" : ".");
|
||||
input.Append(KClear.Checked ? "c" : ".");
|
||||
input.Append(KInsert.Checked ? "i" : ".");
|
||||
input.Append(KCtrl.Checked ? "c" : ".");
|
||||
input.Append(KQ.Checked ? "Q" : ".");
|
||||
input.Append(KW.Checked ? "W" : ".");
|
||||
input.Append(KE.Checked ? "E" : ".");
|
||||
input.Append(KR.Checked ? "R" : ".");
|
||||
input.Append(KT.Checked ? "T" : ".");
|
||||
input.Append(KY.Checked ? "Y" : ".");
|
||||
input.Append(KU.Checked ? "U" : ".");
|
||||
input.Append(KI.Checked ? "I" : ".");
|
||||
input.Append(KO.Checked ? "O" : ".");
|
||||
input.Append(KP.Checked ? "P" : ".");
|
||||
input.Append(KAt.Checked ? "@" : ".");
|
||||
input.Append(KAsterisk.Checked ? "*" : ".");
|
||||
input.Append(KUpArrow.Checked ? "u" : ".");
|
||||
input.Append(KRST.Checked ? "r" : ".");
|
||||
input.Append(KRun.Checked ? "s" : ".");
|
||||
input.Append(KLck.Checked ? "k" : ".");
|
||||
input.Append(KA.Checked ? "A" : ".");
|
||||
input.Append(KS.Checked ? "S" : ".");
|
||||
input.Append(KD.Checked ? "D" : ".");
|
||||
input.Append(KF.Checked ? "F" : ".");
|
||||
input.Append(KG.Checked ? "G" : ".");
|
||||
input.Append(KH.Checked ? "H" : ".");
|
||||
input.Append(KJ.Checked ? "J" : ".");
|
||||
input.Append(KK.Checked ? "K" : ".");
|
||||
input.Append(KL.Checked ? "L" : ".");
|
||||
input.Append(KColon.Checked ? ":" : ".");
|
||||
input.Append(KSemicolon.Checked ? ";" : ".");
|
||||
input.Append(KEquals.Checked ? "=" : ".");
|
||||
input.Append(KReturn.Checked ? "e" : ".");
|
||||
input.Append(KCommodore.Checked ? "o" : ".");
|
||||
input.Append(KLeftShift.Checked ? "s" : ".");
|
||||
input.Append(KZ.Checked ? "Z" : ".");
|
||||
input.Append(KX.Checked ? "X" : ".");
|
||||
input.Append(KC.Checked ? "C" : ".");
|
||||
input.Append(KV.Checked ? "V" : ".");
|
||||
input.Append(KB.Checked ? "B" : ".");
|
||||
input.Append(KN.Checked ? "N" : ".");
|
||||
input.Append(KM.Checked ? "M" : ".");
|
||||
input.Append(KComma.Checked ? "," : ".");
|
||||
input.Append(KPeriod.Checked ? ">" : ".");
|
||||
input.Append(KSlash.Checked ? "/" : ".");
|
||||
input.Append(KRightShift.Checked ? "s" : ".");
|
||||
input.Append(KCursorUp.Checked ? "u" : ".");
|
||||
input.Append(KCursorLeft.Checked ? "l" : ".");
|
||||
input.Append(KSpace.Checked ? "_" : ".");
|
||||
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 66)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (buttons[0] == '.') KF1.Checked = false; else KF1.Checked = true;
|
||||
if (buttons[1] == '.') KF3.Checked = false; else KF3.Checked = true;
|
||||
if (buttons[2] == '.') KF5.Checked = false; else KF5.Checked = true;
|
||||
if (buttons[3] == '.') KF7.Checked = false; else KF7.Checked = true;
|
||||
if (buttons[4] == '.') KLeftArrow.Checked = false; else KLeftArrow.Checked = true;
|
||||
if (buttons[5] == '.') K1.Checked = false; else K1.Checked = true;
|
||||
if (buttons[5] == '.') K2.Checked = false; else K2.Checked = true;
|
||||
if (buttons[6] == '.') K3.Checked = false; else K3.Checked = true;
|
||||
if (buttons[7] == '.') K4.Checked = false; else K4.Checked = true;
|
||||
if (buttons[8] == '.') K5.Checked = false; else K5.Checked = true;
|
||||
if (buttons[9] == '.') K6.Checked = false; else K6.Checked = true;
|
||||
if (buttons[10] == '.') K7.Checked = false; else K7.Checked = true;
|
||||
if (buttons[11] == '.') K8.Checked = false; else K8.Checked = true;
|
||||
if (buttons[12] == '.') K9.Checked = false; else K9.Checked = true;
|
||||
if (buttons[13] == '.') K0.Checked = false; else K0.Checked = true;
|
||||
if (buttons[14] == '.') KPlus.Checked = false; else KPlus.Checked = true;
|
||||
if (buttons[15] == '.') KMinus.Checked = false; else KMinus.Checked = true;
|
||||
if (buttons[16] == '.') KPound.Checked = false; else KPound.Checked = true;
|
||||
if (buttons[17] == '.') KClear.Checked = false; else KClear.Checked = true;
|
||||
if (buttons[18] == '.') KInsert.Checked = false; else KInsert.Checked = true;
|
||||
if (buttons[19] == '.') KCtrl.Checked = false; else KCtrl.Checked = true;
|
||||
if (buttons[20] == '.') KQ.Checked = false; else KQ.Checked = true;
|
||||
if (buttons[21] == '.') KW.Checked = false; else KW.Checked = true;
|
||||
if (buttons[22] == '.') KE.Checked = false; else KE.Checked = true;
|
||||
if (buttons[23] == '.') KR.Checked = false; else KR.Checked = true;
|
||||
if (buttons[24] == '.') KT.Checked = false; else KT.Checked = true;
|
||||
if (buttons[25] == '.') KY.Checked = false; else KY.Checked = true;
|
||||
if (buttons[26] == '.') KU.Checked = false; else KU.Checked = true;
|
||||
if (buttons[27] == '.') KI.Checked = false; else KI.Checked = true;
|
||||
if (buttons[28] == '.') KO.Checked = false; else KO.Checked = true;
|
||||
if (buttons[29] == '.') KP.Checked = false; else KP.Checked = true;
|
||||
if (buttons[30] == '.') KAt.Checked = false; else KAt.Checked = true;
|
||||
if (buttons[31] == '.') KAsterisk.Checked = false; else KAsterisk.Checked = true;
|
||||
if (buttons[32] == '.') KUpArrow.Checked = false; else KUpArrow.Checked = true;
|
||||
if (buttons[33] == '.') KRST.Checked = false; else KRST.Checked = true;
|
||||
if (buttons[34] == '.') KRun.Checked = false; else KRun.Checked = true;
|
||||
if (buttons[35] == '.') KLck.Checked = false; else KLck.Checked = true;
|
||||
if (buttons[36] == '.') KA.Checked = false; else KA.Checked = true;
|
||||
if (buttons[37] == '.') KS.Checked = false; else KS.Checked = true;
|
||||
if (buttons[38] == '.') KD.Checked = false; else KD.Checked = true;
|
||||
if (buttons[39] == '.') KF.Checked = false; else KF.Checked = true;
|
||||
if (buttons[40] == '.') KG.Checked = false; else KG.Checked = true;
|
||||
if (buttons[41] == '.') KH.Checked = false; else KH.Checked = true;
|
||||
if (buttons[42] == '.') KJ.Checked = false; else KJ.Checked = true;
|
||||
if (buttons[43] == '.') KK.Checked = false; else KK.Checked = true;
|
||||
if (buttons[44] == '.') KL.Checked = false; else KL.Checked = true;
|
||||
if (buttons[45] == '.') KColon.Checked = false; else KColon.Checked = true;
|
||||
if (buttons[46] == '.') KSemicolon.Checked = false; else KSemicolon.Checked = true;
|
||||
if (buttons[47] == '.') KEquals.Checked = false; else KEquals.Checked = true;
|
||||
if (buttons[48] == '.') KReturn.Checked = false; else KReturn.Checked = true;
|
||||
if (buttons[49] == '.') KCommodore.Checked = false; else KCommodore.Checked = true;
|
||||
if (buttons[50] == '.') KLeftShift.Checked = false; else KLeftShift.Checked = true;
|
||||
if (buttons[51] == '.') KZ.Checked = false; else KZ.Checked = true;
|
||||
if (buttons[52] == '.') KX.Checked = false; else KX.Checked = true;
|
||||
if (buttons[53] == '.') KC.Checked = false; else KC.Checked = true;
|
||||
if (buttons[54] == '.') KV.Checked = false; else KV.Checked = true;
|
||||
if (buttons[55] == '.') KB.Checked = false; else KB.Checked = true;
|
||||
if (buttons[56] == '.') KN.Checked = false; else KN.Checked = true;
|
||||
if (buttons[57] == '.') KM.Checked = false; else KM.Checked = true;
|
||||
if (buttons[58] == '.') KComma.Checked = false; else KComma.Checked = true;
|
||||
if (buttons[59] == '.') KPeriod.Checked = false; else KPeriod.Checked = true;
|
||||
if (buttons[60] == '.') KSlash.Checked = false; else KSlash.Checked = true;
|
||||
if (buttons[61] == '.') KRightShift.Checked = false; else KRightShift.Checked = true;
|
||||
if (buttons[62] == '.') KCursorUp.Checked = false; else KCursorUp.Checked = true;
|
||||
if (buttons[63] == '.') KCursorLeft.Checked = false; else KCursorLeft.Checked = true;
|
||||
if (buttons[64] == '.') KSpace.Checked = false; else KSpace.Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,319 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadColeco
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.PU = new System.Windows.Forms.CheckBox();
|
||||
this.PR = new System.Windows.Forms.CheckBox();
|
||||
this.PD = new System.Windows.Forms.CheckBox();
|
||||
this.PL = new System.Windows.Forms.CheckBox();
|
||||
this.KeyLeft = new System.Windows.Forms.CheckBox();
|
||||
this.KeyRight = new System.Windows.Forms.CheckBox();
|
||||
this.KP7 = new System.Windows.Forms.CheckBox();
|
||||
this.KP8 = new System.Windows.Forms.CheckBox();
|
||||
this.KP9 = new System.Windows.Forms.CheckBox();
|
||||
this.KP6 = new System.Windows.Forms.CheckBox();
|
||||
this.KP5 = new System.Windows.Forms.CheckBox();
|
||||
this.KP4 = new System.Windows.Forms.CheckBox();
|
||||
this.KP3 = new System.Windows.Forms.CheckBox();
|
||||
this.KP2 = new System.Windows.Forms.CheckBox();
|
||||
this.KP1 = new System.Windows.Forms.CheckBox();
|
||||
this.KPPound = new System.Windows.Forms.CheckBox();
|
||||
this.KP0 = new System.Windows.Forms.CheckBox();
|
||||
this.KPStar = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// PU
|
||||
//
|
||||
this.PU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU.AutoSize = true;
|
||||
this.PU.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU.Location = new System.Drawing.Point(43, 3);
|
||||
this.PU.Name = "PU";
|
||||
this.PU.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU.TabIndex = 0;
|
||||
this.PU.UseVisualStyleBackColor = true;
|
||||
this.PU.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PR
|
||||
//
|
||||
this.PR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR.AutoSize = true;
|
||||
this.PR.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR.Location = new System.Drawing.Point(64, 15);
|
||||
this.PR.Name = "PR";
|
||||
this.PR.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR.TabIndex = 1;
|
||||
this.PR.UseVisualStyleBackColor = true;
|
||||
this.PR.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PD
|
||||
//
|
||||
this.PD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD.AutoSize = true;
|
||||
this.PD.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD.Location = new System.Drawing.Point(43, 24);
|
||||
this.PD.Name = "PD";
|
||||
this.PD.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD.TabIndex = 2;
|
||||
this.PD.UseVisualStyleBackColor = true;
|
||||
this.PD.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PL
|
||||
//
|
||||
this.PL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL.AutoSize = true;
|
||||
this.PL.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL.Location = new System.Drawing.Point(22, 15);
|
||||
this.PL.Name = "PL";
|
||||
this.PL.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL.TabIndex = 3;
|
||||
this.PL.UseVisualStyleBackColor = true;
|
||||
this.PL.CheckStateChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KeyLeft
|
||||
//
|
||||
this.KeyLeft.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KeyLeft.AutoSize = true;
|
||||
this.KeyLeft.Location = new System.Drawing.Point(5, 51);
|
||||
this.KeyLeft.Name = "KeyLeft";
|
||||
this.KeyLeft.Size = new System.Drawing.Size(23, 23);
|
||||
this.KeyLeft.TabIndex = 4;
|
||||
this.KeyLeft.Text = "L";
|
||||
this.KeyLeft.UseVisualStyleBackColor = true;
|
||||
this.KeyLeft.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KeyRight
|
||||
//
|
||||
this.KeyRight.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KeyRight.AutoSize = true;
|
||||
this.KeyRight.Location = new System.Drawing.Point(82, 51);
|
||||
this.KeyRight.Name = "KeyRight";
|
||||
this.KeyRight.Size = new System.Drawing.Size(25, 23);
|
||||
this.KeyRight.TabIndex = 5;
|
||||
this.KeyRight.Text = "R";
|
||||
this.KeyRight.UseVisualStyleBackColor = true;
|
||||
this.KeyRight.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP7
|
||||
//
|
||||
this.KP7.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP7.AutoSize = true;
|
||||
this.KP7.Location = new System.Drawing.Point(22, 129);
|
||||
this.KP7.Name = "KP7";
|
||||
this.KP7.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP7.TabIndex = 6;
|
||||
this.KP7.Text = "7";
|
||||
this.KP7.UseVisualStyleBackColor = true;
|
||||
this.KP7.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP8
|
||||
//
|
||||
this.KP8.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP8.AutoSize = true;
|
||||
this.KP8.Location = new System.Drawing.Point(45, 129);
|
||||
this.KP8.Name = "KP8";
|
||||
this.KP8.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP8.TabIndex = 8;
|
||||
this.KP8.Text = "8";
|
||||
this.KP8.UseVisualStyleBackColor = true;
|
||||
this.KP8.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP9
|
||||
//
|
||||
this.KP9.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP9.AutoSize = true;
|
||||
this.KP9.Location = new System.Drawing.Point(67, 129);
|
||||
this.KP9.Name = "KP9";
|
||||
this.KP9.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP9.TabIndex = 8;
|
||||
this.KP9.Text = "9";
|
||||
this.KP9.UseVisualStyleBackColor = true;
|
||||
this.KP9.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP6
|
||||
//
|
||||
this.KP6.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP6.AutoSize = true;
|
||||
this.KP6.Location = new System.Drawing.Point(67, 106);
|
||||
this.KP6.Name = "KP6";
|
||||
this.KP6.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP6.TabIndex = 10;
|
||||
this.KP6.Text = "6";
|
||||
this.KP6.UseVisualStyleBackColor = true;
|
||||
this.KP6.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP5
|
||||
//
|
||||
this.KP5.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP5.AutoSize = true;
|
||||
this.KP5.Location = new System.Drawing.Point(45, 106);
|
||||
this.KP5.Name = "KP5";
|
||||
this.KP5.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP5.TabIndex = 11;
|
||||
this.KP5.Text = "5";
|
||||
this.KP5.UseVisualStyleBackColor = true;
|
||||
this.KP5.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP4
|
||||
//
|
||||
this.KP4.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP4.AutoSize = true;
|
||||
this.KP4.Location = new System.Drawing.Point(22, 106);
|
||||
this.KP4.Name = "KP4";
|
||||
this.KP4.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP4.TabIndex = 9;
|
||||
this.KP4.Text = "4";
|
||||
this.KP4.UseVisualStyleBackColor = true;
|
||||
this.KP4.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP3
|
||||
//
|
||||
this.KP3.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP3.AutoSize = true;
|
||||
this.KP3.Location = new System.Drawing.Point(67, 83);
|
||||
this.KP3.Name = "KP3";
|
||||
this.KP3.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP3.TabIndex = 13;
|
||||
this.KP3.Text = "3";
|
||||
this.KP3.UseVisualStyleBackColor = true;
|
||||
this.KP3.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP2
|
||||
//
|
||||
this.KP2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP2.AutoSize = true;
|
||||
this.KP2.Location = new System.Drawing.Point(45, 83);
|
||||
this.KP2.Name = "KP2";
|
||||
this.KP2.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP2.TabIndex = 14;
|
||||
this.KP2.Text = "2";
|
||||
this.KP2.UseVisualStyleBackColor = true;
|
||||
this.KP2.CheckStateChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP1
|
||||
//
|
||||
this.KP1.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP1.AutoSize = true;
|
||||
this.KP1.Location = new System.Drawing.Point(22, 83);
|
||||
this.KP1.Name = "KP1";
|
||||
this.KP1.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP1.TabIndex = 12;
|
||||
this.KP1.Text = "1";
|
||||
this.KP1.UseVisualStyleBackColor = true;
|
||||
this.KP1.CheckStateChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KPPound
|
||||
//
|
||||
this.KPPound.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KPPound.AutoSize = true;
|
||||
this.KPPound.Location = new System.Drawing.Point(67, 152);
|
||||
this.KPPound.Name = "KPPound";
|
||||
this.KPPound.Size = new System.Drawing.Size(24, 23);
|
||||
this.KPPound.TabIndex = 16;
|
||||
this.KPPound.Text = "#";
|
||||
this.KPPound.UseVisualStyleBackColor = true;
|
||||
this.KPPound.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KP0
|
||||
//
|
||||
this.KP0.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KP0.AutoSize = true;
|
||||
this.KP0.Location = new System.Drawing.Point(45, 152);
|
||||
this.KP0.Name = "KP0";
|
||||
this.KP0.Size = new System.Drawing.Size(23, 23);
|
||||
this.KP0.TabIndex = 17;
|
||||
this.KP0.Text = "0";
|
||||
this.KP0.UseVisualStyleBackColor = true;
|
||||
this.KP0.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// KPStar
|
||||
//
|
||||
this.KPStar.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.KPStar.AutoSize = true;
|
||||
this.KPStar.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.KPStar.Location = new System.Drawing.Point(22, 152);
|
||||
this.KPStar.Name = "KPStar";
|
||||
this.KPStar.Size = new System.Drawing.Size(21, 23);
|
||||
this.KPStar.TabIndex = 15;
|
||||
this.KPStar.Text = "*";
|
||||
this.KPStar.UseVisualStyleBackColor = true;
|
||||
this.KPStar.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadColeco
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.KPPound);
|
||||
this.Controls.Add(this.KP0);
|
||||
this.Controls.Add(this.KPStar);
|
||||
this.Controls.Add(this.KP3);
|
||||
this.Controls.Add(this.KP2);
|
||||
this.Controls.Add(this.KP1);
|
||||
this.Controls.Add(this.KP6);
|
||||
this.Controls.Add(this.KP5);
|
||||
this.Controls.Add(this.KP4);
|
||||
this.Controls.Add(this.KP9);
|
||||
this.Controls.Add(this.KP8);
|
||||
this.Controls.Add(this.KP7);
|
||||
this.Controls.Add(this.KeyRight);
|
||||
this.Controls.Add(this.KeyLeft);
|
||||
this.Controls.Add(this.PL);
|
||||
this.Controls.Add(this.PD);
|
||||
this.Controls.Add(this.PR);
|
||||
this.Controls.Add(this.PU);
|
||||
this.Name = "VirtualPadColeco";
|
||||
this.Size = new System.Drawing.Size(115, 193);
|
||||
this.Load += new System.EventHandler(this.VirtualPadColeco_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox PU;
|
||||
private System.Windows.Forms.CheckBox PR;
|
||||
private System.Windows.Forms.CheckBox PD;
|
||||
private System.Windows.Forms.CheckBox PL;
|
||||
private System.Windows.Forms.CheckBox KeyLeft;
|
||||
private System.Windows.Forms.CheckBox KeyRight;
|
||||
private System.Windows.Forms.CheckBox KP7;
|
||||
private System.Windows.Forms.CheckBox KP8;
|
||||
private System.Windows.Forms.CheckBox KP9;
|
||||
private System.Windows.Forms.CheckBox KP6;
|
||||
private System.Windows.Forms.CheckBox KP5;
|
||||
private System.Windows.Forms.CheckBox KP4;
|
||||
private System.Windows.Forms.CheckBox KP3;
|
||||
private System.Windows.Forms.CheckBox KP2;
|
||||
private System.Windows.Forms.CheckBox KP1;
|
||||
private System.Windows.Forms.CheckBox KPPound;
|
||||
private System.Windows.Forms.CheckBox KP0;
|
||||
private System.Windows.Forms.CheckBox KPStar;
|
||||
}
|
||||
}
|
|
@ -1,196 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadColeco : UserControl , IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
public VirtualPadColeco()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = "P1";
|
||||
}
|
||||
|
||||
private void VirtualPadColeco_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(KeyLeft.Checked ? "l" : ".");
|
||||
input.Append(KeyRight.Checked ? "r" : ".");
|
||||
input.Append(KP1.Checked ? "1" : ".");
|
||||
input.Append(KP2.Checked ? "2" : ".");
|
||||
input.Append(KP3.Checked ? "3" : ".");
|
||||
input.Append(KP4.Checked ? "4" : ".");
|
||||
input.Append(KP5.Checked ? "5" : ".");
|
||||
input.Append(KP6.Checked ? "6" : ".");
|
||||
input.Append(KP7.Checked ? "7" : ".");
|
||||
input.Append(KP8.Checked ? "8" : ".");
|
||||
input.Append(KP9.Checked ? "9" : ".");
|
||||
input.Append(KPStar.Checked ? "*" : ".");
|
||||
input.Append(KP0.Checked ? "0" : ".");
|
||||
input.Append(KPPound.Checked ? "#" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 18) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') KeyLeft.Checked = false; else KeyLeft.Checked = true;
|
||||
if (buttons[5] == '.') KeyRight.Checked = false; else KeyRight.Checked = true;
|
||||
if (buttons[6] == '.') KP1.Checked = false; else KP1.Checked = true;
|
||||
if (buttons[6] == '.') KP2.Checked = false; else KP2.Checked = true;
|
||||
if (buttons[6] == '.') KP3.Checked = false; else KP3.Checked = true;
|
||||
if (buttons[6] == '.') KP4.Checked = false; else KP4.Checked = true;
|
||||
if (buttons[6] == '.') KP5.Checked = false; else KP5.Checked = true;
|
||||
if (buttons[6] == '.') KP6.Checked = false; else KP6.Checked = true;
|
||||
if (buttons[6] == '.') KP7.Checked = false; else KP7.Checked = true;
|
||||
if (buttons[6] == '.') KP8.Checked = false; else KP8.Checked = true;
|
||||
if (buttons[6] == '.') KP9.Checked = false; else KP9.Checked = true;
|
||||
if (buttons[6] == '.') KPStar.Checked = false; else KPStar.Checked = true;
|
||||
if (buttons[6] == '.') KP0.Checked = false; else KP0.Checked = true;
|
||||
if (buttons[6] == '.') KPPound.Checked = false; else KPPound.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "Coleco") return;
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
|
||||
else if (sender == KeyLeft)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " L", KeyLeft.Checked);
|
||||
else if (sender == KeyRight)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " R", KeyRight.Checked);
|
||||
else if (sender == KP1)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key1", KP1.Checked);
|
||||
else if (sender == KP2)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key2", KP2.Checked);
|
||||
else if (sender == KP3)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key3", KP3.Checked);
|
||||
else if (sender == KP4)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key4", KP4.Checked);
|
||||
else if (sender == KP5)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key5", KP5.Checked);
|
||||
else if (sender == KP6)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key6", KP6.Checked);
|
||||
else if (sender == KP7)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key7", KP7.Checked);
|
||||
else if (sender == KP8)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key8", KP8.Checked);
|
||||
else if (sender == KP9)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key9", KP9.Checked);
|
||||
else if (sender == KPStar)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Star", KPStar.Checked);
|
||||
else if (sender == KP0)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Key0", KP0.Checked);
|
||||
else if (sender == KPPound)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Pound", KPPound.Checked);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "Coleco") return;
|
||||
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (KeyLeft.Checked) Global.StickyXORAdapter.SetSticky(Controller + " L", false);
|
||||
if (KeyRight.Checked) Global.StickyXORAdapter.SetSticky(Controller + " R", false);
|
||||
if (KP1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key0", false);
|
||||
if (KP2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key1", false);
|
||||
if (KP3.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key2", false);
|
||||
if (KP4.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key3", false);
|
||||
if (KP5.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key4", false);
|
||||
if (KP6.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key5", false);
|
||||
if (KP7.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key6", false);
|
||||
if (KP8.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key7", false);
|
||||
if (KP9.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key8", false);
|
||||
if (KPStar.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Key9", false);
|
||||
if (KP0.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Star", false);
|
||||
if (KPPound.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Pound", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
KeyLeft.Checked = false;
|
||||
KeyRight.Checked = false;
|
||||
KP1.Checked = false;
|
||||
KP2.Checked = false;
|
||||
KP3.Checked = false;
|
||||
KP4.Checked = false;
|
||||
KP5.Checked = false;
|
||||
KP6.Checked = false;
|
||||
KP7.Checked = false;
|
||||
KP8.Checked = false;
|
||||
KP9.Checked = false;
|
||||
KPStar.Checked = false;
|
||||
KP0.Checked = false;
|
||||
KPPound.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,247 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VirtualPadForm));
|
||||
this.ControllerBox = new System.Windows.Forms.GroupBox();
|
||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.ClearMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuStrip1 = new MenuStripEx();
|
||||
this.OptionsSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AutoloadMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.SaveWindowPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.RestoreDefaultSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.PadsSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MultiplayerModeMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.StickyBox = new System.Windows.Forms.CheckBox();
|
||||
this.ClearButton = new System.Windows.Forms.Button();
|
||||
this.contextMenuStrip1.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ControllerBox
|
||||
//
|
||||
this.ControllerBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ControllerBox.ContextMenuStrip = this.contextMenuStrip1;
|
||||
this.ControllerBox.Location = new System.Drawing.Point(9, 26);
|
||||
this.ControllerBox.Name = "ControllerBox";
|
||||
this.ControllerBox.Size = new System.Drawing.Size(431, 251);
|
||||
this.ControllerBox.TabIndex = 5;
|
||||
this.ControllerBox.TabStop = false;
|
||||
this.ControllerBox.Text = "Controllers";
|
||||
//
|
||||
// contextMenuStrip1
|
||||
//
|
||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.ClearMenuItem});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(102, 26);
|
||||
//
|
||||
// ClearMenuItem
|
||||
//
|
||||
this.ClearMenuItem.Name = "ClearMenuItem";
|
||||
this.ClearMenuItem.Size = new System.Drawing.Size(101, 22);
|
||||
this.ClearMenuItem.Text = "&Clear";
|
||||
this.ClearMenuItem.Click += new System.EventHandler(this.ClearMenuItem_Click);
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
this.menuStrip1.ClickThrough = true;
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.OptionsSubMenu,
|
||||
this.PadsSubMenu});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(452, 24);
|
||||
this.menuStrip1.TabIndex = 6;
|
||||
this.menuStrip1.Text = "menuStrip1";
|
||||
//
|
||||
// OptionsSubMenu
|
||||
//
|
||||
this.OptionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.AutoloadMenuItem,
|
||||
this.SaveWindowPositionMenuItem,
|
||||
this.AlwaysOnTopMenuItem,
|
||||
this.FloatingWindowMenuItem,
|
||||
this.toolStripSeparator2,
|
||||
this.RestoreDefaultSettingsMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.ExitMenuItem});
|
||||
this.OptionsSubMenu.Name = "OptionsSubMenu";
|
||||
this.OptionsSubMenu.Size = new System.Drawing.Size(61, 20);
|
||||
this.OptionsSubMenu.Text = "&Options";
|
||||
this.OptionsSubMenu.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened);
|
||||
//
|
||||
// AutoloadMenuItem
|
||||
//
|
||||
this.AutoloadMenuItem.Name = "AutoloadMenuItem";
|
||||
this.AutoloadMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||
this.AutoloadMenuItem.Text = "&Autoload";
|
||||
this.AutoloadMenuItem.Click += new System.EventHandler(this.AutoloadMenuItem_Click);
|
||||
//
|
||||
// SaveWindowPositionMenuItem
|
||||
//
|
||||
this.SaveWindowPositionMenuItem.Name = "SaveWindowPositionMenuItem";
|
||||
this.SaveWindowPositionMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||
this.SaveWindowPositionMenuItem.Text = "&Save Window Position";
|
||||
this.SaveWindowPositionMenuItem.Click += new System.EventHandler(this.SaveWindowPositionMenuItem_Click);
|
||||
//
|
||||
// AlwaysOnTopMenuItem
|
||||
//
|
||||
this.AlwaysOnTopMenuItem.Name = "AlwaysOnTopMenuItem";
|
||||
this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||
this.AlwaysOnTopMenuItem.Text = "Always On Top";
|
||||
this.AlwaysOnTopMenuItem.Click += new System.EventHandler(this.AlwaysOnTopMenuItem_Click);
|
||||
//
|
||||
// FloatingWindowMenuItem
|
||||
//
|
||||
this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem";
|
||||
this.FloatingWindowMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||
this.FloatingWindowMenuItem.Text = "Floating Window";
|
||||
this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(196, 6);
|
||||
//
|
||||
// RestoreDefaultSettingsMenuItem
|
||||
//
|
||||
this.RestoreDefaultSettingsMenuItem.Name = "RestoreDefaultSettingsMenuItem";
|
||||
this.RestoreDefaultSettingsMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||
this.RestoreDefaultSettingsMenuItem.Text = "Restore Default Settings";
|
||||
this.RestoreDefaultSettingsMenuItem.Click += new System.EventHandler(this.RestoreDefaultSettingsMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(196, 6);
|
||||
//
|
||||
// ExitMenuItem
|
||||
//
|
||||
this.ExitMenuItem.Name = "ExitMenuItem";
|
||||
this.ExitMenuItem.ShortcutKeyDisplayString = "Alt+F4";
|
||||
this.ExitMenuItem.Size = new System.Drawing.Size(199, 22);
|
||||
this.ExitMenuItem.Text = "E&xit";
|
||||
this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click);
|
||||
//
|
||||
// PadsSubMenu
|
||||
//
|
||||
this.PadsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.MultiplayerModeMenuItem});
|
||||
this.PadsSubMenu.Name = "PadsSubMenu";
|
||||
this.PadsSubMenu.Size = new System.Drawing.Size(44, 20);
|
||||
this.PadsSubMenu.Text = "&Pads";
|
||||
this.PadsSubMenu.DropDownOpened += new System.EventHandler(this.PadsSubMenu_DropDownOpened);
|
||||
//
|
||||
// MultiplayerModeMenuItem
|
||||
//
|
||||
this.MultiplayerModeMenuItem.Name = "MultiplayerModeMenuItem";
|
||||
this.MultiplayerModeMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.MultiplayerModeMenuItem.Text = "&Multiplayer Mode";
|
||||
this.MultiplayerModeMenuItem.Click += new System.EventHandler(this.MultiplayerModeMenuItem_Click);
|
||||
//
|
||||
// StickyBox
|
||||
//
|
||||
this.StickyBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.StickyBox.AutoSize = true;
|
||||
this.StickyBox.Location = new System.Drawing.Point(9, 283);
|
||||
this.StickyBox.Name = "StickyBox";
|
||||
this.StickyBox.Size = new System.Drawing.Size(55, 17);
|
||||
this.StickyBox.TabIndex = 7;
|
||||
this.StickyBox.TabStop = false;
|
||||
this.StickyBox.Text = "Sticky";
|
||||
this.StickyBox.UseVisualStyleBackColor = true;
|
||||
this.StickyBox.CheckedChanged += new System.EventHandler(this.StickyBox_CheckedChanged);
|
||||
//
|
||||
// ClearButton
|
||||
//
|
||||
this.ClearButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.ClearButton.Location = new System.Drawing.Point(79, 279);
|
||||
this.ClearButton.Name = "ClearButton";
|
||||
this.ClearButton.Size = new System.Drawing.Size(75, 23);
|
||||
this.ClearButton.TabIndex = 8;
|
||||
this.ClearButton.TabStop = false;
|
||||
this.ClearButton.Text = "&Clear";
|
||||
this.ClearButton.UseVisualStyleBackColor = true;
|
||||
this.ClearButton.Click += new System.EventHandler(this.ClearMenuItem_Click);
|
||||
//
|
||||
// VirtualPadForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(452, 312);
|
||||
this.Controls.Add(this.ClearButton);
|
||||
this.Controls.Add(this.ControllerBox);
|
||||
this.Controls.Add(this.StickyBox);
|
||||
this.Controls.Add(this.menuStrip1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MainMenuStrip = this.menuStrip1;
|
||||
this.MinimumSize = new System.Drawing.Size(100, 100);
|
||||
this.Name = "VirtualPadForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Virtual Pads";
|
||||
this.Load += new System.EventHandler(this.VirtualPadForm_Load);
|
||||
this.contextMenuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox ControllerBox;
|
||||
private MenuStripEx menuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem OptionsSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem AutoloadMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem SaveWindowPositionMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem ExitMenuItem;
|
||||
private System.Windows.Forms.CheckBox StickyBox;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem ClearMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem RestoreDefaultSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem;
|
||||
private System.Windows.Forms.Button ClearButton;
|
||||
private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem PadsSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem MultiplayerModeMenuItem;
|
||||
}
|
||||
}
|
|
@ -1,433 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadForm : Form, IToolForm
|
||||
{
|
||||
// TODO: UpdateValues doesn't support all cores, and is probably wrong for gens, also done in an unsustainable way
|
||||
// TODO: move _multiplayerMode to config, and support on load, also support being able to go back to single player mode. Also, more nuanced options are preferrable
|
||||
private List<IVirtualPad> Pads
|
||||
{
|
||||
get
|
||||
{
|
||||
return ControllerBox.Controls
|
||||
.OfType<IVirtualPad>()
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> CurrentFrameInputs
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Global.Emulator.SystemId == "WSWAN") // Hack - Wonderswan mnemonics violate the 1 controller per pipe rule
|
||||
{
|
||||
return new[]
|
||||
{
|
||||
Global.MovieSession.Movie
|
||||
.GetInput(Global.Emulator.Frame)
|
||||
}.ToList();
|
||||
}
|
||||
|
||||
return Global.MovieSession.Movie
|
||||
.GetInput(Global.Emulator.Frame)
|
||||
.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
private readonly List<string> SupportedMultiplayerPlatforms = new List<string>
|
||||
{
|
||||
"A26",
|
||||
"A78",
|
||||
"NES",
|
||||
"N64",
|
||||
"SMS",
|
||||
"SG",
|
||||
"GG",
|
||||
"PCE",
|
||||
"PCECD",
|
||||
"SGX",
|
||||
"SNES",
|
||||
"GEN",
|
||||
"Coleco",
|
||||
"C64",
|
||||
"SAT"
|
||||
};
|
||||
|
||||
private int _defaultWidth;
|
||||
private int _defaultHeight;
|
||||
|
||||
#region Public API
|
||||
|
||||
public bool AskSave() { return true; }
|
||||
public bool UpdateBefore { get { return false; } }
|
||||
|
||||
public void ClearVirtualPadHolds()
|
||||
{
|
||||
ControllerBox.Controls
|
||||
.OfType<IVirtualPad>()
|
||||
.ToList()
|
||||
.ForEach(pad => pad.Clear());
|
||||
}
|
||||
|
||||
public void Restart()
|
||||
{
|
||||
if (!IsHandleCreated || IsDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ControllerBox.Controls.Clear();
|
||||
LoadStartingPads();
|
||||
}
|
||||
|
||||
public void UpdateValues()
|
||||
{
|
||||
if (!IsHandleCreated || IsDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Global.MovieSession.Movie.IsPlaying && !Global.MovieSession.Movie.IsFinished)
|
||||
{
|
||||
var inputs = CurrentFrameInputs; // THis is necessary because of the weird situation on the frame after the end of the movie, it goes into finished mode AFTER the input is read so this will be empty on that frame
|
||||
if (inputs.Any())
|
||||
{
|
||||
for (int i = 0; i < Pads.Count; i++)
|
||||
{
|
||||
Pads[i].SetButtons(inputs[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!Global.Config.VirtualPadSticky)
|
||||
{
|
||||
Pads.ForEach(pad => pad.Clear());
|
||||
}
|
||||
|
||||
if (Global.MovieSession.Movie.IsActive && !Global.MovieSession.Movie.IsFinished)
|
||||
{
|
||||
Pads
|
||||
.Where(x => x is VirtualPadN64)
|
||||
.Cast<VirtualPadN64>()
|
||||
.ToList()
|
||||
.ForEach(x =>
|
||||
{
|
||||
x.RefreshAnalog();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public VirtualPadForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
Closing += (o, e) => SaveConfigSettings();
|
||||
TopMost = Global.Config.VirtualPadSettings.TopMost;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void VirtualPadForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
LoadConfigSettings();
|
||||
LoadStartingPads();
|
||||
if (Global.Config.VirtualPadMultiplayerMode)
|
||||
{
|
||||
SwitchToMultiplayer();
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadConfigSettings()
|
||||
{
|
||||
_defaultWidth = Size.Width;
|
||||
_defaultHeight = Size.Height;
|
||||
|
||||
StickyBox.Checked = Global.Config.VirtualPadSticky;
|
||||
|
||||
if (Global.Config.VirtualPadSettings.UseWindowPosition)
|
||||
{
|
||||
Location = Global.Config.VirtualPadSettings.WindowPosition;
|
||||
}
|
||||
|
||||
if (Global.Config.VirtualPadSettings.UseWindowPosition)
|
||||
{
|
||||
Size = Global.Config.VirtualPadSettings.WindowSize;
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveConfigSettings()
|
||||
{
|
||||
Global.Config.VirtualPadSettings.Wndx = Location.X;
|
||||
Global.Config.VirtualPadSettings.Wndy = Location.Y;
|
||||
Global.Config.VirtualPadSettings.Width = Right - Left;
|
||||
Global.Config.VirtualPadSettings.Height = Bottom - Top;
|
||||
}
|
||||
|
||||
private void LoadStartingPads()
|
||||
{
|
||||
// Order matters! Add them in the of order of the mnemonic system
|
||||
switch (Global.Emulator.SystemId)
|
||||
{
|
||||
case "A26":
|
||||
ControllerBox.Controls.Add(new VirtualPadA26Control { Location = new Point(8, 109) });
|
||||
ControllerBox.Controls.Add(new VirtualPadA26 { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "A78":
|
||||
ControllerBox.Controls.Add(new VirtualPadA78Control { Location = new Point(8, 125) });
|
||||
ControllerBox.Controls.Add(new VirtualPadA78 { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "NES":
|
||||
ControllerBox.Controls.Add(new VirtualPadNESControl { Location = new Point(8, 109) });
|
||||
ControllerBox.Controls.Add(new VirtualPadNES { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "N64":
|
||||
ControllerBox.Controls.Add(new VirtualPadN64Control { Location = new Point(8, 350) });
|
||||
ControllerBox.Controls.Add(new VirtualPadN64 { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "SMS":
|
||||
case "SG":
|
||||
case "GG":
|
||||
ControllerBox.Controls.Add(new VirtualPadSMSControl { Location = new Point(8, 109) });
|
||||
ControllerBox.Controls.Add(new VirtualPadSMS { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "PCE":
|
||||
case "PCECD":
|
||||
case "SGX":
|
||||
ControllerBox.Controls.Add(new VirtualPadPCE { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "SNES":
|
||||
ControllerBox.Controls.Add(new VirtualPadSNESControl { Location = new Point(8, 170) });
|
||||
ControllerBox.Controls.Add(new VirtualPadSNES { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "GB":
|
||||
case "GBC":
|
||||
ControllerBox.Controls.Add(new VirtualPadGBControl { Location = new Point(8, 109) });
|
||||
ControllerBox.Controls.Add(new VirtualPadGB { Location = new Point(8, 19), Controller = string.Empty });
|
||||
break;
|
||||
case "DGB":
|
||||
ControllerBox.Controls.Add(new VirtualPadGBControl { Location = new Point(8, 109), Controller = string.Empty });
|
||||
ControllerBox.Controls.Add(new VirtualPadGB { Location = new Point(8, 19), Controller = "P1" });
|
||||
ControllerBox.Controls.Add(new VirtualPadGB { Location = new Point(188, 19), Controller = "P2" });
|
||||
break;
|
||||
case "GBA":
|
||||
ControllerBox.Controls.Add(new VirtualPadGBA { Location = new Point(8, 19), Controller = string.Empty });
|
||||
break;
|
||||
case "GEN":
|
||||
ControllerBox.Controls.Add(new VirtualPadNESControl { Location = new Point(8, 105) });
|
||||
ControllerBox.Controls.Add(new VirtualPadGen6Button { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "Coleco":
|
||||
var coleco1 = new VirtualPadColeco { Location = new Point(8, 19), Controller = "P1" };
|
||||
ControllerBox.Controls.Add(coleco1);
|
||||
break;
|
||||
case "C64":
|
||||
ControllerBox.Controls.Add(new VirtualPadA26 { Location = new Point(8, 159), Controller = "P1" });
|
||||
ControllerBox.Controls.Add(new VirtualPadC64Keyboard { Location = new Point(8, 19) });
|
||||
break;
|
||||
case "SAT":
|
||||
ControllerBox.Controls.Add(new VirtualPadSaturnControl { Location = new Point(8, 125) });
|
||||
ControllerBox.Controls.Add(new VirtualPadSaturn { Location = new Point(8, 19), Controller = "P1" });
|
||||
break;
|
||||
case "WSWAN":
|
||||
ControllerBox.Controls.Add(new VirtualPadWonderSawn { Location = new Point(8, 19) });
|
||||
break;
|
||||
}
|
||||
|
||||
// Hack for now
|
||||
if (Global.Emulator.SystemId == "C64")
|
||||
{
|
||||
if (Width < 505)
|
||||
{
|
||||
Width = 505;
|
||||
ControllerBox.Width = Width - 37;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SwitchToMultiplayer()
|
||||
{
|
||||
switch (Global.Emulator.SystemId)
|
||||
{
|
||||
case "A26":
|
||||
ControllerBox.Controls.Add(new VirtualPadA26 { Location = new Point(188, 19), Controller = "P2" });
|
||||
break;
|
||||
case "A78":
|
||||
ControllerBox.Controls.Add(new VirtualPadA78 { Location = new Point(150, 19), Controller = "P2" });
|
||||
break;
|
||||
case "NES":
|
||||
ControllerBox.Controls.Add(new VirtualPadNES { Location = new Point(188, 19), Controller = "P2" });
|
||||
break;
|
||||
case "N64":
|
||||
ControllerBox.Controls.Add(new VirtualPadN64 { Location = new Point(208, 19), Controller = "P2" });
|
||||
ControllerBox.Controls.Add(new VirtualPadN64 { Location = new Point(408, 19), Controller = "P3" });
|
||||
ControllerBox.Controls.Add(new VirtualPadN64 { Location = new Point(608, 19), Controller = "P4" });
|
||||
break;
|
||||
case "SMS":
|
||||
case "SG":
|
||||
case "GG":
|
||||
ControllerBox.Controls.Add(new VirtualPadSMS { Location = new Point(188, 19), Controller = "P2" });
|
||||
break;
|
||||
case "PCE":
|
||||
case "PCECD":
|
||||
case "SGX":
|
||||
ControllerBox.Controls.Add(new VirtualPadPCE { Location = new Point(188, 19), Controller = "P2" });
|
||||
ControllerBox.Controls.Add(new VirtualPadPCE { Location = new Point(8, 109), Controller = "P3" });
|
||||
ControllerBox.Controls.Add(new VirtualPadPCE { Location = new Point(188, 109), Controller = "P4" });
|
||||
break;
|
||||
case "SNES":
|
||||
ControllerBox.Controls.Add(new VirtualPadSNES { Location = new Point(188, 19), Controller = "P2" });
|
||||
ControllerBox.Controls.Add(new VirtualPadSNES { Location = new Point(8, 95), Controller = "P3" });
|
||||
ControllerBox.Controls.Add(new VirtualPadSNES { Location = new Point(188, 95), Controller = "P4" });
|
||||
break;
|
||||
case "GEN":
|
||||
ControllerBox.Controls.Add(new VirtualPadGen6Button { Location = new Point(195, 19), Controller = "P2" });
|
||||
break;
|
||||
case "Coleco":
|
||||
ControllerBox.Controls.Add(new VirtualPadColeco { Location = new Point(130, 19), Controller = "P2" });
|
||||
break;
|
||||
case "C64":
|
||||
ControllerBox.Controls.Add(new VirtualPadA26 { Location = new Point(218, 159), Controller = "P2" });
|
||||
break;
|
||||
case "SAT":
|
||||
ControllerBox.Controls.Add(new VirtualPadSaturn { Location = new Point(213, 19), Controller = "P2" });
|
||||
break;
|
||||
}
|
||||
|
||||
Global.Config.VirtualPadMultiplayerMode = true;
|
||||
}
|
||||
|
||||
public void BumpAnalogValue(int? dx, int? dy) // TODO: multi-player
|
||||
{
|
||||
// TODO: make an analog flag in virtualpads that have it, and check the virtualpads loaded, instead of doing this hardcoded
|
||||
if (Pads[0] is VirtualPadN64)
|
||||
{
|
||||
(Pads[0] as VirtualPadN64).FudgeAnalog(dx, dy);
|
||||
|
||||
UpdateValues();
|
||||
}
|
||||
}
|
||||
|
||||
private void RefreshFloatingWindowControl()
|
||||
{
|
||||
Owner = Global.Config.VirtualPadSettings.FloatingWindow ? null : GlobalWin.MainForm;
|
||||
}
|
||||
|
||||
#region Events
|
||||
|
||||
#region Menu
|
||||
|
||||
private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
AutoloadMenuItem.Checked = Global.Config.AutoloadVirtualPad;
|
||||
SaveWindowPositionMenuItem.Checked = Global.Config.VirtualPadSettings.SaveWindowPosition;
|
||||
AlwaysOnTopMenuItem.Checked = Global.Config.VirtualPadSettings.TopMost;
|
||||
FloatingWindowMenuItem.Checked = Global.Config.VirtualPadSettings.FloatingWindow;
|
||||
}
|
||||
|
||||
private void AutoloadMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.AutoloadVirtualPad ^= true;
|
||||
}
|
||||
|
||||
private void SaveWindowPositionMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.VirtualPadSettings.SaveWindowPosition ^= true;
|
||||
}
|
||||
|
||||
private void AlwaysOnTopMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.VirtualPadSettings.TopMost ^= true;
|
||||
TopMost = Global.Config.VirtualPadSettings.TopMost;
|
||||
}
|
||||
|
||||
private void FloatingWindowMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.VirtualPadSettings.FloatingWindow ^= true;
|
||||
RefreshFloatingWindowControl();
|
||||
}
|
||||
|
||||
private void RestoreDefaultSettingsMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Size = new Size(_defaultWidth, _defaultHeight);
|
||||
|
||||
Global.Config.VirtualPadSettings.SaveWindowPosition = true;
|
||||
Global.Config.VirtualPadSettings.TopMost = TopMost = false;
|
||||
Global.Config.VirtualPadSettings.FloatingWindow = false;
|
||||
Global.Config.VirtualPadMultiplayerMode = false;
|
||||
SwitchToSinglePlayer();
|
||||
}
|
||||
|
||||
private void ExitMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Dialog, Controls, Context Menu
|
||||
|
||||
protected override void OnClosed(EventArgs e)
|
||||
{
|
||||
Global.StickyXORAdapter.ClearStickies();
|
||||
Global.StickyXORAdapter.ClearStickyFloats();
|
||||
}
|
||||
|
||||
private void ClearMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ClearVirtualPadHolds();
|
||||
}
|
||||
|
||||
private void StickyBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.VirtualPadSticky = StickyBox.Checked;
|
||||
}
|
||||
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
RefreshFloatingWindowControl();
|
||||
base.OnShown(e);
|
||||
}
|
||||
|
||||
private void SwitchToSinglePlayer()
|
||||
{
|
||||
var toRemove = Pads
|
||||
.Where(pad => !string.IsNullOrEmpty(pad.Controller) && pad.Controller != "P1")
|
||||
.ToList();
|
||||
|
||||
foreach (var pad in toRemove)
|
||||
{
|
||||
ControllerBox.Controls.Remove(pad as Control);
|
||||
}
|
||||
|
||||
Global.Config.VirtualPadMultiplayerMode = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
private void MultiplayerModeMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Config.VirtualPadMultiplayerMode)
|
||||
{
|
||||
SwitchToSinglePlayer();
|
||||
}
|
||||
else
|
||||
{
|
||||
SwitchToMultiplayer();
|
||||
}
|
||||
}
|
||||
|
||||
private void PadsSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
MultiplayerModeMenuItem.Enabled = SupportedMultiplayerPlatforms.Contains(Global.Emulator.SystemId);
|
||||
MultiplayerModeMenuItem.Checked = Global.Config.VirtualPadMultiplayerMode;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,630 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>132, 17</value>
|
||||
</metadata>
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAwAMDAQAAAABABoBgAAxgAAACAgEAAAAAQA6AIAAC4HAAAYGBAAAAAEAOgBAAAWCgAAEBAQAAAA
|
||||
BAAoAQAA/gsAADAwAAAAAAgAqA4AACYNAAAgIAAAAAAIAKgIAADOGwAAGBgAAAAACADIBgAAdiQAABAQ
|
||||
AAAAAAgAaAUAAD4rAAAwMAAAAAAgAKglAACmMAAAICAAAAAAIACoEAAATlYAABgYAAAAACAAiAkAAPZm
|
||||
AAAQEAAAAAAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAQAAAAEAAAAAAA
|
||||
AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
|
||||
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAdHdEcAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAHd0d3QAAAAAAAAAAAAAAAAAAAAAAAAAAEd8d3UAAAAAAAAAAAAAAAAAAAAAAAAAB3yHfHZw
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAd3fIyHVwAAAAAAAAAAAAAAAAAAAAAAAAfHh3jIxwAAAAAAAAAAAAAAAA
|
||||
AAAAAAAHd8jIyHdgAAAAAAAAAAAAAAAAAAAAAAAHd4yHfIdAAAAAAAAAAAAAAAAAAAAAAAAHyMjIyMhQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAB3d3eMh4dgAAAAAAAAAAAAAAAAAAAAAAB8jIyIfIdQAAAAAAAAAAAAAAAA
|
||||
AAAAAAB3h4jIiMh3AAAAAAAAAAAAAAAAAAAAAAB8jIeHeIjHAAAAAAAAAAAAAAAAAAAAAAeIiHh4eMiE
|
||||
AAAAAAAAAAAAB0dHcAAAAAd8h4eIiIiHcAAAAAAAAAB0d3d3RwAAAAeIeIiIiIh3RwAAAAAAAHR3d8h3
|
||||
dAAAAAfIh4iIiHiIx0cAAAAAdHh3eIeHhwAAAAeHiIiIiIiId3R3dHR0eHd4h4eHhAAAAAd4eIiIiIiH
|
||||
x3d2d3eId4iIiIiIhwAAAAd4eIiI+IiIh3d3eHh3iIiIiIeHwAAAAAfIjHeIiIiIyIeHh4iIiIiIiIiI
|
||||
cAAAAAeIQ0R3h3iIiMiIiIiIiIiIiIiEAAAAAAfIR3d3d0iIiIh4iIeIiIiIiHhAAAAAAAB4d3d3SHiI
|
||||
h4fTiIi3iIiIeIwAAAAAAAB3h4d3eIeIiHiJiIuIiIh4jHAAAAAAAAAHyId3h3h4iIh4iIiIiIiHeAAA
|
||||
AAAAAAAAB8iMiMjIiIiIh4h3aMjHAAAAAAAAAAAAAAdYyIeIiIiMjId6d4eAAAAAAAAAAAAAAAAHdsjH
|
||||
eIeH6MiId3AAAAAAAAAAAAAAAIiIh4V8jIh4eIfHcAAAAAAAAAAAAACIiIh3AAAHd3h3fHcAAAAAAAAA
|
||||
AAAAAAiIjHgAAAAAAHx8eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC
|
||||
AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
|
||||
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAA
|
||||
AAd0dAAAAAAAAAAAAAAAAAB3x3cAAAAAAAAAAAAAAAAAd3fHcAAAAAAAAAAAAAAAB3yMh3AAAAAAAAAA
|
||||
AAAAAAfIeMdwAAAAAAAAAAAAAAAHjIyHQAAAAAAAAAAAAAAAfId4yHAAAAAAAAAAAAAAAHjIyIdQAAAA
|
||||
AAAAAAAAAAB3iId4YAAAAAAAAAdwAAAAjIiIiIUAAAAAAHd3dAAAB4iIiHh8cAAAAHd3x4dwAAd4iIiI
|
||||
h3Z3d3R3yIh4cAAHh4iIiIfHd3d4iIiIh3AAB3jHiIiIiHeHiIiIiIwAAAh3dXh4iMiIiIiIiIhwAAAA
|
||||
yGd0d4iIeIi4iIiMAAAAAIeHd4iIh32IiIiIcAAAAAAAd4jIyIiIiHeHyAAAAAAAAAB3h4iIh8h3dwAA
|
||||
AAAAAAAIh8fIh4eIaAAAAAAAAACIiHAAB8jIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
////////////////////n////g////wP///8B///+Af///gH///4B///8Af///AH///wB//n8AP/A+AB
|
||||
/AHgAAAB4AAAAeAAAAPgAAAH8AAAD/AAAB/8AAA//wAA//4AA//weA//////////////////////////
|
||||
//8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwAAAAAAAAAAAAB3dAAAAAAAAAAAAA
|
||||
d8dwAAAAAAAAAAAAfId3AAAAAAAAAAAHeMjHAAAAAAAAAAAHyHh3AAAAAAAAAAAHh3eEAAAAAAAAAAAI
|
||||
yIiHAAAAAHd2cAAIiIiIQAAAd3d4UACHiIiId3d3eHiIcACHh4iIyHeHiIiIcAAIR3d4iIiIiIiMAAAH
|
||||
d3eIh3iIiIhwAAAAeMh4iIiHiMAAAAAAAHfIiMh4aAAAAAAAiIgHyIfIAAAAAAAIgAAAAIAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD8f/8A+H//APB/
|
||||
/wDwP/8A4D//AOA//wDgP/8A4D/BAOAfAQDAAAEAwAABAOAAAwDgAAcA8AAfAPwAPwDwgP8A5/f/AP//
|
||||
/wD///8A////ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA
|
||||
AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAAAAAB8cAAAAAAAB4eAAAAAAAAHyMgAAAAAAAiIhwAAAHcACI
|
||||
iHcAd3hwAIz4jIeIiIAAd3eIiIiIAACHeIiIiHAAAACMeMh4AAAAiAAIgAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAD//wAA//8AAP//AADj/wAA4/8AAMP/AADB/wAAwfkAAMDBAADAAQAAwAMAAMAHAADwDwAAzn8AAP//
|
||||
AAD//wAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAA9OzsAZD8/AGg8
|
||||
PABtPj4AQkNDAEZIRwBWQkIAV0REAF5AQABbRkYAVklJAFxPTwBTU1MAXFJSAF5ZWQBkQEAAYUREAGZF
|
||||
RQBqQkEAYEtLAGNPTwBwQUEAfUZGAHJKSgB2SUkAfU9PAGBRUQBgVFQAZlZWAGZYWABqWVkAclZWAHpU
|
||||
VAB9W1oAbmJiAGtoaABtaWkAcWdnAHdnZwB8Y2MAe2pqAHJxcQB+dHQAd3l5AHl6egCGT08AiU9PAIFP
|
||||
UACGU1MAjVFRAIlWVgCMV1cAg1xbAIxaWQCQUlIAlVJSAJFXVgCXVVUAmVVVAJZaWQCSXV0AlV9eAJpZ
|
||||
WgCeW1sAml5eAKBZWgCgXFwAql9fAIRmZQCIZWQAhWtrAI5ragCTYmEAnGBhAJ9kYwCaZmYAk25uAJ1s
|
||||
awCFdHQAiXd3AIt+fgCWd3cAmHR0AJV5eQCbfHwAo2JhAKZhYQChZWUApGVkAKplZACsZGQAqmhnAKZr
|
||||
agCnbGsAqmloAKlubQCsbW0AtGZnALhsbACxb3AAv29wAKVxcACrc3IAr35+ALN0cwC5c3MAvXBxALR4
|
||||
dgC1fHsAunt6AMNtbgDGb3AAw3FyAMZwcQDGdXUAyHR1AMp3eADBeXkAxnt7AMB/fgDLensANLBSAEWf
|
||||
TgBBtFwAPMdnADHkdgDciiIAvoF/AISrdwDln0sA35lhAN2XfADgmmEA8LdlAO61cAArWPIALWT+AEh5
|
||||
+gDOf4AAfoCAAHiA1ABZv9wAZrnUAGK+2ABxnv4Ad6P/ADPX/QBw0OcAW+D7AIKEgwCPgoIAjI2NAJuC
|
||||
ggCUiIgAmYqKAJGSkgCjhIQAqoKCAKKLiwC+hIMAsoqKALaSgQCum5sAsZubALqqlQCdgr4Ar6ytALGh
|
||||
oAC6pKQAwoSDAMyBggDGiIYAyYiHAMWMigDMjIoA0ISFANKHiADUjIwA2Y6NAMCUjQDIk44A0JCPANaP
|
||||
kADHlZQAzpSSAMScmwDUkpIA2ZSVANWYlgDampcA2ZeYANWcnADam5sA4p2cAMChjwDeoJ4A5aCFAOaj
|
||||
jQDlpJoA2p6hAMOkowDOoaEAy62tANegoADdoqEA2aGpANGsrwDdq6kAwbG4ANGysQDdtLQA2ri3AOGk
|
||||
owDjqKYA66ylAOGnqADjq6oA6a2rAOOwrwDssK4A5K+wAOaztADttLIA57i2AO24tgDmurgA6rq6APC1
|
||||
swDyuLYA9Ly5APi+uwD1wL0A+cC9AKKMwACkk8QAqprMALSayACptsEAlaDkAOy/wACRxtQAgOv9AJnr
|
||||
9wDEwsoA5sbGAOzCwgDuyMcA7MzMAPPEwgDxy8oA9dPTAPja2gAAAAAAAAAAAP///wAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAoIJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAACYXODs4BCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
KTNDQ0M7OAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALllbYmJZQBcAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYWNwcHBwWy8mAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFLanBwcHBwYz0eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAABpqcHBwcHBwZVkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl11w
|
||||
cHBwcHBwcGcSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIXdwcHBwcHBwcGkSAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPXBwcHBwcHBwd2wYAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAACXbnBwdXB5dXl0eW4hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAid3R5eXl5eXl5q6wzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9eXV5
|
||||
i7CxsbGxsblLKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABndYuwsbm8uby5vMFnHgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJt3q7G3vMHB1cLBwdWuEgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAeEhMSCiUAAAAAAAAAAEexsbm/1dXZ2dnZ1da5ZgwAAAAAAAAAAAAAAAAAAAAjEjNZaW5qXRMl
|
||||
AAAAAAAAADW5s7/V2N7i4uLi3dzZrQQPAAAAAAAAAAAAAAAAHxhZbm5uaWltd6ASAAAAAAAAAEmzvMLZ
|
||||
3uP29/fw4uTkuUAWCy0AAAAAAAAAAB4YYXd3gG13vbm5vb8zAAAAAAAAAE6xwdXd4/b6+/r38OTl1Vlc
|
||||
OAMIFAweFBQSM2mtrYB3vdXT0NXExNU1AAAAAAAAAE65wtXe8Pr7/Pz79+fn1WphZ25pXV1mbHetrXd3
|
||||
tdXT4vXw49nZ3NYgAAAAAAAAAEu3wdje9vv7/Pz79+fn34B3d2xtoHeud66uudXT4vD39/Dj49zk5G0A
|
||||
AAAAAAAAAD2xwcwoH0/L/Pukyenp5K27u7m5uczM0Nve4vb3+vr56OPl5eXl1igAAAAAAAAAADWxwQgB
|
||||
BQYNmveZK/Dp6cG/wcTV2eP3+vr6+/r6+ejm5ufn5+nkIgAAAAAAAAAAAJmruR4sjC2WLFCdDd3p6dXW
|
||||
1tXI3vn67pCO9Ojp6efo5+fm59wiAAAAAAAAAAAAAABLsZ0FmC0qKgHMRcjp6dzc1Y2KiO3RlfKTj+np
|
||||
5ubm5eXk1SIAAAAAAAAAAAAAAACdab/Lp5aWnEfV1cHm6ebk6pGSiabZ8fOU0uXl5eTk3NyuRQAAAAAA
|
||||
AAAAAAAAAAAAn0ux0KFTaMHBv7nC6efp3Ovv7OTm3OPl3Nzc3NfW1U6fAAAAAAAAAAAAAAAAAAAAAABF
|
||||
Wa25t7yxs7Gw5+fn5Obk18XG3NyBfHvD1cSgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAFUzarGwsHl5sefn
|
||||
39zEgoZ/hL19fnqirj2jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATj09ZXV0cLzn3NXChYeDub+1pbQ9
|
||||
VQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0rXj+rpInTBDcHCz5NW/ucG5u7GAM1QAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAADLytDi9tOemQAAAAAAUy9EecLEsa1uPTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj11Mme
|
||||
VakAAAAAAAAAAAAATS84M0akAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
|
||||
AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A
|
||||
H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP////
|
||||
AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA
|
||||
AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/
|
||||
AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE
|
||||
AAAAAAAAAAAAAAABAAAAAQAAAAAAAFFNTQBRUlIAU1RUAGJHRwBiT08Aa0lIAGJTUwBrVlYAYllZAGZc
|
||||
XABpWloAb1xbAHNTUwB7V1YAc1hXAHFbWwBkZWUAaWFhAG5kZABpamkAcGFhAHlubgB2cHAAf3V1AH55
|
||||
eQB8fX0AgUpKAI1PTwCLWFcAhlhYAI9ZWQCKXFsAm1ZWAJJZWQCWWVgAmlpbAJtcWwCiXFwAl2BfAIBg
|
||||
YACAZ2YAgG9vAI9oaACWZWQAmGBhAJ5kZACcaWoAmm9vAIV0dACNcHAAiXZ2AIB8fACac3IAm3V0AJ51
|
||||
dQCZfHwAnHx8AKNmZgCnZmYAqmJiAK5jYwCvb24AtWVmALBtbgC5bW0AvmxtAKx+fQCxcnIAtHBwALZz
|
||||
dACydXQAtnd2ALlwcAC5dnYAt3p5ALh5eAC8fHsAun18ALx+fQDGb3AAxnBxAMdzdADAd3YAyHJzAMlz
|
||||
dADJdXYAynd4AMd/fwDMe3wAzXx9AHunbwBhvHIAYsN4ANuLOwC2hn4A4Zt5APC3ZABte9sAX47+AHWM
|
||||
5QAl0foAY+P8AIeDgwCFhoYAioSEAJOIiACWi4sAmpKRAKGCgQCmhYUAqYGBAKuDhACniooApYyMAKiO
|
||||
jQCyhYMAvoWEALeNjQCrj5AAr5eXALSVlAC9lJMAmbCEAK6RugDBgYAAwoSCAMWDhADChoQAxYeFAM6A
|
||||
gQDFiIYAxoqIAMqIiQDMi4oAy4yKAMiPjQDPj44A0ISFANKJigDUi4wA04+NANWNjgDKkY8A0JCOANud
|
||||
iQDWj5AAzJSTAM2XlgDGm5oA1pGSANOUkgDVl5EA1pOUANiVlgDYmJUA2ZeYANKenADbmpsA3pmYANuc
|
||||
mgDbn5wA1aacAN6gngDqqZoA3Z+gAMyjowDCra0AxqysAMqpqQDboaAA3qKiAN6logDbp6UA3aWkANer
|
||||
qgDWsbMA0rW0ANe0tADfs7IA4aSiAOGlpQDkp6UA46imAOWopgDsraIA6qimAOGoqADhrqwA6a2rAOqv
|
||||
rADpsK4A7LGuAOGzswDlsbEA7bKxAO+1sgDotrYA5rm3AO+4twDot7sA6bq5AOu9uwDrv70A8bazAPG2
|
||||
tADxuLUA9Lm2APC9uwD2vboA9L+9APi+uwD4v7wA8sC+APXAvgD5wL0AkILJAKqXzACsu8cAqr/LALLV
|
||||
3QDawMIA48XFAOvDwQDswMAA7cTDAO/ExQDgxsgA8cbEAPTGxADwyskA9MvJAPLNzQD21dYA+NjZAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHCEcBQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAayU9PSYbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQlBSQiJpAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAM0pSUlJQPRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUlJSUlJGFQAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAFJSUlJSUkoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzUlJSWVJZfxAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XWYqKioqGDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASoqMkpqa
|
||||
mqAsAAAAAAAAAAAAAAAAAABoNAAAAAAAAACMjJyuvLy2toYHAAAAAAAAAAAAABcOIDouBgAAAAAAc4yc
|
||||
tsHKysPAriIKAAAAAAAAABYgRk1LTX+DEAAAAABukqXB4ejo4dHPQCIEChcXEwggTXV/k66unKMpAAAA
|
||||
AG6Srsro6ero0dN/Rk1NRk2Dg4STrsbh4cHAt2sAAAAAbpKuOXPe6ajW15KGg4OGk528yuHo5eHPz882
|
||||
AAAAAAB4jCkDAxSoMabXt5yjt8ro3ePo5dbT09HTdAAAAAAAAABGcBFoGgFwdtfDwHxi2dpmZcrX09HP
|
||||
z0MAAAAAAAAAAHh/qWwaOa6cz9PNZGPYsdzbzc3DwLk2AAAAAAAAAAAAAAAvhpKakoyg19HNyKS5wHtb
|
||||
orZ/cwAAAAAAAAAAAAAAAAAANkaKWVm5zb1gYV6cXVxfNgAAAAAAAAAAAAAAAAAAALGvlTIuP1K5tqCR
|
||||
l4xfLwAAAAAAAAAAAAAAAAAAsbPBenkAAAAAcCVYjE0scwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////+f///+D////A////wH
|
||||
///4B///+Af///gH///wB///8Af///AH/+fwA/8D4AH8AeAAAAHgAAAB4AAAA+AAAAfwAAAP8AAAH/wA
|
||||
AD//AAD//gAD//B4D////////////////////////////ygAAAAYAAAAMAAAAAEACAAAAAAAQAIAAAAA
|
||||
AAAAAAAAAAEAAAABAAAAAAAAWlJSAHBJSQB1SEgAe1dXAHdYWAB5WlkAel1dAGBiYgB1bGwAfWtrAHh2
|
||||
dgB9fn4Ag01NAIRXVwCIV1cAhV9eAItbWgCgX14ApV1dAJhgXwCNYGAAnWtqAJhtbQCCdnYAh3x8AI15
|
||||
eACeensAqGBgAKhoZwCga2oArGpqALNqagCzb28AtG1tALltbQCxb3AApnVzAKlzcwCqdHMApnp6AKd+
|
||||
fgCpensAq3x7ALZ3dgC8dHQAvH59AMZvcADGcHEAxXN0AMhycwDJdncAynh5AMx5egDNfn8Ajo1wAOek
|
||||
VgDGgH8A4p53AEZ2+gB8u4AAd8PaAIuEhACOh4cAjo6OAJ+DggCejo4Ao4SEAKSIiACsi4sAqo2MAK6P
|
||||
jgC+gYAAvoaGAL+KiACskJAAtJeXALWenQC5np4At6iOAKmyjgC9nroAwYSDAMaGhADOhoYAxomHAMiK
|
||||
iQDJjYwA0oeIANOOjwDUjY0A2ZiPANaPkADGkZEAx5eXAMySkADGnZwA1ZOSANeTlADWl5YA2JSVANGZ
|
||||
mADan50A3J6dAOCcmwDVoJ8A7K2fAMOtrQDXo6IA3aCgAN+kpADVq6oA3ay3AMu0tADPtrYA3L+/AOCi
|
||||
oQDhpqUA5KelAOinpgDlq6gA46usAOOvrQDqrqwA7LGuAOayswDjtrQA5re1AOqysQDts7EA57y6AO+8
|
||||
ugDrvL0A8LOwAPC1sgDwtrQA87q3APS6twD2vboA8b69APi/vAD2wb4A+cC9AJmTzwDHqMMAu8PMAIHf
|
||||
8QDByNAA7cLCAO3FwwDvxsQA5cjIAOzOzgDwxcQA9cbEAPPP0AD10tIAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
BQMJAAAAAAAAAAAAAAAAAAAAAAAAAAAPHBMNAAAAAAAAAAAAAAAAAAAAAAAAABojLy8TAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAB0wMDAiPgAAAAAAAAAAAAAAAAAAAAAAQjAwMDAtGAAAAAAAAAAAAAAAAAAAAAAAFzIy
|
||||
NTU5CgAAAAAAAAAAAAAAAAAAAAAAIjZYWFxcBwAAAAAAAAAAAAAAAAAAAAAANlxtdW11JQAAAAAAAAAA
|
||||
PgcRDgkAAAAAXG1/lISAZgMAAAAAABkVLC5SVhcAAABNY3WWnJuLfB8UBAcQHkhWaX91dSsAAABNY2BM
|
||||
mJeCiVJSVl9laX+WloSJgEIAAAAAXAEIC0tGjnR0dJaRk5qNjIyJQwAAAAAAJkNADBtdjIaPO1GSPYuJ
|
||||
hnVEAAAAAAAAAClISWRcd4xwkGp8UE90VwAAAAAAAAAAAAAAKSQ1NYZ7OjhbPDdGAAAAAAAAAAAAAHNv
|
||||
YGsAKyJoXFYmRwAAAAAAAAAAAAAAcnIAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP//
|
||||
/wD///8A////APx//wD4f/8A8H//APA//wDgP/8A4D//AOA//wDgP8EA4B8BAMAAAQDAAAEA4AADAOAA
|
||||
BwDwAB8A/AA/APCA/wDn9/8A////AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA
|
||||
AAAAAQAAAAEAAAAAAABjZGQAdmRjAHtpaQB/eHgAgU9PAKBaWgCFbm0AlWtqAKptbgCwZ2cAsGhoAKxw
|
||||
cACteHkAvnJyAMZvcADGcHEAy3l5AMx9fgCFmXQAwIB/ANeUfQDhoX8AlIqJAJWMjACYiIgAoIaGAK2K
|
||||
igCxh4cAvoGAALKKigC4iYgAuJWVAL2cnACss50AuqKhAL+mpgDLgoIAxImHAMeNjADLkI8AxpWTANCS
|
||||
kQDYlZUA1J6dANqZmgDdnp4A1J+oAMaiogDOr68AzLKyANi5uADhpaIA4qypAOWtqADrrqsA4bKwAOay
|
||||
sgDtuLYA57++AOy4uADxtLIA8be0APa9ugDswL4A9sG+ALCcxwC5ncIA06zBALnH0QC2ytQA7sPDAPLS
|
||||
0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAZBgUAAAAAAAAAAAAAAAAACw8KAAAAAAAAAAAAAAAAGhAQDgAAAAAAAAAAAAAAAAkRESUYAAAA
|
||||
AAAAAAAAAAAlKy4uBwAAAAAAAAcDAAAAKzlHPCYCAAAYCB0oKgAAAC0wSDs0FB0nLDlAOiwAAAANAQQb
|
||||
Pi9DRkVBPzUAAAAAJB4cKz5EQjMiNSkAAAAAAAAAHwwRNxYVEyQAAAAAAAAxMgAAACEgAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA4/8AAOP/AADD/wAAwf8AAMH5
|
||||
AADAwQAAwAEAAMADAADABwAA8A8AAM5/AAD//wAA//8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAJAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAUAAAAOAEBAVUAAABUAAAANQAAABAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkFBSUvGRl5TCkpwlYuLtxDJCTQFw0NmQAA
|
||||
AEkAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAwMKE8rK6V6RET2klJR/5ZS
|
||||
U/+OT0//ZDc38B0QEJoAAAAyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAwYVzAwoopP
|
||||
T/ygXVz/oFtb/55ZWf+bWFf/k1NT/1UvL9wGAwNcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AARNKipxhk5O+adkY/+uZWX/tWdo/7VmZ/+qYWH/nltb/3hERPcfERGCAAAAFgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADEZGS1zQ0LXqGdm/7ptbf/Fb3D/x3Bx/8hwcf/BbW7/q2Vl/4hPT/82HR2gAAAAIAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAB1gxMYyYXl3/vXFx/8Zwcf/HcHH/x3Bx/8dwcf/HcHH/uG1t/5NY
|
||||
V/9EJia2AAAAKQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB8fNH1MS+K4cnH/x3Fy/8dwcf/HcHH/x3Bx/8dw
|
||||
cf/HcHH/wHBx/51gX/9PLCzGAAAAMwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXjU1h6NnZv/Fc3T/x3Bx/8dw
|
||||
cf/HcHH/x3Bx/8dwcf/HcHH/w3Jz/6ZoZ/9ZMzPTAQAAPQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyFxccektK0b12
|
||||
dv/HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xXR0/69wb/9jOjneBwMDSQAAAAUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABNKSlNlmBf9sh3d//HcHH/x3Bx/8dwcf/HcHH/x3Bx/8dwcf/HcHH/xnd3/7Z4d/9sQUDnDgcHVQAA
|
||||
AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABkOjqKsXFw/8lyc//HcXL/yHJz/8l0df/JdXb/yXV2/8l1dv/JdHX/ynt7/7+B
|
||||
f/94SknvFgsLZQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACILCxB7TUzDwXd3/8lyc//KdXb/y3h5/8x7fP/NfX7/zX5+/819
|
||||
fv/NfH3/zoOC/8iJiP+GVVX3Hg8QegAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMiIi+SXl3oynp7/8t4ef/NfX7/z4GC/9GE
|
||||
hf/Sh4j/04iJ/9KIiP/Rhof/04uK/8+RkP+XY2L9KxcXlwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABwAA
|
||||
AA0AAAAPAAAACwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUvL1enbW37zn5+/85/
|
||||
gP/Rhob/1IuM/9aPkP/XkpP/2JOU/9iTlP/XkZH/15OT/9eZl/+rdHP/QSUlvAAAADwAAAAFAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACQAA
|
||||
ABgAAAAvAgEBSwcDA2EFAgJoAAAAWAAAADYAAAARAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGU8
|
||||
O4W5eXn/0IKD/9KIif/Wj5D/2ZWW/9ubm//dnp//3qCg/92foP/cnZ3/3Jyc/9+in//CiYf/Zj8/4wYC
|
||||
AnAAAAAbAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
|
||||
AA4AAAAnCQQEUCISEoQ+IiKzVzEx1mU6OuZiOTnmRigo0hgNDZsAAABMAAAAEAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAABnVJSK/HhIP/04eI/9aQkf/amJn/3qCh/+Gmp//jq6v/5Kyt/+OsrP/iqan/4aal/+ap
|
||||
p//Umpj/nmxr/C8ZGboAAABXAAAAGAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAIAAAAOAQAALRkNDWY+IiKpZDo63YZRUfigZGP/sHBv/7V0c/+xcnH/oWZm/2k+PvEfEBCcAAAAMQAA
|
||||
AAMAAAAAAAAAAAAAAAAAAAAALhAQFIZXVs/RjIz/1Y2O/9qYmP/eoaL/46qr/+aysv/ot7f/6rm5/+m4
|
||||
uf/otbX/5q+v/+uvrf/jqab/wYeF/28/P/QhEhKvAAAAXwAAACgAAAANAAAABQAAAAMAAAACAAAAAwAA
|
||||
AAUAAAAKAAAAFQAAADAdDg9oSSkptHZHRu2dYmL+t3Z1/758e/+6enn/tnh3/7d5eP+8fn3/w4SD/7Z6
|
||||
ef9eODfbBgICTgAAAAgAAAAAAAAAAAAAAAAAAAAAPhwcJJVjYuPXkZH/2JOU/92fn//iqqr/57O0/+u8
|
||||
vP/uwsL/78XG/+/Exf/twMD/67i4/+60sv/wtrP/zZKQ/5taWv9xQED2MRsaxAgEBIcAAABaAAAAQQAA
|
||||
ADcAAAA2AAAAOwAAAEUEAgJZHA4OfUcnJ7l5SkntqGxr/8CAfv/DgoH/vH59/7p+ff/DiIb/zZGP/9GT
|
||||
kf/UlJP/1peV/9eZl/+GVlbuGQsLVwAAAAcAAAAAAAAAAAAAAAAAAAAARiIiLZ9rauvZk5P/2peY/+Ck
|
||||
pP/lsLD/6ru7/+/Fxf/yzMz/9NDQ//PPz//xycr/7sDA//K5tv/1u7j/36Kg/6dmZf+mZWX/j1ZW/WM6
|
||||
OutDJSXQNBwcvDAaGrQ0HBy1PiIivUwsLMtkPDzfh1VU9a1xcP/EhIP/xIWE/7+Cgf/Ch4b/zZST/9mk
|
||||
ov/grq3/4a6t/96lo//eoJ7/36Kg/+Cjof+IWVjnGwwMQwAAAAIAAAAAAAAAAAAAAAAAAAAARyQkL6Br
|
||||
auzZk5P/25qb/+GnqP/ntLT/7cDA//LLy//209T/+NjY//fX1//00ND/8cbG//W9u//4vrz/46ak/7d0
|
||||
c/+vb27/s3Jy/7d2df+ucXD/pWpp/6Npaf+nbWz/sHVz/7p9fP/EhYT/yImI/8WIhv/DiIb/ypGP/9eg
|
||||
n//hr63/57q5/+rCwP/rwsD/6bq4/+evrf/nq6n/6q6r/9qgnv9wRkbDBwAAHgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAASCQkLZ1nZuvYkpP/25uc/+Opqv/qtrf/7cHB//TOzv/52Nj/+tzc//na2v/xz9D/8MfH//fA
|
||||
vv/6wb7/6a6r/8OBgP/DgoD/vX58/7h7ev+8fn3/woOC/8aHhv/HiYj/xoqJ/8aLif/Ijoz/zZST/9eg
|
||||
nv/hrav/6Lm3/+zCwf/uyMf/78nH/+/Dwf/uvLr/7ba0/+60sf/vtLL/8ri1/7J+fflMKSltAAAABAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAQyEhI5JcXOPWj5D/3Juc/8qVlf+BZmb/bl5e/4l4eP/AqKj/8tPT//LO
|
||||
zv+5p6b/w6qq//fBv//7wr//8LWy/86Ojf/Ojoz/0ZGP/9GSkP/OkY//zpOR/9GamP/VoJ//2qel/+Gv
|
||||
rf/nt7X/6727/+3Dwf/wycf/8czL//LLyf/yxsT/8cC+//G7uf/yubf/87m3//S7uP/4vrv/1J6c/3JH
|
||||
RrAdCgsWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRcXEYJNTcvPiIn/15aW/2VNTf85Ojr/Q0VF/0JF
|
||||
RP9dXFz/n5GR/+S/v/+bh4f/hXp6/+25uP/7wr//9bu4/9qcmv/Zmpj/252b/96gnf/ipKH/5q+s/+u+
|
||||
vP/vycf/8srI/+3Hxv/wysj/9c7M//TNy//0ysj/9MbE//TBv//1vrz/9r26//e9u//4vrv/+L+8//vB
|
||||
vv/hqqf/g1ZVzDwcHC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4+Ppq/env/05OT/2ZX
|
||||
V/9rbm7/fX9//3l6ev99f3//cHJy/5F9ff+ff3//XFhY/9eop//8wr//+L+8/+Wppv/ipaP/5qil/96i
|
||||
pP/Kmaz/1qi1//LGxP/tyMf/qb3J/23E3P9kw9//vMTN//jDwP/3wb//+MC9//i/vf/5v73/+b+8//i/
|
||||
vP/3vrv/+L68/92mo/+IWlnRRSMjOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcv
|
||||
L0mbX1/y15GS/6GAgP9XV1b/iYuL/4CBgf98fX3/cnR0/1dPT/++j4//km9w/9Sfnv/6wL3/+cC9/+6z
|
||||
sP/ssK3/0Z+u/4OH1P9YffD/QGPs/7KYyv/Ct7z/Ytrz/3Ts//8s2f//cbvU//m+u//4v7z/+L67//e9
|
||||
uv/1vLn/9Lq3//O5tv/zuLX/0puZ/4RVVctGIyM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADIXFwdrPDySq2ts/diZmf/ApKT/sKur/4CBgP95enr/iYiI/49zdP/do6P/36Ch/96e
|
||||
nv/zuLX/+sK///W7uP/1ubT/qZC//2qY+/9tnf//MGT6/56FxP/esK//nMbS/57n8/9+z+T/ybG3//a6
|
||||
t//zubb/8re0//C1s//utLH/7rKw/+qvrP++iIb9dklJtkMgISoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHIyMSazw8kZ5hYvXNjI3/2aSk/7OMjP+bd3f/sIKC/9KV
|
||||
lv/cnJz/2peY/9aRkf/koqL/+sG+//nAvf/5v7z/4amw/6qZx/+aouP/qpvP/+mxtv/2urj/6rGv/+S6
|
||||
u//ptrX/466n/+Ovqf/ssK7/6q6s/+isqv/oq6n/2J2b/6JubfFoPT2NOxoaFwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBoaCFowMFd7SEjAomZm9sWC
|
||||
gv/XkZL/25SV/9iSk//Wj5D/1IyN/9KHiP/UiIj/8bOx//rCv//3vbv/9ru4//O3s//xuLX/7q6e/+ej
|
||||
hf/npIn/7bCp/+Otp/+KsX3/ULdm/1WjWv+7oYz/5KWk/9uenP+4gH79glJRzVYuLlQgCAkGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA8HBwQVy4uS3FBQaCPV1fjsG5v/cmAgf/ShYb/0YKD/85+f//LeXr/2I2M//e8uf/1vLn/7rOx/+2y
|
||||
sP/lpJX/5qFY/+6xXP/djS3/35h9/86gl/9SwW7/Nd90/0WxXP+vlH//wYSE/49cW+VlOTmBQR4eHAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGk7OhqIWFd8oG5u8J5qav+eX2D/tmts/8Z0df/KdHX/yXJz/92T
|
||||
k//3vLn/7LGu/+Snpf/dm5L/4Z1q/+61dP/fmmX/15WM/9eYlv/Bm43/r6uR/6uNgP+WYWDtbkBAnUwn
|
||||
JzQVAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiFJSBnhC
|
||||
QgpqNDQJWSUlB08dHQdfKisKfENDFJJWViinbGtRvYOCjtOcm8/pt7X157y6/7eOjfhxRUW7aTk5m4RK
|
||||
StehWlr6uGdo/8Zwcf/dkpH/8bSx/+OnpP/YmZj/1ZWT/9ealP/Vl5X/0JCP/8eIhv+zdnb/lFtc6nA/
|
||||
QKRSKio/JQwNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AADTn6AB2qioDMuUlCHBhYU8voCAWcCBgXTEhoaLzZGQqdeensngrKvn47Sz/NOop/+yiIfyi2Bgs2k+
|
||||
PlZXKysPAAAAAUYlJRxcMTFYcj4+pYpMTeWmXF3+xnl5/9+Zl//dnJr/z46M/8KCgf+vc3L/ll9e831L
|
||||
S8hlOTl/TigoMy0REQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABzQUIDnmprDriGhifHlpZMzp6eeNCgoZ7On5+2yJqaybuPj9WnfHzVj2RkunVJ
|
||||
SYNbLy8/PRQUCgAAAAAAAAAAAAAAAAAAAAAAAAAAKRUVBU0pKSphNDRtd0BAsotNTd2ZW1vrkVlY4HtJ
|
||||
Sb5lOTmCUysrQTsbGxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCwsA2Y4OA5xQkImdkhIRHhKSll0R0dibUBAWWI2
|
||||
NkNUKCgoOhISDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhkZB0km
|
||||
Jh5LJiYsRSEhITATFAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//
|
||||
/////wAA////////AAD///////8AAP///////wAA////////AAD/+H////8AAP/gH////wAA/8Af////
|
||||
AAD/gA////8AAP+AD////wAA/wAP////AAD/AA////8AAP4AB////wAA/gAH////AAD8AAf///8AAPwA
|
||||
B////wAA/AAH////AAD8AAf///8AAPgAB////wAA+AAH//4HAAD4AAP/8AEAAPgAAf/AAQAA8AAA/wAA
|
||||
AADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAEAAPAAAAAAAQAA8AAAAAADAADwAAAAAAcAAPAA
|
||||
AAAADwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/AAD/gAAAA/8AAP/gAAAH/wAAgAAAAB//
|
||||
AAAAAAAAf/8AAAAD4AP//wAAgB/8H///AAD///////8AAP///////wAA////////AAD///////8AAP//
|
||||
/////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAYAAAAZAAAAGQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAARCQkYOh8fb0ooKK80HByiCQUFTAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAIhERFmA2Np2ITUz3lVNT/4dLS/5IKCi9AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAANjODiBllhY+61kZP+vY2P/pV5e/3xHRvEhEhJfAAAAAgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAASSgoN41VVeS6bW3/xW9w/8dwcf+9bG3/klZW/jogIIEAAAAGAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ1RkWcs2xs/8dxcv/HcHH/x3Bx/8Zwcf+iYWH/SSkpmAAA
|
||||
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC0tMZtgX+fGcnP/x3Bx/8dwcf/HcHH/x3Fy/61q
|
||||
av9UMTGqAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxRER1tm9v/8hxcv/HcHH/x3Bx/8dw
|
||||
cf/HcnP/tnRz/185OboAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAACIxXV7TEdHT/yHJz/8l1
|
||||
dv/Kd3j/ynd4/8p4eP/Bf37/bURDywAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNKysjo2Zm4Mt4
|
||||
ef/NfH3/z4GC/9GFhf/RhYb/0YWF/82Mi/9+UVHeCAICOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAACwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAGc+
|
||||
Pkm1c3P30IGC/9OJiv/XkZL/2ZaW/9mWl//YlJX/2JmY/5hnZfMeEBBrAAAABwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0FAgItHhAQWzAbG4IqFxeHDQcHWwAAABkAAAAAAAAAAAAA
|
||||
AAAAAAAAek1MdMN/f//VjI3/2piZ/9+io//hqKn/4qmp/+Clpf/jpqT/wImH/04xMLwAAAA6AAAABQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEbDg5GRygokW5CQs+MVlbxnGJh/JdfXvxnPz7hHA8PbgAA
|
||||
AAwAAAAAAAAAAAAAAACMW1qbz4qK/9qXl//gpqb/5rKz/+q6u//rvLz/6La2/+qxr//epKL/j1lZ+DUc
|
||||
HLACAQFPAAAAHQAAAA8AAAAPAAAAEwAAACIbDg5MVDExnYZUU+SpbWz+uXl4/7x+fP/AgoD/xoeF/72A
|
||||
f/9fOzu1AAAAHAAAAAAAAAAAAAAABJhkZK/VkZH/3Z+g/+axsf/twMD/8svL//LNzf/vxcX/8Lq4/+6z
|
||||
sf+1dHP/j1VU+144N9g7IiKqMhwclDcfH5RGKSmiYTw7v4tZWOiydXT+woOC/8aKiP/Ol5X/2aWj/9ui
|
||||
of/cnpz/2pyb/35TUrgAAAAVAAAAAAAAAAAAAAAFmmVkstaTk//hpaX/7Lm6//TLy//419f/+NnZ//TP
|
||||
z//1wb//9Lq3/8aGhP+1dHP/s3Rz/6xwb/+pb27+rnNy/7Z7ev/BhIL/yY2L/8+WlP/apqT/5be2/+vB
|
||||
v//rvrz/6bKw/+uvrf/Um5n/bUVEgAAAAAMAAAAAAAAAAAAAAAOTXV2q1ZGR/9CYmP+dfX7/o4yM/9e8
|
||||
vP/z0tL/zLOz/+u8u//5v7z/1peV/8uLif/Ki4r/yoyL/86Ukv/TnJv/2qSi/+Gtq//nuLb/7cPB//DJ
|
||||
x//xxsT/8b+9//G6t//zubf/77az/6d1dM89Hx8lAAAAAAAAAAAAAAAAAAAAAIJOTojNiIn/jGlp/01O
|
||||
Tv9UVlb/dnNz/7uhof+Pfn7/xJ+e//zCv//lqKb/3J2b/+Chnv/hpaT/7Ly5/+vHxv/MxMn/0MjN//LK
|
||||
yf/1x8X/9sLA//a/vP/3vrv/+L+8//S7uP+5hoXhYTo5RwAAAAAAAAAAAAAAAAAAAAAAAAAAaTs7RrVz
|
||||
dPKmfn7/cXJx/4SGhv97fX3/b2Zm/516ev+7kJD/+sG+//C2s//lqqr/rpbA/3aB2/+ql83/tMHK/2jc
|
||||
9P9OzOz/2r3B//q/vP/3vrv/9ry6//a8uf/ss7D/tYGA32c+Pk0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAvEhIHg01Njbp9fvrCn5//nI+P/4R7ev+fgID/2Jyd/9ybnP/ytrT/+b+8/+ewtf+Mld3/ZI36/5eI
|
||||
zv/Ttrn/sNLc/6/Czv/stLT/8re0/++0sf/tsq//2qCe/6Rxb8phODg+AAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABCIB8MeUZGbqRpata8gYH8x4mJ/9eTk//YkpP/04qL/+Cbmv/5wL3/9726/+Sw
|
||||
t//Zrrn/56qY/+2smf/lr6n/nLWJ/4Gtdf/Pppn/3qGf/7yEg/KJWViYTyoqIAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQh0dGXJAQGOXXl7NtnR1/8V7fP/MfH3/znt8/+il
|
||||
o//0urj/7LCu/+Whg//rq13/35VX/9Kek/9yvXz/ZbNv/6iCdfqYY2O/aj4+TCUJCgcAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACcamsBjFRVB4FERAh9PT0JjU1ND6VnZx+/hINF0JqZiNOjoty0iIf2hFBQw5lX
|
||||
V8+wY2P4xXR0/+aioP/oq6j/2pqT/92fif/Vlor/yYqJ/7N8efiVZmPGdERFYkEfHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFhgXFkJEdx5CQSMqSknbNlZWbz5uaws2cnOXBlJPnqH18r4dc
|
||||
XFFULy8OSCUlFm07O0+FSUmeoV1d3sF9fPrGhoX/snZ295xkZNiFUlKbbD4+T0UdHxIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0JDA5FgYRKdbm46onR0Zp9ycnuWampzhFlZVmY6
|
||||
OikvDAwHAAAAAAAAAAAAAAAAAAAAAB0ODgRULCwhbjo7UXhERGVrPDxHTCYmGxAAAQMAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//////////////////////D////gf///wH///4A///+AP///AD///wA///8AP//+AD
|
||||
///gA//D4AH+AeAA+ADgAAAAwAAAAMAAAADAAAAB4AAAA+AAAAfgAAAP8AAAH/wAAD8AAAD/AAAD/wB4
|
||||
D//H////////////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABMAAAAtAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgIO1cwMM1qOjrsHhAQmwAA
|
||||
ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAATCgogfUhI6ahgYP6lXV3+f0hI9wIBAT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsGBgFPLy6kuW1t/sZv
|
||||
cP/Gb3D/oF9e/hMKCmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4QECynZmX7xnBx/sdwcf/HcHH/tG1t/h8REYMAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAx
|
||||
MIzFc3T+xm9w/sdwcf7HcHH+vHR0/jAcHJkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ4OAYVSUtfIcnP/yXZ3/st5ef/LeHn/xoB//kQq
|
||||
KrEAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAJxYWGrNvb/7Nfn//0oeI/tSNjf/UjI3/1ZOS/mE+PtQAAAAXAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAIAAAARAAAALQAAADUAAAARAAAAAAAAAAAAAAAAQyYmUM6Ghv/Wj5D/3J2e/uCl
|
||||
pf/fpKT/4KOi/qRycPkHBARlAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAQAAJh8REYBYNTXMhVJR8XxM
|
||||
TO8gEhKeAAAAEAAAAAAAAAAAbUVEe9aPkP7doKD+5rKz/uu9vv7rvLz+6rKx/tqfnf5iNzfnCAQEcwAA
|
||||
ACoAAAAbAAAAIQIBATorGBiQhFNT67Z3dv68fn3+wYSD/siKiP6aZmX2AQAAKQAAAAAAAAAAd05Ni9eT
|
||||
lP/jq6z/7cLC/vXS0v/zz9D/8b69/uyxrv+samr/l15d+2tDQ+NkPz7bdkxL451nZve+gYD/yY2M/tWg
|
||||
n//jtrT/46+t/uOmpP+mdHPwBQMDFAAAAAAAAAAAdkpJh9iUlf7Hl5f+tJeX/uzOzv7lyMj+57y6/vS6
|
||||
t/7HhoX+xYaE/saJh/7MkpD+0ZmY/tejov7mt7X+7cXD/vDFxP7vvLr+8Le0/u2zsf5PMzOMDQcHAQAA
|
||||
AAAAAAAAYTg4X9OOj/9aUlL/YGJi/nh2dv+skJD/qo2M/vnAvf/dn53/4KKg/+Cnp/7vxsT/u8PM/sHI
|
||||
0P/1xsT/9sG+/ve+u//3vrv/87q3/ntVVLkkFhYIAAAAAAAAAAAAAAAAVC8wD6BkZOWjhIT/jo6O/n1+
|
||||
fv+eenv/xpGR/vi/vP/wtbL/mZPP/0Z2+v69nrr/gd/x/nfD2v/2vLr/9Lq3/vG2tP/lq6j/elJRrjQg
|
||||
IAoAAAAAAAAAAAAAAAAAAAAAAAAAAGc7OyeOWVnGv4eH/r2Fhf7YlZb+1Y6P/uinpv74v7z+3ay3/seo
|
||||
w/7srZ/+7LGv/qmyjv63qI7+5Kel/r2GhPZ1S0p1QCcmAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAd0pKOpReXtKxb3D/yXl6/sx5ev/ws7D/6q6s/+Ked/7npFb/2ZiP/ny7gP+OjW/9h1dWr2I7
|
||||
OiMAAAAAAAAAAAAAAAAAAAAAAAAAALSCggSqcXIbo2dnN61xcVS/h4eIzp2c2cKWle2OY2OGbz4+Y4xN
|
||||
Tr6zaWn84Jyb/9aXlv7Ji4r/p25t9INTUqZlPDw3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJg
|
||||
YASjcnMorH9/a6h7e4yabm6Df1NTU3VKSgwAAAAAAAAAAAAAAABgNDQgcj8/bntHR4ZnPDxTVTExDQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////APx//wD4P/8A8D//AOA//wDgH/8A4B//AMAf
|
||||
/wDAH8EAwA8AAMAAAADAAAAAwAAAAMAAAQDAAAMA4AAHAPgAHwAAAH8AAcH/AP///wD///8A////ACgA
|
||||
AAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQc
|
||||
HA5LKSlUNBwcSAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsO
|
||||
DgV/SkqHm1hY+X5HR90tGRkuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAB4SEhCr2Zm7sZwcf+oYWL5UC8vUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAACnl9fnMRwcf/IcXL/tmxs/mI8PGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAa0NCGbRsbdbMenv/zn5//8R9ff9ySkmCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAA
|
||||
AAkAAAAAAAAAAItYWDvFfn/y2ZWW/92fn//anJv/jWFgvwAAAB0AAAAAAAAAAAAAAAIzHBwiYjs7a3pM
|
||||
S6pqQkKjLBoaMwAAAACeZ2dZ05KS/em0tP/vxMT/77u6/8CHhfpmPDyvRysqYlExMV1ySEiGnWdn07qB
|
||||
gPzLkI//w4iG/HJLS3YAAAAAomloXsyRkf/DoKD/48bG/+jAv//hpKL/vX17/7h/fPu/iYj7z5qZ/+Gw
|
||||
rv/rvLr/77q3/9ScmuR9U1I+AAAAAJZbWz2ndnbxdG9v/4yCgv+4lJP/77Wy/86erP+6nsH/tsXR/8PH
|
||||
0P/4wsD/9b26/+Cppu2peXdiAAAAAQAAAABYKCgHn2lqe6eCguSsgoL90pKS//Cxrv/TrcP/s5y+/8i3
|
||||
s/+quab/26mh/82UktSgbm1TBAAAAwAAAACud3cEvYGBC7N6ehyyfHtyt39+3bNub9vLgYH05qak/+Kg
|
||||
g//OlH39jZR04Zd0aYmDT1EiAAAAAAAAAAAAAAAAr3t7D7aCgki5h4Z8uImJgah+fUltPz8ajU1ORq1s
|
||||
bI6vdHOgm2RkaYxJUiZgCygCAAAAAAAAAAAAAAAAAAAAAGo9PQF9UVEHcEdHCTodHQIAAAAAAAAAAAAA
|
||||
AAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AADh/wAAwf8AAMH/
|
||||
AACB/wAAgfkAAIDAAACAAAAAgAAAAIAAAACAAQAAAAcAAAAPAAAOfwAA//8AAA==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,263 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadGB : VirtualPad
|
||||
{
|
||||
|
||||
public VirtualPadGB()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(52, 24);
|
||||
ButtonPoints[5] = new Point(74, 24);
|
||||
ButtonPoints[6] = new Point(122, 24);
|
||||
ButtonPoints[7] = new Point(146, 24);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "s",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "S",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B3 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[6],
|
||||
TabIndex = 7,
|
||||
Text = "B",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B3.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B4 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[7],
|
||||
TabIndex = 8,
|
||||
Text = "A",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B4.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "s" : ".");
|
||||
input.Append(B2.Checked ? "S" : ".");
|
||||
input.Append(B3.Checked ? "B" : ".");
|
||||
input.Append(B4.Checked ? "A" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[6] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
if (buttons[7] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GB")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == PU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Up", PU.Checked);
|
||||
}
|
||||
else if (sender == PD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Down", PD.Checked);
|
||||
}
|
||||
else if (sender == PL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Left", PL.Checked);
|
||||
}
|
||||
else if (sender == PR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Right", PR.Checked);
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Select", B1.Checked);
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Start", B2.Checked);
|
||||
}
|
||||
else if (sender == B3)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("B", B3.Checked);
|
||||
}
|
||||
else if (sender == B4)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("A", B4.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GB") return;
|
||||
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky("Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky("Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky("Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky("Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Select", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Start", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky("B", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky("A", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,282 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
class VirtualPadGBA : VirtualPad
|
||||
{
|
||||
public VirtualPadGBA()
|
||||
{
|
||||
ButtonPoints[0] = new Point(36, 2);
|
||||
ButtonPoints[1] = new Point(36, 46);
|
||||
ButtonPoints[2] = new Point(24, 24);
|
||||
ButtonPoints[3] = new Point(46, 24);
|
||||
ButtonPoints[4] = new Point(72, 24);
|
||||
ButtonPoints[5] = new Point(94, 24);
|
||||
ButtonPoints[6] = new Point(122, 24);
|
||||
ButtonPoints[7] = new Point(146, 24);
|
||||
ButtonPoints[8] = new Point(2, 2);
|
||||
ButtonPoints[9] = new Point(166, 2);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(194, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "s",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "S",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B3 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[6],
|
||||
TabIndex = 7,
|
||||
Text = "B",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B3.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B4 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[7],
|
||||
TabIndex = 8,
|
||||
Text = "A",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B4.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B5 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[8],
|
||||
TabIndex = 8,
|
||||
Text = "L",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B5.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B6 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[9],
|
||||
TabIndex = 8,
|
||||
Text = "R",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B6.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
Controls.Add(B5);
|
||||
Controls.Add(B6);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "s" : ".");
|
||||
input.Append(B2.Checked ? "S" : ".");
|
||||
input.Append(B3.Checked ? "B" : ".");
|
||||
input.Append(B4.Checked ? "A" : ".");
|
||||
input.Append(B5.Checked ? "L" : ".");
|
||||
input.Append(B6.Checked ? "R" : ".");
|
||||
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[6] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
if (buttons[7] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
if (buttons[8] == '.') B5.Checked = false; else B5.Checked = true;
|
||||
if (buttons[9] == '.') B6.Checked = false; else B6.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GBA") return;
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky("Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky("Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky("Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky("Right", PR.Checked);
|
||||
else if (sender == B1)
|
||||
Global.StickyXORAdapter.SetSticky("Select", B1.Checked);
|
||||
else if (sender == B2)
|
||||
Global.StickyXORAdapter.SetSticky("Start", B2.Checked);
|
||||
else if (sender == B3)
|
||||
Global.StickyXORAdapter.SetSticky("B", B3.Checked);
|
||||
else if (sender == B4)
|
||||
Global.StickyXORAdapter.SetSticky("A", B4.Checked);
|
||||
else if (sender == B5)
|
||||
Global.StickyXORAdapter.SetSticky("L", B5.Checked);
|
||||
else if (sender == B6)
|
||||
Global.StickyXORAdapter.SetSticky("R", B6.Checked);
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GBA") return;
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky("Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky("Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky("Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky("Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Select", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Start", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky("B", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky("A", false);
|
||||
if (B5.Checked) Global.StickyXORAdapter.SetSticky("L", false);
|
||||
if (B6.Checked) Global.StickyXORAdapter.SetSticky("R", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
B5.Checked = false;
|
||||
B6.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,122 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadGBControl : VirtualPad
|
||||
{
|
||||
public VirtualPadGBControl()
|
||||
{
|
||||
ButtonPoints[0] = new Point(2, 2);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(108, 34);
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 5,
|
||||
Text = "Power",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
B1.ForeColor = Color.Red;
|
||||
|
||||
Controls.Add(B1);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B2.Checked ? "r" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 1) return;
|
||||
if (buttons[0] == '.' || buttons[0] == 'l' || buttons[0] == '0')
|
||||
{
|
||||
B2.Checked = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GB")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", B1.Checked);
|
||||
if (B1.Checked)
|
||||
{
|
||||
B1.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B1.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GB")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Power", false);
|
||||
|
||||
B1.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,239 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
class VirtualPadGen3Button : VirtualPad
|
||||
{
|
||||
public VirtualPadGen3Button()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(146, 36);
|
||||
ButtonPoints[5] = new Point(122, 2);
|
||||
ButtonPoints[6] = new Point(122, 36);
|
||||
ButtonPoints[7] = new Point(98, 36);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "C",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "S",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B3 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[6],
|
||||
TabIndex = 7,
|
||||
Text = "B",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B3.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B4 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[7],
|
||||
TabIndex = 8,
|
||||
Text = "A",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B4.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
switch (keyData)
|
||||
{
|
||||
case Keys.Up:
|
||||
Refresh();
|
||||
break;
|
||||
case Keys.Down:
|
||||
Refresh();
|
||||
break;
|
||||
case Keys.Left:
|
||||
Refresh();
|
||||
break;
|
||||
case Keys.Right:
|
||||
Refresh();
|
||||
break;
|
||||
case Keys.Tab:
|
||||
Refresh();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "C" : ".");
|
||||
input.Append(B2.Checked ? "S" : ".");
|
||||
input.Append(B3.Checked ? "B" : ".");
|
||||
input.Append(B4.Checked ? "A" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[6] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
if (buttons[7] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GEN") return;
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
else if (sender == B1)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " C", B1.Checked);
|
||||
else if (sender == B2)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Start", B2.Checked);
|
||||
else if (sender == B3)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B", B3.Checked);
|
||||
else if (sender == B4)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " A", B4.Checked);
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "GEN") return;
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " C", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky(Controller + " A", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,228 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadGen6Button
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.BStart = new System.Windows.Forms.CheckBox();
|
||||
this.BZ = new System.Windows.Forms.CheckBox();
|
||||
this.BX = new System.Windows.Forms.CheckBox();
|
||||
this.BY = new System.Windows.Forms.CheckBox();
|
||||
this.BC = new System.Windows.Forms.CheckBox();
|
||||
this.BA = new System.Windows.Forms.CheckBox();
|
||||
this.BB = new System.Windows.Forms.CheckBox();
|
||||
this.PL = new System.Windows.Forms.CheckBox();
|
||||
this.PD = new System.Windows.Forms.CheckBox();
|
||||
this.PR = new System.Windows.Forms.CheckBox();
|
||||
this.PU = new System.Windows.Forms.CheckBox();
|
||||
this.BM = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// BStart
|
||||
//
|
||||
this.BStart.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BStart.AutoSize = true;
|
||||
this.BStart.Location = new System.Drawing.Point(74, 28);
|
||||
this.BStart.Name = "BStart";
|
||||
this.BStart.Size = new System.Drawing.Size(24, 23);
|
||||
this.BStart.TabIndex = 31;
|
||||
this.BStart.Text = "S";
|
||||
this.BStart.UseVisualStyleBackColor = true;
|
||||
this.BStart.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BZ
|
||||
//
|
||||
this.BZ.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BZ.AutoSize = true;
|
||||
this.BZ.Location = new System.Drawing.Point(153, 4);
|
||||
this.BZ.Name = "BZ";
|
||||
this.BZ.Size = new System.Drawing.Size(24, 23);
|
||||
this.BZ.TabIndex = 30;
|
||||
this.BZ.Text = "Z";
|
||||
this.BZ.UseVisualStyleBackColor = true;
|
||||
this.BZ.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BX
|
||||
//
|
||||
this.BX.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BX.AutoSize = true;
|
||||
this.BX.Location = new System.Drawing.Point(103, 14);
|
||||
this.BX.Name = "BX";
|
||||
this.BX.Size = new System.Drawing.Size(24, 23);
|
||||
this.BX.TabIndex = 29;
|
||||
this.BX.Text = "X";
|
||||
this.BX.UseVisualStyleBackColor = true;
|
||||
this.BX.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BY
|
||||
//
|
||||
this.BY.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BY.AutoSize = true;
|
||||
this.BY.Location = new System.Drawing.Point(128, 9);
|
||||
this.BY.Name = "BY";
|
||||
this.BY.Size = new System.Drawing.Size(24, 23);
|
||||
this.BY.TabIndex = 28;
|
||||
this.BY.Text = "Y";
|
||||
this.BY.UseVisualStyleBackColor = true;
|
||||
this.BY.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BC
|
||||
//
|
||||
this.BC.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BC.AutoSize = true;
|
||||
this.BC.Location = new System.Drawing.Point(154, 31);
|
||||
this.BC.Name = "BC";
|
||||
this.BC.Size = new System.Drawing.Size(24, 23);
|
||||
this.BC.TabIndex = 27;
|
||||
this.BC.Text = "C";
|
||||
this.BC.UseVisualStyleBackColor = true;
|
||||
this.BC.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BA
|
||||
//
|
||||
this.BA.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BA.AutoSize = true;
|
||||
this.BA.Location = new System.Drawing.Point(104, 41);
|
||||
this.BA.Name = "BA";
|
||||
this.BA.Size = new System.Drawing.Size(24, 23);
|
||||
this.BA.TabIndex = 26;
|
||||
this.BA.Text = "A";
|
||||
this.BA.UseVisualStyleBackColor = true;
|
||||
this.BA.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BB
|
||||
//
|
||||
this.BB.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BB.AutoSize = true;
|
||||
this.BB.Location = new System.Drawing.Point(129, 36);
|
||||
this.BB.Name = "BB";
|
||||
this.BB.Size = new System.Drawing.Size(24, 23);
|
||||
this.BB.TabIndex = 25;
|
||||
this.BB.Text = "B";
|
||||
this.BB.UseVisualStyleBackColor = true;
|
||||
this.BB.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PL
|
||||
//
|
||||
this.PL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL.AutoSize = true;
|
||||
this.PL.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL.Location = new System.Drawing.Point(4, 28);
|
||||
this.PL.Name = "PL";
|
||||
this.PL.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL.TabIndex = 24;
|
||||
this.PL.UseVisualStyleBackColor = true;
|
||||
this.PL.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PD
|
||||
//
|
||||
this.PD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD.AutoSize = true;
|
||||
this.PD.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD.Location = new System.Drawing.Point(25, 37);
|
||||
this.PD.Name = "PD";
|
||||
this.PD.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD.TabIndex = 23;
|
||||
this.PD.UseVisualStyleBackColor = true;
|
||||
this.PD.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PR
|
||||
//
|
||||
this.PR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR.AutoSize = true;
|
||||
this.PR.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR.Location = new System.Drawing.Point(46, 28);
|
||||
this.PR.Name = "PR";
|
||||
this.PR.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR.TabIndex = 22;
|
||||
this.PR.UseVisualStyleBackColor = true;
|
||||
this.PR.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PU
|
||||
//
|
||||
this.PU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU.AutoSize = true;
|
||||
this.PU.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU.Location = new System.Drawing.Point(25, 16);
|
||||
this.PU.Name = "PU";
|
||||
this.PU.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU.TabIndex = 21;
|
||||
this.PU.UseVisualStyleBackColor = true;
|
||||
this.PU.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BM
|
||||
//
|
||||
this.BM.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BM.AutoSize = true;
|
||||
this.BM.Location = new System.Drawing.Point(63, 56);
|
||||
this.BM.Name = "BM";
|
||||
this.BM.Size = new System.Drawing.Size(26, 23);
|
||||
this.BM.TabIndex = 32;
|
||||
this.BM.Text = "M";
|
||||
this.BM.UseVisualStyleBackColor = true;
|
||||
this.BM.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadGen6Button
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.BM);
|
||||
this.Controls.Add(this.BStart);
|
||||
this.Controls.Add(this.BZ);
|
||||
this.Controls.Add(this.BX);
|
||||
this.Controls.Add(this.BY);
|
||||
this.Controls.Add(this.BC);
|
||||
this.Controls.Add(this.BA);
|
||||
this.Controls.Add(this.BB);
|
||||
this.Controls.Add(this.PL);
|
||||
this.Controls.Add(this.PD);
|
||||
this.Controls.Add(this.PR);
|
||||
this.Controls.Add(this.PU);
|
||||
this.Name = "VirtualPadGen6Button";
|
||||
this.Size = new System.Drawing.Size(181, 83);
|
||||
this.Load += new System.EventHandler(this.VirtualPadGen6Button_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox BStart;
|
||||
private System.Windows.Forms.CheckBox BZ;
|
||||
private System.Windows.Forms.CheckBox BX;
|
||||
private System.Windows.Forms.CheckBox BY;
|
||||
private System.Windows.Forms.CheckBox BC;
|
||||
private System.Windows.Forms.CheckBox BA;
|
||||
private System.Windows.Forms.CheckBox BB;
|
||||
private System.Windows.Forms.CheckBox PL;
|
||||
private System.Windows.Forms.CheckBox PD;
|
||||
private System.Windows.Forms.CheckBox PR;
|
||||
private System.Windows.Forms.CheckBox PU;
|
||||
private System.Windows.Forms.CheckBox BM;
|
||||
}
|
||||
}
|
|
@ -1,193 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadGen6Button : UserControl, IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
|
||||
public VirtualPadGen6Button()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = "P1";
|
||||
}
|
||||
|
||||
private void VirtualPadGen6Button_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
// TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(BA.Checked ? "A" : ".");
|
||||
input.Append(BB.Checked ? "B" : ".");
|
||||
input.Append(BC.Checked ? "C" : ".");
|
||||
|
||||
input.Append(BStart.Checked ? "S" : ".");
|
||||
|
||||
input.Append(BX.Checked ? "X" : ".");
|
||||
input.Append(BY.Checked ? "Y" : ".");
|
||||
input.Append(BZ.Checked ? "Z" : ".");
|
||||
|
||||
input.Append(BM.Checked ? "M" : ".");
|
||||
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
|
||||
if (BA.Checked) Global.StickyXORAdapter.SetSticky(Controller + " A", false);
|
||||
if (BB.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B", false);
|
||||
if (BC.Checked) Global.StickyXORAdapter.SetSticky(Controller + " C", false);
|
||||
|
||||
if (BStart.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
|
||||
|
||||
if (BX.Checked) Global.StickyXORAdapter.SetSticky(Controller + " X", false);
|
||||
if (BY.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Y", false);
|
||||
if (BZ.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Z", false);
|
||||
|
||||
if (BM.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Mode", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
BStart.Checked = false;
|
||||
|
||||
BA.Checked = false;
|
||||
BB.Checked = false;
|
||||
BC.Checked = false;
|
||||
|
||||
BX.Checked = false;
|
||||
BY.Checked = false;
|
||||
BZ.Checked = false;
|
||||
|
||||
BM.Checked = false;
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 12) return;
|
||||
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') BA.Checked = false; else BA.Checked = true;
|
||||
if (buttons[5] == '.') BB.Checked = false; else BB.Checked = true;
|
||||
if (buttons[6] == '.') BC.Checked = false; else BC.Checked = true;
|
||||
|
||||
if (buttons[7] == '.') BStart.Checked = false; else BStart.Checked = true;
|
||||
|
||||
if (buttons[8] == '.') BX.Checked = false; else BX.Checked = true;
|
||||
if (buttons[9] == '.') BY.Checked = false; else BY.Checked = true;
|
||||
if (buttons[10] == '.') BZ.Checked = false; else BZ.Checked = true;
|
||||
|
||||
if (buttons[11] == '.') BM.Checked = false; else BM.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender == PU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
}
|
||||
else if (sender == PD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
}
|
||||
else if (sender == PL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
}
|
||||
else if (sender == PR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
}
|
||||
|
||||
else if (sender == BA)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " A", BA.Checked);
|
||||
}
|
||||
else if (sender == BB)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B", BB.Checked);
|
||||
}
|
||||
else if (sender == BC)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " C", BC.Checked);
|
||||
}
|
||||
|
||||
else if (sender == BStart)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Start", BStart.Checked);
|
||||
}
|
||||
else if (sender == BX)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " X", BX.Checked);
|
||||
}
|
||||
else if (sender == BY)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Y", BY.Checked);
|
||||
}
|
||||
else if (sender == BZ)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Z", BZ.Checked);
|
||||
}
|
||||
|
||||
else if (sender == BM)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Mode", BM.Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,419 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadN64
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.ManualX = new System.Windows.Forms.NumericUpDown();
|
||||
this.ManualY = new System.Windows.Forms.NumericUpDown();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||
this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
|
||||
this.CD = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.CR = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.CL = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.CU = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.BA = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.BB = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.BZ = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.BS = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.BR = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.BL = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.PL = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.PD = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.PR = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.PU = new BizHawk.Client.EmuHawk.VirtualPadButton();
|
||||
this.AnalogControl1 = new BizHawk.Client.EmuHawk.AnalogControlPanel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ManualX)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ManualY)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ManualX
|
||||
//
|
||||
this.ManualX.Location = new System.Drawing.Point(144, 30);
|
||||
this.ManualX.Maximum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.ManualX.Minimum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.ManualX.Name = "ManualX";
|
||||
this.ManualX.Size = new System.Drawing.Size(47, 20);
|
||||
this.ManualX.TabIndex = 20;
|
||||
this.ManualX.ValueChanged += new System.EventHandler(this.ManualX_ValueChanged);
|
||||
this.ManualX.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ManualX_KeyUp);
|
||||
//
|
||||
// ManualY
|
||||
//
|
||||
this.ManualY.Location = new System.Drawing.Point(144, 69);
|
||||
this.ManualY.Maximum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.ManualY.Minimum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.ManualY.Name = "ManualY";
|
||||
this.ManualY.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||
this.ManualY.Size = new System.Drawing.Size(47, 20);
|
||||
this.ManualY.TabIndex = 21;
|
||||
this.ManualY.ValueChanged += new System.EventHandler(this.ManualY_ValueChanged);
|
||||
this.ManualY.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ManualY_KeyUp);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(144, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(14, 13);
|
||||
this.label1.TabIndex = 22;
|
||||
this.label1.Text = "X";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(144, 53);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(14, 13);
|
||||
this.label2.TabIndex = 23;
|
||||
this.label2.Text = "Y";
|
||||
//
|
||||
// numericUpDown1
|
||||
//
|
||||
this.numericUpDown1.Location = new System.Drawing.Point(4, 269);
|
||||
this.numericUpDown1.Maximum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Minimum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.numericUpDown1.Name = "numericUpDown1";
|
||||
this.numericUpDown1.Size = new System.Drawing.Size(55, 20);
|
||||
this.numericUpDown1.TabIndex = 24;
|
||||
this.numericUpDown1.TabStop = false;
|
||||
this.numericUpDown1.Value = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Visible = false;
|
||||
this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
|
||||
//
|
||||
// numericUpDown2
|
||||
//
|
||||
this.numericUpDown2.Location = new System.Drawing.Point(4, 292);
|
||||
this.numericUpDown2.Maximum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown2.Minimum = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.numericUpDown2.Name = "numericUpDown2";
|
||||
this.numericUpDown2.Size = new System.Drawing.Size(55, 20);
|
||||
this.numericUpDown2.TabIndex = 25;
|
||||
this.numericUpDown2.TabStop = false;
|
||||
this.numericUpDown2.Value = new decimal(new int[] {
|
||||
127,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.numericUpDown2.Visible = false;
|
||||
this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged);
|
||||
//
|
||||
// CD
|
||||
//
|
||||
this.CD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.CD.AutoSize = true;
|
||||
this.CD.ForeColor = System.Drawing.Color.Black;
|
||||
this.CD.Location = new System.Drawing.Point(147, 281);
|
||||
this.CD.Name = "CD";
|
||||
this.CD.Size = new System.Drawing.Size(31, 23);
|
||||
this.CD.TabIndex = 17;
|
||||
this.CD.TabStop = false;
|
||||
this.CD.Text = "cD";
|
||||
this.CD.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// CR
|
||||
//
|
||||
this.CR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.CR.AutoSize = true;
|
||||
this.CR.ForeColor = System.Drawing.Color.Black;
|
||||
this.CR.Location = new System.Drawing.Point(164, 258);
|
||||
this.CR.Name = "CR";
|
||||
this.CR.Size = new System.Drawing.Size(31, 23);
|
||||
this.CR.TabIndex = 16;
|
||||
this.CR.TabStop = false;
|
||||
this.CR.Text = "cR";
|
||||
this.CR.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// CL
|
||||
//
|
||||
this.CL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.CL.AutoSize = true;
|
||||
this.CL.ForeColor = System.Drawing.Color.Black;
|
||||
this.CL.Location = new System.Drawing.Point(129, 258);
|
||||
this.CL.Name = "CL";
|
||||
this.CL.Size = new System.Drawing.Size(29, 23);
|
||||
this.CL.TabIndex = 15;
|
||||
this.CL.TabStop = false;
|
||||
this.CL.Text = "cL";
|
||||
this.CL.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// CU
|
||||
//
|
||||
this.CU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.CU.AutoSize = true;
|
||||
this.CU.ForeColor = System.Drawing.Color.Black;
|
||||
this.CU.Location = new System.Drawing.Point(147, 235);
|
||||
this.CU.Name = "CU";
|
||||
this.CU.Size = new System.Drawing.Size(31, 23);
|
||||
this.CU.TabIndex = 14;
|
||||
this.CU.TabStop = false;
|
||||
this.CU.Text = "cU";
|
||||
this.CU.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BA
|
||||
//
|
||||
this.BA.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BA.AutoSize = true;
|
||||
this.BA.ForeColor = System.Drawing.Color.Black;
|
||||
this.BA.Location = new System.Drawing.Point(113, 206);
|
||||
this.BA.Name = "BA";
|
||||
this.BA.Size = new System.Drawing.Size(24, 23);
|
||||
this.BA.TabIndex = 13;
|
||||
this.BA.TabStop = false;
|
||||
this.BA.Text = "A";
|
||||
this.BA.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BB
|
||||
//
|
||||
this.BB.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BB.AutoSize = true;
|
||||
this.BB.ForeColor = System.Drawing.Color.Black;
|
||||
this.BB.Location = new System.Drawing.Point(83, 195);
|
||||
this.BB.Name = "BB";
|
||||
this.BB.Size = new System.Drawing.Size(24, 23);
|
||||
this.BB.TabIndex = 12;
|
||||
this.BB.TabStop = false;
|
||||
this.BB.Text = "B";
|
||||
this.BB.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BZ
|
||||
//
|
||||
this.BZ.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BZ.AutoSize = true;
|
||||
this.BZ.ForeColor = System.Drawing.Color.Black;
|
||||
this.BZ.Location = new System.Drawing.Point(74, 245);
|
||||
this.BZ.Name = "BZ";
|
||||
this.BZ.Size = new System.Drawing.Size(24, 23);
|
||||
this.BZ.TabIndex = 11;
|
||||
this.BZ.TabStop = false;
|
||||
this.BZ.Text = "Z";
|
||||
this.BZ.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BS
|
||||
//
|
||||
this.BS.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BS.AutoSize = true;
|
||||
this.BS.ForeColor = System.Drawing.Color.Black;
|
||||
this.BS.Location = new System.Drawing.Point(87, 157);
|
||||
this.BS.Name = "BS";
|
||||
this.BS.Size = new System.Drawing.Size(24, 23);
|
||||
this.BS.TabIndex = 10;
|
||||
this.BS.TabStop = false;
|
||||
this.BS.Text = "S";
|
||||
this.BS.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BR
|
||||
//
|
||||
this.BR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BR.AutoSize = true;
|
||||
this.BR.ForeColor = System.Drawing.Color.Black;
|
||||
this.BR.Location = new System.Drawing.Point(172, 148);
|
||||
this.BR.Name = "BR";
|
||||
this.BR.Size = new System.Drawing.Size(25, 23);
|
||||
this.BR.TabIndex = 9;
|
||||
this.BR.TabStop = false;
|
||||
this.BR.Text = "R";
|
||||
this.BR.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BL
|
||||
//
|
||||
this.BL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BL.AutoSize = true;
|
||||
this.BL.ForeColor = System.Drawing.Color.Black;
|
||||
this.BL.Location = new System.Drawing.Point(3, 148);
|
||||
this.BL.Name = "BL";
|
||||
this.BL.Size = new System.Drawing.Size(23, 23);
|
||||
this.BL.TabIndex = 8;
|
||||
this.BL.TabStop = false;
|
||||
this.BL.Text = "L";
|
||||
this.BL.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// PL
|
||||
//
|
||||
this.PL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL.AutoSize = true;
|
||||
this.PL.ForeColor = System.Drawing.Color.Black;
|
||||
this.PL.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL.Location = new System.Drawing.Point(3, 207);
|
||||
this.PL.Name = "PL";
|
||||
this.PL.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL.TabIndex = 7;
|
||||
this.PL.TabStop = false;
|
||||
this.PL.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// PD
|
||||
//
|
||||
this.PD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD.AutoSize = true;
|
||||
this.PD.ForeColor = System.Drawing.Color.Black;
|
||||
this.PD.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD.Location = new System.Drawing.Point(24, 216);
|
||||
this.PD.Name = "PD";
|
||||
this.PD.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD.TabIndex = 6;
|
||||
this.PD.TabStop = false;
|
||||
this.PD.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// PR
|
||||
//
|
||||
this.PR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR.AutoSize = true;
|
||||
this.PR.ForeColor = System.Drawing.Color.Black;
|
||||
this.PR.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR.Location = new System.Drawing.Point(45, 207);
|
||||
this.PR.Name = "PR";
|
||||
this.PR.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR.TabIndex = 5;
|
||||
this.PR.TabStop = false;
|
||||
this.PR.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// PU
|
||||
//
|
||||
this.PU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU.AutoSize = true;
|
||||
this.PU.ForeColor = System.Drawing.Color.Black;
|
||||
this.PU.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU.Location = new System.Drawing.Point(24, 195);
|
||||
this.PU.Name = "PU";
|
||||
this.PU.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU.TabIndex = 4;
|
||||
this.PU.TabStop = false;
|
||||
this.PU.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// AnalogControl1
|
||||
//
|
||||
this.AnalogControl1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.AnalogControl1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.AnalogControl1.Location = new System.Drawing.Point(6, 14);
|
||||
this.AnalogControl1.Name = "AnalogControl1";
|
||||
this.AnalogControl1.Size = new System.Drawing.Size(132, 132);
|
||||
this.AnalogControl1.TabIndex = 0;
|
||||
this.AnalogControl1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.AnalogControl1_MouseClick);
|
||||
this.AnalogControl1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.AnalogControl1_MouseMove);
|
||||
//
|
||||
// VirtualPadN64
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.numericUpDown2);
|
||||
this.Controls.Add(this.numericUpDown1);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.ManualY);
|
||||
this.Controls.Add(this.ManualX);
|
||||
this.Controls.Add(this.CD);
|
||||
this.Controls.Add(this.CR);
|
||||
this.Controls.Add(this.CL);
|
||||
this.Controls.Add(this.CU);
|
||||
this.Controls.Add(this.BA);
|
||||
this.Controls.Add(this.BB);
|
||||
this.Controls.Add(this.BZ);
|
||||
this.Controls.Add(this.BS);
|
||||
this.Controls.Add(this.BR);
|
||||
this.Controls.Add(this.BL);
|
||||
this.Controls.Add(this.PL);
|
||||
this.Controls.Add(this.PD);
|
||||
this.Controls.Add(this.PR);
|
||||
this.Controls.Add(this.PU);
|
||||
this.Controls.Add(this.AnalogControl1);
|
||||
this.Name = "VirtualPadN64";
|
||||
this.Size = new System.Drawing.Size(200, 316);
|
||||
this.Load += new System.EventHandler(this.UserControl1_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.ManualX)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ManualY)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AnalogControlPanel AnalogControl1;
|
||||
private VirtualPadButton PL;
|
||||
private VirtualPadButton PD;
|
||||
private VirtualPadButton PR;
|
||||
private VirtualPadButton PU;
|
||||
private VirtualPadButton BL;
|
||||
private VirtualPadButton BR;
|
||||
private VirtualPadButton BS;
|
||||
private VirtualPadButton BZ;
|
||||
private VirtualPadButton BB;
|
||||
private VirtualPadButton BA;
|
||||
private VirtualPadButton CU;
|
||||
private VirtualPadButton CL;
|
||||
private VirtualPadButton CR;
|
||||
private VirtualPadButton CD;
|
||||
private System.Windows.Forms.NumericUpDown ManualY;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.NumericUpDown ManualX;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown2;
|
||||
}
|
||||
}
|
|
@ -1,263 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadN64 : UserControl, IVirtualPad
|
||||
{
|
||||
private string _controllerNum = string.Empty;
|
||||
public string Controller
|
||||
{
|
||||
get
|
||||
{
|
||||
return _controllerNum;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
AnalogControl1.Controller = _controllerNum = value;
|
||||
}
|
||||
}
|
||||
|
||||
private int old_X = 0;
|
||||
private int old_Y = 0;
|
||||
|
||||
public VirtualPadN64()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = "P1";
|
||||
}
|
||||
|
||||
private void UserControl1_Load(object sender, EventArgs e)
|
||||
{
|
||||
// adelikat: What's wrong with having this on players 2 - 4?
|
||||
if (Controller == "P1")
|
||||
{
|
||||
numericUpDown1.Visible = true;
|
||||
numericUpDown2.Visible = true;
|
||||
}
|
||||
|
||||
PU.ControllerButton = Controller + " Up";
|
||||
PD.ControllerButton = Controller + " Down";
|
||||
PL.ControllerButton = Controller + " Left";
|
||||
PR.ControllerButton = Controller + " Right";
|
||||
|
||||
BA.ControllerButton = Controller + " A";
|
||||
BB.ControllerButton = Controller + " B";
|
||||
BZ.ControllerButton = Controller + " Z";
|
||||
|
||||
BS.ControllerButton = Controller + " Start";
|
||||
|
||||
BL.ControllerButton = Controller + " L";
|
||||
BR.ControllerButton = Controller + " R";
|
||||
|
||||
CU.ControllerButton = Controller + " C Up";
|
||||
CD.ControllerButton = Controller + " C Down";
|
||||
CL.ControllerButton = Controller + " C Left";
|
||||
CR.ControllerButton = Controller + " C Right";
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "N64")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var button in Buttons)
|
||||
{
|
||||
button.Clear();
|
||||
AnalogControl1.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 14) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
if (buttons[4] == '.') BB.Checked = false; else BB.Checked = true;
|
||||
if (buttons[5] == '.') BA.Checked = false; else BA.Checked = true;
|
||||
if (buttons[6] == '.') BZ.Checked = false; else BZ.Checked = true;
|
||||
if (buttons[7] == '.') BS.Checked = false; else BS.Checked = true;
|
||||
if (buttons[8] == '.') BL.Checked = false; else BL.Checked = true;
|
||||
if (buttons[9] == '.') BR.Checked = false; else BR.Checked = true;
|
||||
if (buttons[10] == '.') CU.Checked = false; else CU.Checked = true;
|
||||
if (buttons[11] == '.') CD.Checked = false; else CD.Checked = true;
|
||||
if (buttons[12] == '.') CL.Checked = false; else CL.Checked = true;
|
||||
if (buttons[13] == '.') CR.Checked = false; else CR.Checked = true;
|
||||
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
x = int.Parse(buttons.Substring(14, 4));
|
||||
y = int.Parse(buttons.Substring(19, 4));
|
||||
|
||||
set_analog(true, x, y);
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(BB.Checked ? "B" : ".");
|
||||
input.Append(BA.Checked ? "A" : ".");
|
||||
input.Append(BZ.Checked ? "Z" : ".");
|
||||
input.Append(BS.Checked ? "S" : ".");
|
||||
|
||||
input.Append(BL.Checked ? "L" : ".");
|
||||
input.Append(BR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(CU.Checked ? "u" : ".");
|
||||
input.Append(CD.Checked ? "d" : ".");
|
||||
input.Append(CL.Checked ? "l" : ".");
|
||||
input.Append(CR.Checked ? "r" : ".");
|
||||
input.Append(String.Format("{0:000}", AnalogControl1.X + 128));
|
||||
input.Append(String.Format("{0:000}", AnalogControl1.Y + 128));
|
||||
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
private void AnalogControl1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
set_analog(AnalogControl1.HasValue, AnalogControl1.X, AnalogControl1.Y);
|
||||
}
|
||||
|
||||
private void AnalogControl1_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
set_analog(AnalogControl1.HasValue, AnalogControl1.X, AnalogControl1.Y);
|
||||
}
|
||||
|
||||
private void ManualX_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
SetAnalogControlFromNumerics();
|
||||
}
|
||||
|
||||
private void ManualY_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
SetAnalogControlFromNumerics();
|
||||
}
|
||||
|
||||
public void RefreshAnalog()
|
||||
{
|
||||
AnalogControl1.Refresh();
|
||||
}
|
||||
|
||||
public void set_analog(bool hasValue, int X, int Y)
|
||||
{
|
||||
int? x = hasValue ? X : (int?)null;
|
||||
int? y = hasValue ? Y : (int?)null;
|
||||
Global.StickyXORAdapter.SetFloat(Controller + " X Axis", x);
|
||||
Global.StickyXORAdapter.SetFloat(Controller + " Y Axis", y);
|
||||
|
||||
AnalogControl1.X = X;
|
||||
AnalogControl1.Y = Y;
|
||||
AnalogControl1.Refresh();
|
||||
|
||||
old_X = X;
|
||||
old_Y = Y;
|
||||
ManualX.Value = X;
|
||||
ManualY.Value = Y;
|
||||
}
|
||||
|
||||
//TODO: multiplayer
|
||||
public void FudgeAnalog(int? dx, int? dy)
|
||||
{
|
||||
int newx = AnalogControl1.X;
|
||||
int newy = AnalogControl1.Y;
|
||||
if (dx.HasValue)
|
||||
{
|
||||
newx = AnalogControl1.X + dx.Value;
|
||||
if (newx > AnalogControlPanel.Max) newx = AnalogControlPanel.Max;
|
||||
if (newx < AnalogControlPanel.Min) newx = AnalogControlPanel.Min;
|
||||
|
||||
}
|
||||
|
||||
if (dy.HasValue)
|
||||
{
|
||||
newy = AnalogControl1.Y + dy.Value;
|
||||
if (newy > AnalogControlPanel.Max) newy = AnalogControlPanel.Max;
|
||||
if (newy < AnalogControlPanel.Min) newy = AnalogControlPanel.Min;
|
||||
|
||||
}
|
||||
|
||||
AnalogControl1.SetPosition(newx, newy);
|
||||
ManualX.Value = newx;
|
||||
ManualY.Value = newy;
|
||||
Refresh();
|
||||
}
|
||||
|
||||
public List<VirtualPadButton> Buttons
|
||||
{
|
||||
get
|
||||
{
|
||||
List<VirtualPadButton> _list = new List<VirtualPadButton>();
|
||||
foreach(Control c in this.Controls)
|
||||
{
|
||||
if (c is VirtualPadButton)
|
||||
{
|
||||
_list.Add((c as VirtualPadButton));
|
||||
}
|
||||
}
|
||||
return _list;
|
||||
}
|
||||
}
|
||||
|
||||
private void ManualX_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
SetAnalogControlFromNumerics();
|
||||
}
|
||||
|
||||
private void ManualY_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
SetAnalogControlFromNumerics();
|
||||
}
|
||||
|
||||
public void SetAnalogControlFromNumerics()
|
||||
{
|
||||
int x = (int)ManualX.Value;
|
||||
int y = (int)ManualY.Value;
|
||||
Global.StickyXORAdapter.SetFloat(Controller + " X Axis", x);
|
||||
Global.StickyXORAdapter.SetFloat(Controller + " Y Axis", y);
|
||||
|
||||
old_X = x;
|
||||
old_Y = y;
|
||||
AnalogControl1.HasValue = true;
|
||||
AnalogControl1.X = x;
|
||||
AnalogControl1.Y = y;
|
||||
AnalogControl1.Refresh();
|
||||
}
|
||||
|
||||
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
AnalogControlPanel.Max = (int)numericUpDown1.Value;
|
||||
ManualX.Maximum = (int)numericUpDown1.Value;
|
||||
ManualY.Maximum = (int)numericUpDown1.Value;
|
||||
AnalogControl1.Refresh();
|
||||
}
|
||||
|
||||
private void numericUpDown2_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
AnalogControlPanel.Min = (int)numericUpDown2.Value;
|
||||
ManualX.Minimum = (int)numericUpDown2.Value;
|
||||
ManualY.Minimum = (int)numericUpDown2.Value;
|
||||
AnalogControl1.Refresh();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,149 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadN64Control : VirtualPad
|
||||
{
|
||||
public VirtualPadN64Control()
|
||||
{
|
||||
ButtonPoints[0] = new Point(2, 2);
|
||||
ButtonPoints[1] = new Point(56, 2);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(108, 34);
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 5,
|
||||
Text = "Power",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true,
|
||||
TabStop = false
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
B1.ForeColor = Color.Red;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 6,
|
||||
Text = "Reset",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true,
|
||||
TabStop = false
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
B2.ForeColor = Color.Red;
|
||||
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B2.Checked ? "r" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (buttons[0] == 'P')
|
||||
{
|
||||
B1.Checked = true;
|
||||
}
|
||||
else if (buttons[0] == '.' || buttons[0] == 'l' || buttons[0] == '0')
|
||||
{
|
||||
B2.Checked = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "N64")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", B1.Checked);
|
||||
if (B1.Checked)
|
||||
B1.BackColor = Color.Pink;
|
||||
else
|
||||
B1.BackColor = SystemColors.Control;
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
|
||||
if (B2.Checked)
|
||||
B2.BackColor = Color.Pink;
|
||||
else
|
||||
B2.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "N64") return;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
|
||||
Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,242 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadNES : VirtualPad
|
||||
{
|
||||
public VirtualPadNES()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(52, 24);
|
||||
ButtonPoints[5] = new Point(74, 24);
|
||||
ButtonPoints[6] = new Point(122, 24);
|
||||
ButtonPoints[7] = new Point(146, 24);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "s",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "S",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B3 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[6],
|
||||
TabIndex = 7,
|
||||
Text = "B",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B3.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B4 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[7],
|
||||
TabIndex = 8,
|
||||
Text = "A",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B4.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "s" : ".");
|
||||
input.Append(B2.Checked ? "S" : ".");
|
||||
input.Append(B3.Checked ? "B" : ".");
|
||||
input.Append(B4.Checked ? "A" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[6] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
if (buttons[7] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "NES") return;
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
else if (sender == B1)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Select", B1.Checked);
|
||||
else if (sender == B2)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Start", B2.Checked);
|
||||
else if (sender == B3)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B", B3.Checked);
|
||||
else if (sender == B4)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " A", B4.Checked);
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "NES") return;
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Select", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky(Controller + " A", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,149 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadNESControl : VirtualPad
|
||||
{
|
||||
public VirtualPadNESControl()
|
||||
{
|
||||
ButtonPoints[0] = new Point(2, 2);
|
||||
ButtonPoints[1] = new Point(56, 2);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(108, 34);
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 5,
|
||||
Text = "Power",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
B1.ForeColor = Color.Red;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 6,
|
||||
Text = "Reset",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
B2.ForeColor = Color.Red;
|
||||
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B2.Checked ? "r" : B1.Checked ? "P" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (buttons[0] == 'P')
|
||||
{
|
||||
B1.Checked = true;
|
||||
}
|
||||
else if (buttons[0] == '.' || buttons[0] == 'l' || buttons[0] == '0')
|
||||
{
|
||||
B2.Checked = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", B1.Checked);
|
||||
if (B1.Checked)
|
||||
{
|
||||
B1.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B1.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
|
||||
if (B2.Checked)
|
||||
{
|
||||
B2.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
|
||||
Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,242 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadPCE : VirtualPad
|
||||
{
|
||||
public VirtualPadPCE()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(52, 24);
|
||||
ButtonPoints[5] = new Point(74, 24);
|
||||
ButtonPoints[6] = new Point(122, 24);
|
||||
ButtonPoints[7] = new Point(146, 24);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "s",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "R",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B3 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[6],
|
||||
TabIndex = 7,
|
||||
Text = "II",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B3.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B4 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[7],
|
||||
TabIndex = 8,
|
||||
Text = "I",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B4.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
|
||||
input.Append(B2.Checked ? "S" : ".");
|
||||
input.Append(B1.Checked ? "s" : ".");
|
||||
input.Append(B3.Checked ? "B" : ".");
|
||||
input.Append(B4.Checked ? "A" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
if (buttons[1] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[2] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[3] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[5] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[6] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
if (buttons[7] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "PCE") return;
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
else if (sender == B1)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Select", B1.Checked);
|
||||
else if (sender == B2)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Run", B2.Checked);
|
||||
else if (sender == B3)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B2", B3.Checked);
|
||||
else if (sender == B4)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B1", B4.Checked);
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "PCE" && Global.Emulator.SystemId != "PCECD" && Global.Emulator.SystemId != "SGX") return;
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Select", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Run", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B2", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B1", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,205 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadSMS : VirtualPad
|
||||
{
|
||||
public VirtualPadSMS()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(122, 24);
|
||||
ButtonPoints[5] = new Point(146, 24);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "1",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "2",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "1" : ".");
|
||||
input.Append(B2.Checked ? "2" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SMS" && Global.Emulator.SystemId != "GG" && Global.Emulator.SystemId != "SG") return;
|
||||
|
||||
if (sender == PU)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
else if (sender == PD)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
else if (sender == PL)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
else if (sender == PR)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
else if (sender == B1)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B1", B1.Checked);
|
||||
else if (sender == B2)
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B2", B2.Checked);
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SMS" && Global.Emulator.SystemId != "GG" && Global.Emulator.SystemId != "SG") return;
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B1", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B2", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,134 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadSMSControl : VirtualPad
|
||||
{
|
||||
public VirtualPadSMSControl()
|
||||
{
|
||||
ButtonPoints[0] = new Point(2, 2);
|
||||
ButtonPoints[1] = new Point(56, 2);
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(108, 34);
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 5,
|
||||
Text = "Pause",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
B1.ForeColor = Color.Red;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 6,
|
||||
Text = "Reset",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
B2.ForeColor = Color.Red;
|
||||
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B1.Checked ? "p" : ".");
|
||||
input.Append(B2.Checked ? "r" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 2) return;
|
||||
if (buttons[0] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[1] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SMS" && Global.Emulator.SystemId != "GG" && Global.Emulator.SystemId != "SG") return;
|
||||
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Pause", B1.Checked);
|
||||
if (B1.Checked)
|
||||
B1.BackColor = Color.Pink;
|
||||
else
|
||||
B1.BackColor = SystemColors.Control;
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
|
||||
if (B2.Checked)
|
||||
B2.BackColor = Color.Pink;
|
||||
else
|
||||
B2.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SMS" && Global.Emulator.SystemId != "GG" && Global.Emulator.SystemId != "SG") return;
|
||||
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Pause", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,357 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadSNES : VirtualPad
|
||||
{
|
||||
public VirtualPadSNES()
|
||||
{
|
||||
ButtonPoints[0] = new Point(14, 2);
|
||||
ButtonPoints[1] = new Point(14, 46);
|
||||
ButtonPoints[2] = new Point(2, 24);
|
||||
ButtonPoints[3] = new Point(24, 24);
|
||||
ButtonPoints[4] = new Point(56, 42);
|
||||
ButtonPoints[5] = new Point(78, 42);
|
||||
ButtonPoints[6] = new Point(122, 12); //X
|
||||
ButtonPoints[7] = new Point(146, 22); //A
|
||||
ButtonPoints[8] = new Point(110, 34); //Y
|
||||
ButtonPoints[9] = new Point(134, 48); //B
|
||||
ButtonPoints[10] = new Point(42, 0); //L
|
||||
ButtonPoints[11] = new Point(94, 0); //R
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(174, 74);
|
||||
|
||||
PU = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueUp,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 1,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PU.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PD = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.BlueDown,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 4,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PD.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PR = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Forward,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[3],
|
||||
TabIndex = 3,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PR.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
PL = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Image = Properties.Resources.Back,
|
||||
ImageAlign = ContentAlignment.BottomRight,
|
||||
Location = ButtonPoints[2],
|
||||
TabIndex = 2,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
PL.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[4],
|
||||
TabIndex = 5,
|
||||
Text = "s",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[5],
|
||||
TabIndex = 6,
|
||||
Text = "S",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B3 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[9],
|
||||
TabIndex = 7,
|
||||
Text = "B",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B3.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B4 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[7],
|
||||
TabIndex = 8,
|
||||
Text = "A",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B4.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B5 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[6],
|
||||
TabIndex = 8,
|
||||
Text = "X",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B5.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B6 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[8],
|
||||
TabIndex = 8,
|
||||
Text = "Y",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B6.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B7 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[10],
|
||||
TabIndex = 8,
|
||||
Text = "L",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B7.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
B8 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[11],
|
||||
TabIndex = 8,
|
||||
Text = "R",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B8.CheckedChanged += Buttons_CheckedChanged;
|
||||
|
||||
|
||||
Controls.Add(PU);
|
||||
Controls.Add(PD);
|
||||
Controls.Add(PL);
|
||||
Controls.Add(PR);
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
Controls.Add(B3);
|
||||
Controls.Add(B4);
|
||||
Controls.Add(B5);
|
||||
Controls.Add(B6);
|
||||
Controls.Add(B7);
|
||||
Controls.Add(B8);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(B1.Checked ? "s" : ".");
|
||||
input.Append(B2.Checked ? "S" : ".");
|
||||
input.Append(B3.Checked ? "B" : ".");
|
||||
input.Append(B4.Checked ? "A" : ".");
|
||||
input.Append(B5.Checked ? "X" : ".");
|
||||
input.Append(B6.Checked ? "Y" : ".");
|
||||
input.Append(B7.Checked ? "L" : ".");
|
||||
input.Append(B8.Checked ? "R" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 8) return;
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
if (buttons[6] == '.') B3.Checked = false; else B3.Checked = true;
|
||||
if (buttons[7] == '.') B4.Checked = false; else B4.Checked = true;
|
||||
if (buttons[8] == '.') B5.Checked = false; else B5.Checked = true;
|
||||
if (buttons[9] == '.') B6.Checked = false; else B6.Checked = true;
|
||||
if (buttons[10] == '.') B7.Checked = false; else B7.Checked = true;
|
||||
if (buttons[11] == '.') B8.Checked = false; else B8.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SNES")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == PU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
}
|
||||
else if (sender == PD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
}
|
||||
else if (sender == PL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
}
|
||||
else if (sender == PR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Select", B1.Checked);
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Start", B2.Checked);
|
||||
}
|
||||
else if (sender == B3)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B", B3.Checked);
|
||||
}
|
||||
else if (sender == B4)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " A", B4.Checked);
|
||||
}
|
||||
else if (sender == B5)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " X", B5.Checked);
|
||||
}
|
||||
else if (sender == B6)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Y", B6.Checked);
|
||||
}
|
||||
|
||||
else if (sender == B7)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " L", B7.Checked);
|
||||
}
|
||||
else if (sender == B8)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " R", B8.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SNES")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Select", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
|
||||
if (B3.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B", false);
|
||||
if (B4.Checked) Global.StickyXORAdapter.SetSticky(Controller + " A", false);
|
||||
if (B5.Checked) Global.StickyXORAdapter.SetSticky(Controller + " X", false);
|
||||
if (B6.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Y", false);
|
||||
if (B7.Checked) Global.StickyXORAdapter.SetSticky(Controller + " L", false);
|
||||
if (B8.Checked) Global.StickyXORAdapter.SetSticky(Controller + " R", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
B3.Checked = false;
|
||||
B4.Checked = false;
|
||||
|
||||
B5.Checked = false;
|
||||
B6.Checked = false;
|
||||
B7.Checked = false;
|
||||
B8.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,171 +0,0 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public class VirtualPadSNESControl : VirtualPad
|
||||
{
|
||||
|
||||
public VirtualPadSNESControl()
|
||||
{
|
||||
ButtonPoints[0] = new Point(2, 2);
|
||||
ButtonPoints[1] = new Point(56, 2);
|
||||
|
||||
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
Size = new Size(108, 34);
|
||||
|
||||
B1 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[0],
|
||||
TabIndex = 5,
|
||||
Text = "Power",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B1.CheckedChanged += Buttons_CheckedChanged;
|
||||
B1.ForeColor = Color.Red;
|
||||
|
||||
B2 = new CheckBox
|
||||
{
|
||||
Appearance = Appearance.Button,
|
||||
AutoSize = true,
|
||||
Location = ButtonPoints[1],
|
||||
TabIndex = 6,
|
||||
Text = "Reset",
|
||||
TextAlign = ContentAlignment.BottomCenter,
|
||||
UseVisualStyleBackColor = true
|
||||
};
|
||||
B2.CheckedChanged += Buttons_CheckedChanged;
|
||||
B2.ForeColor = Color.Red;
|
||||
|
||||
Controls.Add(B1);
|
||||
Controls.Add(B2);
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
if (B1.Checked)
|
||||
{
|
||||
input.Append('P');
|
||||
}
|
||||
else if (B2.Checked)
|
||||
{
|
||||
input.Append('r');
|
||||
}
|
||||
else
|
||||
{
|
||||
input.Append('.');
|
||||
}
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public override void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 1) return;
|
||||
if (buttons[0] == '.' || buttons[0] == '0')
|
||||
{
|
||||
B2.Checked = false;
|
||||
}
|
||||
else if (buttons[0] == 'P')
|
||||
{
|
||||
B1.Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SNES")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", B1.Checked);
|
||||
if (B1.Checked)
|
||||
{
|
||||
B1.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B1.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
|
||||
if (B2.Checked)
|
||||
{
|
||||
B2.BackColor = Color.Pink;
|
||||
}
|
||||
else
|
||||
{
|
||||
B2.BackColor = SystemColors.Control;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SNES")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Power", false);
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,243 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadSaturn
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.BA = new System.Windows.Forms.CheckBox();
|
||||
this.BB = new System.Windows.Forms.CheckBox();
|
||||
this.BC = new System.Windows.Forms.CheckBox();
|
||||
this.BZ = new System.Windows.Forms.CheckBox();
|
||||
this.BX = new System.Windows.Forms.CheckBox();
|
||||
this.BY = new System.Windows.Forms.CheckBox();
|
||||
this.BStart = new System.Windows.Forms.CheckBox();
|
||||
this.PL = new System.Windows.Forms.CheckBox();
|
||||
this.PD = new System.Windows.Forms.CheckBox();
|
||||
this.PR = new System.Windows.Forms.CheckBox();
|
||||
this.PU = new System.Windows.Forms.CheckBox();
|
||||
this.BL = new System.Windows.Forms.CheckBox();
|
||||
this.BR = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// BA
|
||||
//
|
||||
this.BA.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BA.AutoSize = true;
|
||||
this.BA.Location = new System.Drawing.Point(107, 64);
|
||||
this.BA.Name = "BA";
|
||||
this.BA.Size = new System.Drawing.Size(24, 23);
|
||||
this.BA.TabIndex = 15;
|
||||
this.BA.Text = "A";
|
||||
this.BA.UseVisualStyleBackColor = true;
|
||||
this.BA.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BB
|
||||
//
|
||||
this.BB.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BB.AutoSize = true;
|
||||
this.BB.Location = new System.Drawing.Point(132, 59);
|
||||
this.BB.Name = "BB";
|
||||
this.BB.Size = new System.Drawing.Size(24, 23);
|
||||
this.BB.TabIndex = 14;
|
||||
this.BB.Text = "B";
|
||||
this.BB.UseVisualStyleBackColor = true;
|
||||
this.BB.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BC
|
||||
//
|
||||
this.BC.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BC.AutoSize = true;
|
||||
this.BC.Location = new System.Drawing.Point(157, 54);
|
||||
this.BC.Name = "BC";
|
||||
this.BC.Size = new System.Drawing.Size(24, 23);
|
||||
this.BC.TabIndex = 16;
|
||||
this.BC.Text = "C";
|
||||
this.BC.UseVisualStyleBackColor = true;
|
||||
this.BC.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BZ
|
||||
//
|
||||
this.BZ.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BZ.AutoSize = true;
|
||||
this.BZ.Location = new System.Drawing.Point(156, 27);
|
||||
this.BZ.Name = "BZ";
|
||||
this.BZ.Size = new System.Drawing.Size(24, 23);
|
||||
this.BZ.TabIndex = 19;
|
||||
this.BZ.Text = "Z";
|
||||
this.BZ.UseVisualStyleBackColor = true;
|
||||
this.BZ.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BX
|
||||
//
|
||||
this.BX.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BX.AutoSize = true;
|
||||
this.BX.Location = new System.Drawing.Point(106, 37);
|
||||
this.BX.Name = "BX";
|
||||
this.BX.Size = new System.Drawing.Size(24, 23);
|
||||
this.BX.TabIndex = 18;
|
||||
this.BX.Text = "X";
|
||||
this.BX.UseVisualStyleBackColor = true;
|
||||
this.BX.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BY
|
||||
//
|
||||
this.BY.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BY.AutoSize = true;
|
||||
this.BY.Location = new System.Drawing.Point(131, 32);
|
||||
this.BY.Name = "BY";
|
||||
this.BY.Size = new System.Drawing.Size(24, 23);
|
||||
this.BY.TabIndex = 17;
|
||||
this.BY.Text = "Y";
|
||||
this.BY.UseVisualStyleBackColor = true;
|
||||
this.BY.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BStart
|
||||
//
|
||||
this.BStart.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BStart.AutoSize = true;
|
||||
this.BStart.Location = new System.Drawing.Point(68, 66);
|
||||
this.BStart.Name = "BStart";
|
||||
this.BStart.Size = new System.Drawing.Size(24, 23);
|
||||
this.BStart.TabIndex = 20;
|
||||
this.BStart.Text = "S";
|
||||
this.BStart.UseVisualStyleBackColor = true;
|
||||
this.BStart.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PL
|
||||
//
|
||||
this.PL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL.AutoSize = true;
|
||||
this.PL.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL.Location = new System.Drawing.Point(6, 38);
|
||||
this.PL.Name = "PL";
|
||||
this.PL.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL.TabIndex = 7;
|
||||
this.PL.UseVisualStyleBackColor = true;
|
||||
this.PL.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PD
|
||||
//
|
||||
this.PD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD.AutoSize = true;
|
||||
this.PD.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD.Location = new System.Drawing.Point(27, 47);
|
||||
this.PD.Name = "PD";
|
||||
this.PD.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD.TabIndex = 6;
|
||||
this.PD.UseVisualStyleBackColor = true;
|
||||
this.PD.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PR
|
||||
//
|
||||
this.PR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR.AutoSize = true;
|
||||
this.PR.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR.Location = new System.Drawing.Point(48, 38);
|
||||
this.PR.Name = "PR";
|
||||
this.PR.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR.TabIndex = 5;
|
||||
this.PR.UseVisualStyleBackColor = true;
|
||||
this.PR.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PU
|
||||
//
|
||||
this.PU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU.AutoSize = true;
|
||||
this.PU.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU.Location = new System.Drawing.Point(27, 26);
|
||||
this.PU.Name = "PU";
|
||||
this.PU.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU.TabIndex = 4;
|
||||
this.PU.UseVisualStyleBackColor = true;
|
||||
this.PU.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BL
|
||||
//
|
||||
this.BL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BL.AutoSize = true;
|
||||
this.BL.Location = new System.Drawing.Point(3, 3);
|
||||
this.BL.Name = "BL";
|
||||
this.BL.Size = new System.Drawing.Size(23, 23);
|
||||
this.BL.TabIndex = 21;
|
||||
this.BL.Text = "L";
|
||||
this.BL.UseVisualStyleBackColor = true;
|
||||
this.BL.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BR
|
||||
//
|
||||
this.BR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BR.AutoSize = true;
|
||||
this.BR.Location = new System.Drawing.Point(169, 3);
|
||||
this.BR.Name = "BR";
|
||||
this.BR.Size = new System.Drawing.Size(25, 23);
|
||||
this.BR.TabIndex = 22;
|
||||
this.BR.Text = "R";
|
||||
this.BR.UseVisualStyleBackColor = true;
|
||||
this.BR.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadSaturn
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.BR);
|
||||
this.Controls.Add(this.BL);
|
||||
this.Controls.Add(this.BStart);
|
||||
this.Controls.Add(this.BZ);
|
||||
this.Controls.Add(this.BX);
|
||||
this.Controls.Add(this.BY);
|
||||
this.Controls.Add(this.BC);
|
||||
this.Controls.Add(this.BA);
|
||||
this.Controls.Add(this.BB);
|
||||
this.Controls.Add(this.PL);
|
||||
this.Controls.Add(this.PD);
|
||||
this.Controls.Add(this.PR);
|
||||
this.Controls.Add(this.PU);
|
||||
this.Name = "VirtualPadSaturn";
|
||||
this.Size = new System.Drawing.Size(204, 92);
|
||||
this.Load += new System.EventHandler(this.VirtualPadSaturn_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox PL;
|
||||
private System.Windows.Forms.CheckBox PD;
|
||||
private System.Windows.Forms.CheckBox PR;
|
||||
private System.Windows.Forms.CheckBox PU;
|
||||
private System.Windows.Forms.CheckBox BA;
|
||||
private System.Windows.Forms.CheckBox BB;
|
||||
private System.Windows.Forms.CheckBox BC;
|
||||
private System.Windows.Forms.CheckBox BZ;
|
||||
private System.Windows.Forms.CheckBox BX;
|
||||
private System.Windows.Forms.CheckBox BY;
|
||||
private System.Windows.Forms.CheckBox BStart;
|
||||
private System.Windows.Forms.CheckBox BL;
|
||||
private System.Windows.Forms.CheckBox BR;
|
||||
}
|
||||
}
|
|
@ -1,204 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadSaturn : UserControl, IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
|
||||
public VirtualPadSaturn()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = "P1";
|
||||
}
|
||||
|
||||
private void VirtualPadSaturn_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "U" : ".");
|
||||
input.Append(PD.Checked ? "D" : ".");
|
||||
input.Append(PL.Checked ? "L" : ".");
|
||||
input.Append(PR.Checked ? "R" : ".");
|
||||
|
||||
input.Append(BStart.Checked ? "S" : ".");
|
||||
input.Append(BX.Checked ? "X" : ".");
|
||||
input.Append(BY.Checked ? "Y" : ".");
|
||||
input.Append(BZ.Checked ? "Z" : ".");
|
||||
input.Append(BA.Checked ? "A" : ".");
|
||||
input.Append(BB.Checked ? "B" : ".");
|
||||
input.Append(BC.Checked ? "C" : ".");
|
||||
|
||||
input.Append(BL.Checked ? "L" : ".");
|
||||
input.Append(BR.Checked ? "R" : ".");
|
||||
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SAT") return;
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
|
||||
|
||||
if (BStart.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
|
||||
|
||||
if (BX.Checked) Global.StickyXORAdapter.SetSticky(Controller + " X", false);
|
||||
if (BY.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Y", false);
|
||||
if (BZ.Checked) Global.StickyXORAdapter.SetSticky(Controller + " Z", false);
|
||||
|
||||
if (BA.Checked) Global.StickyXORAdapter.SetSticky(Controller + " A", false);
|
||||
if (BB.Checked) Global.StickyXORAdapter.SetSticky(Controller + " B", false);
|
||||
if (BC.Checked) Global.StickyXORAdapter.SetSticky(Controller + " C", false);
|
||||
|
||||
if (BL.Checked) Global.StickyXORAdapter.SetSticky(Controller + " L", false);
|
||||
if (BR.Checked) Global.StickyXORAdapter.SetSticky(Controller + " R", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
BStart.Checked = false;
|
||||
|
||||
BX.Checked = false;
|
||||
BY.Checked = false;
|
||||
BZ.Checked = false;
|
||||
|
||||
BA.Checked = false;
|
||||
BB.Checked = false;
|
||||
BC.Checked = false;
|
||||
|
||||
BL.Checked = false;
|
||||
BR.Checked = false;
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 13) return;
|
||||
|
||||
if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
if (buttons[4] == '.') BStart.Checked = false; else BStart.Checked = true;
|
||||
if (buttons[5] == '.') BX.Checked = false; else BX.Checked = true;
|
||||
if (buttons[6] == '.') BY.Checked = false; else BY.Checked = true;
|
||||
if (buttons[7] == '.') BZ.Checked = false; else BZ.Checked = true;
|
||||
if (buttons[8] == '.') BA.Checked = false; else BA.Checked = true;
|
||||
if (buttons[9] == '.') BB.Checked = false; else BB.Checked = true;
|
||||
if (buttons[10] == '.') BC.Checked = false; else BC.Checked = true;
|
||||
if (buttons[11] == '.') BL.Checked = false; else BL.Checked = true;
|
||||
if (buttons[12] == '.') BR.Checked = false; else BR.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SAT")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == PU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
|
||||
}
|
||||
else if (sender == PD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
|
||||
}
|
||||
else if (sender == PL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
|
||||
}
|
||||
else if (sender == PR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
|
||||
}
|
||||
else if (sender == BStart)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Start", BStart.Checked);
|
||||
}
|
||||
else if (sender == BX)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " X", BX.Checked);
|
||||
}
|
||||
else if (sender == BY)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Y", BY.Checked);
|
||||
}
|
||||
else if (sender == BZ)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " Z", BZ.Checked);
|
||||
}
|
||||
else if (sender == BA)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " A", BA.Checked);
|
||||
}
|
||||
else if (sender == BB)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " B", BB.Checked);
|
||||
}
|
||||
else if (sender == BC)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " C", BC.Checked);
|
||||
}
|
||||
else if (sender == BL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " L", BL.Checked);
|
||||
}
|
||||
else if (sender == BR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky(Controller + " R", BR.Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,78 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadSaturnControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.B2 = new System.Windows.Forms.CheckBox();
|
||||
this.B1 = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// B2
|
||||
//
|
||||
this.B2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B2.AutoSize = true;
|
||||
this.B2.Location = new System.Drawing.Point(56, 3);
|
||||
this.B2.Name = "B2";
|
||||
this.B2.Size = new System.Drawing.Size(45, 23);
|
||||
this.B2.TabIndex = 13;
|
||||
this.B2.Text = "Reset";
|
||||
this.B2.UseVisualStyleBackColor = true;
|
||||
this.B2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// B1
|
||||
//
|
||||
this.B1.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.B1.AutoSize = true;
|
||||
this.B1.Location = new System.Drawing.Point(3, 3);
|
||||
this.B1.Name = "B1";
|
||||
this.B1.Size = new System.Drawing.Size(47, 23);
|
||||
this.B1.TabIndex = 12;
|
||||
this.B1.Text = "Power";
|
||||
this.B1.UseVisualStyleBackColor = true;
|
||||
this.B1.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadSaturnControl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.B2);
|
||||
this.Controls.Add(this.B1);
|
||||
this.Name = "VirtualPadSaturnControl";
|
||||
this.Size = new System.Drawing.Size(110, 32);
|
||||
this.Load += new System.EventHandler(this.VirtualPadSaturnControl_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox B2;
|
||||
private System.Windows.Forms.CheckBox B1;
|
||||
}
|
||||
}
|
|
@ -1,105 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadSaturnControl : UserControl, IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
|
||||
public VirtualPadSaturnControl()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = string.Empty;
|
||||
}
|
||||
|
||||
private void VirtualPadSaturnControl_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(B1.Checked ? "P" : ".");
|
||||
input.Append(B2.Checked ? "r" : ".");
|
||||
input.Append("|");
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 2) return;
|
||||
if (buttons[0] == '.') B1.Checked = false; else B1.Checked = true;
|
||||
if (buttons[1] == '.') B2.Checked = false; else B2.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SAT")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == B1)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", B1.Checked);
|
||||
}
|
||||
else if (sender == B2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "SAT") return;
|
||||
|
||||
if (B1.Checked) Global.StickyXORAdapter.SetSticky("Power", false);
|
||||
if (B2.Checked) Global.StickyXORAdapter.SetSticky("Reset", false);
|
||||
|
||||
B1.Checked = false;
|
||||
B2.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -1,229 +0,0 @@
|
|||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
partial class VirtualPadWonderSawn
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.PL = new System.Windows.Forms.CheckBox();
|
||||
this.PD = new System.Windows.Forms.CheckBox();
|
||||
this.PR = new System.Windows.Forms.CheckBox();
|
||||
this.PU = new System.Windows.Forms.CheckBox();
|
||||
this.PL2 = new System.Windows.Forms.CheckBox();
|
||||
this.PD2 = new System.Windows.Forms.CheckBox();
|
||||
this.PR2 = new System.Windows.Forms.CheckBox();
|
||||
this.PU2 = new System.Windows.Forms.CheckBox();
|
||||
this.BStart = new System.Windows.Forms.CheckBox();
|
||||
this.BA = new System.Windows.Forms.CheckBox();
|
||||
this.BB = new System.Windows.Forms.CheckBox();
|
||||
this.BPower = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// PL
|
||||
//
|
||||
this.PL.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL.AutoSize = true;
|
||||
this.PL.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL.Location = new System.Drawing.Point(1, 15);
|
||||
this.PL.Name = "PL";
|
||||
this.PL.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL.TabIndex = 11;
|
||||
this.PL.UseVisualStyleBackColor = true;
|
||||
this.PL.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PD
|
||||
//
|
||||
this.PD.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD.AutoSize = true;
|
||||
this.PD.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD.Location = new System.Drawing.Point(22, 24);
|
||||
this.PD.Name = "PD";
|
||||
this.PD.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD.TabIndex = 10;
|
||||
this.PD.UseVisualStyleBackColor = true;
|
||||
this.PD.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PR
|
||||
//
|
||||
this.PR.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR.AutoSize = true;
|
||||
this.PR.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR.Location = new System.Drawing.Point(43, 15);
|
||||
this.PR.Name = "PR";
|
||||
this.PR.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR.TabIndex = 9;
|
||||
this.PR.UseVisualStyleBackColor = true;
|
||||
this.PR.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PU
|
||||
//
|
||||
this.PU.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU.AutoSize = true;
|
||||
this.PU.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU.Location = new System.Drawing.Point(22, 3);
|
||||
this.PU.Name = "PU";
|
||||
this.PU.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU.TabIndex = 8;
|
||||
this.PU.UseVisualStyleBackColor = true;
|
||||
this.PU.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PL2
|
||||
//
|
||||
this.PL2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PL2.AutoSize = true;
|
||||
this.PL2.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Back;
|
||||
this.PL2.Location = new System.Drawing.Point(1, 79);
|
||||
this.PL2.Name = "PL2";
|
||||
this.PL2.Size = new System.Drawing.Size(22, 22);
|
||||
this.PL2.TabIndex = 15;
|
||||
this.PL2.UseVisualStyleBackColor = true;
|
||||
this.PL2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PD2
|
||||
//
|
||||
this.PD2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PD2.AutoSize = true;
|
||||
this.PD2.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueDown;
|
||||
this.PD2.Location = new System.Drawing.Point(22, 88);
|
||||
this.PD2.Name = "PD2";
|
||||
this.PD2.Size = new System.Drawing.Size(22, 22);
|
||||
this.PD2.TabIndex = 14;
|
||||
this.PD2.UseVisualStyleBackColor = true;
|
||||
this.PD2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PR2
|
||||
//
|
||||
this.PR2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PR2.AutoSize = true;
|
||||
this.PR2.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Forward;
|
||||
this.PR2.Location = new System.Drawing.Point(43, 79);
|
||||
this.PR2.Name = "PR2";
|
||||
this.PR2.Size = new System.Drawing.Size(22, 22);
|
||||
this.PR2.TabIndex = 13;
|
||||
this.PR2.UseVisualStyleBackColor = true;
|
||||
this.PR2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// PU2
|
||||
//
|
||||
this.PU2.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.PU2.AutoSize = true;
|
||||
this.PU2.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.BlueUp;
|
||||
this.PU2.Location = new System.Drawing.Point(22, 67);
|
||||
this.PU2.Name = "PU2";
|
||||
this.PU2.Size = new System.Drawing.Size(22, 22);
|
||||
this.PU2.TabIndex = 12;
|
||||
this.PU2.UseVisualStyleBackColor = true;
|
||||
this.PU2.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BStart
|
||||
//
|
||||
this.BStart.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BStart.AutoSize = true;
|
||||
this.BStart.Location = new System.Drawing.Point(79, 78);
|
||||
this.BStart.Name = "BStart";
|
||||
this.BStart.Size = new System.Drawing.Size(24, 23);
|
||||
this.BStart.TabIndex = 21;
|
||||
this.BStart.Text = "S";
|
||||
this.BStart.UseVisualStyleBackColor = true;
|
||||
this.BStart.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BA
|
||||
//
|
||||
this.BA.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BA.AutoSize = true;
|
||||
this.BA.Location = new System.Drawing.Point(145, 30);
|
||||
this.BA.Name = "BA";
|
||||
this.BA.Size = new System.Drawing.Size(24, 23);
|
||||
this.BA.TabIndex = 23;
|
||||
this.BA.Text = "A";
|
||||
this.BA.UseVisualStyleBackColor = true;
|
||||
this.BA.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BB
|
||||
//
|
||||
this.BB.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BB.AutoSize = true;
|
||||
this.BB.Location = new System.Drawing.Point(122, 35);
|
||||
this.BB.Name = "BB";
|
||||
this.BB.Size = new System.Drawing.Size(24, 23);
|
||||
this.BB.TabIndex = 22;
|
||||
this.BB.Text = "B";
|
||||
this.BB.UseVisualStyleBackColor = true;
|
||||
this.BB.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// BPower
|
||||
//
|
||||
this.BPower.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.BPower.AutoSize = true;
|
||||
this.BPower.ForeColor = System.Drawing.Color.Red;
|
||||
this.BPower.Location = new System.Drawing.Point(108, 78);
|
||||
this.BPower.Name = "BPower";
|
||||
this.BPower.Size = new System.Drawing.Size(47, 23);
|
||||
this.BPower.TabIndex = 24;
|
||||
this.BPower.Text = "Power";
|
||||
this.BPower.UseVisualStyleBackColor = true;
|
||||
this.BPower.CheckedChanged += new System.EventHandler(this.Buttons_CheckedChanged);
|
||||
//
|
||||
// VirtualPadWonderSawn
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.BPower);
|
||||
this.Controls.Add(this.BA);
|
||||
this.Controls.Add(this.BB);
|
||||
this.Controls.Add(this.BStart);
|
||||
this.Controls.Add(this.PL2);
|
||||
this.Controls.Add(this.PD2);
|
||||
this.Controls.Add(this.PR2);
|
||||
this.Controls.Add(this.PU2);
|
||||
this.Controls.Add(this.PL);
|
||||
this.Controls.Add(this.PD);
|
||||
this.Controls.Add(this.PR);
|
||||
this.Controls.Add(this.PU);
|
||||
this.Name = "VirtualPadWonderSawn";
|
||||
this.Size = new System.Drawing.Size(179, 119);
|
||||
this.Load += new System.EventHandler(this.VirtualPadWonderSawn_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.CheckBox PL;
|
||||
private System.Windows.Forms.CheckBox PD;
|
||||
private System.Windows.Forms.CheckBox PR;
|
||||
private System.Windows.Forms.CheckBox PU;
|
||||
private System.Windows.Forms.CheckBox PL2;
|
||||
private System.Windows.Forms.CheckBox PD2;
|
||||
private System.Windows.Forms.CheckBox PR2;
|
||||
private System.Windows.Forms.CheckBox PU2;
|
||||
private System.Windows.Forms.CheckBox BStart;
|
||||
private System.Windows.Forms.CheckBox BA;
|
||||
private System.Windows.Forms.CheckBox BB;
|
||||
private System.Windows.Forms.CheckBox BPower;
|
||||
}
|
||||
}
|
|
@ -1,206 +0,0 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
public partial class VirtualPadWonderSawn : UserControl, IVirtualPad
|
||||
{
|
||||
public string Controller { get; set; }
|
||||
|
||||
public VirtualPadWonderSawn()
|
||||
{
|
||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
BorderStyle = BorderStyle.Fixed3D;
|
||||
Paint += VirtualPad_Paint;
|
||||
InitializeComponent();
|
||||
|
||||
Controller = "";
|
||||
}
|
||||
|
||||
private void VirtualPadWonderSawn_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void VirtualPad_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
if (keyData == Keys.Up)
|
||||
{
|
||||
//TODO: move to next logical key
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Down)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Left)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Right)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
else if (keyData == Keys.Tab)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetMnemonic()
|
||||
{
|
||||
StringBuilder input = new StringBuilder("");
|
||||
input.Append(PU.Checked ? "Up X" : ".");
|
||||
input.Append(PD.Checked ? "Down X" : ".");
|
||||
input.Append(PL.Checked ? "Left X" : ".");
|
||||
input.Append(PR.Checked ? "Right X" : ".");
|
||||
|
||||
input.Append("|");
|
||||
|
||||
input.Append(PU2.Checked ? "Up Y" : ".");
|
||||
input.Append(PD2.Checked ? "Down Y" : ".");
|
||||
input.Append(PL2.Checked ? "Left Y" : ".");
|
||||
input.Append(PR2.Checked ? "Right Y" : ".");
|
||||
|
||||
input.Append("|");
|
||||
|
||||
input.Append(BStart.Checked ? "Start" : ".");
|
||||
input.Append(BB.Checked ? "B" : ".");
|
||||
input.Append(BA.Checked ? "A" : ".");
|
||||
input.Append(BPower.Checked ? "P" : ".");
|
||||
|
||||
input.Append("|");
|
||||
|
||||
return input.ToString();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (Global.Emulator.SystemId != "WSWAN")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (PU.Checked) Global.StickyXORAdapter.SetSticky("Up X", false);
|
||||
if (PD.Checked) Global.StickyXORAdapter.SetSticky("Down X", false);
|
||||
if (PL.Checked) Global.StickyXORAdapter.SetSticky("Left X", false);
|
||||
if (PR.Checked) Global.StickyXORAdapter.SetSticky("Right X", false);
|
||||
|
||||
if (PU2.Checked) Global.StickyXORAdapter.SetSticky("Up Y", false);
|
||||
if (PD2.Checked) Global.StickyXORAdapter.SetSticky("Down Y", false);
|
||||
if (PL2.Checked) Global.StickyXORAdapter.SetSticky("Left Y", false);
|
||||
if (PR2.Checked) Global.StickyXORAdapter.SetSticky("Right Y", false);
|
||||
|
||||
if (BStart.Checked) Global.StickyXORAdapter.SetSticky("Start", false);
|
||||
|
||||
if (BB.Checked) Global.StickyXORAdapter.SetSticky("B", false);
|
||||
if (BA.Checked) Global.StickyXORAdapter.SetSticky("A", false);
|
||||
|
||||
if (BPower.Checked) Global.StickyXORAdapter.SetSticky("Power", false);
|
||||
|
||||
PU.Checked = false;
|
||||
PD.Checked = false;
|
||||
PL.Checked = false;
|
||||
PR.Checked = false;
|
||||
|
||||
PU2.Checked = false;
|
||||
PD2.Checked = false;
|
||||
PL2.Checked = false;
|
||||
PR2.Checked = false;
|
||||
|
||||
BStart.Checked = false;
|
||||
|
||||
BA.Checked = false;
|
||||
BB.Checked = false;
|
||||
|
||||
BPower.Checked = false;
|
||||
}
|
||||
|
||||
public void SetButtons(string buttons)
|
||||
{
|
||||
if (buttons.Length < 15) return;
|
||||
|
||||
if (buttons[1] == '.') PU.Checked = false; else PU.Checked = true;
|
||||
if (buttons[2] == '.') PD.Checked = false; else PD.Checked = true;
|
||||
if (buttons[3] == '.') PL.Checked = false; else PL.Checked = true;
|
||||
if (buttons[4] == '.') PR.Checked = false; else PR.Checked = true;
|
||||
|
||||
if (buttons[6] == '.') PU2.Checked = false; else PU2.Checked = true;
|
||||
if (buttons[7] == '.') PD2.Checked = false; else PD2.Checked = true;
|
||||
if (buttons[8] == '.') PL2.Checked = false; else PL2.Checked = true;
|
||||
if (buttons[9] == '.') PR2.Checked = false; else PR2.Checked = true;
|
||||
|
||||
if (buttons[11] == '.') BStart.Checked = false; else BStart.Checked = true;
|
||||
if (buttons[12] == '.') BB.Checked = false; else BB.Checked = true;
|
||||
if (buttons[13] == '.') BA.Checked = false; else BA.Checked = true;
|
||||
if (buttons[14] == '.') BPower.Checked = false; else BPower.Checked = true;
|
||||
}
|
||||
|
||||
private void Buttons_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId != "WSWAN")
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (sender == PU)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Up X", PU.Checked);
|
||||
}
|
||||
else if (sender == PD)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Down X", PD.Checked);
|
||||
}
|
||||
else if (sender == PL)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Left X", PL.Checked);
|
||||
}
|
||||
else if (sender == PR)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Right X", PR.Checked);
|
||||
}
|
||||
else if (sender == PU2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Up Y", PU2.Checked);
|
||||
}
|
||||
else if (sender == PD2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Down Y", PD2.Checked);
|
||||
}
|
||||
else if (sender == PL2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Left Y", PL2.Checked);
|
||||
}
|
||||
else if (sender == PR2)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Right Y", PR2.Checked);
|
||||
}
|
||||
else if (sender == BStart)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Start", BStart.Checked);
|
||||
}
|
||||
else if (sender == BB)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("B", BB.Checked);
|
||||
}
|
||||
else if (sender == BA)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("A", BA.Checked);
|
||||
}
|
||||
else if (sender == BPower)
|
||||
{
|
||||
Global.StickyXORAdapter.SetSticky("Power", BPower.Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
Loading…
Reference in New Issue