// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Widgets/SWindow.h" #include "Widgets/Input/SEditableTextBox.h" class UGSTab; struct FStreamNode; class SSelectStreamWindow final : public SWindow { public: SLATE_BEGIN_ARGS(SSelectStreamWindow) {} SLATE_END_ARGS() void Construct(const FArguments& InArgs, UGSTab* InTab, FString* OutSelectedStreamPath); private: TSharedPtr FilterText; TSharedPtr SelectedStream; FString* SelectedStreamPath = nullptr; TArray> StreamsTree; void PopulateStreamsTree(); TSharedRef OnGenerateRow(TSharedRef InItem, const TSharedRef& InOwnerTable); void OnGetChildren(TSharedRef InItem, TArray>& OutChildren); void OnSelectionChanged(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); FReply OnOkClicked(); FReply OnCancelClicked(); bool IsOkButtonEnabled() const; UGSTab* Tab = nullptr; };