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

77 lines
2.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IRewindDebuggerTrackCreator.h"
#include "RewindDebuggerTrack.h"
#include "Textures/SlateIcon.h"
#include "SEventTimelineView.h"
class UChooserTable;
namespace UE::ChooserEditor
{
class FChooserTrack : public RewindDebugger::FRewindDebuggerTrack
{
public:
FChooserTrack(uint64 InObjectId, uint64 InChooserId);
virtual ~FChooserTrack();
uint64 GetChooserId() { return ChooserId; }
private:
virtual bool UpdateInternal() override;
TSharedPtr<SWidget> GetDetailsViewInternal() override;
virtual TSharedPtr<SWidget> GetTimelineViewInternal() override;
virtual FSlateIcon GetIconInternal() override { return Icon; }
virtual FText GetDisplayNameInternal() const override { return TrackName; }
virtual uint64 GetObjectIdInternal() const override { return ObjectId; }
// virtual FName GetNameInternal() const override { return Category; }
virtual bool HandleDoubleClickInternal() override;
TSharedPtr<SEventTimelineView::FTimelineEventData> GetEventData() const;
mutable TSharedPtr<SEventTimelineView::FTimelineEventData> EventData;
mutable int EventUpdateRequested = 0;
UChooserTable* ChooserTable = 0;
uint64 ObjectId;
uint64 ChooserId;
FSlateIcon Icon;
FText TrackName;
};
// Parent track
class FChoosersTrack : public RewindDebugger::FRewindDebuggerTrack
{
public:
FChoosersTrack(uint64 InObjectId);
private:
virtual bool UpdateInternal() override;
virtual TSharedPtr<SWidget> GetDetailsViewInternal() override;
virtual FSlateIcon GetIconInternal() override { return Icon; }
virtual FName GetNameInternal() const override { return "Choosers"; }
virtual FText GetDisplayNameInternal() const override { return NSLOCTEXT("RewindDebugger", "ChooserTrackName", "Chooser Evaluation"); }
virtual uint64 GetObjectIdInternal() const override { return ObjectId; }
virtual TConstArrayView<TSharedPtr<FRewindDebuggerTrack>> GetChildrenInternal(TArray<TSharedPtr<FRewindDebuggerTrack>>& OutTracks) const override;
FSlateIcon Icon;
uint64 ObjectId;
TArray<TSharedPtr<FChooserTrack>> Children;
};
class FChoosersTrackCreator : public RewindDebugger::IRewindDebuggerTrackCreator
{
private:
virtual FName GetTargetTypeNameInternal() const;
virtual FName GetNameInternal() const override;
virtual void GetTrackTypesInternal(TArray<RewindDebugger::FRewindDebuggerTrackType>& Types) const override;
virtual TSharedPtr<RewindDebugger::FRewindDebuggerTrack> CreateTrackInternal(const RewindDebugger::FObjectId& InObjectId) const override;
virtual bool HasDebugInfoInternal(const RewindDebugger::FObjectId& InObjectId) const override;
};
}