// Copyright Epic Games, Inc. All Rights Reserved. #include "MovieSceneEvalOptionsCustomization.h" #include "PropertyHandle.h" #include "MovieSceneSection.h" #include "MovieSceneTrack.h" #include "IDetailChildrenBuilder.h" TSharedRef FMovieSceneTrackEvalOptionsCustomization::MakeInstance() { return MakeShared(); } void FMovieSceneTrackEvalOptionsCustomization::CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) { } void FMovieSceneTrackEvalOptionsCustomization::CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) { TArray RawData; PropertyHandle->AccessRawData(RawData); bool bCanEvaluateNearestSection = !RawData.ContainsByPredicate( [](void* Ptr){ return !static_cast(Ptr)->bCanEvaluateNearestSection; } ); TSharedPtr bEvalNearestSectionHandle = PropertyHandle->GetChildHandle(GET_MEMBER_NAME_CHECKED(FMovieSceneTrackEvalOptions, bEvalNearestSection)); if (bCanEvaluateNearestSection && bEvalNearestSectionHandle.IsValid()) { ChildBuilder.AddProperty(bEvalNearestSectionHandle.ToSharedRef()); } } 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()); } }