// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/SWidget.h" #include "Widgets/Views/SHeaderRow.h" #include "ISceneOutliner.h" #include "SceneOutlinerPublicTypes.h" #include "ISceneOutlinerColumn.h" template class STableRow; /** A column for the SceneOutliner that displays the item label */ class FSceneOutlinerItemLabelColumn : public ISceneOutlinerColumn { public: FSceneOutlinerItemLabelColumn(ISceneOutliner& SceneOutliner) : WeakSceneOutliner(StaticCastSharedRef(SceneOutliner.AsShared())) {} virtual ~FSceneOutlinerItemLabelColumn() {} static FName GetID() { return FSceneOutlinerBuiltInColumnTypes::Label(); } ////////////////////////////////////////////////////////////////////////// // Begin ISceneOutlinerColumn Implementation virtual FName GetColumnID() override; virtual SHeaderRow::FColumn::FArguments ConstructHeaderRowColumn() override; virtual const TSharedRef< SWidget > ConstructRowWidget( FSceneOutlinerTreeItemRef TreeItem, const STableRow& Row ) override; virtual void PopulateSearchStrings( const ISceneOutlinerTreeItem& Item, TArray< FString >& OutSearchStrings ) const override; virtual bool SupportsSorting() const override { return true; } virtual void SortItems(TArray& RootItems, const EColumnSortMode::Type SortMode) const override; // End ISceneOutlinerColumn Implementation ////////////////////////////////////////////////////////////////////////// private: TWeakPtr WeakSceneOutliner; };