Files
UnrealEngineUWP/Engine/Source/Runtime/UMG/Private/Components/NativeWidgetHost.cpp
ryan durand 0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00

84 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Components/NativeWidgetHost.h"
#include "Widgets/SNullWidget.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/Layout/SBorder.h"
#include "Widgets/Text/STextBlock.h"
#include "Widgets/Layout/SBox.h"
#include "UMGStyle.h"
#define LOCTEXT_NAMESPACE "UMG"
/////////////////////////////////////////////////////
// UNativeWidgetHost
UNativeWidgetHost::UNativeWidgetHost(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
bIsVariable = false;
}
void UNativeWidgetHost::SetContent(TSharedRef<SWidget> InContent)
{
if (NativeWidget != InContent)
{
NativeWidget = InContent;
TSharedPtr<SWidget> StableMyWidget = MyWidget.Pin();
if (StableMyWidget.IsValid())
{
TSharedPtr<SBox> MyBox = StaticCastSharedPtr<SBox>(StableMyWidget);
MyBox->SetContent(InContent);
}
}
}
void UNativeWidgetHost::ReleaseSlateResources(bool bReleaseChildren)
{
Super::ReleaseSlateResources(bReleaseChildren);
NativeWidget.Reset();
}
TSharedRef<SWidget> UNativeWidgetHost::RebuildWidget()
{
return SNew(SBox)
[
( NativeWidget.IsValid() ) ? NativeWidget.ToSharedRef() : GetDefaultContent()
];
}
TSharedRef<SWidget> UNativeWidgetHost::GetDefaultContent()
{
if ( IsDesignTime() )
{
return SNew(SBorder)
.Visibility(EVisibility::HitTestInvisible)
.BorderImage(FUMGStyle::Get().GetBrush("MarchingAnts"))
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(STextBlock)
.Text(LOCTEXT("NativeWidgetHostText", "Slate Widget Host"))
];
}
else
{
return SNullWidget::NullWidget;
}
}
#if WITH_EDITOR
const FText UNativeWidgetHost::GetPaletteCategory()
{
return LOCTEXT("Primitive", "Primitive");
}
#endif
/////////////////////////////////////////////////////
#undef LOCTEXT_NAMESPACE