// Copyright Epic Games, Inc. All Rights Reserved. #include "MovieSceneEvalOptionsCustomization.h" #include "Containers/Array.h" #include "IDetailChildrenBuilder.h" #include "Misc/AssertionMacros.h" #include "MovieSceneSection.h" #include "MovieSceneTrack.h" #include "PropertyHandle.h" TSharedRef FMovieSceneSectionEvalOptionsCustomization::MakeInstance() { return MakeShared(); } void FMovieSceneSectionEvalOptionsCustomization::CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) { } void FMovieSceneSectionEvalOptionsCustomization::CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) { TArray RawData; PropertyHandle->AccessRawData(RawData); bool bCanEditCompletionMode = !RawData.ContainsByPredicate( [](void* Ptr){ return !static_cast(Ptr)->bCanEditCompletionMode; } ); TSharedPtr CompletionModeHandle = PropertyHandle->GetChildHandle(GET_MEMBER_NAME_CHECKED(FMovieSceneSectionEvalOptions, CompletionMode)); if (bCanEditCompletionMode && CompletionModeHandle.IsValid()) { ChildBuilder.AddProperty(CompletionModeHandle.ToSharedRef()); } }