Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
 private void ScrollIfNeeded(VisualElement target = null)
 {
     EditorApplication.delayCall -= ScrollIfNeededDelayed;
     UIUtils.ScrollIfNeeded(List, target);
 }