/// <summary> /// Registers a menu for the application. /// NOTE: This could be replaced with MEF composition?</summary> /// <param name="definition">Menu definition</param> public void RegisterMenu(MenuDef definition) { Requires.NotNull(definition.MenuTag, "menuTag"); if (m_menus.Any <MenuDef>(x => x.MenuTag == definition.MenuTag)) { throw new ArgumentException("Menu already registered"); } m_menus.Add(definition); int index = m_menus.IndexOf(definition); MenuAdded.Raise <ItemInsertedEventArgs <MenuDef> >(this, new ItemInsertedEventArgs <MenuDef>(index, definition)); }
#pragma warning restore 0649 public Menu PushMenu(Menu menu) { if (menuStack.Count == 0) { StartStack(); } else { HidePreviousMenu(); } Menu newMenu = Instantiate(menu); newMenu.transform.SetParent(this.transform); newMenu.transform.localScale = new Vector3(1, 1, 0); newMenu.Open(); menuStack.Push(newMenu); MenuAdded?.Invoke(); return(newMenu); }