BizHawk/BizHawk.Client.EmuHawk/tools/TI83/TI83KeyPad.cs

211 lines
8.8 KiB
C#

using System;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Calculators;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class TI83KeyPad : ToolFormBase, IToolFormAutoConfig
{
[RequiredService]
// ReSharper disable once UnusedAutoPropertyAccessor.Local
public TI83 Emu { get; private set; }
public TI83KeyPad()
{
InitializeComponent();
}
[ConfigPersist]
public bool TI83ToolTips { get; set; } = true;
private void TI83KeyPad_Load(object sender, EventArgs e)
{
if (TI83ToolTips)
{
SetToolTips();
}
}
private void KeyClick(string name)
{
Global.InputManager.ClickyVirtualPadController.Click(name);
}
#region Public API
public bool AskSaveChanges() => true;
public bool UpdateBefore => false;
public void NewUpdate(ToolFormUpdateType type) { }
public void UpdateValues()
{
// Do nothing
}
public void FastUpdate()
{
// Do nothing
}
public void Restart()
{
// Do nothing
}
#endregion
private void SetToolTips()
{
// Set button hotkey mapping into tooltips
var mappings = Config.AllTrollers["TI83 Controller"];
KeyPadToolTips.SetToolTip(ZeroButton, mappings["0"]);
KeyPadToolTips.SetToolTip(OneButton, mappings["1"]);
KeyPadToolTips.SetToolTip(TwoButton, mappings["2"]);
KeyPadToolTips.SetToolTip(ThreeButton, mappings["3"]);
KeyPadToolTips.SetToolTip(FourButton, mappings["4"]);
KeyPadToolTips.SetToolTip(FiveButton, mappings["5"]);
KeyPadToolTips.SetToolTip(SixButton, mappings["6"]);
KeyPadToolTips.SetToolTip(SevenButton, mappings["7"]);
KeyPadToolTips.SetToolTip(EightButton, mappings["8"]);
KeyPadToolTips.SetToolTip(NineButton, mappings["9"]);
KeyPadToolTips.SetToolTip(PeriodButton, mappings["DOT"]);
KeyPadToolTips.SetToolTip(OnButton, mappings["ON"]);
KeyPadToolTips.SetToolTip(EnterButton, mappings["ENTER"]);
KeyPadToolTips.SetToolTip(UpButton, mappings["UP"]);
KeyPadToolTips.SetToolTip(DownButton, mappings["DOWN"]);
KeyPadToolTips.SetToolTip(LeftButton, mappings["LEFT"]);
KeyPadToolTips.SetToolTip(RightButton, mappings["RIGHT"]);
KeyPadToolTips.SetToolTip(PlusButton, mappings["PLUS"]);
KeyPadToolTips.SetToolTip(MinusButton, mappings["MINUS"]);
KeyPadToolTips.SetToolTip(MultiplyButton, mappings["MULTIPLY"]);
KeyPadToolTips.SetToolTip(DivideButton, mappings["DIVIDE"]);
KeyPadToolTips.SetToolTip(ClearButton, mappings["CLEAR"]);
KeyPadToolTips.SetToolTip(ExpButton, mappings["EXP"]);
KeyPadToolTips.SetToolTip(DashButton, mappings["DASH"]);
KeyPadToolTips.SetToolTip(ParaOpenButton, mappings["PARAOPEN"]);
KeyPadToolTips.SetToolTip(ParaCloseButton, mappings["PARACLOSE"]);
KeyPadToolTips.SetToolTip(TanButton, mappings["TAN"]);
KeyPadToolTips.SetToolTip(VarsButton, mappings["VARS"]);
KeyPadToolTips.SetToolTip(CosButton, mappings["COS"]);
KeyPadToolTips.SetToolTip(PrgmButton, mappings["PRGM"]);
KeyPadToolTips.SetToolTip(StatButton, mappings["STAT"]);
KeyPadToolTips.SetToolTip(MatrixButton, mappings["MATRIX"]);
KeyPadToolTips.SetToolTip(XButton, mappings["X"]);
KeyPadToolTips.SetToolTip(StoButton, mappings["STO"]);
KeyPadToolTips.SetToolTip(LnButton, mappings["LN"]);
KeyPadToolTips.SetToolTip(LogButton, mappings["LOG"]);
KeyPadToolTips.SetToolTip(SquaredButton, mappings["SQUARED"]);
KeyPadToolTips.SetToolTip(Neg1Button, mappings["NEG1"]);
KeyPadToolTips.SetToolTip(MathButton, mappings["MATH"]);
KeyPadToolTips.SetToolTip(AlphaButton, mappings["ALPHA"]);
KeyPadToolTips.SetToolTip(GraphButton, mappings["GRAPH"]);
KeyPadToolTips.SetToolTip(TraceButton, mappings["TRACE"]);
KeyPadToolTips.SetToolTip(ZoomButton, mappings["ZOOM"]);
KeyPadToolTips.SetToolTip(WindowButton, mappings["WINDOW"]);
KeyPadToolTips.SetToolTip(YButton, mappings["Y"]);
KeyPadToolTips.SetToolTip(SecondButton, mappings["SECOND"]);
KeyPadToolTips.SetToolTip(ModeButton, mappings["MODE"]);
KeyPadToolTips.SetToolTip(DelButton, mappings["DEL"]);
KeyPadToolTips.SetToolTip(CommaButton, mappings["COMMA"]);
KeyPadToolTips.SetToolTip(SinButton, mappings["SIN"]);
}
private void StopToolTips()
{
KeyPadToolTips.RemoveAll();
}
#region Events
#region Menu
private void ExitMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e)
{
ShowHotkeysMenuItem.Checked = TI83ToolTips;
}
private void ShowHotkeysMenuItem_Click(object sender, EventArgs e)
{
TI83ToolTips ^= true;
if (TI83ToolTips)
{
SetToolTips();
}
else
{
StopToolTips();
}
}
#endregion
#region Dialog and Controls
private void EnterButton_Click(object sender, EventArgs e) => KeyClick("ENTER");
private void DashButton_Click(object sender, EventArgs e) => KeyClick("DASH");
private void OneButton_Click(object sender, EventArgs e) => KeyClick("1");
private void TwoButton_Click(object sender, EventArgs e) => KeyClick("2");
private void ThreeButton_Click(object sender, EventArgs e) => KeyClick("3");
private void FourButton_Click(object sender, EventArgs e) => KeyClick("4");
private void FiveButton_Click(object sender, EventArgs e) => KeyClick("5");
private void SixButton_Click(object sender, EventArgs e) => KeyClick("6");
private void SevenButton_Click(object sender, EventArgs e) => KeyClick("7");
private void EightButton_Click(object sender, EventArgs e) => KeyClick("8");
private void NineButton_Click(object sender, EventArgs e) => KeyClick("9");
private void OnButton_Click(object sender, EventArgs e) => KeyClick("ON");
private void StoButton_Click(object sender, EventArgs e) => KeyClick("STO");
private void PlusButton_Click(object sender, EventArgs e) => KeyClick("PLUS");
private void LnButton_Click(object sender, EventArgs e) => KeyClick("LN");
private void MinusButton_Click(object sender, EventArgs e) => KeyClick("MINUS");
private void LogButton_Click(object sender, EventArgs e) => KeyClick("LOG");
private void MultiplyButton_Click(object sender, EventArgs e) => KeyClick("MULTIPLY");
private void SquaredButton_Click(object sender, EventArgs e) => KeyClick("SQUARED");
private void CommaButton_Click(object sender, EventArgs e) => KeyClick("COMMA");
private void ParaOpenButton_Click(object sender, EventArgs e) => KeyClick("PARAOPEN");
private void ParaCloseButton_Click(object sender, EventArgs e) => KeyClick("PARACLOSE");
private void DivideButton_Click(object sender, EventArgs e) => KeyClick("DIVIDE");
private void Neg1Button_Click(object sender, EventArgs e) => KeyClick("NEG1");
private void SinButton_Click(object sender, EventArgs e) => KeyClick("SIN");
private void CosButton_Click(object sender, EventArgs e) => KeyClick("COS");
private void TanButton_Click(object sender, EventArgs e) => KeyClick("TAN");
private void ExpButton_Click(object sender, EventArgs e) => KeyClick("EXP");
private void MathButton_Click(object sender, EventArgs e) => KeyClick("MATH");
private void MatrixButton_Click(object sender, EventArgs e) => KeyClick("MATRIX");
private void ProgamButton_Click(object sender, EventArgs e) => KeyClick("PRGM");
private void VarsButton_Click(object sender, EventArgs e) => KeyClick("VARS");
private void ClearButton_Click(object sender, EventArgs e) => KeyClick("CLEAR");
private void AlphaButton_Click(object sender, EventArgs e) => KeyClick("ALPHA");
private void XButton_Click(object sender, EventArgs e) => KeyClick("X");
private void StatButton_Click(object sender, EventArgs e) => KeyClick("STAT");
private void SecondButton_Click(object sender, EventArgs e) => KeyClick("2ND");
private void ModeButton_Click(object sender, EventArgs e) => KeyClick("MODE");
private void DelButton_Click(object sender, EventArgs e) => KeyClick("DEL");
private void LeftButton_Click(object sender, EventArgs e) => KeyClick("LEFT");
private void DownButton_Click(object sender, EventArgs e) => KeyClick("DOWN");
private void RightButton_Click(object sender, EventArgs e) => KeyClick("RIGHT");
private void UpButton_Click(object sender, EventArgs e) => KeyClick("UP");
private void YButton_Click(object sender, EventArgs e) => KeyClick("Y");
private void WindowButton_Click(object sender, EventArgs e) => KeyClick("WINDOW");
private void ZoomButton_Click(object sender, EventArgs e) => KeyClick("ZOOM");
private void TraceButton_Click(object sender, EventArgs e) => KeyClick("TRACE");
private void GraphButton_Click(object sender, EventArgs e) => KeyClick("GRAPH");
private void PeriodButton_Click(object sender, EventArgs e) => KeyClick("DOT");
private void ZeroButton_Click(object sender, EventArgs e) => KeyClick("0");
#endregion
#endregion
}
}