FairyGUI.GList.SetSelectionOnEvent C# (CSharp) Method

SetSelectionOnEvent() public method

public SetSelectionOnEvent ( GObject item, FairyGUI.InputEvent evt ) : void
item GObject
evt FairyGUI.InputEvent
return void
        void SetSelectionOnEvent(GObject item, InputEvent evt)
        {
            if (!(item is GButton) || selectionMode == ListSelectionMode.None)
                return;

            _selectionHandled = true;
            bool dontChangeLastIndex = false;
            GButton button = (GButton)item;
            int index = GetChildIndex(item);

            if (selectionMode == ListSelectionMode.Single)
            {
                if (!button.selected)
                {
                    ClearSelectionExcept(button);
                    button.selected = true;
                }
            }
            else
            {
                if (evt.shift)
                {
                    if (!button.selected)
                    {
                        if (_lastSelectedIndex != -1)
                        {
                            int min = Math.Min(_lastSelectedIndex, index);
                            int max = Math.Max(_lastSelectedIndex, index);
                            max = Math.Min(max, _children.Count - 1);
                            for (int i = min; i <= max; i++)
                            {
                                GButton obj = GetChildAt(i).asButton;
                                if (obj != null && !obj.selected)
                                    obj.selected = true;
                            }

                            dontChangeLastIndex = true;
                        }
                        else
                        {
                            button.selected = true;
                        }
                    }
                }
                else if (evt.ctrl || selectionMode == ListSelectionMode.Multiple_SingleClick)
                {
                    button.selected = !button.selected;
                }
                else
                {
                    if (!button.selected)
                    {
                        ClearSelectionExcept(button);
                        button.selected = true;
                    }
                    else
                        ClearSelectionExcept(button);
                }
            }

            if (!dontChangeLastIndex)
                _lastSelectedIndex = index;
        }