// Copyright 2020 Phyronnaz #pragma once #include "CoreMinimal.h" #include "IPropertyTypeCustomization.h" enum class EVoxelPaintMaterialType : uint8; class STextBlock; class FVoxelPaintMaterialCustomization : public IPropertyTypeCustomization { public: virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; virtual void CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) override; private: TArray> OptionsSource; TSharedPtr ComboBoxText; TSharedPtr TypeHandle; void HandleComboBoxSelectionChanged(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo) const; }; class FVoxelPaintMaterial_MaterialCollectionChannelCustomization : public IPropertyTypeCustomization { public: virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; virtual void CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) override {} };