// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "SMassDebuggerViewBase.h" #include "Widgets/Views/SListView.h" #include "Widgets/Input/SComboBox.h" #include "Widgets/Input/SCheckBox.h" #include "SSearchableComboBox.h" #include "MassDebugger.h" #include "MassDebuggerBreakpoints.h" class SSearchableComboBox; struct FMassDebuggerModel; struct FMassDebuggerProcessorData; struct FMassDebuggerFragmentData; struct FMassDebuggerBreakpointData; class SMassBreakpointsView : public SMassDebuggerViewBase { public: SLATE_BEGIN_ARGS(SMassBreakpointsView) { } SLATE_END_ARGS() void Construct(const FArguments& InArgs, TSharedRef InModel); protected: // SMassDebuggerViewBase overrides virtual void OnRefresh() override { RefreshBreakpoints(); } virtual void OnProcessorsSelected(TConstArrayView> SelectedProcessors, ESelectInfo::Type SelectInfo) { } virtual void OnArchetypesSelected(TConstArrayView> SelectedArchetypes, ESelectInfo::Type SelectInfo) { } private: friend class SBreakpointTableRow; class SBreakpointTableRow : public SMultiColumnTableRow> { public: SLATE_BEGIN_ARGS(SBreakpointTableRow) { } SLATE_END_ARGS() void Construct(const FArguments& InArgs, const TSharedRef& InOwnerTableView, TSharedRef InParentView, TSharedRef InBreakpointData, TSharedRef InModel); virtual TSharedRef GenerateWidgetForColumn(const FName& ColumnName) override; virtual void Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime) override; private: TSharedPtr HitCount; TWeakPtr BreakpointData; TWeakPtr DebuggerModel; TWeakPtr ParentView; }; void RefreshBreakpoints(); FReply ClearBreakpointsClicked(); FReply SaveBreakpointsClicked(); FReply PasteBreakpointClicked(); FReply NewBreakpointClicked(); TSharedRef OnGenerateBreakpointRow( TSharedPtr InItem, const TSharedRef& OwnerTable); TSharedPtr>> BreakpointsListView; TArray> TriggerTypeOptions; TMap> TriggerMap; TArray> FilterTypeOptions; TMap> FilterMap; };