예제 #1
0
    public void MenuClick(UIItemBase itemBase)
    {
        UISubMenuItem menuItem = itemBase as UISubMenuItem;

        if (menuItem == null)
        {
            return;
        }


        if (menuItem.SubLevel == 1)
        {
            if (menuItem != _SelectedSub1)
            {
                ClearSelect(1);
                ClearSelect(2);
                _SelectedSub1 = menuItem;
                _SelectedSub1.Selected();
                if (_SubBtns[_SelectedSub1].Count > 0)
                {
                    _SelectedSub1.OpenSubGO();
                    //foreach (var sub2 in _SubBtns[_SelectedSub1])
                    //{
                    //    sub2.ShowMenu();
                    //}
                    for (int i = 0; i < _SubBtns[_SelectedSub1].Count; ++i)
                    {
                        if (!_SubBtns[_SelectedSub1][i].ShowMenu())
                        {
                            continue;
                        }

                        //if(_SelectedSub2 == null)
                        _SelectedSub2 = _SubBtns[_SelectedSub1][i];
                    }

                    if (_SelectedSub2 != null)
                    {
                        MenuClick(_SelectedSub2);
                        _SelectedSub2.Selected();
                        _MenuClick.Invoke(_SelectedSub2.MenuObj);
                        return;
                    }
                }
            }
            else if (_SubBtns[_SelectedSub1].Count > 0)
            {
                ClearSelect(1);
            }
        }
        else
        {
            if (menuItem != _SelectedSub2)
            {
                ClearSelect(2);
                _SelectedSub2 = menuItem;
                _SelectedSub2.Selected();
            }
        }

        _MenuClick.Invoke(menuItem.MenuObj);
    }