Skip to content

SSMGraphProperty_Base

Module: SMSystemEditor

#include <SSMGraphProperty_Base.h>

Inherits from SCompoundWidget

Description

class SSMGraphProperty_Base;

Base representation of an exposed graph property. Extend this to implement custom graph properties.

Protected Functions

Name
virtual void OnInteractProperty(const FSMPropertyInteractionEventArgs & InArgs)
virtual bool IsGraphPropertyVisuallyEnabled() const
TSharedRef< SBorder > MakeHighlightBorder()
TSharedRef< SWidget > MakeNotifyIconWidget()
virtual EVisibility GetHighlightVisibility() const
virtual FSlateColor GetHighlightColor() const
bool IsHighlightTargetingThisRow() const
EVisibility GetNotifyVisibility() const
const FSlateBrush * GetNotifyIconBrush() const
FSlateColor GetNotifyIconColor() const
FText GetNotifyIconTooltip() const
FText BuildPropertyTooltipText() const

Protected Attributes

Name
TWeakObjectPtr< UEdGraphNode > GraphNode
constexpr float HighlightPadding
const FMargin NotifyPadding

Friends

Name
class SSMNodeInstancePropertyView

Protected Functions Documentation

function OnInteractProperty

inline virtual void OnInteractProperty(
    const FSMPropertyInteractionEventArgs & InArgs
)

Called when the owning graph property node is interacted with. Widgets sharing a property node filter by matching FSMPropertyInteractionEventArgs::SubPinId so sub-pin events don't leak to the main row and vice versa.


function IsGraphPropertyVisuallyEnabled

virtual bool IsGraphPropertyVisuallyEnabled() const

Special handling for IsEnabled(), to be called by children on specific widgets, so we still allow interaction while dimming the property.


function MakeHighlightBorder

TSharedRef< SBorder > MakeHighlightBorder()

function MakeNotifyIconWidget

TSharedRef< SWidget > MakeNotifyIconWidget()

function GetHighlightVisibility

virtual EVisibility GetHighlightVisibility() const

function GetHighlightColor

virtual FSlateColor GetHighlightColor() const

function IsHighlightTargetingThisRow

bool IsHighlightTargetingThisRow() const

Whether the property node's current highlight should display on this widget. When FHighlightArgs::SubPinName is empty (whole-node mode), only the main row lights up so a hover/select on the parent doesn't bleed onto its sub-pin rows. When SubPinName is set, only the sub-pin row whose engine PinName matches lights up; the main row stays neutral so the highlight doesn't double up on the parent.


function GetNotifyVisibility

EVisibility GetNotifyVisibility() const

function GetNotifyIconBrush

const FSlateBrush * GetNotifyIconBrush() const

function GetNotifyIconColor

FSlateColor GetNotifyIconColor() const

function GetNotifyIconTooltip

FText GetNotifyIconTooltip() const

function BuildPropertyTooltipText

FText BuildPropertyTooltipText() const

Creates tooltip text for the given property.


Protected Attributes Documentation

variable GraphNode

TWeakObjectPtr< UEdGraphNode > GraphNode;

variable HighlightPadding

static constexpr float HighlightPadding = -6.f;

variable NotifyPadding

static const FMargin NotifyPadding;

Private Attributes Documentation

variable CachedParentStateWidget

TWeakPtr< SGraphNode_StateNode > CachedParentStateWidget;

Cached ptr to parent state widget.


variable TreeItemWeakPtr

TWeakPtr< struct FSMGraphPropertyTreeItem > TreeItemWeakPtr;

Pointer back to the tree item that owns us.


variable RegisteredWidgetGuid

FGuid RegisteredWidgetGuid;

Guid assigned to our widget from the owning state node.


Friends

friend SSMNodeInstancePropertyView

friend class SSMNodeInstancePropertyView(
    SSMNodeInstancePropertyView 
);