// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreTypes.h" #include "Input/DragAndDrop.h" #include "SequencerObjectBindingDragDropOp.h" class FSequencer; namespace UE { namespace MovieScene { struct FFixedObjectBindingID; } namespace Sequencer { /** A decorated drag drop operation object for dragging sequencer display nodes. */ class FSequencerOutlinerDragDropOp : public FSequencerObjectBindingDragDropOp { public: DRAG_DROP_OPERATOR_TYPE( FSequencerOutlinerDragDropOp, FSequencerObjectBindingDragDropOp ) /** * Construct a new drag/drop operation for dragging a selection of display nodes */ static TSharedRef New(TArray>&& InDraggedNodes, FText InDefaultText, const FSlateBrush* InDefaultIcon); public: //~ FSequencerObjectBindingDragDropOp interface virtual TArray GetDraggedBindings() const override; virtual TArray GetDraggedRebindableBindings() const override; TArray GetDraggedBindingsImpl(TFunctionRef&)> InFilter) const; //~ FGraphEditorDragDropAction interface virtual void HoverTargetChanged() override; virtual FReply DroppedOnPanel( const TSharedRef< class SWidget >& Panel, const FVector2f& ScreenPosition, const FVector2f& GraphPosition, UEdGraph& Graph) override; }; } // namespace Sequencer } // namespace UE