Files
UnrealEngine/Engine/Plugins/Runtime/RigVM/Source/RigVMDeveloper/Public/RigVMModel/RigVMNotifications.h
2025-05-18 13:04:45 +08:00

70 lines
4.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "RigVMNotifications.generated.h"
class URigVMGraph;
/**
* The Graph Notification Type is used to differentiate
* between all of the changes that can happen within a graph.
*/
UENUM(BlueprintType)
enum class ERigVMGraphNotifType : uint8
{
GraphChanged, // The graph has changed / a new graph has been picked (Subject == nullptr)
NodeAdded, // A node has been added to the graph (Subject == URigVMNode)
NodeRemoved, // A node has been removed from the graph (Subject == URigVMNode)
NodeSelected, // A node has been selected (Subject == URigVMNode)
NodeDeselected, // A node has been deselected (Subject == URigVMNode)
NodeSelectionChanged, // The set of selected nodes has changed (Subject == nullptr)
NodePositionChanged, // A node's position has changed (Subject == URigVMNode)
NodeSizeChanged, // A node's size has changed (Subject == URigVMNode)
NodeTitleChanged, // A node's title has changed (Subject == URigVMNode)
NodeColorChanged, // A node's color has changed (Subject == URigVMNode)
PinAdded, // A pin has been added to a given node (Subject == URigVMPin)
PinRemoved, // A pin has been removed from a given node (Subject == URigVMPin)
PinRenamed, // A pin has been renamed (Subject == URigVMPin)
PinExpansionChanged, // A pin's expansion state has changed(Subject == URigVMPin)
PinWatchedChanged, // A pin's watch state has changed (Subject == URigVMPin)
PinArraySizeChanged, // An array pin's size has changed (Subject == URigVMPin)
PinDefaultValueChanged, // A pin's default value has changed (Subject == URigVMPin)
PinDirectionChanged, // A pin's direction has changed (Subject == URigVMPin)
PinTypeChanged, // A pin's data type has changed (Subject == URigVMPin)
PinIndexChanged, // A pin's index has changed (Subject == URigVMPin)
LinkAdded, // A link has been added (Subject == URigVMLink)
LinkRemoved, // A link has been removed (Subject == URigVMLink)
CommentTextChanged, // A comment node's text has changed (Subject == URigVMCommentNode)
VariableAdded, // A variable has been added (Subject == URigVMVariableNode)
VariableRemoved, // A variable has been removed (Subject == URigVMVariableNode)
VariableRenamed, // A variable has been renamed (Subject == URigVMVariableNode)
InteractionBracketOpened, // A bracket has been opened (Subject == nullptr)
InteractionBracketClosed, // A bracket has been opened (Subject == nullptr)
InteractionBracketCanceled, // A bracket has been canceled (Subject == nullptr)
PinBoundVariableChanged, // A pin has been bound or unbound to / from a variable (Subject == URigVMPin)
NodeRenamed, // A node has been renamed in the graph (Subject == URigVMNode)
FunctionRenamed, // A function has been renamed in the graph (Subject == URigVMLibraryNode)
NodeReferenceChanged, // A node has changed it's referenced function
NodeCategoryChanged, // A node's category has changed (Subject == URigVMNode)
NodeKeywordsChanged, // A node's keywords have changed (Subject == URigVMNode)
NodeDescriptionChanged, // A node's description has changed (Subject == URigVMNode)
VariableRemappingChanged, // A function reference node's remapping has changed (Subject == URigVMFunctionReferenceNode)
LibraryTemplateChanged, // The definition of a library node's template has changed (Subject == URigVMLibraryNode)
FunctionAccessChanged, // The function has been made public/private (Subject == URigVMLibraryNode)
VariantTagsChanged, // The tags in the header of this function variant have changed (Subject == URigVMLibraryNode)
PinDisplayNameChanged, // The display name of a pin has changed - requiring a rebuild of the node user interface (Subject == URigVMPin)
PinCategoryChanged, // The category of a pin has changed - requiring a rebuild of the node user interface (Subject == URigVMPin)
PinCategoriesChanged, // The category list of a node has changed - requiring a rebuild of the node user interface (Subject == URigVMNode)
PinCategoryExpansionChanged, // The category of a pin expanded / collapsed (Subject == URigVMNode)
FunctionVariantGuidChanged, // The guid for a function has changed (Subject == URigVMLibraryNode)
Invalid // The max for this enum (used for guarding)
};
// A delegate for subscribing / reacting to graph modifications.
DECLARE_MULTICAST_DELEGATE_ThreeParams(FRigVMGraphModifiedEvent, ERigVMGraphNotifType /* type */, URigVMGraph* /* graph */, UObject* /* subject */);
// A dynamic delegate for subscribing / reacting to graph modifications (used for Python integration).
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FRigVMGraphModifiedDynamicEvent, ERigVMGraphNotifType, NotifType, URigVMGraph*, Graph, UObject*, Subject);