// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/DeclarativeSyntaxSupport.h" #include "Input/Reply.h" #include "Widgets/Views/STableViewBase.h" #include "Widgets/Views/STableRow.h" #include "Widgets/Views/STreeView.h" class FFbxAttributeInfo; class FFbxNodeInfo; class FFbxSceneInfo; typedef TSharedPtr FbxNodeInfoPtr; class SFbxSceneTreeView: public STreeView { public: ~SFbxSceneTreeView(); SLATE_BEGIN_ARGS(SFbxSceneTreeView) : _SceneInfo(NULL) {} SLATE_ARGUMENT(TSharedPtr, SceneInfo) SLATE_END_ARGS() /** Construct this widget */ void Construct(const FArguments& InArgs); TSharedRef OnGenerateRowFbxSceneTreeView(FbxNodeInfoPtr Item, const TSharedRef& OwnerTable); void OnGetChildrenFbxSceneTreeView(FbxNodeInfoPtr InParent, TArray& OutChildren); void OnToggleSelectAll(ECheckBoxState CheckType); FReply OnExpandAll(); FReply OnCollapseAll(); protected: TSharedPtr SceneInfo; /** the elements we show in the tree view */ TArray FbxRootNodeArray; /** Open a context menu for the current selection */ TSharedPtr OnOpenContextMenu(); void AddSelectionToImport(); void RemoveSelectionFromImport(); void SetSelectionImportState(bool MarkForImport); void OnSelectionChanged(FbxNodeInfoPtr Item, ESelectInfo::Type SelectionType); void GotoAsset(TSharedPtr AssetAttribute); void RecursiveSetImport(FbxNodeInfoPtr NodeInfoPtr, bool ImportStatus); };