public ControlUI createFromMem(ref char[] buffer, int count, IDialogBuilderCallback callback = null, PaintManagerUI manager = null) { if (mXML.loadFromMem(ref buffer, buffer.Length) == false) { return(null); } MarkupNode root = mXML.getRoot(); ControlUI control = null; parseWindowAttributes(ref root, ref manager); ControlUI rootNode = parse(ref root, ref control, ref manager); root.release(); return(rootNode); }
public ControlUI createFromString(string strXML, IDialogBuilderCallback callback = null, PaintManagerUI manager = null) { mCallback = callback; if (mXML.loadFromString(ref strXML) == false) { return(null); } MarkupNode root = mXML.getRoot(); ControlUI control = null; parseWindowAttributes(ref root, ref manager); ControlUI rootNode = parse(ref root, ref control, ref manager); root.release(); return(rootNode); }
public bool release() { if (mRootNode != null) { Stack <MarkupNode> stackNode = new Stack <MarkupNode>(); stackNode.Push(mRootNode); { while (stackNode.Count() > 0) { MarkupNode node = stackNode.Peek(); List <MarkupNode> listNode = node.getChildList(); if (listNode.Count() > 0) { stackNode.Push(listNode[0]); continue; } MarkupNode nodeDiscard = stackNode.Pop(); if (stackNode.Count() > 0) { MarkupNode nodeParent = stackNode.Peek(); nodeParent.removeChild(0); } nodeDiscard.release(); nodeDiscard = null; } } stackNode.Clear(); stackNode = null; mRootNode = null; } return(true); }