private List <UIWindowEnum> GetSurplusWindows(UIInterfaceEnum name, UIInterfaceEnum minus, List <UIWindowEnum> oResult) { var list = GetWindowList(name); foreach (var winName in list) { oResult.Add(winName); } if (minus == UIInterfaceEnum.None) { return(oResult); } var minuses = GetWindowList(minus); for (int i = oResult.Count - 1; i >= 0; i--) { if (minuses.Contains(oResult[i])) { oResult.RemoveAt(i); } } return(oResult); }
private void RecurseWindowList(UIInterfaceEnum name, Action <UIWindowEnum> action) { var list = GetWindowList(name); for (int i = 0; i < list.Count; i++) { action(list[i]); } }
public List <UIWindowEnum> GetWindowList(UIInterfaceEnum name) { UIInterfaceInfo info; if (m_InterfaceDict.TryGetValue((int)name, out info)) { return(info.WinEnumList); } return(null); }
static void RegisterInterfaceInfo(Dictionary <int, UIInterfaceInfo> dict, UIInterfaceEnum name, List <UIWindowEnum> windowArray) { if ((int)name < 0 || (int)name > 1000) { return; } if (!dict.ContainsKey((int)name)) { dict.Add((int)name, new UIInterfaceInfo(name, windowArray)); } }
public void PushInOpenStack(UIInterfaceEnum name, string sceneName, string mapName, CtrlParams[] pars = null, List <int> specialreturnChain = null) { var item = new OpenStackItem(name, sceneName, mapName); item.pars = pars; if (name != UIInterfaceEnum.None) { if (UIInterfaceEnumUtil.IsRootUIInterfaceEnum(name)) { OpenStack.Clear(); } if (specialreturnChain != null && specialreturnChain.Count > 0 && UIInterfaceEnumUtil.IsRootUIInterfaceEnum((UIInterfaceEnum)specialreturnChain[specialreturnChain.Count - 1])) { OpenStack.Clear(); for (int i = specialreturnChain.Count - 1; i >= 0; i--) { UIInterfaceEnum specialName = (UIInterfaceEnum)specialreturnChain[i]; var specialItem = new OpenStackItem(specialName, UIInterfaceEnumUtil.IsRootUIInterfaceEnum(specialName) ? sceneName : sceneName, mapName); specialItem.pars = pars; OpenStack.Push(specialItem); } } if (OpenStack.Contains(item)) { while (!item.Equals(OpenStack.Pop())) { ; } } OpenStack.Push(item); } }
public OpenStackItem(UIInterfaceEnum name, string sceneName, string mapName) { this.name = name; this.SceneName = sceneName; MapName = mapName; }
public UIInterfaceInfo(UIInterfaceEnum interfaceEnum, List <UIWindowEnum> winEnumList) { InterfaceEnum = interfaceEnum; WinEnumList = winEnumList; }
public static bool IsRootUIInterfaceEnum(UIInterfaceEnum name) { return(RootInterfaceName.Contains((int)name)); }