UI: Replaced numeric up/down controls with custom control (to fix numerous usability issues on both Windows & Linux)

This commit is contained in:
Sour 2018-06-10 12:58:52 -04:00
parent 48ae000ec9
commit a17eb67cad
15 changed files with 672 additions and 478 deletions

View file

@ -11,88 +11,286 @@ namespace Mesen.GUI.Controls
{
class MesenNumericUpDown : BaseControl
{
private NumericUpDown nud;
private TextBox txtValue;
private Button btnUp;
private Button btnDown;
private Panel pnlButtons;
private Timer tmrRepeat;
public event EventHandler ValueChanged { add { nud.ValueChanged += value; } remove { nud.ValueChanged -= value; } }
public new event EventHandler Validated { add { nud.Validated += value; } remove { nud.Validated -= value; } }
public new event EventHandler Click { add { nud.Click += value; } remove { nud.Click -= value; } }
public new event KeyEventHandler KeyDown { add { nud.KeyDown += value; } remove { nud.KeyDown -= value; } }
public new event KeyPressEventHandler KeyPress { add { nud.KeyPress += value; } remove { nud.KeyPress -= value; } }
private int _repeatCount = 0;
private bool _repeatIncrease = false;
private bool _preventClick = false;
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public new event EventHandler TextChanged { add { nud.TextChanged += value; } remove { nud.TextChanged -= value; } }
public event EventHandler ValueChanged;
public MesenNumericUpDown()
{
InitializeComponent();
if(!IsDesignMode) {
this.BackColor = SystemColors.ControlLightLight;
this.MaximumSize = new Size(10000, 21);
this.MinimumSize = new Size(0, 21);
this.Size = new Size(62, 21);
if(Program.IsMono) {
this.BorderStyle = BorderStyle.None;
this.txtValue.Dock = DockStyle.Fill;
this.txtValue.Multiline = true;
this.btnUp.Location = new Point(-1, 0);
this.btnDown.Location = new Point(-1, 10);
this.MinimumSize = new Size(0, 22);
} else {
this.BorderStyle = BorderStyle.FixedSingle;
}
}
}
private void tmrRepeat_Tick(object sender, EventArgs e)
{
tmrRepeat.Interval = _repeatCount > 5 ? 75 : 200;
if(_repeatIncrease) {
this.Value += this.Increment;
} else {
this.Value -= this.Increment;
}
_repeatCount++;
_preventClick = true;
}
private void btn_MouseDown(object sender, MouseEventArgs e)
{
_repeatCount = 0;
_repeatIncrease = (sender == btnUp);
tmrRepeat.Start();
}
private void btn_MouseUp(object sender, MouseEventArgs e)
{
tmrRepeat.Stop();
}
private void btnDown_Click(object sender, EventArgs e)
{
if(!_preventClick) {
this.Value -= this.Increment;
}
_preventClick = false;
}
private void btnUp_Click(object sender, EventArgs e)
{
if(!_preventClick) {
this.Value += this.Increment;
}
_preventClick = false;
}
private void txtValue_TextChanged(object sender, EventArgs e)
{
decimal val;
if(string.IsNullOrWhiteSpace(txtValue.Text)) {
SetValue(0, false);
} else if(decimal.TryParse(txtValue.Text, out val)) {
SetValue(val, false);
}
}
private void txtValue_Validated(object sender, EventArgs e)
{
decimal val;
if(string.IsNullOrWhiteSpace(txtValue.Text)) {
SetValue(0, true);
} else if(decimal.TryParse(txtValue.Text, out val)) {
SetValue(val, true);
} else {
SetValue(this.Value, true);
}
}
private void SetValue(decimal value, bool updateText)
{
value = decimal.Round(value, this.DecimalPlaces);
if(value > Maximum) {
value = Maximum;
}
if(value < Minimum) {
value = Minimum;
}
if(value != _value) {
_value = value;
ValueChanged?.Invoke(this, EventArgs.Empty);
}
if(updateText) {
txtValue.Text = value.ToString("0" + (this.DecimalPlaces > 0 ? "." : "") + new string('0', this.DecimalPlaces));
}
}
private decimal _value = 0;
public decimal Value
{
get { return nud.Value; }
get { return _value; }
set
{
nud.Text = value.ToString();
nud.Value = value;
SetValue(value, true);
}
}
public new string Text
{
get { return nud.Text; }
set { nud.Text = value; }
get { return txtValue.Text; }
set { txtValue.Text = value; }
}
private decimal _maximum = 100;
public decimal Maximum
{
get { return nud.Maximum; }
set { nud.Maximum = value; }
get { return _maximum; }
set { _maximum = value; SetValue(this.Value, true); }
}
private decimal _minimum = 0;
public decimal Minimum
{
get { return nud.Minimum; }
set { nud.Minimum = value; }
get { return _minimum; }
set { _minimum = value; SetValue(this.Value, true); }
}
public decimal Increment
{
get { return nud.Increment; }
set { nud.Increment = value; }
}
public decimal Increment { get; set; }
private int _decimalPlaces = 2;
public int DecimalPlaces
{
get { return nud.DecimalPlaces; }
set { nud.DecimalPlaces = value; }
get { return _decimalPlaces; }
set { _decimalPlaces = value; }
}
public MesenNumericUpDown()
protected override void OnSizeChanged(EventArgs e)
{
InitializeComponent();
base.OnSizeChanged(e);
if(this.Height < 21) {
this.Height = 21;
}
}
private void txtValue_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Up) {
this.Value += this.Increment;
e.SuppressKeyPress = true;
} else if(e.KeyCode == Keys.Down) {
this.Value -= this.Increment;
e.SuppressKeyPress = true;
} else if(
!((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) ||
(e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) ||
e.KeyCode == Keys.OemPeriod || e.KeyCode == Keys.Oemcomma ||
e.KeyCode == Keys.Delete || e.KeyCode == Keys.Left ||
e.KeyCode == Keys.Right || e.KeyCode == Keys.Home ||
e.KeyCode == Keys.End || e.KeyCode == Keys.Back)
) {
e.SuppressKeyPress = true;
}
}
private void InitializeComponent()
{
this.nud = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.nud)).BeginInit();
this.components = new System.ComponentModel.Container();
this.txtValue = new System.Windows.Forms.TextBox();
this.btnUp = new System.Windows.Forms.Button();
this.btnDown = new System.Windows.Forms.Button();
this.pnlButtons = new System.Windows.Forms.Panel();
this.pnlButtons.SuspendLayout();
this.SuspendLayout();
//
// nud
// txtValue
//
this.nud.AutoSize = true;
this.nud.Dock = System.Windows.Forms.DockStyle.Fill;
this.nud.Location = new System.Drawing.Point(0, 0);
this.nud.Name = "nud";
this.nud.Size = new System.Drawing.Size(48, 20);
this.nud.TabIndex = 0;
this.txtValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtValue.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtValue.Location = new System.Drawing.Point(1, 3);
this.txtValue.Margin = new System.Windows.Forms.Padding(0);
this.txtValue.Name = "txtValue";
this.txtValue.Size = new System.Drawing.Size(44, 13);
this.txtValue.TabIndex = 0;
this.txtValue.TextChanged += new System.EventHandler(this.txtValue_TextChanged);
this.txtValue.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtValue_KeyDown);
this.txtValue.Validated += new System.EventHandler(this.txtValue_Validated);
//
// btnUp
//
this.btnUp.Image = Properties.Resources.NudUpArrow;
this.btnUp.Location = new System.Drawing.Point(1, -1);
this.btnUp.Margin = new System.Windows.Forms.Padding(0);
this.btnUp.Name = "btnUp";
this.btnUp.Size = new System.Drawing.Size(15, 11);
this.btnUp.TabIndex = 2;
this.btnUp.TabStop = false;
this.btnUp.UseVisualStyleBackColor = true;
this.btnUp.Click += new System.EventHandler(this.btnUp_Click);
this.btnUp.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btn_MouseDown);
this.btnUp.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btn_MouseUp);
//
// btnDown
//
this.btnDown.Image = Properties.Resources.NudDownArrow;
this.btnDown.Location = new System.Drawing.Point(1, 9);
this.btnDown.Margin = new System.Windows.Forms.Padding(0);
this.btnDown.Name = "btnDown";
this.btnDown.Size = new System.Drawing.Size(15, 11);
this.btnDown.TabIndex = 3;
this.btnDown.TabStop = false;
this.btnDown.UseVisualStyleBackColor = true;
this.btnDown.Click += new System.EventHandler(this.btnDown_Click);
this.btnDown.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btn_MouseDown);
this.btnDown.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btn_MouseUp);
//
// pnlButtons
//
this.pnlButtons.Controls.Add(this.btnDown);
this.pnlButtons.Controls.Add(this.btnUp);
this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Right;
this.pnlButtons.Location = new System.Drawing.Point(47, 0);
this.pnlButtons.Margin = new System.Windows.Forms.Padding(0);
this.pnlButtons.Name = "pnlButtons";
this.pnlButtons.Size = new System.Drawing.Size(15, 21);
this.pnlButtons.TabIndex = 1;
//
// tmrRepeat
//
this.tmrRepeat = new Timer(components);
this.tmrRepeat.Tick += tmrRepeat_Tick;
//
// MesenNumericUpDown
//
this.Controls.Add(this.nud);
this.MaximumSize = new Size(10000, 20);
this.Controls.Add(this.txtValue);
this.Controls.Add(this.pnlButtons);
this.MaximumSize = new System.Drawing.Size(10000, 21);
this.MinimumSize = new System.Drawing.Size(0, 21);
this.Name = "MesenNumericUpDown";
this.Size = new System.Drawing.Size(48, 21);
((System.ComponentModel.ISupportInitialize)(this.nud)).EndInit();
this.Size = new System.Drawing.Size(62, 21);
this.pnlButtons.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
/// <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);
}
}
}

