コード例 #1
0
    private void AssureThatOnlyOneIsSelected(Func <TemporaryGUIContainer, bool> getter, Action <TemporaryGUIContainer, bool> setter,
                                             ref TemporaryGUIContainer selectedField)
    {
        var startingGuis = guis.Where(gui => gui != null && getter.Invoke(gui)).ToArray();

        switch (startingGuis.Length)
        {
        case 0:
            break;

        case 1:
            selectedField = startingGuis[0];
            break;

        default:
            if (selectedField == null)
            {
                selectedField = startingGuis[0];
            }
            foreach (var gui in startingGuis)
            {
                if (gui != selectedField)
                {
                    setter.Invoke(gui, false);
                }
            }
            break;
        }
    }
コード例 #2
0
    private void SelectActive(Func <TemporaryGUIContainer, bool> getter, ref TemporaryGUIContainer selectedField)
    {
        var activeGuis = guis.Where(gui => gui != null && getter.Invoke(gui)).ToArray();

        selectedField = activeGuis.Length == 1 ? activeGuis[0] : null;

        if (selectedField != null && (selectedField.guiSwitcher == null || selectedField.name.Length == 0))
        {
            selectedField = null;
        }
    }