private void SaveRootTag(GUTag rootTag) { if (MyCanvasType == LayoutCanvas.MAIN_CANVAS) { DynamicCfg.Ins.MainCanvasRoot = (rootTag.ToString()); } else { DynamicCfg.Ins.SubCanvasRoot = (rootTag.ToString()); } }
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); }