Worms4Editor/W4Gui/Tabs/OtherTabs/InputMappingsTab.cs

86 lines
2.8 KiB
C#

using LibW4M.Data.Highscores;
using LibW4M.Data.InputMapping;
using LibW4M.Data.Stats;
using LibW4M.Data.Teams;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace W4Gui.Tabs.OtherTabs
{
public partial class InputMappingsTab : UserControl
{
private List<InputMappingData> mappingData;
public InputMappingData[] MappingDataArray
{
get
{
return mappingData.ToArray();
}
}
public InputMappingsTab()
{
InitializeComponent();
this.inputMappingsList.List.Selected += inputMappingsList_Selected;
this.inputMappingsList.List.Unselected += inputMappingsList_Unselected;
this.mappingData = new List<InputMappingData>();
}
public void SaveData()
{
if (this.inputMappingsList.List.IsItemSelected)
inputMappingsList_Unselected(null, null);
}
public void LoadData(ref InputMappingData[] data)
{
this.inputMappingsList.List.LoadArray(data);
this.mappingData.Clear();
inputMappingsPanel.Enabled = false;
mappingData.AddRange(data);
}
private void inputMappingsList_Unselected(object? sender, EventArgs? e)
{
InputMappingData inputMappingsData = mappingData[inputMappingsList.List.LastSelected] as InputMappingData;
inputMappingsPanel.SaveInputMappingsData(ref inputMappingsData);
inputMappingsList.List.UpdateName(inputMappingsList.List.LastSelected, inputMappingsData.FriendlyName);
}
private void inputMappingsList_Selected(object? sender, EventArgs e)
{
InputMappingData inputMappingsData = mappingData[inputMappingsList.List.CurrentlySelected] as InputMappingData;
inputMappingsPanel.LoadInputMappingsData(inputMappingsData);
inputMappingsPanel.Enabled = true;
}
private void inputMappingsList_NewButton(object sender, EventArgs e)
{
InputMappingData mapping = new InputMappingData(DataManager.SaveFile, DataManager.SaveFile.CreateContainer("InputDetailsContainer"), false);
this.mappingData.Add(mapping);
this.inputMappingsList.List.Add(mapping.FriendlyName);
}
private void inputMappingsList_DelButton(object sender, EventArgs e)
{
int sel = inputMappingsList.List.CurrentlySelected;
InputMappingData inputMappingsData = mappingData[sel] as InputMappingData;
mappingData.RemoveAt(sel);
inputMappingsList.List.Delete(sel);
inputMappingsData.DeleteEntries();
}
}
}