View file

@ -268,7 +268,6 @@ namespace Mesen.GUI.Debugger
0,
0});
this.nudScanline.ValueChanged += new System.EventHandler(this.nudScanlineCycle_ValueChanged);
this.nudScanline.TextChanged += new System.EventHandler(this.nudScanlineCycle_TextChanged);
//
// lblCycle
//
@ -310,7 +309,6 @@ namespace Mesen.GUI.Debugger
0,
0});
this.nudCycle.ValueChanged += new System.EventHandler(this.nudScanlineCycle_ValueChanged);
this.nudCycle.TextChanged += new System.EventHandler(this.nudScanlineCycle_TextChanged);
//
// btnReset
//

View file

@ -174,14 +174,6 @@ namespace Mesen.GUI.Debugger
ConfigManager.ApplyChanges();
}
private void nudScanlineCycle_TextChanged(object sender, EventArgs e)
{
int scanline, cycle;
if(int.TryParse(this.nudScanline.Text, out scanline) && int.TryParse(this.nudCycle.Text, out cycle)) {
SetUpdateScanlineCycle(int.Parse(this.nudScanline.Text), int.Parse(this.nudCycle.Text));
}
}
private void nudScanlineCycle_ValueChanged(object sender, EventArgs e)
{
SetUpdateScanlineCycle((int)this.nudScanline.Value, (int)this.nudCycle.Value);

View file

@ -423,7 +423,7 @@ namespace Mesen.GUI.Forms.Config
//
this.chkMuteSoundInBackground.AutoSize = true;
this.tableLayoutPanel2.SetColumnSpan(this.chkMuteSoundInBackground, 2);
this.chkMuteSoundInBackground.Location = new System.Drawing.Point(3, 109);
this.chkMuteSoundInBackground.Location = new System.Drawing.Point(3, 110);
this.chkMuteSoundInBackground.Name = "chkMuteSoundInBackground";
this.chkMuteSoundInBackground.Size = new System.Drawing.Size(182, 17);
this.chkMuteSoundInBackground.TabIndex = 14;
@ -435,7 +435,7 @@ namespace Mesen.GUI.Forms.Config
//
this.chkReduceSoundInBackground.AutoSize = true;
this.tableLayoutPanel2.SetColumnSpan(this.chkReduceSoundInBackground, 2);
this.chkReduceSoundInBackground.Location = new System.Drawing.Point(3, 132);
this.chkReduceSoundInBackground.Location = new System.Drawing.Point(3, 133);
this.chkReduceSoundInBackground.Name = "chkReduceSoundInBackground";
this.chkReduceSoundInBackground.Size = new System.Drawing.Size(201, 17);
this.chkReduceSoundInBackground.TabIndex = 13;
@ -468,7 +468,7 @@ namespace Mesen.GUI.Forms.Config
//
this.lblAudioLatency.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblAudioLatency.AutoSize = true;
this.lblAudioLatency.Location = new System.Drawing.Point(3, 86);
this.lblAudioLatency.Location = new System.Drawing.Point(3, 87);
this.lblAudioLatency.Name = "lblAudioLatency";
this.lblAudioLatency.Size = new System.Drawing.Size(48, 13);
this.lblAudioLatency.TabIndex = 0;
@ -527,14 +527,14 @@ namespace Mesen.GUI.Forms.Config
this.tableLayoutPanel7.Name = "tableLayoutPanel7";
this.tableLayoutPanel7.RowCount = 1;
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel7.Size = new System.Drawing.Size(386, 26);
this.tableLayoutPanel7.Size = new System.Drawing.Size(386, 27);
this.tableLayoutPanel7.TabIndex = 15;
//
// lblLatencyWarning
//
this.lblLatencyWarning.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblLatencyWarning.AutoSize = true;
this.lblLatencyWarning.Location = new System.Drawing.Point(98, 6);
this.lblLatencyWarning.Location = new System.Drawing.Point(98, 7);
this.lblLatencyWarning.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.lblLatencyWarning.Name = "lblLatencyWarning";
this.lblLatencyWarning.Size = new System.Drawing.Size(192, 13);
@ -557,7 +557,7 @@ namespace Mesen.GUI.Forms.Config
//
this.lblLatencyMs.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblLatencyMs.AutoSize = true;
this.lblLatencyMs.Location = new System.Drawing.Point(54, 6);
this.lblLatencyMs.Location = new System.Drawing.Point(54, 7);
this.lblLatencyMs.Name = "lblLatencyMs";
this.lblLatencyMs.Size = new System.Drawing.Size(20, 13);
this.lblLatencyMs.TabIndex = 2;
@ -574,18 +574,18 @@ namespace Mesen.GUI.Forms.Config
0});
this.nudLatency.Location = new System.Drawing.Point(3, 3);
this.nudLatency.Maximum = new decimal(new int[] {
9999,
300,
0,
0,
0});
this.nudLatency.MaximumSize = new System.Drawing.Size(10000, 20);
this.nudLatency.Minimum = new decimal(new int[] {
0,
15,
0,
0,
0});
this.nudLatency.Name = "nudLatency";
this.nudLatency.Size = new System.Drawing.Size(45, 20);
this.nudLatency.Size = new System.Drawing.Size(45, 21);
this.nudLatency.TabIndex = 1;
this.nudLatency.Value = new decimal(new int[] {
100,
@ -593,7 +593,6 @@ namespace Mesen.GUI.Forms.Config
0,
0});
this.nudLatency.ValueChanged += new System.EventHandler(this.nudLatency_ValueChanged);
this.nudLatency.Leave += new System.EventHandler(this.nudLatency_Leave);
//
// btnReset
//
@ -1465,7 +1464,7 @@ namespace Mesen.GUI.Forms.Config
0,
0});
this.nudStereoDelay.Name = "nudStereoDelay";
this.nudStereoDelay.Size = new System.Drawing.Size(45, 20);
this.nudStereoDelay.Size = new System.Drawing.Size(45, 21);
this.nudStereoDelay.TabIndex = 1;
this.nudStereoDelay.Value = new decimal(new int[] {
0,
@ -1496,7 +1495,7 @@ namespace Mesen.GUI.Forms.Config
0,
-2147483648});
this.nudStereoPanning.Name = "nudStereoPanning";
this.nudStereoPanning.Size = new System.Drawing.Size(45, 20);
this.nudStereoPanning.Size = new System.Drawing.Size(45, 21);
this.nudStereoPanning.TabIndex = 1;
this.nudStereoPanning.Value = new decimal(new int[] {
0,
@ -1635,7 +1634,7 @@ namespace Mesen.GUI.Forms.Config
0,
0});
this.nudCrossFeedRatio.Name = "nudCrossFeedRatio";
this.nudCrossFeedRatio.Size = new System.Drawing.Size(42, 20);
this.nudCrossFeedRatio.Size = new System.Drawing.Size(42, 21);
this.nudCrossFeedRatio.TabIndex = 2;
this.nudCrossFeedRatio.Value = new decimal(new int[] {
0,

View file

@ -127,11 +127,6 @@ namespace Mesen.GUI.Forms.Config
protected override bool ValidateInput()
{
UpdateObject();
if(((AudioInfo)Entity).AudioLatency < 15) {
((AudioInfo)Entity).AudioLatency = 15;
} else if(((AudioInfo)Entity).AudioLatency > 300) {
((AudioInfo)Entity).AudioLatency = 300;
}
AudioInfo.ApplyConfig();
return true;
@ -148,15 +143,6 @@ namespace Mesen.GUI.Forms.Config
UpdateLatencyWarning();
}
private void nudLatency_Leave(object sender, EventArgs e)
{
if(nudLatency.Value < 15) {
nudLatency.Value = 15;
} else if(nudLatency.Value > 300) {
nudLatency.Value = 300;
}
}
private void btnReset_Click(object sender, EventArgs e)
{
ConfigManager.Config.AudioInfo = new AudioInfo();

View file

@ -720,7 +720,6 @@ namespace Mesen.GUI.Forms.Config
0,
0,
0});
this.nudOverclockRate.Validated += new System.EventHandler(this.OverclockConfig_Validated);
//
// lblClockRatePercent
//
@ -792,7 +791,6 @@ namespace Mesen.GUI.Forms.Config
0,
0,
0});
this.nudExtraScanlinesAfterNmi.Validated += new System.EventHandler(this.OverclockConfig_Validated);
//
// nudExtraScanlinesBeforeNmi
//
@ -823,7 +821,6 @@ namespace Mesen.GUI.Forms.Config
0,
0,
0});
this.nudExtraScanlinesBeforeNmi.Validated += new System.EventHandler(this.OverclockConfig_Validated);
//
// lblExtraScanlinesBeforeNmi
//

