示例#1
0
    public void AssignCtrlID(EditorRoot root, EditorControl rootCtrl)
    {
        if (
            (null == root) ||
            (null == rootCtrl)
            )
        {
            return;
        }

        do
        {
            root.CtrlCounter++;

            rootCtrl.CtrlID = root.editorName + "_" + rootCtrl.GetType() + "_" + (root.CtrlCounter).ToString();

            EditorCtrlComposite rootCtrlComp = rootCtrl as EditorCtrlComposite;
            if (null == rootCtrlComp)
            {
                break;
            }

            foreach (var item in rootCtrlComp.children)
            {
                AssignCtrlID(root, item);
            }
        } while (false);
    }
示例#2
0
    private List <SplitInfo> GetDivisionInfo(EditorControl rootCtrl)
    {
        List <SplitInfo> splitInfoTbl = new List <SplitInfo>();

        if (null == rootCtrl)
        {
            return(splitInfoTbl);
        }

        EditorCtrlComposite rootComp = rootCtrl as EditorCtrlComposite;

        if (null == rootComp)
        {
            return(splitInfoTbl);
        }

        if (rootCtrl is SpliterCtrl)
        {
            SplitInfo newInfo = new SplitInfo();
            newInfo.SpliterID        = rootCtrl.CtrlID;
            newInfo.SpliterPath      = rootCtrl.GetCtrlIDPath();
            newInfo.SplitOffset      = rootCtrl.layoutConstraint.spliterOffset;
            newInfo.SpliterOffsetInv = rootCtrl.layoutConstraint.spliterOffsetInv;

            splitInfoTbl.Add(newInfo);
        }

        foreach (var item in rootComp.children)
        {
            splitInfoTbl.AddRange(GetDivisionInfo(item));
        }

        return(splitInfoTbl);
    }
示例#3
0
    public List <EditorControl> GetSpliterCtrl(EditorControl ctrl)
    {
        List <EditorControl> spliterTbl = new List <EditorControl>();

        if (ctrl is SpliterCtrl)
        {
            spliterTbl.Add(ctrl);
        }

        EditorCtrlComposite rootCtrlComp = ctrl as EditorCtrlComposite;

        if (null == rootCtrlComp)
        {
            return(spliterTbl);
        }

        foreach (var item in rootCtrlComp.children)
        {
            spliterTbl.AddRange(GetSpliterCtrl(item));
        }

        return(spliterTbl);
    }