public static void ExtractAnimation(WzSubProperty parent, string savePath, bool apngFirstFrame)
        {
            List <Bitmap> bmpList                    = new List <Bitmap>(parent.WzProperties.Count);
            List <int>    delayList                  = new List <int>(parent.WzProperties.Count);
            Point         biggestPng                 = new Point(0, 0);
            Point         SmallestEmptySpace         = new Point(65535, 65535);
            Point         MaximumPngMappingEndingPts = new Point(0, 0);

            foreach (WzImageProperty subprop in parent.WzProperties)
            {
                if (subprop is WzCanvasProperty)
                {
                    //System.Drawing.PointF origin = ((WzCanvasProperty)subprop).GetCanvasOriginPosition();
                    WzPngProperty png = ((WzCanvasProperty)subprop).PngProperty;
                    if (png.Height > biggestPng.Y)
                    {
                        biggestPng.Y = png.Height;
                    }
                    if (png.Width > biggestPng.X)
                    {
                        biggestPng.X = png.Width;
                    }
                }
            }
            List <WzCanvasProperty> sortedProps = new List <WzCanvasProperty>();

            foreach (WzImageProperty subprop in parent.WzProperties)
            {
                if (subprop is WzCanvasProperty property)
                {
                    sortedProps.Add(property);
                    WzPngProperty         png    = property.PngProperty;
                    System.Drawing.PointF origin = property.GetCanvasOriginPosition();

                    Point StartPoints          = new Point(biggestPng.X - (int)origin.X, biggestPng.Y - (int)origin.Y);
                    Point PngMapppingEndingPts = new Point(StartPoints.X + png.Width, StartPoints.Y + png.Height);
                    if (StartPoints.X < SmallestEmptySpace.X)
                    {
                        SmallestEmptySpace.X = StartPoints.X;
                    }
                    if (StartPoints.Y < SmallestEmptySpace.Y)
                    {
                        SmallestEmptySpace.Y = StartPoints.Y;
                    }
                    if (PngMapppingEndingPts.X > MaximumPngMappingEndingPts.X)
                    {
                        MaximumPngMappingEndingPts.X = PngMapppingEndingPts.X;
                    }
                    if (PngMapppingEndingPts.Y > MaximumPngMappingEndingPts.Y)
                    {
                        MaximumPngMappingEndingPts.Y = PngMapppingEndingPts.Y;
                    }
                }
            }
            sortedProps.Sort(new Comparison <WzCanvasProperty>(PropertySorter));
            for (int i = 0; i < sortedProps.Count; i++)
            {
                WzCanvasProperty subprop = sortedProps[i];
                if (i.ToString() != subprop.Name)
                {
                    Warning.Error(string.Format(Properties.Resources.AnimError, i.ToString()));
                    return;
                }
                Bitmap bmp = subprop.PngProperty.GetImage(false);
                System.Drawing.PointF origin = subprop.GetCanvasOriginPosition();
                bmpList.Add(OptimizeBitmapTransparent(bmp, new WzVectorProperty("", origin.X, origin.Y), biggestPng, SmallestEmptySpace, MaximumPngMappingEndingPts));

                int?delay = subprop[WzCanvasProperty.AnimationDelayPropertyName]?.GetInt();
                if (delay == null)
                {
                    delay = 100;
                }

                delayList.Add((int)delay);
            }
            SharpApng apngBuilder = new SharpApng();

            if (apngFirstFrame)
            {
                apngBuilder.AddFrame(new SharpApngFrame(CreateIncompatibilityFrame(new Size(bmpList[0].Width, bmpList[0].Height)), 1, 1));
            }
            for (int i = 0; i < bmpList.Count; i++)
            {
                apngBuilder.AddFrame(new SharpApngFrame(bmpList[i], GetNumByDelay(delayList[i]), GetDenByDelay(delayList[i])));
            }
            apngBuilder.WriteApng(savePath, apngFirstFrame, true);
        }
Exemplo n.º 2
0
        /*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(MainPanel haRepackerMainPanel, UndoRedoManager undoMan)
        {
            this.parentPanel = haRepackerMainPanel;

            SaveFile = new ToolStripMenuItem("Save", Properties.Resources.disk, new EventHandler(
                                                 delegate(object sender, EventArgs e)
            {
                foreach (WzNode node in GetNodes(sender))
                {
                    new SaveForm(parentPanel, node).ShowDialog();
                }
            }));
            Rename = new ToolStripMenuItem("Rename", Properties.Resources.rename, new EventHandler(
                                               delegate(object sender, EventArgs e)
            {
                WzNode currentNode = currNode;

                haRepackerMainPanel.PromptRenameWzTreeNode(currentNode);
            }));
            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.WzFileManager.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))
                {
                    Program.WzFileManager.ReloadWzFile((WzFile)node.Tag, parentPanel);
                }
            }));
            CollapseAllChildNode = new ToolStripMenuItem("Collapse All", Properties.Resources.collapse, new EventHandler(
                                                             delegate(object sender, EventArgs e)
            {
                foreach (WzNode node in GetNodes(sender))
                {
                    node.Collapse();
                }
            }));
            ExpandAllChildNode = new ToolStripMenuItem("Expand all", Properties.Resources.expand, new EventHandler(
                                                           delegate(object sender, EventArgs e)
            {
                foreach (WzNode node in GetNodes(sender))
                {
                    node.ExpandAll();
                }
            }));
            SortAllChildNode = new ToolStripMenuItem("Sort child nodes", Properties.Resources.sort, new EventHandler(
                                                         delegate(object sender, EventArgs e)
            {
                foreach (WzNode node in GetNodes(sender))
                {
                    Program.WzFileManager.SortNodesRecursively(node, true);
                }
            }));

            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", 0, 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, Rename, /*export, import,*/ Remove });

            PropertyContainerMenu = new ContextMenuStrip();
            PropertyContainerMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, Rename, /*export, import,*/ Remove });

            PropertyMenu = new ContextMenuStrip();
            PropertyMenu.Items.AddRange(new ToolStripItem[] { Rename, /*export, import,*/ Remove });

            SubPropertyMenu = new ContextMenuStrip();
            SubPropertyMenu.Items.AddRange(new ToolStripItem[] { AddPropsSubMenu, Rename, /*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 });
        }