// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Input/Reply.h" #include "Widgets/SCompoundWidget.h" class ITableRow; class SHorizontalBox; class STableViewBase; class SFileListReportDialog : public SCompoundWidget { public: SLATE_BEGIN_ARGS(SFileListReportDialog) {} SLATE_ARGUMENT(FText, Header) SLATE_ARGUMENT(TArray, Files) SLATE_END_ARGS() void Construct(const FArguments& InArgs); static void OpenListDialog(const FText& InTitle, const FText& InHeader, const TArray& InFiles, bool bOpenAsModal = false); protected: TSharedRef MakeListViewWidget(TSharedRef Item, const TSharedRef& OwnerTable); virtual TSharedRef ConstructButtons(const FArguments& InArgs); virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override; virtual bool SupportsKeyboardFocus() const override; static void CreateWindow(TSharedRef InFileListReportDialogRef); FReply CloseWindow(); void OnWindowClosed(const TSharedRef& Window); virtual void OnClosedWithTitleBarX(const TSharedRef& Window) {} void SetModal(bool bIsModal); void SetAllowTitleBarX(bool bInAllowTitleBarX); protected: bool bOpenAsModal = false; bool bAllowTitleBarX = true; FText Title; private: FText Header; TArray< TSharedRef > Files; bool bClosingWithoutTitleBarX = false; };