private void treeViewTagReflexives_AfterSelect(object sender, TreeViewEventArgs e)
{
if (!treeViewTagReflexives.Enabled)
return;
TreeNode tn = treeViewTagReflexives.SelectedNode;
// Show a wait cursor while the selected reflexive is loading
this.Cursor = Cursors.WaitCursor;
try
{
loadControls(tn);
tsNavigation.Items.Clear();
while (tn.Parent != null)
{
addReflexive(tsNavigation, tn.Text);
tsNavigation.Items[1].Name = tn.Name;
reflexiveData rd = (reflexiveData)tn.Tag;
// will throw exception if in the [MAIN] reflexive, so just ignore
/*
try
{
if (ctl.name == rd.reflexive.label && !labelFound)
{
labelFound = true;
panelMetaEditor.Controls[0].Controls[1].LostFocus += new EventHandler(WinMEControl_LostFocus);
}
}
catch { }
*/
string[] s = new string[rd.chunkCount];
try
{
s = loadLabels(rd);
}
catch
{
// Errors occur with labels when reflexive lies in another tag, so just ignore
}
// Create reflexive count comboBox listings
for (int i = 0; i < rd.chunkCount; i++)
{
if (s[i] != null)
((ToolStripComboBox)tsNavigation.Items[2]).Items.Add(i + " : \"" + s[i] + "\"");
else
((ToolStripComboBox)tsNavigation.Items[2]).Items.Add(i);
}
if (rd.chunkCount != 0)
{
if (rd.chunkSelected > rd.chunkCount)
rd.chunkSelected = rd.chunkCount - 1;
try
{
// Stop it from running ReloadMetaForSameReflexive() since we just loaded it
((ToolStripComboBox)tsNavigation.Items[2]).Enabled = false;
((ToolStripComboBox)tsNavigation.Items[2]).SelectedIndex = rd.chunkSelected;
}
catch
{
}
finally
{
((ToolStripComboBox)tsNavigation.Items[2]).Enabled = true;
}
}
tn = tn.Parent;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
// Restore our mouse cursor
this.Cursor = Cursors.Arrow;
panelMetaEditor.Enabled = (((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).chunkCount != 0);
// If the data is not in this tag, just disbale editing of it. Make it done in parent tag ONLY!
if (meta.TagIndex != ((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber)
panelMetaEditor.Enabled = false;
tsMetaMassEdit.Enabled = panelMetaEditor.Enabled;
btnSave.Enabled = panelMetaEditor.Enabled;
btnReset.Enabled = panelMetaEditor.Enabled;
if (((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber != -1 &&
((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber != meta.TagIndex)
showInfoBox("This reflexive resides within \"[" +
map.MetaInfo.TagType[((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber] +
"] " +
map.FileNames.Name[((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber] +
"\"\r\nYou must edit these values in the parent tag." +
"\r\nDouble click the reflexive in the tree on the left to load the reflexive in the given tag.", 0);
else
{
showInfoBox("", 1);
if ((bool)treeViewTagReflexives.Tag)
tsbtnPeek.Checked = true;
}
}