// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "MeshMerge/MeshMergingSettings.h" #include "HAL/Platform.h" #include "IDetailCustomization.h" #include "IPropertyTypeCustomization.h" #include "Layout/Visibility.h" #include "OverrideResetToDefault.h" #include "Templates/SharedPointer.h" class FDetailWidgetRow; class IDetailLayoutBuilder; class IPropertyHandle; class FMeshMergingSettingsObjectCustomization : public IDetailCustomization { public: ~FMeshMergingSettingsObjectCustomization(); /** Begin IDetailCustomization interface */ virtual void CustomizeDetails(IDetailLayoutBuilder& LayoutBuilder) override; /** End IDetailCustomization interface */ /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); protected: EVisibility ArePropertiesVisible(const int32 VisibleType) const; bool AreMaterialPropertiesEnabled() const; TSharedPtr EnumProperty; private: }; class FMeshMergingSettingsCustomization : public IPropertyTypeCustomization, public TOverrideResetToDefaultWithStaticUStruct { public: static TSharedRef MakeInstance(); /** IPropertyTypeCustomization instance */ virtual void CustomizeHeader(TSharedRef StructPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override; virtual void CustomizeChildren(TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override; };