Files
PCK-Studio/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.cs

142 lines
3.8 KiB
C#

using PckStudio.Classes.FileTypes;
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 PckStudio
{
public partial class LOCEditor : MetroFramework.Forms.MetroForm
{
DataTable tbl = new DataTable();
LOCFile currentLoc;
public LOCEditor(LOCFile loc)
{
InitializeComponent();
currentLoc = loc;
tbl.Columns.Add(new DataColumn("Language") { ReadOnly = true });
tbl.Columns.Add("Display Name");
dataGridViewLocEntryData.DataSource = tbl;
DataGridViewColumn column = dataGridViewLocEntryData.Columns[1];
column.Width = 600;
}
private void LOCEditor_Load(object sender, EventArgs e)
{
foreach(string id in currentLoc.languages.Keys)
treeViewLocEntries.Nodes.Add(id);
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
tbl.Rows.Clear();
if (treeViewLocEntries.SelectedNode == null ||
!currentLoc.languages.ContainsKey(treeViewLocEntries.SelectedNode.Text))
{
MessageBox.Show("Selected Node does not seem to be in the loc file");
return;
}
buttonReplaceAll.Enabled = true;
foreach (var l in currentLoc.languages[treeViewLocEntries.SelectedNode.Text])
{
tbl.Rows.Add(l.Key, l.Value);
}
}
private void renameDisplayIDToolStripMenuItem_Click(object sender, EventArgs e)
{
TreeNode node = treeViewLocEntries.SelectedNode;
renameLoc diag = new renameLoc(node.Text);
diag.ShowDialog(this);
if (diag.DialogResult == DialogResult.OK)
currentLoc.ChangeEntry("TODO", diag.NewText);
diag.Dispose(); //diposes generated metadata adding dialog data
}
private void addDisplayIDToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("TODO");
//int index = treeViewLocEntries.SelectedNode.Index;
//if(index == -1) index = currentLoc.ids.names.Count;
//currentLoc.ids.names.Insert(index, "NewItem");
//foreach (LOCFile.Language l in currentLoc.langs)
// l.names.Insert(index, "NewString");
//treeViewLocEntries.Nodes.Insert(index, "NewItem");
}
private void deleteDisplayIDToolStripMenuItem_Click(object sender, EventArgs e)
{
if(treeViewLocEntries.SelectedNode != null)
{
MessageBox.Show("TODO");
//int index = treeViewLocEntries.SelectedNode.Index;
//currentLoc.ids.names.RemoveAt(index);
//foreach (LOCFile.Language l in currentLoc.langs)
// l.names.RemoveAt(index);
//treeViewLocEntries.Nodes.RemoveAt(index);
}
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show("TODO");
//for (int i = 0; i < tbl.Rows.Count; i++)
//{
// byte[] data = Encoding.UTF8.GetBytes((string)tbl.Rows[i][1]);
// string final = string.Empty;
// foreach (byte b in data)
// final += (char)b;
// currentLoc.langs[i].names[treeViewLocEntries.SelectedNode.Index] = final;
//}
}
private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Delete && treeViewLocEntries.SelectedNode != null) //checks to make sure pressed key was del
{
int index = treeViewLocEntries.SelectedNode.Index;
MessageBox.Show("TODO");
//currentLoc.languages..RemoveAt(index);
//foreach (var l in currentLoc.languages)
// l.names.RemoveAt(index);
//treeViewLocEntries.Nodes.RemoveAt(index);
}
}
private void buttonReplaceAll_Click(object sender, EventArgs e)
{
MessageBox.Show("TODO");
//for (int i = 0; i < tbl.Rows.Count; i++)
//{
// tbl.Rows[i][1] = ;
//}
//for (int i = 0; i < tbl.Rows.Count; i++)
//{
// currentLoc.langs[i].names[treeViewLocEntries.SelectedNode.Index] = (string)tbl.Rows[i][1];
//}
}
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
}
}
}