Пример #1
0
        public void Select(LeanFinger finger, LeanSelectable selectable)
        {
            // Something was selected?
            if (selectable != null)
            {
                // Did we select a new LeanSelectable?
                if (selectable != CurrentSelectable)
                {
                    // Deselect the current
                    Deselect();

                    // Change current
                    CurrentSelectable = selectable;

                    // Call select event on current
                    CurrentSelectable.Select(finger);
                }
                // Did we reselect the current LeanSelectable?
                else
                {
                    switch (Reselect)
                    {
                    case ReselectType.Deselect:
                    {
                        Deselect();
                    }
                    break;

                    case ReselectType.DeselectAndSelect:
                    {
                        // Deselect the current
                        Deselect();

                        // Change current
                        CurrentSelectable = selectable;

                        // Call select event on current
                        CurrentSelectable.Select(finger);
                    }
                    break;

                    case ReselectType.SelectAgain:
                    {
                        // Call select event on current
                        CurrentSelectable.Select(finger);
                    }
                    break;
                    }
                }
            }
            // Nothing was selected?
            else
            {
                // Deselect?
                if (AutoDeselect == true)
                {
                    Deselect();
                }
            }
        }
Пример #2
0
        public void Select(LeanFinger finger, LeanSelectable selectable)
        {
            // Something was selected?
            if (selectable != null)
            {
                // Did we select a new LeanSelectable?
                if (selectable != CurrentSelectable)
                {
                    // Deselect the current
                    Deselect();

                    // Change current
                    CurrentSelectable = selectable;

                    // Call select event on current
                    CurrentSelectable.Select(finger);
                }
                else
                {
                    if (ToggleSelection == true)
                    {
                        Deselect();
                    }
                }
            }
            // Nothing was selected?
            else
            {
                // Deselect?
                if (AutoDeselect == true)
                {
                    Deselect();
                }
            }
        }
Пример #3
0
        public void Select(LeanFinger finger, LeanSelectable selectable)
        {
            // Something was selected?
            if (selectable != null && selectable.isActiveAndEnabled == true)
            {
                if (CurrentSelectables == null)
                {
                    CurrentSelectables = new List <LeanSelectable>();
                }

                // Loop through all current selectables
                for (var i = CurrentSelectables.Count - 1; i >= 0; i--)
                {
                    var currentSelectable = CurrentSelectables[i];

                    if (currentSelectable != null)
                    {
                        // Already selected?
                        if (currentSelectable == selectable)
                        {
                            return;
                        }
                    }
                    else
                    {
                        CurrentSelectables.RemoveAt(i);
                    }
                }

                // Not selected yet, so select it
                CurrentSelectables.Add(selectable);

                selectable.Select(finger);
            }
        }
Пример #4
0
        public void Select(LeanFinger finger, LeanSelectable selectable)
        {
            // Something was selected?
            if (selectable != null && selectable.isActiveAndEnabled == true)
            {
                if (selectable.HideWithFinger == true)
                {
                    for (var i = CurrentSelectables.Count - 1; i >= 0; i--)
                    {
                        var currentSelectable = CurrentSelectables[i];

                        if (currentSelectable.HideWithFinger == true && currentSelectable.IsSelected == true)
                        {
                            return;
                        }
                    }
                }

                // Did we select a new LeanSelectable?
                if (IsSelected(selectable) == false)
                {
                    // Deselect some if we have too many
                    if (MaxSelectables > 0)
                    {
                        var extras = CurrentSelectables.Count - MaxSelectables + 1;

                        for (var i = extras - 1; i >= 0; i--)
                        {
                            var currentSelectable = CurrentSelectables[i];

                            currentSelectable.Deselect();

                            CurrentSelectables.RemoveAt(i);
                        }
                    }

                    // Add to selection and select
                    CurrentSelectables.Add(selectable);

                    selectable.Select(finger);
                }
                // Did we reselect the current LeanSelectable?
                else
                {
                    switch (Reselect)
                    {
                    case ReselectType.Deselect:
                    {
                        selectable.Deselect();

                        CurrentSelectables.Remove(selectable);
                    }
                    break;

                    case ReselectType.DeselectAndSelect:
                    {
                        // Change current
                        selectable.Deselect();

                        // Call select event on current
                        selectable.Select(finger);
                    }
                    break;

                    case ReselectType.SelectAgain:
                    {
                        // Call select event on current
                        selectable.Select(finger);
                    }
                    break;
                    }
                }
            }
            // Nothing was selected?
            else
            {
                // Deselect?
                if (AutoDeselect == true)
                {
                    DeselectAll();
                }
            }
        }
Пример #5
0
        public void Select(LeanFinger finger, LeanSelectable selectable)
        {
            // Something was selected?
            if (selectable != null && selectable.isActiveAndEnabled == true)
            {
                if (selectable.HideWithFinger == true)
                {
                    foreach (var otherSelectable in LeanSelectable.Instances)
                    {
                        if (otherSelectable.HideWithFinger == true && otherSelectable.IsSelected == true)
                        {
                            return;
                        }
                    }
                }

                // Did we select a new LeanSelectable?
                if (selectable.IsSelected == false)
                {
                    // Deselect some if we have too many
                    if (MaxSelectables > 0)
                    {
                        LeanSelectable.Cull(MaxSelectables - 1);
                    }

                    // Select
                    selectable.Select(finger);
                }
                // Did we reselect the current LeanSelectable?
                else
                {
                    switch (Reselect)
                    {
                    case ReselectType.Deselect:
                    {
                        selectable.Deselect();
                    }
                    break;

                    case ReselectType.DeselectAndSelect:
                    {
                        selectable.Deselect();
                        selectable.Select(finger);
                    }
                    break;

                    case ReselectType.SelectAgain:
                    {
                        selectable.Select(finger);
                    }
                    break;
                    }
                }
            }
            // Nothing was selected?
            else
            {
                // Deselect?
                if (AutoDeselect == true)
                {
                    DeselectAll();
                }
            }
        }
Пример #6
0
        public void Select(LeanFinger finger, LeanSelectable selectable)
        {
            //Debug.Log( "Select() finger = " + finger + ", selectable = " + selectable );

            // Something was selected?
            if (selectable != null && selectable.isActiveAndEnabled == true)
            {
                if (selectable.HideWithFinger == true)
                {
                    for (var i = LeanSelectable.Instances.Count - 1; i >= 0; i--)
                    {
                        var instance = LeanSelectable.Instances[i];

                        if (instance.HideWithFinger == true && instance.IsSelected == true)
                        {
                            return;
                        }
                    }
                }

                // Did we select a new LeanSelectable?
                if (selectable.IsSelected == false)
                {
                    // Deselect some if we have too many
                    if (MaxSelectables > 0)
                    {
                        LeanSelectable.Cull(MaxSelectables - 1);
                    }

                    // Select
                    selectable.Select(finger);
                }
                // Did we reselect the current LeanSelectable?
                else
                {
                    switch (Reselect)
                    {
                    case ReselectType.Deselect:
                    {
                        selectable.Deselect();
                    }
                    break;

                    case ReselectType.DeselectAndSelect:
                    {
                        selectable.Deselect();
                        selectable.Select(finger);
                    }
                    break;

                    case ReselectType.SelectAgain:
                    {
                        selectable.Select(finger);
                    }
                    break;
                    }
                }
            }
            // Nothing was selected?
            else
            {
                // Deselect?
                if (AutoDeselect == true)
                {
                    DeselectAll();
                }
            }
        }