2019-12-26 15:33:43 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2014-07-28 14:40:31 -04:00
|
|
|
|
2014-10-15 05:21:18 -04:00
|
|
|
#include "WidgetReference.h"
|
|
|
|
|
#include "WidgetBlueprintEditor.h"
|
2014-07-28 14:40:31 -04:00
|
|
|
|
|
|
|
|
#define LOCTEXT_NAMESPACE "UMG"
|
|
|
|
|
|
2014-10-14 15:03:01 -04:00
|
|
|
FWidgetHandle::FWidgetHandle(UWidget* InWidget)
|
|
|
|
|
: Widget(InWidget)
|
2014-08-26 14:03:30 -04:00
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2014-07-28 14:40:31 -04:00
|
|
|
// FWidgetReference
|
|
|
|
|
|
|
|
|
|
FWidgetReference::FWidgetReference()
|
|
|
|
|
: WidgetEditor()
|
2014-08-26 14:03:30 -04:00
|
|
|
, TemplateHandle()
|
2014-07-28 14:40:31 -04:00
|
|
|
{
|
2014-08-26 14:03:30 -04:00
|
|
|
|
2014-07-28 14:40:31 -04:00
|
|
|
}
|
|
|
|
|
|
2014-10-14 15:03:01 -04:00
|
|
|
FWidgetReference::FWidgetReference(TSharedPtr<FWidgetBlueprintEditor> InWidgetEditor, TSharedPtr< FWidgetHandle > InTemplateHandle)
|
|
|
|
|
: WidgetEditor(InWidgetEditor)
|
|
|
|
|
, TemplateHandle(InTemplateHandle)
|
2014-07-28 14:40:31 -04:00
|
|
|
{
|
2014-08-26 14:03:30 -04:00
|
|
|
|
2014-07-28 14:40:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool FWidgetReference::IsValid() const
|
|
|
|
|
{
|
2014-08-26 14:03:30 -04:00
|
|
|
if ( TemplateHandle.IsValid() )
|
|
|
|
|
{
|
2014-10-20 12:54:01 -04:00
|
|
|
return TemplateHandle->Widget.Get() != nullptr && GetPreview();
|
2014-08-26 14:03:30 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
2014-07-28 14:40:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UWidget* FWidgetReference::GetTemplate() const
|
|
|
|
|
{
|
2014-08-26 14:03:30 -04:00
|
|
|
if ( TemplateHandle.IsValid() )
|
|
|
|
|
{
|
|
|
|
|
return TemplateHandle->Widget.Get();
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-20 12:54:01 -04:00
|
|
|
return nullptr;
|
2014-07-28 14:40:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UWidget* FWidgetReference::GetPreview() const
|
|
|
|
|
{
|
2014-08-26 14:03:30 -04:00
|
|
|
if ( WidgetEditor.IsValid() && TemplateHandle.IsValid() )
|
2014-07-28 14:40:31 -04:00
|
|
|
{
|
2022-05-26 17:58:02 -04:00
|
|
|
if ( UUserWidget* PreviewRoot = WidgetEditor.Pin()->GetPreview() )
|
2014-07-28 14:40:31 -04:00
|
|
|
{
|
2014-10-20 12:54:01 -04:00
|
|
|
if ( UWidget* TemplateWidget = TemplateHandle->Widget.Get() )
|
|
|
|
|
{
|
|
|
|
|
UWidget* PreviewWidget = PreviewRoot->GetWidgetFromName(TemplateWidget->GetFName());
|
|
|
|
|
return PreviewWidget;
|
|
|
|
|
}
|
2014-07-28 14:40:31 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-20 12:54:01 -04:00
|
|
|
return nullptr;
|
2014-07-28 14:40:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#undef LOCTEXT_NAMESPACE
|