public void setEditorMode(EditorModes editMode)
{
// If we want the last used panel, see which panel is one level down and activate it
if (editMode == EditorModes.LastMode && this.splitContainer2.Panel1.Controls.Count > 1)
{
switch (this.splitContainer2.Panel1.Controls[1].Name)
{
case "hexView1":
editMode = EditorModes.HexViewer;
break;
case "LibraryPanel":
editMode = EditorModes.PluginViewer;
break;
case "ltmpTools":
editMode = EditorModes.BitmapViewer;
break;
case "MetaEditorPanel":
editMode = EditorModes.MetaEditor1;
break;
case "MetaEditor2Panel":
editMode = EditorModes.MetaEditor2;
break;
case "references":
editMode = EditorModes.ReferenceEditor;
break;
default:
return;
}
}
// Only allow bitmaps to select Bitmap Viewer
if (editMode == EditorModes.BitmapViewer && map.SelectedMeta != null && map.SelectedMeta.type != "bitm")
{
ltmpTools.Visible = true;
return;
}
// "Check" the selected panel
hexEditorToolStripMenuItem.Checked = (editMode == EditorModes.HexViewer);
bitmapEditorToolStripMenuItem.Checked = (editMode == EditorModes.BitmapViewer);
metaEditorToolStripMenuItem.Checked = (editMode == EditorModes.MetaEditor1);
metaEditorNewToolStripMenuItem.Checked = (editMode == EditorModes.MetaEditor2);
pluginsToolStripMenuItem.Checked = (editMode == EditorModes.PluginViewer);
referenceEditorToolStripMenuItem.Checked = (editMode == EditorModes.ReferenceEditor);
Control c = null;
switch (editMode)
{
case EditorModes.BitmapViewer:
c = ltmpTools;
break;
case EditorModes.HexViewer:
c = hexView1;
break;
case EditorModes.MetaEditor1:
c = MetaEditorPanel;
break;
case EditorModes.MetaEditor2:
c = MetaEditor2Panel;
MetaEditor2Panel.Tag = "New";
break;
case EditorModes.PluginViewer:
c = LibraryPanel;
break;
case EditorModes.ReferenceEditor:
c = references;
break;
}
if (c != null)
{
c.Visible = true;
if (c.Parent == splitContainer2.Panel1)
{
c.BringToFront();
// Hide all other panels, except for Bitmap Viewer
for (int i = 1; i < this.splitContainer2.Panel1.Controls.Count; i++)
{
if (this.splitContainer2.Panel1.Controls[i] != ltmpTools)
this.splitContainer2.Panel1.Controls[i].Visible = false;
}
// This method allows us to have an auto-bitmap viewer
if (map.SelectedMeta != null && map.SelectedMeta.type == "bitm")
if (editMode != EditorModes.BitmapViewer)
ltmpTools.Visible = false;
else
this.splitContainer2.Panel1.Controls[1].Visible = true;
//ltmpTools.SendToBack();
}
}
if (map.SelectedMeta != null)
{
LoadMeta(map.SelectedMeta.TagIndex);
}
lastEditMode = editMode;
}