Files
UnrealEngineUWP/Engine/Plugins/Web/HttpBlueprint/Source/HttpBlueprintGraph/Private/K2Node_MakeRequestHeader.h
George Rolfe 5d4a229182 Http for Blueprint
#jira UETOOL-4465
#preflight 622febfb6065b4ecd3dd2858
#rb simon.therriault

[CL 19381806 by George Rolfe in ue5-main branch]
2022-03-14 22:09:21 -04:00

81 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "K2Node.h"
#include "K2Node_AddPinInterface.h"
#include "K2Node_MakeRequestHeader.generated.h"
USTRUCT()
struct FOptionalPin
{
GENERATED_BODY()
UPROPERTY()
FName PinName;
UPROPERTY()
FString PinDefaultValue;
};
UCLASS(MinimalAPI)
class UK2Node_MakeRequestHeader
: public UK2Node
, public IK2Node_AddPinInterface
{
GENERATED_BODY()
public:
UK2Node_MakeRequestHeader(const FObjectInitializer& ObjectInitializer);
/** Begin UEdGraphNode Interface */
virtual void AllocateDefaultPins() override;
virtual FText GetTooltipText() const override;
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
virtual void ValidateNodeDuringCompilation(FCompilerResultsLog& MessageLog) const override;
virtual void PinDefaultValueChanged(UEdGraphPin* Pin) override;
/** End UEdGraphNode Interface */
/** Begin UK2Node Interface */
virtual void GetNodeContextMenuActions(UToolMenu* Menu, UGraphNodeContextMenuContext* Context) const override;
virtual void ExpandNode(FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph) override;
virtual void GetMenuActions(FBlueprintActionDatabaseRegistrar& ActionRegistrar) const override;
virtual FText GetMenuCategory() const override;
virtual bool NodeCausesStructuralBlueprintChange() const override;
virtual bool IsNodePure() const override;
/** Begin UK2Node Interface */
/** Begin IK2Node_AddPinInterface */
virtual bool CanAddPin() const override;
virtual bool CanRemovePin(const UEdGraphPin* Pin) const override;
virtual void AddInputPin() override;
virtual void RemoveInputPin(UEdGraphPin* Pin) override;
/** End IK2Node_AddPinInterface */
static FName GetOutputPinName();
UEdGraphPin* GetOutputPin() const;
protected:
UE_NODISCARD bool IsValidInputPin(const UEdGraphPin* InputPin) const;
void ConstructDefaultPinsForPreset();
void SyncPinNames();
static FName GetPinName(const int32& PinIndex);
private:
TObjectPtr<UEnum> PresetEnum;
UPROPERTY()
int32 PresetEnumIndex;
UPROPERTY()
int32 NumInputs;
UPROPERTY()
TArray<FOptionalPin> OptionalPins;
};