public void CloseWindows(Stack <IWindowUT> stack, WindowCloseModes closeMode) { switch (closeMode) { case WindowCloseModes.CloseNothing: break; case WindowCloseModes.CloseNonSolid: while (ActivePanel != null && !ActivePanel.IsSolid) { stack.Pop().Close(); } break; case WindowCloseModes.CloseEverything: while (stack.Count > 0) { stack.Pop().Close(); } break; default: throw new System.Exception("Non registered mode!"); } }
public T AddNewFrame <T>(WindowCloseModes mode = WindowCloseModes.CloseNonSolid) where T : MonoBehaviour { foreach (var window in WindowsHolder.Windows) { if (window.GetType() == typeof(T)) { return(AddNewFrame(window as IWindowUT, mode) as T); } } Debug.LogError("There is no window prefab with class " + typeof(T).ToString()); return(null); }
public IWindowUT OpenNewPanel(IWindowUT prefab, WindowCloseModes mode = WindowCloseModes.CloseNonSolid) { var newPanel = CreateWindow(mainRoot, prefab, mode); panels.Push(newPanel); allWindows.Add(newPanel); Listen(newPanel); newPanel.Init(); return(newPanel); }
public IWindowUT AddNewFrame(IWindowUT prefab, WindowCloseModes mode = WindowCloseModes.CloseNonSolid) { var newFrame = CreateWindow(auxiliaryRoot, prefab, mode); frames.Push(newFrame); allWindows.Add(newFrame); Listen(newFrame); newFrame.Init(false, false); return(newFrame); }
private IWindowUT CreateWindow(Transform parent, IWindowUT prefab, WindowCloseModes mode = WindowCloseModes.CloseNonSolid, bool isPanel = true) { if (isPanel) { ClosePanels(mode); } else { CloseFrames(mode); } if (ActivePanel != null) { ActivePanel.IsInteractable = false; ActivePanel.IsFocused = false; } return(GameObject.Instantiate(prefab as MonoBehaviour, parent) as IWindowUT); }
public void ClosePanels(WindowCloseModes closeMode = WindowCloseModes.CloseEverything) { CloseWindows(panels, closeMode); }
public void CloseFrames(WindowCloseModes closeMode = WindowCloseModes.CloseEverything) { CloseWindows(frames, closeMode); }