tastudio: menus for keys

This commit is contained in:
feos 2018-09-09 17:41:57 +03:00
parent ef89b7bf67
commit 0893d96a7e
1 changed files with 46 additions and 7 deletions

View File

@ -1205,6 +1205,8 @@ namespace BizHawk.Client.EmuHawk
.Where(x => !string.IsNullOrWhiteSpace(x.Text)) .Where(x => !string.IsNullOrWhiteSpace(x.Text))
.Where(x => x.Name != "FrameColumn"); .Where(x => x.Name != "FrameColumn");
ToolStripMenuItem keysMenu = new ToolStripMenuItem("Keys");
ToolStripMenuItem[] playerMenus = new ToolStripMenuItem[Emulator.ControllerDefinition.PlayerCount + 1]; ToolStripMenuItem[] playerMenus = new ToolStripMenuItem[Emulator.ControllerDefinition.PlayerCount + 1];
playerMenus[0] = ColumnsSubMenu; playerMenus[0] = ColumnsSubMenu;
for (int i = 1; i < playerMenus.Length; i++) for (int i = 1; i < playerMenus.Length; i++)
@ -1233,17 +1235,30 @@ namespace BizHawk.Client.EmuHawk
(sender.OwnerItem as ToolStripMenuItem).ShowDropDown(); (sender.OwnerItem as ToolStripMenuItem).ShowDropDown();
}; };
int player; if (column.Name.StartsWith("Key "))
if (column.Name.StartsWith("P") && column.Name.Length > 1 && char.IsNumber(column.Name, 1))
{ {
player = int.Parse(column.Name[1].ToString()); keysMenu.DropDownItems.Add(menuItem);
} }
else else
{ {
player = 0; int player;
}
playerMenus[player].DropDownItems.Add(menuItem); if (column.Name.StartsWith("P") && column.Name.Length > 1 && char.IsNumber(column.Name, 1))
{
player = int.Parse(column.Name[1].ToString());
}
else
{
player = 0;
}
playerMenus[player].DropDownItems.Add(menuItem);
}
}
if (keysMenu.DropDownItems.Count > 0)
{
ColumnsSubMenu.DropDownItems.Add(keysMenu);
} }
for (int i = 1; i < playerMenus.Length; i++) for (int i = 1; i < playerMenus.Length; i++)
@ -1263,6 +1278,31 @@ namespace BizHawk.Client.EmuHawk
} }
} }
if (keysMenu.DropDownItems.Count > 0)
{
var item = new ToolStripMenuItem("Show Keys")
{
CheckOnClick = true,
Checked = false
};
ToolStripMenuItem dummyObject = keysMenu;
item.CheckedChanged += (o, ev) =>
{
ToolStripMenuItem sender = o as ToolStripMenuItem;
foreach (ToolStripMenuItem menuItem in dummyObject.DropDownItems)
{
TasView.AllColumns.Find(c => c.Name == (string)menuItem.Tag).Visible = sender.Checked;
}
CurrentTasMovie.FlagChanges();
TasView.AllColumns.ColumnsChanged();
RefreshTasView();
};
ColumnsSubMenu.DropDownItems.Add(item);
}
for (int i = 1; i < playerMenus.Length; i++) for (int i = 1; i < playerMenus.Length; i++)
{ {
if (playerMenus[i].DropDownItems.Count > 0) if (playerMenus[i].DropDownItems.Count > 0)
@ -1273,7 +1313,6 @@ namespace BizHawk.Client.EmuHawk
Checked = true Checked = true
}; };
int dummyInt = i;
ToolStripMenuItem dummyObject = playerMenus[i]; ToolStripMenuItem dummyObject = playerMenus[i];
item.CheckedChanged += (o, ev) => item.CheckedChanged += (o, ev) =>
{ {