// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Input/DragAndDrop.h" #include "DragAndDrop/DecoratedDragDropOp.h" #include "CollectionManagerTypes.h" #include "AssetData.h" #include "AssetTagItemTypes.h" class UNREALED_API FCollectionDragDropOp: public FDecoratedDragDropOp { public: DRAG_DROP_OPERATOR_TYPE(FCollectionDragDropOp, FDecoratedDragDropOp) /** Data for the collections this item represents */ TArray Collections; static TSharedRef New(TArray InCollections, const EAssetTagItemViewMode InAssetTagViewMode = EAssetTagItemViewMode::Standard) { TSharedRef Operation = MakeShareable(new FCollectionDragDropOp); Operation->AssetTagViewMode = InAssetTagViewMode; Operation->MouseCursor = EMouseCursor::GrabHandClosed; Operation->Collections = MoveTemp(InCollections); Operation->Construct(); return Operation; } public: /** @return The assets from this drag operation */ TArray GetAssets() const; virtual TSharedPtr GetDefaultDecorator() const override; private: FText GetDecoratorText() const; EAssetTagItemViewMode AssetTagViewMode = EAssetTagItemViewMode::Standard; };