// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "IPropertyTypeCustomization.h" #include "DetailCategoryBuilder.h" #include "IDetailChildrenBuilder.h" #include "SSearchableComboBox.h" #include "AnimNode_ControlRigBase.h" class IDetailLayoutBuilder; class IPropertyHandle; class FControlRigAnimNodeEventNameDetails : public IPropertyTypeCustomization { public: static TSharedRef MakeInstance() { return MakeShareable(new FControlRigAnimNodeEventNameDetails); } /** IPropertyTypeCustomization interface */ virtual void CustomizeHeader(TSharedRef InStructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override; virtual void CustomizeChildren(TSharedRef InStructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override; protected: FString GetEntryName() const; void SetEntryName(FString InName); void UpdateEntryNameList(); void OnEntryNameChanged(TSharedPtr InItem, ESelectInfo::Type InSelectionInfo); TSharedRef OnGetEntryNameWidget(TSharedPtr InItem); FText GetEntryNameAsText() const; TSharedPtr NameHandle; TArray> EntryNameList; TSharedPtr SearchableComboBox; FAnimNode_ControlRigBase* AnimNodeBeingCustomized; };