Exemplo n.º 1
0
        //private readonly Stack<DisplayListMember> _stack = new Stack<DisplayListMember>();

        internal void KeyDownHandler(UnityEngine.Event e)
        {
#if DEBUG
            if (DebugMode)
            {
                Debug.Log("GuiInspector->KeyDownHandler");
            }
#endif

            if (!(e.control || e.shift))
            {
                return;
            }

            bool recognized = false;

            if (e.keyCode == KeyCode.LeftArrow)
            {
                if (null != _currentComponent && null != _currentComponent.Parent)
                {
                    //Debug.Log(string.Format("Pushing {0} to stack", _currentComponent));
                    //_stack.Push(_currentComponent);
                    _currentComponent = _currentComponent.Parent;
                    recognized        = true;
                }
            }
            else if (e.keyCode == KeyCode.RightArrow)
            {
                //if (_stack.Count > 0)
                //{
                //    _currentComponent = _stack.Pop();
                //    recognized = true;
                //}
                //else
                //{
                //Container container = _currentComponent as Container;
                DisplayObjectContainer container = _currentComponent as DisplayObjectContainer;     // 20121212
                if (null != container && container.QNumberOfChildren > 0)
                {
                    //_currentComponent = container.GetChildAt(0);
                    _currentComponent = container.QGetChildAt(0);
                    recognized        = true;
                }

                //}
            }
            else if (e.keyCode == KeyCode.UpArrow)
            {
                if (null != _currentComponent && null != _currentComponent.Parent)
                {
                    var index = _currentComponent.Parent.QGetChildIndex(_currentComponent);
                    if (index > 0)
                    {
                        index--;
                        _currentComponent = _currentComponent.Parent.QGetChildAt(index);
                        //_stack.Clear();
                    }
                    recognized = true;
                }
            }
            else if (e.keyCode == KeyCode.DownArrow)
            {
                if (null != _currentComponent && null != _currentComponent.Parent)
                {
                    var index = _currentComponent.Parent.QGetChildIndex(_currentComponent);
                    if (index < _currentComponent.Parent.QNumberOfChildren - 1)
                    {
                        index++;
                        _currentComponent = _currentComponent.Parent.QGetChildAt(index);
                        //_stack.Clear();
                    }
                    recognized = true;
                }
            }

            if (recognized)
            {
                HideOverlay();
                //Debug.Log("Showing: " + _currentComponent);
                ShowOverlay(_currentComponent);
            }
        }