View file

@ -67,19 +67,6 @@ namespace Mesen.GUI.Forms.Config
lblEffectiveClockRateValueDendy.Text = (1773448 * clockRateMultiplierDendy / 100000000).ToString("#.####") + " mhz (" + ((int)clockRateMultiplierDendy).ToString() + "%)";
}
private void OverclockConfig_Validated(object sender, EventArgs e)
{
if(string.IsNullOrWhiteSpace(nudExtraScanlinesAfterNmi.Text)) {
nudExtraScanlinesAfterNmi.Value = 0;
}
if(string.IsNullOrWhiteSpace(nudExtraScanlinesBeforeNmi.Text)) {
nudExtraScanlinesBeforeNmi.Value = 0;
}
if(string.IsNullOrWhiteSpace(nudOverclockRate.Text)) {
nudOverclockRate.Value = 100;
}
}
private void btnResetLagCounter_Click(object sender, EventArgs e)
{
InteropEmu.ResetLagCounter();

File diff suppressed because it is too large Load diff

View file

@ -17,7 +17,6 @@ namespace Mesen.GUI.Forms.Config
public partial class frmVideoConfig : BaseConfigForm
{
private Int32[] _paletteData;
int _lastScaleInputNumber = -1;
public frmVideoConfig()
{
@ -459,36 +458,6 @@ namespace Mesen.GUI.Forms.Config
nudCustomRatio.Visible = ratio == VideoAspectRatio.Custom;
}
private void nudScale_ValueChanged(object sender, EventArgs e)
{
if(nudScale.Value > 10) {
if(_lastScaleInputNumber < 0) {
nudScale.Value = 10;
} else {
//Set pressed key as scale, keep same decimals
nudScale.Value = Math.Min(10, nudScale.Value - (int)nudScale.Value + _lastScaleInputNumber);
}
}
}
private void nudScale_KeyDown(object sender, KeyEventArgs e)
{
//Used in ValueChanged to make field more user-friendly
if(e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) {
_lastScaleInputNumber = (int)e.KeyCode - (int)Keys.NumPad0;
} else if(e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) {
_lastScaleInputNumber = (int)e.KeyCode - (int)Keys.D0;
} else {
_lastScaleInputNumber = -1;
}
}
private void nudScale_Click(object sender, EventArgs e)
{
//Used in ValueChanged to make field more user-friendly
_lastScaleInputNumber = -1;
}
private void chkShowColorIndexes_CheckedChanged(object sender, EventArgs e)
{
this.RefreshPalette();

View file

@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACs
BQAAAk1TRnQBSQFMAwEBAAEQAQABEAEAARABAAEQAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA
BQAAAk1TRnQBSQFMAwEBAAEwAQABMAEAARABAAEQAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA
ARADAAEBAQABGAYAAQweAAH5AvgB1QHBAbsBqAFyAWEBkAFHATABkAFHATABpgFuAVwB0gG8AbUB+AL2
pQAB1QHAAbkBlgFNATIBqgFaASwBuwFkASsBwAFpASkBwAFpASkBuwFlASwBqwFbAS0BmAFMATAB0wG9
AbWfAAHRAbgBrwGlAVgBMgHAAW0BLgHCAW0BLQHCAW0BLQHCAW0BLQHCAW0BLQHCAW0BLQHCAW0BLQHA

View file

@ -1169,6 +1169,8 @@
<Compile Include="RuntimeChecker.cs" />
<Compile Include="SingleInstance.cs" />
<Compile Include="TestRunner.cs" />
<None Include="Resources\NudUpArrow.png" />
<None Include="Resources\NudDownArrow.png" />
<None Include="Dependencies\LuaScripts\NtscSafeArea.lua">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@ -1571,6 +1573,7 @@
</EmbeddedResource>
<EmbeddedResource Include="Forms\Config\frmVideoConfig.resx">
<DependentUpon>frmVideoConfig.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Cheats\frmCheatList.resx">
<DependentUpon>frmCheatList.cs</DependentUpon>

View file

@ -600,6 +600,26 @@ namespace Mesen.GUI.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap NudDownArrow {
get {
object obj = ResourceManager.GetObject("NudDownArrow", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap NudUpArrow {
get {
object obj = ResourceManager.GetObject("NudUpArrow", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View file

@ -403,4 +403,10 @@
<data name="VerticalLayout" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\VerticalLayout.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="NudDownArrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NudDownArrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="NudUpArrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NudUpArrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B