// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Widgets/SCompoundWidget.h" #include "Widgets/Layout/SBox.h" #include "Widgets/Input/SMenuAnchor.h" #include "PropertyCustomizationHelpers.h" #include "AssetThumbnail.h" class SStandAloneAssetPicker : public SCompoundWidget { public: SLATE_BEGIN_ARGS(SStandAloneAssetPicker) {} SLATE_EVENT(FOnGetAllowedClasses, OnGetAllowedClasses) SLATE_EVENT(FOnAssetSelected, OnAssetSelected) SLATE_ARGUMENT(TObjectPtr, InitialAsset) SLATE_END_ARGS() void Construct(const FArguments& InArgs); private: FReply OnClicked(); TSharedRef OnGenerateAssetPicker(); void OnAssetSelectedFromPicker(const struct FAssetData& AssetData); void OnAssetEnterPressedFromPicker(const TArray& AssetData); void RefreshThumbnail(); private: /** Menu anchor for opening and closing the asset picker */ TSharedPtr AssetPickerAnchor; FOnGetAllowedClasses OnGetAllowedClasses; FOnAssetSelected OnAssetSelected; TObjectPtr CurrentAsset; TSharedPtr AssetThumbnail; TSharedPtr ThumbnailWidget; TSharedPtr ThumbnailContainer; };