Esempio n. 1
0
        private void DisplayRightPanel()
        {
            // Right panel: condition config
            GUILayout.BeginArea(_mainRect, GUI.skin.GetStyle("Box"));
            GUILayout.BeginVertical();
            int newIndexConditionType = GUILayout.Toolbar(_conditionIndexType, Enum.GetNames(typeof(TriggerConditionType)));

            if (newIndexConditionType != _conditionIndexType)
            {
                _partSelector.CancelSelect();
                _conditionIndexType = newIndexConditionType;
            }
            if (Event.current.type == EventType.Repaint)
            {
                RectOffset rctOff   = GUI.skin.button.margin;
                Rect       lastRect = GUILayoutUtility.GetLastRect();
                float      nextY    = lastRect.y + lastRect.height + rctOff.bottom;
                // position of area computed using Toolbar position
                _boxLeftPos = new Rect(rctOff.left,
                                       nextY + rctOff.top,
                                       _mainRect.width / 2 - rctOff.horizontal,
                                       _mainRect.height - (2 * nextY + rctOff.vertical));
                _boxRightPos = new Rect(_mainRect.width / 2 + rctOff.left,
                                        nextY + rctOff.top,
                                        _mainRect.width / 2 - rctOff.horizontal,
                                        _mainRect.height - (2 * nextY + rctOff.vertical));
            }
            switch ((TriggerConditionType)_conditionIndexType)
            {
            case TriggerConditionType.Part:
                DisplayPartConf();
                break;

            case TriggerConditionType.Flight:
                DisplayFlightConf();
                break;

            case TriggerConditionType.Timer:
                DisplayTimerConf();
                break;
            }
            GUILayout.FlexibleSpace();
            // APPLY / REMOVE
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Apply") && (_currentCondition != null))
            {
                if (_currentCondition.IsValid())
                {
                    _currentCondition.Acquit();
                    _currentCondition.UpdatePersistentData();
                    _conditions[_conditionIndex] = _currentCondition;
                }
            }
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Remove") && (_conditionIndex >= 0))
            {
                _conditions.RemoveAt(_conditionIndex);
                SelectCondition(-1);
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUILayout.EndArea();
        }
Esempio n. 2
0
 public bool IsValid()
 {
     return((_condition != null) && _condition.IsValid());
 }