// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "IDetailCustomization.h" #include "IDetailCustomNodeBuilder.h" #include "IPropertyTypeCustomization.h" class FInputContextDetails : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); /** ILayoutDetails interface */ virtual void CustomizeDetails( class IDetailLayoutBuilder& DetailBuilder ) override; }; class FEnhancedActionMappingCustomization : public IPropertyTypeCustomization { public: static TSharedRef MakeInstance() { return MakeShareable(new FEnhancedActionMappingCustomization()); } /** IPropertyTypeCustomization interface */ virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; virtual void CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) override; private: void RemoveMappingButton_OnClick() const; TSharedPtr KeyStructInstance; TSharedPtr MappingPropertyHandle; };