internal void TransitionChanged(FoldoutTransitionField field, TransitionChangeType changeType) { using (var pooled = TransitionChangedEvent.GetPooled()) { pooled.target = this; pooled.field = field; pooled.transition = field.GetTransitionData(); pooled.changeType = changeType; pooled.index = field.index; SendEvent(pooled); } }
public static bool IsSet(this TransitionChangeType value, TransitionChangeType flag) { return((value & flag) == flag); }
public static bool Any(this TransitionChangeType value) { return((value & TransitionChangeType.All) != TransitionChangeType.None); }
public void Refresh(TransitionChangeType overrides, TransitionChangeType keywords) { var durationAllZeroes = true; using (ListPool <FoldoutTransitionField> .Get(out var list)) { this.Query <FoldoutTransitionField>().ToList(list); if (list.Count == 1) { list[0].RemoveTransitionButton.SetEnabled(overrides.Any()); } else if (list.Count > 0) { list[0].RemoveTransitionButton.SetEnabled(true); } for (var i = 0; i < list.Count; ++i) { var foldout = list[i]; if (keywords.IsSet(TransitionChangeType.Property)) { foldout.propertyField.SetEnabled(i == 0); } else { foldout.propertyField.SetEnabled(true); } if (!foldout.durationField.isKeyword && foldout.durationField.length != 0) { durationAllZeroes = false; } if (keywords.IsSet(TransitionChangeType.Duration)) { foldout.durationField.SetEnabled(i == 0); } else { foldout.durationField.SetEnabled(true); } if (keywords.IsSet(TransitionChangeType.TimingFunction)) { foldout.timingFunctionField.SetEnabled(i == 0); } else { foldout.timingFunctionField.SetEnabled(true); } if (keywords.IsSet(TransitionChangeType.Delay)) { foldout.delayField.SetEnabled(i == 0); } else { foldout.delayField.SetEnabled(true); } foldout.overrides = overrides; foldout.EnableInClassList(k_FirstItemClass, i == 0); foldout.EnableInClassList(k_LastItemClass, i == contentContainer.childCount - 1); foldout.EnableInClassList(k_EvenItemClass, i % 2 == 0); foldout.EnableInClassList(k_OddItemClass, i % 2 != 0); } } var mustEditToAddTransition = overrides == keywords && overrides.Any(); m_AddTransitionButton.SetEnabled(!mustEditToAddTransition); m_EditPropertyToAddNewTransitionWarning.EnableInClassList(k_DisplayWarningClass, mustEditToAddTransition); var transitionWillBeInstant = durationAllZeroes && overrides.IsSet(TransitionChangeType.Duration); m_TransitionNotVisibleWarning.EnableInClassList(k_DisplayWarningClass, transitionWillBeInstant); }