コード例 #1
0
        /// <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));
        }
コード例 #2
0
#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);
    }