43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
class IPropertyHandle;
|
|
|
|
/**
|
|
* Keyed Status of a Property, ordered by their precedence
|
|
* E.g. if a property is keyed in current and another frame, Keyed In Frame should take precedence
|
|
*/
|
|
enum class EPropertyKeyedStatus : uint8
|
|
{
|
|
/** Property not keyed, or not animated in current time */
|
|
NotKeyed,
|
|
|
|
/** Property is animated in the current time, but there's no key in current frame */
|
|
KeyedInOtherFrame,
|
|
|
|
/** For Top-level properties only -- some but not all the properties of the struct are keyed in Current Frame */
|
|
PartiallyKeyed,
|
|
|
|
/** Property (and all its sub-properties) are keyed in current frame */
|
|
KeyedInFrame,
|
|
};
|
|
|
|
class IDetailKeyframeHandler
|
|
{
|
|
public:
|
|
virtual ~IDetailKeyframeHandler(){}
|
|
|
|
virtual bool IsPropertyKeyable(const UClass* InObjectClass, const IPropertyHandle& PropertyHandle) const = 0;
|
|
|
|
virtual bool IsPropertyKeyingEnabled() const = 0;
|
|
|
|
virtual void OnKeyPropertyClicked(const IPropertyHandle& KeyedPropertyHandle) = 0;
|
|
|
|
virtual bool IsPropertyAnimated(const IPropertyHandle& PropertyHandle, UObject* ParentObject) const = 0;
|
|
|
|
virtual EPropertyKeyedStatus GetPropertyKeyedStatus(const IPropertyHandle& PropertyHandle) const { return EPropertyKeyedStatus::NotKeyed; }
|
|
};
|