Files
helen yang 9b0ed29b45 MetaSound interfaces menu changes
- Add right click menu and actions for graph members
- Move add/remove interfaces menu to a new details tab

#jira UE-143470
#jira UE-143471

#rb rob.gay
#preflight 6218507a8849a7424f6d4ff9

#ROBOMERGE-AUTHOR: helen.yang
#ROBOMERGE-SOURCE: CL 19177650 in //UE5/Release-5.0/... via CL 19180025
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19203596 by helen yang in ue5-main branch]
2022-03-01 14:29:17 -05:00

63 lines
1.6 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:
FName GetInterfaceVersionsPath() const;
FName GetMetadataRootClassPath() const;
FName GetMetadataPropertyPath() const;
TAttribute<bool> IsGraphEditableAttribute;
TWeakObjectPtr<UObject> MetaSound;
FName DocumentPropertyName;
};
class FMetasoundInterfacesDetailCustomization : public IDetailCustomization
{
public:
FMetasoundInterfacesDetailCustomization();
// IDetailCustomization interface
virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override;
// End of IDetailCustomization interface
private:
void UpdateInterfaceNames();
TArray<TSharedPtr<FString>> AddableInterfaceNames;
TSet<FName> ImplementedInterfaceNames;
TSharedPtr<SSearchableComboBox> InterfaceComboBox;
TAttribute<bool> IsGraphEditableAttribute;
TWeakObjectPtr<UObject> MetaSound;
};
} // namespace Editor
} // namespace Metasound