Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }