private void GoToChild(AdvancedDropdownItem parent) { m_LastTime = System.DateTime.Now.Ticks; if (m_NewAnimTarget < 0) { m_NewAnimTarget = 1 + m_NewAnimTarget; } else { m_NewAnimTarget = 1; } m_CurrentlyRenderedTree = parent.GetSelectedChild(); m_AnimationTree = parent; }
private void HandleKeyboard() { var evt = Event.current; if (evt.type == EventType.KeyDown) { // Special handling when in new script panel if (SpecialKeyboardHandling(evt)) { return; } // Always do these if (evt.keyCode == KeyCode.DownArrow) { m_CurrentlyRenderedTree.MoveDownSelection(); m_ScrollToSelected = true; evt.Use(); } if (evt.keyCode == KeyCode.UpArrow) { m_CurrentlyRenderedTree.MoveUpSelection(); m_ScrollToSelected = true; evt.Use(); } if (evt.keyCode == KeyCode.Return || evt.keyCode == KeyCode.KeypadEnter) { if (m_CurrentlyRenderedTree.GetSelectedChild().children.Any()) { GoToChild(m_CurrentlyRenderedTree); } else { if (m_CurrentlyRenderedTree.GetSelectedChild().OnAction()) { CloseWindow(); } } evt.Use(); } // Do these if we're not in search mode if (!hasSearch) { if (evt.keyCode == KeyCode.LeftArrow || evt.keyCode == KeyCode.Backspace) { GoToParent(); evt.Use(); } if (evt.keyCode == KeyCode.RightArrow) { if (m_CurrentlyRenderedTree.GetSelectedChild().children.Any()) { GoToChild(m_CurrentlyRenderedTree); } evt.Use(); } if (evt.keyCode == KeyCode.Escape) { Close(); evt.Use(); } } } }