Esempio n. 1
0
 private void SaveRootTag(GUTag rootTag)
 {
     if (MyCanvasType == LayoutCanvas.MAIN_CANVAS)
     {
         DynamicCfg.Ins.MainCanvasRoot = (rootTag.ToString());
     }
     else
     {
         DynamicCfg.Ins.SubCanvasRoot = (rootTag.ToString());
     }
 }
Esempio n. 2
0
        private static int GetTagTreeWidth(GUTag tag, ITagDB db, int level, int maxlevel)
        {
            int          ret      = -1;
            List <GUTag> children = db.QueryTagChildren(tag);

            if (level > maxlevel)
            {
                ret = 1;
            }
            else if (level == maxlevel)
            {
                ret = children.Count + 1; //所有子节点+自己
            }

            //只有两种情况下不需要换行:
            //1. 父节点 -- 子, 孙,重孙
            //2. 父节点 -- 子,子,子,子
            else if (children.Count <= 1) //情况1:
            {
                //只有一列子孙节点,所有都是独生子
                ret = 1;
                GUTag tmp = tag;
                for (int i = level; i < maxlevel; i++)
                {
                    children = db.QueryTagChildren(tmp);
                    if (children.Count > 1)
                    {
                        ret = -1;
                        break;
                    }
                    else if (children.Count == 0)
                    {
                        ret++;
                        break;
                    }
                    else if (children.Count == 1)
                    {
                        tmp = children[0];
                        ret++;
                    }
                }
                return(ret);
            }
            else
            {
                //情况2:只有一层子节点,所有子节点都是叶子(显示为子,子,子,子)
                ret = children.Count;
                foreach (GUTag ctag in children)
                {
                    if (db.QueryChildrenCount(ctag) > 0) //有子节点非叶子,并且自己子节点数量>1,表示不能在一行内显示
                    {
                        ret = -1;
                    }
                }
            }

            Logger.D("GetTagTreeWidth : {0} {1}", tag.ToString(), ret);
            return(ret);
        }