private bool SelectBy(int delta) { var list = GetSelectionList(); var selection = GetSelectedElement(list); if (selection != null) { var index = list.IndexOf(selection); var nextIndex = index + delta; if (nextIndex >= list.Count) { return(false); } if (nextIndex < 0) { return(false); } var nextElement = list.ElementAt(nextIndex); Selection.SetSelection(nextElement.TargetVersion); foreach (var scrollView in UIUtils.GetParentsOfType <ScrollView>(nextElement.Element)) { UIUtils.ScrollIfNeeded(scrollView, nextElement.Element); } } return(true); }
private void ScrollIfNeeded(ScrollView container = null, VisualElement target = null) { container = container ?? scrollView; target = target ?? GetSelectedItem()?.element; if (container == null || target == null) { return; } if (float.IsNaN(target.layout.height)) { EditorApplication.delayCall += () => ScrollIfNeeded(container, target); return; } IPackage package; IPackageVersion version; PageManager.instance.GetSelectedPackageAndVersion(out package, out version); var packageSelectionObject = PageManager.instance.CreatePackageSelectionObject(package, version); if (packageSelectionObject != null && Selection.activeObject != packageSelectionObject) { Selection.activeObject = packageSelectionObject; } var scrollViews = UIUtils.GetParentsOfType <ScrollView>(target); foreach (var sv in scrollViews) { UIUtils.ScrollIfNeeded(sv, target); target = sv; } }
private void ScrollIfNeeded(ScrollView container = null, VisualElement target = null) { container = container ?? scrollView; target = target ?? GetSelectedItem()?.element; if (container == null || target == null) { return; } if (float.IsNaN(target.layout.height)) { EditorApplication.delayCall += () => ScrollIfNeeded(container, target); return; } UIUtils.ScrollIfNeeded(container, target); }
private void ScrollIfNeeded(ScrollView container = null, VisualElement target = null) { container = container ?? scrollView; target = target ?? GetSelectedItem()?.element; if (container == null || target == null) { return; } if (float.IsNaN(target.layout.height)) { EditorApplication.delayCall += () => ScrollIfNeeded(container, target); return; } var scrollViews = UIUtils.GetParentsOfType <ScrollView>(target); foreach (var scrollview in scrollViews) { UIUtils.ScrollIfNeeded(scrollview, target); } }
private void ScrollIfNeeded(VisualElement target = null) { EditorApplication.delayCall -= ScrollIfNeededDelayed; UIUtils.ScrollIfNeeded(List, target); }