Files
UnrealEngineUWP/Engine/Source/Editor/UMGEditor/Private/Graph/GraphFunctionDetailsCustomization.cpp
Patrick Boutot 4fcb4ba16e UMG: Add BP variable customization. Add FieldNotify as a field that can be added to a UMG variable member.
#rb prajwal.manjunath, sebastian.nordgren
#preflight 62329b60ac0173aa413a0fe0

[CL 19416729 by Patrick Boutot in ue5-main branch]
2022-03-16 22:26:11 -04:00

48 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Graph/GraphFunctionDetailsCustomization.h"
#include "FieldNotification/CustomizationHelper.h"
#include "DetailLayoutBuilder.h"
#include "BlueprintEditorModule.h"
#include "Engine/BlueprintGeneratedClass.h"
#include "WidgetBlueprint.h"
#define LOCTEXT_NAMESPACE "GraphFunctionDetailsCustomization"
FGraphFunctionDetailsCustomization::FGraphFunctionDetailsCustomization(UWidgetBlueprint* InBlueprint)
: Helper(MakePimpl<UE::FieldNotification::FCustomizationHelper>(InBlueprint))
{}
TSharedPtr<IDetailCustomization> FGraphFunctionDetailsCustomization::MakeInstance(TSharedPtr<IBlueprintEditor> InBlueprintEditor)
{
const TArray<UObject*>* Objects = (InBlueprintEditor.IsValid() ? InBlueprintEditor->GetObjectsCurrentlyBeingEdited() : nullptr);
if (Objects)
{
TOptional<UWidgetBlueprint*> FinalBlueprint;
for (UObject* Object : *Objects)
{
UWidgetBlueprint* Blueprint = Cast<UWidgetBlueprint>(Object);
if (FinalBlueprint.IsSet() && FinalBlueprint.GetValue() != Blueprint)
{
return nullptr;
}
FinalBlueprint = Blueprint;
}
if (FinalBlueprint.IsSet())
{
return MakeShareable(new FGraphFunctionDetailsCustomization(FinalBlueprint.GetValue()));
}
}
return nullptr;
}
void FGraphFunctionDetailsCustomization::CustomizeDetails(IDetailLayoutBuilder& DetailLayout)
{
Helper->CustomizeFunctionDetails(DetailLayout);
}
#undef LOCTEXT_NAMESPACE