Esempio n. 1
0
        private GUIItem CreateFromXML(XmlElement element)
        {
            GUIItem item = element.Name switch
            {
                "Window" => CreateWindow(element),
                "Group" => CreateGroup(element),

                "MenuBar" => CreateMenuBar(element),
                "MainMenuBar" => CreateMainMenuBar(element),
                "Menu" => CreateMenu(element),
                "MenuItem" => CreateMenuItem(element),

                "Text" => CreateText(element),

                "Button" => CreateButton(element),
                "ImageButton" => CreateImageButton(element),
                "ArrowButton" => CreateArrowButton(element),

                "InputText" => CreateInputText(element),
                "InputTextMultiLine" => CreateInputTextMultiLine(element),
                "InputInt" => CreateInputInt(element),
                "InputFloat" => CreateInputFloat(element),

                "Combo" => CreateCombo(element),

                "Separator" => CreateSeparator(element),

                _ => throw new NotSupportedException()
            };

            if (item.Name == "")
            {
                item.Name = element.GetAttribute("Name");
            }
            if (item.Attr == "")
            {
                item.Attr = element.GetAttribute("Attr");
            }
            if (Boolean.TryParse(element.GetAttribute("IsUpdated"), out bool isUpdated))
            {
                item.IsUpdated = isUpdated;
            }
            return(item);
        }
Esempio n. 2
0
        private GUIMainMenuBar CreateMainMenuBar(XmlElement element)
        {
            GUIMainMenuBar item = new GUIMainMenuBar();

            foreach (XmlNode child in element.ChildNodes)
            {
                if (child.Name == "SameLine")
                {
                    for (int i = 0; i < child.ChildNodes.Count; ++i)
                    {
                        GUIItem sameLineItem = CreateFromXML((XmlElement)child.ChildNodes[i]);
                        sameLineItem.IsSameLine = i != 0;
                        item.AddGUIItem(sameLineItem);
                    }
                }

                else
                {
                    item.AddGUIItem(CreateFromXML((XmlElement)child));
                }
            }

            return(item);
        }
Esempio n. 3
0
 public void RemoveGUIItem(GUIItem item)
 {
     _GUIItems.Remove(item);
 }
Esempio n. 4
0
 public void AddGUIItem(GUIItem item)
 {
     _GUIItems.Add(item);
 }
Esempio n. 5
0
        private GUIWindow CreateWindow(XmlElement element)
        {
            GUIWindow item = new GUIWindow();

            string[] value = null;

            foreach (XmlElement e in element.ChildNodes)
            {
                if (e.Name == "Name")
                {
                    item.Name = e.InnerText;
                }
                if (e.Name == "Size")
                {
                    value = e.InnerText.Split(",");
                    if (value.Length == 2)
                    {
                        if (Single.TryParse(value[0], out float width))
                        {
                            if (Single.TryParse(value[1], out float height))
                            {
                                item.Size = new Vector2F(width, height);
                            }
                        }
                    }
                }
                if (e.Name == "Position")
                {
                    value = e.InnerText.Split(",");
                    if (value.Length == 2)
                    {
                        if (Single.TryParse(value[0], out float xPos))
                        {
                            if (Single.TryParse(value[1], out float yPos))
                            {
                                item.Position = new Vector2F(xPos, yPos);
                            }
                        }
                    }
                }
                if (e.Name == "Flags")
                {
                    foreach (string flag in e.InnerText.Split("|"))
                    {
                        if (Enum.TryParse <ToolWindowFlags>(flag, false, out ToolWindowFlags flags))
                        {
                            item.Flags |= flags;
                        }
                    }
                }
                if (e.Name == "Body")
                {
                    foreach (XmlNode child in e.ChildNodes)
                    {
                        if (child.Name == "SameLine")
                        {
                            for (int i = 0; i < child.ChildNodes.Count; ++i)
                            {
                                GUIItem sameLineItem = CreateFromXML((XmlElement)child.ChildNodes[i]);
                                sameLineItem.IsSameLine = i != 0;
                                item.AddGUIItem(sameLineItem);
                            }
                        }
                        else
                        {
                            item.AddGUIItem(CreateFromXML((XmlElement)child));
                        }
                    }
                }
            }

            return(item);
        }