/// <summary> /// Removes all popups from this menu. /// </summary> /// <param name="afterHidden"></param> public void RemoveAllPopups(UnityAction afterHidden) { // Create a copy to not edit the list while looping through it. List <MCMenu> popupMenuCopy = new List <MCMenu>(PopupMenus); for (int i = 0; i < popupMenuCopy.Count; i++) { int currentIndex = i; // Hide each popupMenu. popupMenuCopy[i].Hide(() => { // Called when this popup menu is closed. PopupMenus.Remove(popupMenuCopy[currentIndex]); if (PopupMenus.Count <= 0) { if (afterHidden != null) { afterHidden(); } } }); } }
/// <summary> /// Remove a specific popup menu. /// </summary> /// <param name="mcMenu"></param> public void RemovePopup(MCMenu mcMenu) { PopupMenus.Remove(mcMenu); mcMenu.Parent = null; mcMenu.Hide(); }