Files
UnrealEngine/Engine/Plugins/Animation/LiveLink/Source/LiveLinkEditor/Private/SLiveLinkSubjectRepresentationGraphPin.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

41 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SLiveLinkSubjectRepresentationGraphPin.h"
#include "EdGraph/EdGraphSchema.h"
#define LOCTEXT_NAMESPACE "SubjectRepresentation"
void SLiveLinkSubjectRepresentationGraphPin::Construct( const FArguments& InArgs, UEdGraphPin* InGraphPinObj )
{
SGraphPin::Construct( SGraphPin::FArguments(), InGraphPinObj );
}
TSharedRef<SWidget> SLiveLinkSubjectRepresentationGraphPin::GetDefaultValueWidget()
{
FString DefaultString = GraphPinObj->GetDefaultAsString();
FLiveLinkSubjectRepresentation::StaticStruct()->ImportText(*DefaultString, &SubjectRepresentation, nullptr, EPropertyPortFlags::PPF_None, GLog, FLiveLinkSubjectRepresentation::StaticStruct()->GetName());
//Create widget
return SNew(SLiveLinkSubjectRepresentationPicker)
.ShowRole(true)
.HasMultipleValues(false)
.Value(this, &SLiveLinkSubjectRepresentationGraphPin::GetValue)
.OnValueChanged(this, &SLiveLinkSubjectRepresentationGraphPin::SetValue);
}
SLiveLinkSubjectRepresentationPicker::FLiveLinkSourceSubjectRole SLiveLinkSubjectRepresentationGraphPin::GetValue() const
{
return SLiveLinkSubjectRepresentationPicker::FLiveLinkSourceSubjectRole(SubjectRepresentation);
}
void SLiveLinkSubjectRepresentationGraphPin::SetValue(SLiveLinkSubjectRepresentationPicker::FLiveLinkSourceSubjectRole NewValue)
{
SubjectRepresentation = NewValue.ToSubjectRepresentation();
FString ValueString;
FLiveLinkSubjectRepresentation::StaticStruct()->ExportText(ValueString, &SubjectRepresentation, nullptr, nullptr, EPropertyPortFlags::PPF_None, nullptr);
GraphPinObj->GetSchema()->TrySetDefaultValue(*GraphPinObj, ValueString);
}
#undef LOCTEXT_NAMESPACE