public MEStringsSelector(Map map, object sender)
{
InitializeComponent();
if (encodes == null)
{
// load any listed unicode codes
try
{
encodes = loadUnicodes();
}
catch
{
encodes = new List<Encode>();
}
}
// Select ALL
this.cbSelectStringIDs.SelectedIndex = 0;
this.Owner = (Form)sender;
string[] names = map.Strings.Name;
// KeyPreview = true;
for (int i = 0; i < names.Length; i++)
{
//dgvStringIDs.Rows.Add(new object[] { names[i], i, -1 });
StringID SID = new StringID(names[i], i);
// Create 2 duplicate lists
stringIDs.Add(SID);
stringIDsNoUnicode.Add(SID);
}
UnicodeTableReader.UnicodeTable ut = map.Unicode.ut[0];
if (ut.SIDs == null)
ut.Read();
for (int i = 0; i < ut.US.Length; i++)
{
Unicode uni = new Unicode(i, ut.US[i].uString, ut.US[i].size, ut.US[i].offset, stringIDs[ut.SIDs[i].id]);
unicodes.Add(uni);
StringID SID = stringIDs[ut.SIDs[i].id];
SID.unicodes.Add(uni);
if (stringIDsNoUnicode.Contains(SID))
{
stringIDsNoUnicode.Remove(SID); // Switch it from NO UNICODE list
stringIDsUnicode.Add(SID); // ...to UNICODE list
}
}
lbStringIDs.DataSource = stringIDs;
lbUnicodes.DataSource = unicodes;
// Set default sort method and apply sort to lists
cbSIDSort.SelectedIndex = 0;
cbUnicodeSort.SelectedIndex = 0;
List<string> ss = new List<string>();
for (int i = 0; i < unicodes[1].stringID.unicodes.Count; i++)
{
string s = unicodes[0].stringID.unicodes[i].ToString();
byte[] tempbytes = System.Text.Encoding.Unicode.GetBytes(s);
System.Text.Encoding decode = System.Text.Encoding.ASCII;
ss.Add(decode.GetString(tempbytes));
}
setlbStringsIDDataSource();
}