internal bool Stack(WUIMenu wUIMenu) { if (baseComponents.wUIMenuStack.Contains(wUIMenu)) { return(false); } if (baseComponents.wUIMenuStack.Count > 0) { WUIMenu currentWUIMenu = baseComponents.wUIMenuStack.Peek(); if (currentWUIMenu != null) { if (currentWUIMenu.blockStack) { return(false); } currentWUIMenu.Unfocus(); } } wUIMenu.transform.position = baseComponents.wUIMenuStack.Count == 0 ? baseComponents.wUIMenuContainer.transform.position : baseData.deltaPosition; wUIMenu.Focus(); baseComponents.wUIMenuStack.Push(wUIMenu); return(true); }
internal void Focus(WUIMenu wUIMenu, Color color) { focalWUIMenu = wUIMenu; wUIMenu.transform.SetAsLastSibling(); int sibilingIndex = wUIMenu.transform.GetSiblingIndex(); baseComponents.background.gameObject.transform.SetSiblingIndex(sibilingIndex - 1); baseComponents.background.color = color; baseComponents.background.gameObject.SetActive(true); }
internal bool UnstackCurrent() { WUIMenu wUIMenu = baseComponents.wUIMenuStack.Peek(); if (wUIMenu == null) { return(true); } wUIMenu.Unstack(); return(baseComponents.wUIMenuStack.Count == 0); }
private void PerformAction() { if (_closeParentMenu) { // Close parent menu WUIMenu wUIMenu = base.gameObject.GetComponentInParent <WUIMenu>(); if (wUIMenu != null) { wUIMenu.Unstack(); } } onClick.Invoke(); }
internal void Unstack() { baseComponents.wUIMenuStack.Pop(); if (baseComponents.wUIMenuStack.Count > 0) { WUIMenu currentWUIMenu = baseComponents.wUIMenuStack.Peek(); if (currentWUIMenu != null) { currentWUIMenu.Focus(); } } else { baseComponents.background.gameObject.SetActive(false); } }