Ejemplo n.º 1
0
    public static IWidget ParseXml(XmlReader reader, Widget parent = null)
    {
        reader.Read();
        IWidget child = null;

        switch (reader.Name)
        {
        case "Panel":
            child = Panel.Create(reader, parent);
            break;

        case "ScrollView":
            child = ScrollView.Create(reader, parent);
            break;

        case "Label":
            child = Label.Create(reader, parent);
            break;

        case "Button":
            child = Button.Create(reader, parent);
            break;

        case "ProgressBar":
            child = ProgressBar.Create(reader, parent);
            break;

        case "Argument":
            reader.Read();
            parent.AddParameter(reader.ReadContentAsString());
            break;

        default:
            parent.ReadElement(reader);
            break;
        }
        if (child == null)
        {
            return(null);
        }
        if (parent != null)
        {
            if (parent.Root == null)
            {
                child.Root = parent;
            }
            else
            {
                child.Root = parent.Root;
            }
            if (parent is IWidgetContainer)
            {
                (parent as IWidgetContainer).AddChild(child);
            }
        }


        return(child);
    }