2020-07-22 14:52:03 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "IDetailCustomization.h"
|
2021-02-24 02:02:03 -04:00
|
|
|
#include "SGraphActionMenu.h"
|
2021-11-22 15:55:50 -05:00
|
|
|
#include "SSearchableComboBox.h"
|
|
|
|
|
#include "Templates/SharedPointer.h"
|
2021-03-19 15:10:57 -04:00
|
|
|
#include "Types/SlateEnums.h"
|
2020-07-30 16:57:04 -04:00
|
|
|
#include "UObject/NameTypes.h"
|
2020-07-22 14:52:03 -04:00
|
|
|
|
2021-11-22 15:55:50 -05:00
|
|
|
|
2020-07-22 14:52:03 -04:00
|
|
|
// Forward Declarations
|
2021-01-20 00:42:47 -04:00
|
|
|
class FPropertyRestriction;
|
2020-07-22 14:52:03 -04:00
|
|
|
class IDetailLayoutBuilder;
|
2021-03-19 15:10:57 -04:00
|
|
|
struct FPointerEvent;
|
2020-07-22 14:52:03 -04:00
|
|
|
|
2020-08-05 12:47:19 -04:00
|
|
|
namespace Metasound
|
2020-07-22 14:52:03 -04:00
|
|
|
{
|
2020-08-05 12:47:19 -04:00
|
|
|
namespace Editor
|
|
|
|
|
{
|
|
|
|
|
class FMetasoundDetailCustomization : public IDetailCustomization
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FMetasoundDetailCustomization(FName InDocumentPropertyName);
|
2020-07-30 16:57:04 -04:00
|
|
|
|
2020-08-05 12:47:19 -04:00
|
|
|
// IDetailCustomization interface
|
|
|
|
|
virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override;
|
|
|
|
|
// End of IDetailCustomization interface
|
2020-07-30 16:57:04 -04:00
|
|
|
|
2020-08-05 12:47:19 -04:00
|
|
|
private:
|
2021-11-22 15:55:50 -05:00
|
|
|
void CustomizeInterfaces(IDetailLayoutBuilder& DetailLayout);
|
|
|
|
|
|
|
|
|
|
FName GetInterfaceVersionsPath() const;
|
2020-08-05 12:47:19 -04:00
|
|
|
FName GetMetadataRootClassPath() const;
|
|
|
|
|
FName GetMetadataPropertyPath() const;
|
2020-07-30 16:57:04 -04:00
|
|
|
|
2021-11-22 15:55:50 -05:00
|
|
|
void UpdateInterfaceNames();
|
|
|
|
|
|
|
|
|
|
TArray<TSharedPtr<FString>> AddableInterfaceNames;
|
|
|
|
|
|
|
|
|
|
TSet<FName> ImplementedInterfaceNames;
|
|
|
|
|
TSharedPtr<SSearchableComboBox> InterfaceComboBox;
|
|
|
|
|
TAttribute<bool> IsGraphEditableAttribute;
|
|
|
|
|
|
|
|
|
|
TWeakObjectPtr<UObject> MetaSound;
|
|
|
|
|
|
2020-08-05 12:47:19 -04:00
|
|
|
FName DocumentPropertyName;
|
|
|
|
|
};
|
|
|
|
|
} // namespace Editor
|
|
|
|
|
} // namespace Metasound
|