Files
UnrealEngine/Engine/Source/Runtime/Slate/Private/Framework/MultiBox/MultiBoxCustomization.h
2025-05-18 13:04:45 +08:00

54 lines
1.3 KiB
C++

// 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<SWidget> Content;
};
/**
* Arbitrary Widget MultiBlock
*/
class FDropPreviewBlock
: public FMultiBlock
{
public:
FDropPreviewBlock( TSharedRef<const FMultiBlock> InActualBlock, TSharedRef<IMultiBlockBaseWidget> 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<const FMultiBlock> GetActualBlock() const { return ActualBlock.ToSharedRef(); }
private:
TSharedPtr<const FMultiBlock> ActualBlock;
TSharedPtr<IMultiBlockBaseWidget> ActualWidget;
};