Files
UnrealEngine/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimNodeReference.cpp
2025-05-18 13:04:45 +08:00

78 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SAnimNodeReference.h"
#include "Delegates/Delegate.h"
#include "Internationalization/Internationalization.h"
#include "Internationalization/Text.h"
#include "K2Node_AnimNodeReference.h"
#include "Layout/Margin.h"
#include "SGraphPin.h"
#include "SLevelOfDetailBranchNode.h"
#include "SlotBase.h"
#include "Styling/AppStyle.h"
#include "Styling/ISlateStyle.h"
#include "Styling/SlateTypes.h"
#include "Templates/Casts.h"
#include "Widgets/Layout/SSpacer.h"
#include "Widgets/SBoxPanel.h"
#include "Widgets/Text/STextBlock.h"
class SWidget;
class UEdGraphPin;
#define LOCTEXT_NAMESPACE "SAnimNodeReferenceNode"
void SAnimNodeReference::Construct(const FArguments& InArgs, UK2Node_AnimNodeReference* InNode)
{
GraphNode = InNode;
UpdateGraphNode();
}
TSharedRef<SWidget> SAnimNodeReference::UpdateTitleWidget(FText InTitleText, TSharedPtr<SWidget> InTitleWidget, EHorizontalAlignment& InOutTitleHAlign, FMargin& InOutTitleMargin) const
{
UK2Node_AnimNodeReference* K2Node_AnimNodeReference = CastChecked<UK2Node_AnimNodeReference>(GraphNode);
InTitleWidget =
SNew(SLevelOfDetailBranchNode)
.UseLowDetailSlot(this, &SAnimNodeReference::UseLowDetailNodeTitles)
.LowDetail()
[
SNew(SSpacer)
]
.HighDetail()
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.AutoHeight()
[
SNew(STextBlock)
.Text_Lambda([K2Node_AnimNodeReference]()
{
return K2Node_AnimNodeReference->GetLabelText();
})
]
+SVerticalBox::Slot()
.AutoHeight()
[
SNew(STextBlock)
.Text(LOCTEXT("NodeSubTitle", "Anim Node Reference"))
.TextStyle(&FAppStyle::Get().GetWidgetStyle<FTextBlockStyle>("AnimGraph.AnimNodeReference.Subtitle"))
]
];
InOutTitleHAlign = HAlign_Left;
InOutTitleMargin = FMargin(12.0f, 8.0f, 36.0f, 6.0f);
return InTitleWidget.ToSharedRef();
}
TSharedPtr<SGraphPin> SAnimNodeReference::CreatePinWidget(UEdGraphPin* Pin) const
{
TSharedPtr<SGraphPin> DefaultWidget = SGraphNodeK2Var::CreatePinWidget(Pin);
DefaultWidget->SetShowLabel(false);
return DefaultWidget;
}
#undef LOCTEXT_NAMESPACE