public NewForm(HaRepackerMainPanel panel) { this.panel = panel; InitializeComponent(); encryptionBox.SelectedIndex = (int)ApplicationSettings.MapleVersion; versionBox.Value = 1; }
public void ReloadAll(HaRepackerMainPanel panel) { for (int i = 0; i < wzFiles.Count; i++) { ReloadWzFile(wzFiles[i], panel); } }
public SaveForm(HaRepackerMainPanel panel, WzNode wzNode) { InitializeComponent(); this.wzNode = wzNode; this.wzf = (WzFile)wzNode.Tag; this.panel = panel; }
public WzFile LoadWzFile(string path, HaRepackerMainPanel panel) { short fileVersion = -1; bool isList = WzTool.IsListFile(path); return(LoadWzFile(path, WzTool.DetectMapleVersion(path, out fileVersion), fileVersion, panel)); }
public void InsertWzFileUnsafe(WzFile f, HaRepackerMainPanel panel) { wzFiles.Add(f); WzNode node = new WzNode(f); panel.DataTree.Nodes.Add(node); SortNodesRecursively(node); }
public void ReloadAll(HaRepackerMainPanel panel) { Dispatcher currentThread = Dispatcher.CurrentDispatcher; IReadOnlyCollection <WzFile> wzFileListCopy = this.WzFileListReadOnly; Parallel.ForEach(wzFiles, file => { ReloadWzFile(file, panel, currentThread); }); }
public void ReloadWzFile(WzFile file, HaRepackerMainPanel panel) { WzMapleVersion encVersion = file.MapleVersion; string path = file.FilePath; short version = ((WzFile)file).Version; ((WzNode)file.HRTag).Delete(); wzFiles.Remove(file); LoadWzFile(path, encVersion, (short)-1, panel); }
public NewForm(HaRepackerMainPanel panel) { this.panel = panel; InitializeComponent(); encryptionBox.Items.Add(HaRepacker.Properties.Resources.EncTypeGMS); encryptionBox.Items.Add(HaRepacker.Properties.Resources.EncTypeMSEA); encryptionBox.Items.Add(HaRepacker.Properties.Resources.EncTypeNone); encryptionBox.SelectedIndex = (int)ApplicationSettings.MapleVersion; versionBox.Value = 1; }
public SaveForm(HaRepackerMainPanel panel, WzNode wzNode) { InitializeComponent(); encryptionBox.Items.Add(HaRepacker.Properties.Resources.EncTypeGMS); encryptionBox.Items.Add(HaRepacker.Properties.Resources.EncTypeMSEA); encryptionBox.Items.Add(HaRepacker.Properties.Resources.EncTypeNone); this.wzNode = wzNode; this.wzf = (WzFile)wzNode.Tag; this.panel = panel; }
private void LoadWzFileThreadSafe(string path, HaRepackerMainPanel panel, bool detectMapleVersion) { if (panel.InvokeRequired) { panel.Invoke(new LoadWzFileDelegate(LoadWzFileCallback), path, panel, detectMapleVersion); } else { LoadWzFileCallback(path, panel, detectMapleVersion); } }
public OptionsForm(HaRepackerMainPanel panel) { this.panel = panel; InitializeComponent(); sortBox.Checked = UserSettings.Sort; apngIncompEnable.Checked = UserSettings.UseApngIncompatibilityFrame; autoAssociateBox.Checked = UserSettings.AutoAssociate; if (UserSettings.DefaultXmlFolder != "") { defXmlFolderEnable.Checked = true; defXmlFolderBox.Text = UserSettings.DefaultXmlFolder; } indentBox.Value = UserSettings.Indentation; lineBreakBox.SelectedIndex = (int)UserSettings.LineBreakType; autoUpdate.Checked = UserSettings.AutoUpdate; }
/// <summary> /// Loads the Data.wz file /// </summary> /// <param name="path"></param> /// <param name="encVersion"></param> /// <param name="panel"></param> /// <returns></returns> public WzImage LoadDataWzHotfixFile(string path, WzMapleVersion encVersion, HaRepackerMainPanel panel) { FileStream fs = File.Open(path, FileMode.Open); WzImage img = new WzImage(Path.GetFileName(path), fs, encVersion); img.ParseImage(true); WzNode node = new WzNode(img); panel.DataTree.Nodes.Add(node); if (UserSettings.Sort) { SortNodesRecursively(node); } return(img); }
private void LoadWzFileCallback(string path, HaRepackerMainPanel panel, bool detectMapleVersion) { try { if (detectMapleVersion) { Program.WzMan.LoadWzFile(path, panel); } else { Program.WzMan.LoadWzFile(path, (WzMapleVersion)encryptionBox.SelectedIndex, MainPanel); } } catch { Warning.Error(string.Format(HaRepacker.Properties.Resources.MainCouldntOpenWZ, path)); } }
/// <summary> /// /// </summary> /// <param name="file"></param> /// <param name="panel"></param> /// <param name="currentDispatcher"></param> public void ReloadWzFile(WzFile file, HaRepackerMainPanel panel, Dispatcher currentDispatcher = null) { WzMapleVersion encVersion = file.MapleVersion; string path = file.FilePath; short version = ((WzFile)file).Version; if (currentDispatcher != null) { currentDispatcher.BeginInvoke((Action)(() => { UnloadWzFile(file); })); } else { UnloadWzFile(file); } LoadWzFile(path, encVersion, (short)-1, panel, currentDispatcher); }
public SaveForm(HaRepackerMainPanel panel, WzNode wzNode) { InitializeComponent(); MainForm.AddWzEncryptionTypesToComboBox(encryptionBox); this.wzNode = wzNode; if (wzNode.Tag is WzImage) { this.wzImg = (WzImage)wzNode.Tag; this.IsRegularWzFile = false; versionBox.Enabled = false; } else { this.wzf = (WzFile)wzNode.Tag; this.IsRegularWzFile = true; } this.panel = panel; }
public UndoRedoManager(HaRepackerMainPanel parentPanel) { this.parentPanel = parentPanel; }
public FHMapper(HaRepackerMainPanel MainPanel) { this.MainPanel = MainPanel; }
private WzFile LoadWzFile(string path, WzMapleVersion encVersion, short version, HaRepackerMainPanel panel) { WzFile newFile; if (!OpenWzFile(path, encVersion, version, out newFile)) { return(null); } WzNode node = new WzNode(newFile); panel.DataTree.Nodes.Add(node); if (UserSettings.Sort) { SortNodesRecursively(node); } return(newFile); }
public WzFile LoadWzFile(string path, WzMapleVersion encVersion, HaRepackerMainPanel panel) { return(LoadWzFile(path, encVersion, (short)-1, panel)); }
/// <summary> /// /// </summary> /// <param name="otherWzFileToLoadAt"></param> /// <param name="path"></param> /// <param name="encVersion"></param> /// <param name="version"></param> /// <param name="panel"></param> /// <param name="currentDispatcher">Dispatcher thread</param> /// <returns></returns> private WzFile LoadWzFile(string path, WzMapleVersion encVersion, short version, HaRepackerMainPanel panel, Dispatcher currentDispatcher = null) { WzFile newFile; if (!OpenWzFile(path, encVersion, version, out newFile)) { return(null); } WzNode node = new WzNode(newFile); // execute in main thread if (currentDispatcher != null) { currentDispatcher.BeginInvoke((Action)(() => { panel.DataTree.Nodes.Add(node); SortNodesRecursively(node); })); } else { panel.DataTree.Nodes.Add(node); SortNodesRecursively(node); } return(newFile); }
/// <summary> /// Load a WZ file from path /// </summary> /// <param name="path"></param> /// <param name="encVersion"></param> /// <param name="panel"></param> /// <param name="currentDispatcher">Dispatcher thread</param> /// <returns></returns> public WzFile LoadWzFile(string path, WzMapleVersion encVersion, HaRepackerMainPanel panel, Dispatcher currentDispatcher = null) { return(LoadWzFile(path, encVersion, (short)-1, panel, currentDispatcher)); }
public ContextMenuManager(/*HaRepackerMainPanel parent*/) { //this.parent = parent; SaveFile = new ToolStripMenuItem("Save...", Properties.Resources.disk, new EventHandler( delegate(object sender, EventArgs e) { foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeControl.Parent.Parent.Parent); parent.CallSaveForm(node); } })); Remove = new ToolStripMenuItem("Remove", Properties.Resources.delete, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to remove this node?")) { return; } foreach (WzNode node in GetNodes(sender)) { if (!(node.Tag is IWzFile)) { node.Delete(); } } })); Unload = new ToolStripMenuItem("Unload", Properties.Resources.delete, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to unload this file?")) { return; } foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeControl.Parent.Parent.Parent); parent.CallUnloadFile(node); } })); Reload = new ToolStripMenuItem("Reload", Properties.Resources.arrow_refresh, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to reload this file?")) { return; } foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeControl.Parent.Parent.Parent); parent.CallReloadFile(node); } })); AddList = new ToolStripMenuItem("List Entry", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (Interaction.NameInputBox.Show("Add List Entry", out name)) { nodes[0].AddObject(new WzListEntry(name)); } })); AddImage = new ToolStripMenuItem("Image", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (Interaction.NameInputBox.Show("Add Image", out name)) { nodes[0].AddObject(new WzImage(name)); } })); AddDirectory = new ToolStripMenuItem("Directory", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (Interaction.NameInputBox.Show("Add Directory", out name)) { nodes[0].AddObject(new WzDirectory(name)); } })); AddByteFloat = new ToolStripMenuItem("Float", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; double?val; if (Interaction.FloatingPointInputBox.Show("Add Float", out name, out val)) { nodes[0].AddObject(new WzByteFloatProperty(name, (float)val)); } })); AddCanvas = new ToolStripMenuItem("Canvas", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; string path; if (Interaction.BitmapInputBox.Show("Add Canvas", out name, out path)) { Bitmap bmp = new Bitmap(path); WzCanvasProperty prop = new WzCanvasProperty(name); prop.PngProperty = new WzPngProperty(); prop.PngProperty.SetPNG(bmp); nodes[0].AddObject(new WzCanvasProperty(name)); } })); AddInt = new ToolStripMenuItem("Int", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; int?val; if (Interaction.IntInputBox.Show("Add Int", out name, out val)) { nodes[0].AddObject(new WzCompressedIntProperty(name, (int)val)); } })); AddConvex = new ToolStripMenuItem("Convex", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (Interaction.NameInputBox.Show("Add Convex", out name)) { nodes[0].AddObject(new WzConvexProperty(name)); } })); AddDouble = new ToolStripMenuItem("Double", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; double?val; if (Interaction.FloatingPointInputBox.Show("Add Double", out name, out val)) { nodes[0].AddObject(new WzDoubleProperty(name, (double)val)); } })); AddNull = new ToolStripMenuItem("Null", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (Interaction.NameInputBox.Show("Add Null", out name)) { nodes[0].AddObject(new WzNullProperty(name)); } })); AddSound = new ToolStripMenuItem("Sound", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name, path; if (Interaction.SoundInputBox.Show("Add Sound", out name, out path)) { try { nodes[0].AddObject(WzSoundProperty.CreateCustomProperty(name, path)); } catch (Exception ex) { MessageBox.Show("Exception caught while adding property: \"" + ex.Message + "\"", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } })); AddString = new ToolStripMenuItem("String", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name, value; if (Interaction.NameValueInputBox.Show("Add String", out name, out value)) { nodes[0].AddObject(new WzStringProperty(name, value)); } })); AddSub = new ToolStripMenuItem("Sub", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (Interaction.NameInputBox.Show("Add Sub", out name)) { nodes[0].AddObject(new WzSubProperty(name)); } })); AddUshort = new ToolStripMenuItem("Short", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; int?val; if (Interaction.IntInputBox.Show("Add Unsigned Short", out name, out val)) { nodes[0].AddObject(new WzUnsignedShortProperty(name, (ushort)val)); } })); AddUOL = new ToolStripMenuItem("UOL", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name, value; if (Interaction.NameValueInputBox.Show("Add UOL", out name, out value)) { nodes[0].AddObject(new WzUOLProperty(name, value)); } })); AddVector = new ToolStripMenuItem("Vector", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; Point?pt; if (Interaction.VectorInputBox.Show("Add Vector", out name, out pt)) { nodes[0].AddObject(new WzVectorProperty(name, new WzCompressedIntProperty("X", pt.Value.X), new WzCompressedIntProperty("Y", pt.Value.Y))); } })); AddConvexSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddVector); AddDirsSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddDirectory, AddImage); AddPropsSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddDirectory, AddCanvas, AddConvex, AddDouble, AddByteFloat, AddInt, AddNull, AddUshort, AddSound, AddString, AddSub, AddUOL, AddVector); AddListSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddList); WzFileMenu = new ContextMenuStrip(); WzFileMenu.Items.AddRange(new ToolStripItem[] { AddDirsSubMenu, SaveFile, Unload, Reload }); WzListFileMenu = new ContextMenuStrip(); WzListFileMenu.Items.AddRange(new ToolStripItem[] { AddListSubMenu, SaveFile, Unload, Reload }); WzDirectoryMenu = new ContextMenuStrip(); WzDirectoryMenu.Items.AddRange(new ToolStripItem[] { AddDirsSubMenu, /*export, import,*/ Remove }); PropertyContainerMenu = new ContextMenuStrip(); PropertyContainerMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, /*export, import,*/ Remove }); MessageBox.Show(PropertyContainerMenu.Items.Count.ToString()); PropertyMenu = new ContextMenuStrip(); PropertyMenu.Items.AddRange(new ToolStripItem[] { /*export, import,*/ Remove }); SubPropertyMenu = new ContextMenuStrip(); SubPropertyMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, /*export, import,*/ Remove }); }
/*private ToolStripMenuItem ExportPropertySubMenu; * private ToolStripMenuItem ExportAnimationSubMenu; * private ToolStripMenuItem ExportDirectorySubMenu; * private ToolStripMenuItem ExportPServerXML; * private ToolStripMenuItem ExportDataXML; * private ToolStripMenuItem ExportImgData; * private ToolStripMenuItem ExportRawData; * private ToolStripMenuItem ExportGIF; * private ToolStripMenuItem ExportAPNG; * * private ToolStripMenuItem ImportSubMenu; * private ToolStripMenuItem ImportXML; * private ToolStripMenuItem ImportImgData;*/ public ContextMenuManager(HaRepackerMainPanel haRepackerMainPanel, UndoRedoManager undoMan) { //this.parent = parent; SaveFile = new ToolStripMenuItem("Save...", Properties.Resources.disk, new EventHandler( delegate(object sender, EventArgs e) { foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeView.Parent.Parent.Parent); new SaveForm(parent, node).ShowDialog(); } })); Remove = new ToolStripMenuItem("Remove", Properties.Resources.delete, new EventHandler( delegate(object sender, EventArgs e) { haRepackerMainPanel.PromotRemoveSelectedTreeNodes(); })); Unload = new ToolStripMenuItem("Unload", Properties.Resources.delete, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to unload this file?")) { return; } foreach (WzNode node in GetNodes(sender)) { Program.WzMan.UnloadWzFile((WzFile)node.Tag); } })); Reload = new ToolStripMenuItem("Reload", Properties.Resources.arrow_refresh, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to reload this file?")) { return; } foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeView.Parent.Parent.Parent); Program.WzMan.ReloadWzFile((WzFile)node.Tag, parent); } })); AddImage = new ToolStripMenuItem("Image", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (NameInputBox.Show("Add Image", out name)) { nodes[0].AddObject(new WzImage(name) { Changed = true }, undoMan); } })); AddDirectory = new ToolStripMenuItem("Directory", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (NameInputBox.Show("Add Directory", out name)) { nodes[0].AddObject(new WzDirectory(name), undoMan); } })); AddByteFloat = new ToolStripMenuItem("Float", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; double?val; if (FloatingPointInputBox.Show("Add Float", out name, out val)) { nodes[0].AddObject(new WzFloatProperty(name, (float)val), undoMan); } })); AddCanvas = new ToolStripMenuItem("Canvas", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; Bitmap bmp; if (BitmapInputBox.Show("Add Canvas", out name, out bmp)) { WzCanvasProperty prop = new WzCanvasProperty(name); prop.PngProperty = new WzPngProperty(); prop.PngProperty.SetPNG(bmp); nodes[0].AddObject(new WzCanvasProperty(name), undoMan); } })); AddInt = new ToolStripMenuItem("Int", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; int?val; if (IntInputBox.Show("Add Int", out name, out val)) { nodes[0].AddObject(new WzIntProperty(name, (int)val), undoMan); } })); AddConvex = new ToolStripMenuItem("Convex", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (NameInputBox.Show("Add Convex", out name)) { nodes[0].AddObject(new WzConvexProperty(name), undoMan); } })); AddDouble = new ToolStripMenuItem("Double", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; double?val; if (FloatingPointInputBox.Show("Add Double", out name, out val)) { nodes[0].AddObject(new WzDoubleProperty(name, (double)val), undoMan); } })); AddNull = new ToolStripMenuItem("Null", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (NameInputBox.Show("Add Null", out name)) { nodes[0].AddObject(new WzNullProperty(name), undoMan); } })); AddSound = new ToolStripMenuItem("Sound", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name, path; if (SoundInputBox.Show("Add Sound", out name, out path)) { try { nodes[0].AddObject(new WzSoundProperty(name, path), undoMan); } catch (Exception ex) { MessageBox.Show("Exception caught while adding property: \"" + ex.Message + "\"", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } })); AddString = new ToolStripMenuItem("String", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name, value; if (NameValueInputBox.Show("Add String", out name, out value)) { nodes[0].AddObject(new WzStringProperty(name, value), undoMan); } })); AddSub = new ToolStripMenuItem("Sub", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (NameInputBox.Show("Add Sub", out name)) { nodes[0].AddObject(new WzSubProperty(name), undoMan); } })); AddUshort = new ToolStripMenuItem("Short", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; int?val; if (IntInputBox.Show("Add Unsigned Short", out name, out val)) { nodes[0].AddObject(new WzShortProperty(name, (short)val), undoMan); } })); AddUOL = new ToolStripMenuItem("UOL", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name, value; if (NameValueInputBox.Show("Add UOL", out name, out value)) { nodes[0].AddObject(new WzUOLProperty(name, value), undoMan); } })); AddVector = new ToolStripMenuItem("Vector", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; Point?pt; if (VectorInputBox.Show("Add Vector", out name, out pt)) { nodes[0].AddObject(new WzVectorProperty(name, new WzIntProperty("X", pt.Value.X), new WzIntProperty("Y", pt.Value.Y)), undoMan); } })); AddConvexSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddVector); AddDirsSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddDirectory, AddImage); AddPropsSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddCanvas, AddConvex, AddDouble, AddByteFloat, AddInt, AddNull, AddUshort, AddSound, AddString, AddSub, AddUOL, AddVector); WzFileMenu = new ContextMenuStrip(); WzFileMenu.Items.AddRange(new ToolStripItem[] { AddDirsSubMenu, SaveFile, Unload, Reload }); WzDirectoryMenu = new ContextMenuStrip(); WzDirectoryMenu.Items.AddRange(new ToolStripItem[] { AddDirsSubMenu, /*export, import,*/ Remove }); PropertyContainerMenu = new ContextMenuStrip(); PropertyContainerMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, /*export, import,*/ Remove }); PropertyMenu = new ContextMenuStrip(); PropertyMenu.Items.AddRange(new ToolStripItem[] { /*export, import,*/ Remove }); SubPropertyMenu = new ContextMenuStrip(); SubPropertyMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, /*export, import,*/ Remove }); }
/*private ToolStripMenuItem ExportPropertySubMenu; * private ToolStripMenuItem ExportAnimationSubMenu; * private ToolStripMenuItem ExportDirectorySubMenu; * private ToolStripMenuItem ExportPServerXML; * private ToolStripMenuItem ExportDataXML; * private ToolStripMenuItem ExportImgData; * private ToolStripMenuItem ExportRawData; * private ToolStripMenuItem ExportGIF; * private ToolStripMenuItem ExportAPNG; * * private ToolStripMenuItem ImportSubMenu; * private ToolStripMenuItem ImportXML; * private ToolStripMenuItem ImportImgData;*/ public ContextMenuManager(HaRepackerMainPanel haRepackerMainPanel, UndoRedoManager undoMan) { //this.parent = parent; SaveFile = new ToolStripMenuItem("Save...", Properties.Resources.disk, new EventHandler( delegate(object sender, EventArgs e) { foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeView.Parent.Parent.Parent); new SaveForm(parent, node).ShowDialog(); } })); Remove = new ToolStripMenuItem("Remove", Properties.Resources.delete, new EventHandler( delegate(object sender, EventArgs e) { haRepackerMainPanel.PromptRemoveSelectedTreeNodes(); })); Unload = new ToolStripMenuItem("Unload", Properties.Resources.delete, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to unload this file?")) { return; } foreach (WzNode node in GetNodes(sender)) { Program.WzMan.UnloadWzFile((WzFile)node.Tag); } })); Reload = new ToolStripMenuItem("Reload", Properties.Resources.arrow_refresh, new EventHandler( delegate(object sender, EventArgs e) { if (!Warning.Warn("Are you sure you want to reload this file?")) { return; } foreach (WzNode node in GetNodes(sender)) { HaRepackerMainPanel parent = ((HaRepackerMainPanel)node.TreeView.Parent.Parent.Parent); Program.WzMan.ReloadWzFile((WzFile)node.Tag, parent); } })); AddImage = new ToolStripMenuItem("Image", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } string name; if (NameInputBox.Show("Add Image", out name)) { nodes[0].AddObject(new WzImage(name) { Changed = true }, undoMan); } })); AddDirectory = new ToolStripMenuItem("Directory", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzDirectoryToSelectedNode(nodes[0]); })); AddByteFloat = new ToolStripMenuItem("Float", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzByteFloatToSelectedNode(nodes[0]); })); AddCanvas = new ToolStripMenuItem("Canvas", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzCanvasToSelectedNode(nodes[0]); })); AddLong = new ToolStripMenuItem("Long", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzLongToSelectedNode(nodes[0]); })); AddInt = new ToolStripMenuItem("Int", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzCompressedIntToSelectedNode(nodes[0]); })); AddConvex = new ToolStripMenuItem("Convex", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzConvexPropertyToSelectedNode(nodes[0]); })); AddDouble = new ToolStripMenuItem("Double", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzDoublePropertyToSelectedNode(nodes[0]); })); AddNull = new ToolStripMenuItem("Null", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzNullPropertyToSelectedNode(nodes[0]); })); AddSound = new ToolStripMenuItem("Sound", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzSoundPropertyToSelectedNode(nodes[0]); })); AddString = new ToolStripMenuItem("String", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzStringPropertyToSelectedIndex(nodes[0]); })); AddSub = new ToolStripMenuItem("Sub", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzSubPropertyToSelectedIndex(nodes[0]); })); AddUshort = new ToolStripMenuItem("Short", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzUnsignedShortPropertyToSelectedIndex(nodes[0]); })); AddUOL = new ToolStripMenuItem("UOL", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzUOLPropertyToSelectedIndex(nodes[0]); })); AddVector = new ToolStripMenuItem("Vector", null, new EventHandler( delegate(object sender, EventArgs e) { WzNode[] nodes = GetNodes(sender); if (nodes.Length != 1) { MessageBox.Show("Please select only ONE node"); return; } haRepackerMainPanel.AddWzVectorPropertyToSelectedIndex(nodes[0]); })); AddConvexSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddVector); AddDirsSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddDirectory, AddImage); AddPropsSubMenu = new ToolStripMenuItem("Add", Properties.Resources.add, AddCanvas, AddConvex, AddDouble, AddByteFloat, AddLong, AddInt, AddNull, AddUshort, AddSound, AddString, AddSub, AddUOL, AddVector); WzFileMenu = new ContextMenuStrip(); WzFileMenu.Items.AddRange(new ToolStripItem[] { AddDirsSubMenu, SaveFile, Unload, Reload }); WzDirectoryMenu = new ContextMenuStrip(); WzDirectoryMenu.Items.AddRange(new ToolStripItem[] { AddDirsSubMenu, /*export, import,*/ Remove }); PropertyContainerMenu = new ContextMenuStrip(); PropertyContainerMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, /*export, import,*/ Remove }); PropertyMenu = new ContextMenuStrip(); PropertyMenu.Items.AddRange(new ToolStripItem[] { /*export, import,*/ Remove }); SubPropertyMenu = new ContextMenuStrip(); SubPropertyMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, /*export, import,*/ Remove }); }