// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Input/Reply.h" #include "Layout/Visibility.h" #include "SGraphNode.h" #include "Widgets/DeclarativeSyntaxSupport.h" #include "Widgets/SOverlay.h" // Forward Declarations class SGraphPin; class SVerticalBox; class UMetasoundEditorGraphInputLiteral; class UMetasoundEditorGraphNode; class SMetasoundGraphNode : public SGraphNode { public: SLATE_BEGIN_ARGS(SMetasoundGraphNode) { } SLATE_END_ARGS() void Construct(const FArguments& InArgs, class UEdGraphNode* InNode); protected: // SGraphNode Interface virtual void CreateOutputSideAddButton(TSharedPtr OutputBox) override; virtual TSharedPtr CreatePinWidget(UEdGraphPin* InPin) const override; virtual void CreateStandardPinWidget(UEdGraphPin* InPin) override; virtual TSharedRef CreateNodeContentArea() override; virtual TSharedRef CreateTitleWidget(TSharedPtr NodeTitle) override; virtual const FSlateBrush* GetNodeBodyBrush() const override; virtual TSharedRef CreateTitleRightWidget() override; virtual EVisibility IsAddPinButtonVisible() const override; virtual FReply OnAddPin() override; virtual void MoveTo(const FVector2D& NewPosition, FNodeSet& NodeFilter, bool bMarkDirty = true) override; virtual void SetDefaultTitleAreaWidget(TSharedRef DefaultTitleAreaWidget) override; FName GetLiteralDataType() const; UMetasoundEditorGraphNode& GetMetasoundNode(); const UMetasoundEditorGraphNode& GetMetasoundNode() const; public: static void ExecuteInputTrigger(UMetasoundEditorGraphInputLiteral& Literal); static TSharedRef CreateTriggerSimulationWidget(UMetasoundEditorGraphInputLiteral& Literal); };