// 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 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 EVisibility IsAddPinButtonVisible() const override; virtual FReply OnAddPin() override; virtual void SetDefaultTitleAreaWidget(TSharedRef DefaultTitleAreaWidget) override; UMetasoundEditorGraphNode& GetMetasoundNode(); const UMetasoundEditorGraphNode& GetMetasoundNode() const; };