Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

56 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#if WITH_STATETREE_TRACE_DEBUGGER
#include "Debugger/StateTreeTraceTypes.h"
#include "StateTree.h"
#include "Templates/SharedPointer.h"
#include "TraceServices/Model/Frames.h"
#include "Widgets/Views/SListView.h"
#include "Widgets/Views/STableRow.h"
class FStateTreeViewModel;
namespace UE::StateTreeDebugger
{
/** An item in the StateTreeDebugger trace event tree */
struct FFrameEventTreeElement : TSharedFromThis<FFrameEventTreeElement>
{
explicit FFrameEventTreeElement(const TraceServices::FFrame& Frame, const FStateTreeTraceEventVariantType& Event, const UStateTree* StateTree)
: Frame(Frame), Event(Event), WeakStateTree(StateTree)
{
}
TraceServices::FFrame Frame;
FStateTreeTraceEventVariantType Event;
TArray<TSharedPtr<FFrameEventTreeElement>> Children;
FString Description;
TWeakObjectPtr<const UStateTree> WeakStateTree;
};
/**
* Widget for row inside the StateTreeDebugger TreeView.
*/
class SFrameEventViewRow : public STableRow<TSharedPtr<FFrameEventTreeElement>>
{
public:
void Construct(const FArguments& InArgs,
const TSharedPtr<STableViewBase>& InOwnerTableView,
const TSharedPtr<FFrameEventTreeElement>& InElement);
private:
TSharedPtr<SWidget> CreateImageForEvent() const;
const FTextBlockStyle& GetEventTextStyle() const;
FText GetEventDescription() const;
FText GetEventTooltip() const;
TSharedPtr<FFrameEventTreeElement> Item;
};
} // UE::StateTreeDebugger
#endif // WITH_STATETREE_TRACE_DEBUGGER