Files
UnrealEngine/Engine/Source/Runtime/AudioExtensions/Public/AudioPropertiesSheetAssetBase.h
2025-05-18 13:04:45 +08:00

53 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Delegates/IDelegateInstance.h"
#include "UObject/Interface.h"
#include "UObject/Object.h"
#include "UObject/ObjectPtr.h"
#include "AudioPropertiesSheetAssetBase.generated.h"
UINTERFACE(MinimalApi, meta=(CannotImplementInterfaceInBlueprint))
class UAudioPropertiesSheetAssetUserInterface : public UInterface
{
GENERATED_BODY()
};
/**
* IAudioPropertiesSheetAssetUserInterface
*
* Target objects can implement this interface to bypass parsing coming from a property sheet.
*
* Allow/Ignore Property Parsing can be used to set a local property bypass - e.g. from a details view.
*
* ShouldParseProperty can be used by a parser to determine if a property should be parsed or not.
*/
class IAudioPropertiesSheetAssetUserInterface
{
GENERATED_BODY()
public:
#if WITH_EDITORONLY_DATA
virtual void AllowPropertyParsing(const FProperty& TargetProperty) = 0;
virtual void IgnorePropertyParsing(const FProperty& PropertyToIgnore) = 0;
virtual bool ShouldParseProperty(const FProperty& TargetProperty) const = 0;
#endif
};
UCLASS(MinimalAPI, Abstract)
class UAudioPropertiesSheetAssetBase : public UObject
{
GENERATED_BODY()
public:
#if WITH_EDITOR
UFUNCTION(BlueprintCallable, BlueprintPure=false, Category="AudioProperties")
virtual bool CopyToObjectProperties(UObject* TargetObject) const { return false; };
virtual FDelegateHandle BindPropertiesCopyToSheetChanges(UObject* TargetObject) { return FDelegateHandle(); };
virtual void UnbindCopyFromPropertySheetChanges(UObject* ObjectToUnbind) {};
#endif
};