/// <summary> /// Gets whether this step is visible. /// </summary> /// <param name="p_csmStateManager">The manager that tracks the currect install state.</param> /// <returns><c>true</c> if this step is visible, given the current state; /// <c>false</c> otherwise.</returns> public bool GetIsVisible(ConditionStateManager p_csmStateManager) { if (VisibilityCondition == null) { return(true); } return(VisibilityCondition.GetIsFulfilled(p_csmStateManager)); }
/// <summary> /// Gets whether this step is visible. /// </summary> /// <param name="coreDelegates">The Core delegates component.</param> /// <returns><c>true</c> if this step is visible, given the current state; /// <c>false</c> otherwise.</returns> public bool GetIsVisible(ConditionStateManager csmState, CoreDelegates coreDelegates) { if (VisibilityCondition == null) { return(true); } return(VisibilityCondition.GetIsFulfilled(csmState, coreDelegates)); }
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { var visibilityConditions = VisibilityCondition.ParseFromString(ConditionalAttribute.visibleConditions); var isVisible = VisibilityCondition.CheckConditions(visibilityConditions, property); // If the target field passes the check or we're just disabling the field - return the actual height if (isVisible) { return(EditorGUI.GetPropertyHeight(property, label)); } // Invisible property; Remove the default spacing return(-EditorGUIUtility.standardVerticalSpacing); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { var visibilityConditions = VisibilityCondition.ParseFromString(ConditionalAttribute.visibleConditions); var enabledConditions = VisibilityCondition.ParseFromString(ConditionalAttribute.enableConditions); var isVisible = VisibilityCondition.CheckConditions(visibilityConditions, property); var isEnabled = VisibilityCondition.CheckConditions(enabledConditions, property); var guiEnabled = GUI.enabled; GUI.enabled = isEnabled; if (isVisible) { EditorGUI.PropertyField(position, property, label, true); } GUI.enabled = guiEnabled; }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { foreach (var conditionalLabel in ConditionalAttribute.conditionalLabels) { var conditions = VisibilityCondition.ParseFromString(conditionalLabel.Value); var isVisible = VisibilityCondition.CheckConditions(conditions, property); if (!isVisible) { continue; } label.text = conditionalLabel.Key; break; } EditorGUI.PropertyField(position, property, label); }
public void Init() { instance = new VisibilityCondition(); }