// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/DeclarativeSyntaxSupport.h" #include "Framework/Commands/UICommandList.h" #include "VisualLogger/VisualLoggerTypes.h" #include "Widgets/Views/STableViewBase.h" #include "Widgets/Views/STableRow.h" #include "Widgets/Views/STreeView.h" #include "SVisualLoggerBaseWidget.h" struct FLogStatusItem; struct FVisualLoggerDBRow; class SVisualLoggerStatusView : public SVisualLoggerBaseWidget { public: SLATE_BEGIN_ARGS(SVisualLoggerStatusView){} SLATE_END_ARGS(); virtual ~SVisualLoggerStatusView(); void Construct(const FArguments& InArgs, const TSharedRef& InCommandList); void ResetData(); protected: void OnObjectSelectionChanged(const TArray& SelectedRows); void OnItemSelectionChanged(const FVisualLoggerDBRow& DBRow, int32 ItemIndex); void GenerateStatusData(const FVisualLogDevice::FVisualLogEntryItem&, bool bAddHeader); TSharedRef HandleGenerateLogStatus(TSharedPtr InItem, const TSharedRef& OwnerTable); void OnLogStatusGetChildren(TSharedPtr InItem, TArray< TSharedPtr >& OutItems); void OnExpansionChanged(TSharedPtr Item, bool); protected: TArray ExpandedCategories; TSharedPtr< STreeView< TSharedPtr > > StatusItemsView; TArray< TSharedPtr > StatusItems; };