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

440 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Calculators;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class TI83KeyPad : Form, IToolForm
{
[RequiredService]
public TI83 Emu { get; private set; }
public TI83KeyPad()
{
InitializeComponent();
TopMost = Global.Config.TI83KeypadSettings.TopMost;
Closing += (o, e) =>
{
Global.Config.TI83KeypadSettings.Wndx = Location.X;
Global.Config.TI83KeypadSettings.Wndy = Location.Y;
};
}
private void TI83KeyPad_Load(object sender, EventArgs e)
{
if (Global.Config.TI83KeypadSettings.UseWindowPosition)
{
Location = Global.Config.TI83KeypadSettings.WindowPosition;
}
if (Global.Config.TI83ToolTips)
{
SetToolTips();
}
}
#region Public API
public bool AskSaveChanges() { return true; }
public bool UpdateBefore { get { return false; } }
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 = Global.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();
}
private void RefreshFloatingWindowControl()
{
Owner = Global.Config.TI83KeypadSettings.FloatingWindow ? null : GlobalWin.MainForm;
}
#region Events
#region Menu
private void ExitMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e)
{
ShowHotkeysMenuItem.Checked = Global.Config.TI83ToolTips;
SaveWindowPositionMenuItem.Checked = Global.Config.TI83KeypadSettings.SaveWindowPosition;
AlwaysOnTopMenuItem.Checked = Global.Config.TI83KeypadSettings.TopMost;
FloatingWindowMenuItem.Checked = Global.Config.TI83KeypadSettings.FloatingWindow;
}
private void ShowHotkeysMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TI83ToolTips ^= true;
if (Global.Config.TI83ToolTips)
{
SetToolTips();
}
else
{
StopToolTips();
}
}
private void SaveWindowPositionMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TI83KeypadSettings.SaveWindowPosition ^= true;
}
private void AlwaysOnTopMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TI83KeypadSettings.TopMost ^= true;
TopMost = Global.Config.TI83KeypadSettings.TopMost;
}
private void FloatingWindowMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TI83KeypadSettings.FloatingWindow ^= true;
RefreshFloatingWindowControl();
}
#endregion
#region Dialog and Controls
private void EnterButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("ENTER");
}
private void DashButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("DASH");
}
private void OneButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("1");
}
private void TwoButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("2");
}
private void ThreeButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("3");
}
private void FourButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("4");
}
private void FiveButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("5");
}
private void SixButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("6");
}
private void SevenButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("7");
}
private void EightButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("8");
}
private void NineButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("9");
}
private void OnButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("ON");
}
private void StoButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("STO");
}
private void PlusButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("PLUS");
}
private void LnButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("LN");
}
private void MinusButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("MINUS");
}
private void LogButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("LOG");
}
private void MultiplyButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("MULTIPLY");
}
private void SquaredButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("SQUARED");
}
private void CommaButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("COMMA");
}
private void ParaOpenButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("PARAOPEN");
}
private void ParaCloseButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("PARACLOSE");
}
private void DivideButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("DIVIDE");
}
private void Neg1Button_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("NEG1");
}
private void SinButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("SIN");
}
private void CosButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("COS");
}
private void TanButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("TAN");
}
private void ExpButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("EXP");
}
private void MathButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("MATH");
}
private void MaxtrixButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("MATRIX");
}
private void PrgmButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("PRGM");
}
private void VarsButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("VARS");
}
private void ClearButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("CLEAR");
}
private void AlphaButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("ALPHA");
}
private void XButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("X");
}
private void StatButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("STAT");
}
private void SecondButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("2ND");
}
private void ModeButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("MODE");
}
private void DelButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("DEL");
}
private void LeftButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("LEFT");
}
private void DownButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("DOWN");
}
private void RightButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("RIGHT");
}
private void UpButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("UP");
}
private void YButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("Y");
}
private void WindowButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("WINDOW");
}
private void ZoomButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("ZOOM");
}
private void TraceButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("TRACE");
}
private void GraphButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("GRAPH");
}
private void PeriodButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("DOT");
}
private void ZeroButton_Click(object sender, EventArgs e)
{
Global.ClickyVirtualPadController.Click("0");
}
protected override void OnShown(EventArgs e)
{
RefreshFloatingWindowControl();
base.OnShown(e);
}
#endregion
#endregion
}
}