// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/DeclarativeSyntaxSupport.h" #include "Input/Reply.h" #include "Widgets/SCompoundWidget.h" #include "Framework/Commands/UICommandInfo.h" #include "Framework/MultiBox/MultiBox.h" class SCustomToolbarPreviewWidget : public SMultiBlockBaseWidget { public: SLATE_BEGIN_ARGS( SCustomToolbarPreviewWidget ) {} SLATE_DEFAULT_SLOT( FArguments, Content ) SLATE_END_ARGS() void Construct( const FArguments& InArgs ); virtual void BuildMultiBlockWidget(const ISlateStyle* StyleSet, const FName& StyleName) override; private: TSharedPtr Content; }; /** * Arbitrary Widget MultiBlock */ class FDropPreviewBlock : public FMultiBlock { public: FDropPreviewBlock( TSharedRef InActualBlock, TSharedRef InActualWidget ) : FMultiBlock( NULL, NULL ) , ActualBlock( InActualBlock ) , ActualWidget( InActualWidget ) { } /** FMultiBlock interface */ virtual TSharedRef< class IMultiBlockBaseWidget > ConstructWidget() const override; virtual bool HasIcon() const override { return GetActualBlock()->HasIcon(); } TSharedRef GetActualBlock() const { return ActualBlock.ToSharedRef(); } private: TSharedPtr ActualBlock; TSharedPtr ActualWidget; };