// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "NiagaraCommon.h" #include "Widgets/SItemSelector.h" #include "Widgets/SCompoundWidget.h" class UNiagaraScratchPadViewModel; class FNiagaraScratchPadScriptViewModel; class FNiagaraScratchPadCommandContext; typedef SItemSelector> SNiagaraScriptViewModelSelector; class SNiagaraScratchPadScriptManager : public SCompoundWidget { SLATE_BEGIN_ARGS(SNiagaraScratchPadScriptManager) {} SLATE_END_ARGS() void Construct(const FArguments& InArgs, UNiagaraScratchPadViewModel* InViewModel); private: void ObjectSelectionChanged(); TSharedRef ConstructScriptSelector(); TSharedRef ConstructParameterPanel(); TSharedRef ConstructScriptEditor(); TSharedRef ConstructSelectionEditor(); EVisibility GetObjectSelectionSubHeaderTextVisibility() const; FText GetObjectSelectionSubHeaderText() const; EVisibility GetObjectSelectionNoSelectionTextVisibility() const; static FName ScriptSelectorName; static FName ScriptParameterPanelName; static FName ScriptEditorName; static FName SelectionEditorName; static FName WideLayoutName; static FName NarrowLayoutName; private: FText ObjectSelectionSubHeaderText; TWeakObjectPtr ViewModel; TSharedPtr CommandContext; };