Files
UnrealEngineUWP/Engine/Plugins/Runtime/Metasound/Source/MetasoundEditor/Private/MetasoundDetailCustomization.h
rob gay ff8b5954ac MetaSounds Interface Checkpoint
- Archetype to Interface rename & support for multiple interface versions stored on MetaSoundBase
- Added ability to register interfaces
- Added spatialization/attenuation interfaces
- Added UX to add/remove Interfaces
- Fix ensure when deleting UMetaSound asset
#rb phil.popp
#jira UE-135000
#jira UE-120656
#rnx
#preflight 619bd9e33a7219926732337c

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18262648 in //UE5/Release-5.0/... via CL 18262703
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18262725 by rob gay in ue5-release-engine-test branch]
2021-11-22 15:55:50 -05:00

50 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IDetailCustomization.h"
#include "SGraphActionMenu.h"
#include "SSearchableComboBox.h"
#include "Templates/SharedPointer.h"
#include "Types/SlateEnums.h"
#include "UObject/NameTypes.h"
// Forward Declarations
class FPropertyRestriction;
class IDetailLayoutBuilder;
struct FPointerEvent;
namespace Metasound
{
namespace Editor
{
class FMetasoundDetailCustomization : public IDetailCustomization
{
public:
FMetasoundDetailCustomization(FName InDocumentPropertyName);
// IDetailCustomization interface
virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override;
// End of IDetailCustomization interface
private:
void CustomizeInterfaces(IDetailLayoutBuilder& DetailLayout);
FName GetInterfaceVersionsPath() const;
FName GetMetadataRootClassPath() const;
FName GetMetadataPropertyPath() const;
void UpdateInterfaceNames();
TArray<TSharedPtr<FString>> AddableInterfaceNames;
TSet<FName> ImplementedInterfaceNames;
TSharedPtr<SSearchableComboBox> InterfaceComboBox;
TAttribute<bool> IsGraphEditableAttribute;
TWeakObjectPtr<UObject> MetaSound;
FName DocumentPropertyName;
};
} // namespace Editor
} // namespace Metasound