Exemplo n.º 1
0
        /// <summary>
        /// Creates and displays popup menu for specified menu item.
        /// </summary>
        /// <param name="node"><see cref="Common.TreeNode`1"/> instance.</param>
        public void OnShowMenuSubItems(TreeNode<CustomMenuItem> node)
        {
            if (node.data is MenuItem)
            {
                MenuItem item = node.data as MenuItem;
                Debug.Log("MainMenuScript.OnShowMenuSubItems(" + item.name + ")");

                if (mPopupMenu != null)
                {
                    mPopupMenu.Destroy();
                }

                mPopupMenu = new PopupMenu(node);
                mPopupMenu.OnDestroy.AddListener(OnPopupMenuDestroyed);

                int index = node.parent.children.IndexOf(node);

                RectTransform menuItemTransform = transform.GetChild(0).GetChild(0).GetChild(index).transform as RectTransform; // ScrollArea/Content/NODE
                Vector3[] menuItemCorners = Utils.GetWindowCorners(menuItemTransform);

                mPopupMenu.Show(menuItemCorners[2].x, menuItemCorners[2].y);
            }
            else
            {
                Debug.LogError("Unknown menu item type");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates and displays popup menu for specified menu item.
        /// </summary>
        /// <param name="node"><see cref="Common.TreeNode`1"/> instance.</param>
        public void OnShowMenuSubItems(TreeNode<CustomMenuItem> node)
        {
            DebugEx.VerboseFormat("PopupMenu.OnShowMenuSubItems(node = {0})", node);

            if (node.data is MenuItem)
            {
                MenuItem item = node.data as MenuItem;
                DebugEx.UserInteractionFormat("PopupMenu.OnShowMenuSubItems({0})", item.name);

                if (mChildPopupMenu != null)
                {
                    mChildPopupMenu.Destroy();
                }

                mChildPopupMenu = new PopupMenu(node);
                mChildPopupMenu.mOnDestroy.AddListener(OnPopupMenuDestroyed);

                int index = node.parent.children.IndexOf(node);

                RectTransform menuItemTransform = mGameObject.transform.GetChild(0).GetChild(0).GetChild(index).transform as RectTransform; // ScrollArea/Content/NODE
                Vector3[] menuItemCorners = Utils.GetWindowCorners(menuItemTransform);

                mChildPopupMenu.Show(
                                     menuItemCorners[1].x,
                                     menuItemCorners[1].y,
                                     menuItemCorners[2].x,
                                     menuItemCorners[2].y
                                    );
            }
            else
            {
                DebugEx.Error("Unknown menu item type");
            }
        }