// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Widgets/Views/STableRow.h" #include "Widgets/Views/SListView.h" class STableViewBase; class UStateTreeState; enum class EStateTreeTransitionTrigger : uint8; class UStateTreeEditorData; class SStateTreeView; class SInlineEditableTextBlock; class SScrollBox; class FStateTreeViewModel; class SStateTreeViewRow : public STableRow> { public: SLATE_BEGIN_ARGS(SStateTreeViewRow) { } SLATE_END_ARGS() void Construct(const FArguments& InArgs, const TSharedRef& InOwnerTableView, TWeakObjectPtr InState, const TSharedPtr& ViewBox, TSharedRef InStateTreeViewModel); void RequestRename() const; private: TSharedRef CreateTasksWidget(); FSlateColor GetTitleColor() const; FSlateColor GetActiveStateColor() const; FSlateColor GetSubTreeMarkerColor() const; FText GetStateDesc() const; EVisibility GetConditionVisibility() const; EVisibility GetBreakpointVisibility() const; const FSlateBrush* GetSelectorIcon() const; FText GetSelectorTooltip() const; FText GetStateTypeTooltip() const; EVisibility GetTasksVisibility() const; FText GetTasksDesc() const; EVisibility GetLinkedStateVisibility() const; FText GetLinkedStateDesc() const; EVisibility GetCompletedTransitionVisibility() const; FText GetCompletedTransitionsDesc() const; FText GetCompletedTransitionsIcon() const; EVisibility GetSucceededTransitionVisibility() const; FText GetSucceededTransitionDesc() const; FText GetSucceededTransitionIcon() const; EVisibility GetFailedTransitionVisibility() const; FText GetFailedTransitionDesc() const; FText GetFailedTransitionIcon() const; EVisibility GetConditionalTransitionsVisibility() const; FText GetConditionalTransitionsDesc() const; FText GetTransitionsDesc(const UStateTreeState& State, const EStateTreeTransitionTrigger Trigger, const bool bUseMask = false) const; FText GetTransitionsIcon(const UStateTreeState& State, const EStateTreeTransitionTrigger Trigger, const bool bUseMask = false) const; EVisibility GetTransitionsVisibility(const UStateTreeState& State, const EStateTreeTransitionTrigger Trigger) const; bool HasParentTransitionForTrigger(const UStateTreeState& State, const EStateTreeTransitionTrigger Trigger) const; bool IsRootState() const; bool IsStateSelected() const; void HandleNodeLabelTextCommitted(const FText& NewLabel, ETextCommit::Type CommitType) const; FReply HandleDragDetected(const FGeometry&, const FPointerEvent&) const; TOptional HandleCanAcceptDrop(const FDragDropEvent& DragDropEvent, EItemDropZone DropZone, TWeakObjectPtr TargetState) const; FReply HandleAcceptDrop(const FDragDropEvent& DragDropEvent, EItemDropZone DropZone, TWeakObjectPtr TargetState) const; TSharedPtr StateTreeViewModel; TWeakObjectPtr WeakState; TSharedPtr NameTextBlock; };