Files
UnrealEngine/Engine/Source/Editor/Persona/Private/SSequenceEditor.h
2025-05-18 13:04:45 +08:00

56 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "IPersonaPreviewScene.h"
#include "SAnimationScrubPanel.h"
#include "SAnimEditorBase.h"
#include "EditorUndoClient.h"
#include "Animation/AnimSequence.h"
class SAnimNotifyPanel;
class FAnimModel_AnimSequenceBase;
//////////////////////////////////////////////////////////////////////////
// SSequenceEditor
/** Overall animation sequence editing widget */
class SSequenceEditor : public SAnimEditorBase, public FEditorUndoClient
{
public:
SLATE_BEGIN_ARGS( SSequenceEditor )
: _Sequence(NULL)
{}
SLATE_ARGUMENT(UAnimSequenceBase*, Sequence)
SLATE_EVENT(FOnObjectsSelected, OnObjectsSelected)
SLATE_EVENT(FOnInvokeTab, OnInvokeTab)
SLATE_EVENT(FOnEditCurves, OnEditCurves)
SLATE_END_ARGS()
private:
TWeakPtr<class IPersonaPreviewScene> PreviewScenePtr;
TSharedPtr<FAnimModel_AnimSequenceBase> AnimModel;
public:
void Construct(const FArguments& InArgs, TSharedRef<class IPersonaPreviewScene> InPreviewScene, TSharedRef<class IEditableSkeleton> InEditableSkeleton, const TSharedRef<FUICommandList>& InCommandList);
~SSequenceEditor();
virtual UAnimationAsset* GetEditorObject() const override { return SequenceObj; }
private:
/** Pointer to the animation sequence being edited */
UAnimSequenceBase* SequenceObj;
/** FEditorUndoClient interface */
virtual void PostUndo( bool bSuccess ) override;
virtual void PostRedo( bool bSuccess ) override;
/** Post undo **/
void PostUndoRedo();
};