// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "SMassDebuggerViewBase.h" #include "MassDebuggerModel.h" #include "Templates/SharedPointer.h" struct FMassDebuggerProcessorData; struct FMassDebuggerArchetypeData; class SRichTextBlock; class SMassProcessor; class SMassProcessorCollectionListView; class SMassProcessorCollectionTableRow; template class SListView; class SVerticalBox; class SMassProcessorsView : public SMassDebuggerViewBase { public: SLATE_BEGIN_ARGS(SMassProcessorsView) { } SLATE_END_ARGS() void Construct(const FArguments& InArgs, const TSharedRef& InDebuggerModel); void PopulateProcessorList(); protected: virtual void OnRefresh() override; virtual void OnProcessorsSelected(TConstArrayView> SelectedProcessors, ESelectInfo::Type SelectInfo) override; virtual void OnArchetypesSelected(TConstArrayView> SelectedArchetypes, ESelectInfo::Type SelectInfo) override; void ProcessorListSelectionChanged(TSharedPtr SelectedItem, ESelectInfo::Type SelectInfo); friend SMassProcessorCollectionListView; friend SMassProcessorCollectionTableRow; void OnClearSelection(const SMassProcessorCollectionListView& TransientSource); TSharedPtr>> ProcessorCollectionsListWidget; TArray> ProcessorsListWidgets; TSharedPtr ProcessorWidget; TSharedPtr ProcessorsBox; DECLARE_DELEGATE_TwoParams(FOnProcessorSelectionChanged, TSharedPtr, ESelectInfo::Type); FOnProcessorSelectionChanged OnProcessorSelectionChanged; bool bClearingSelection = false; };