Files
UnrealEngineUWP/Engine/Source/Editor/PropertyEditor/Private/PropertyEditorToolkit.h
aditya ravichandran 24e1aa9bdd Change the Property Matrix's pin icons to not blink, and also update them to the new icons
#jira UE-135050
#rb lauren.barnes
#preflight 619bb4ad974d7d57266e54b6

#ROBOMERGE-AUTHOR: aditya.ravichandran
#ROBOMERGE-SOURCE: CL 18262641 in //UE5/Release-5.0/... via CL 18262685
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18262719 by aditya ravichandran in ue5-release-engine-test branch]
2021-11-22 15:55:34 -05:00

114 lines
3.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Engine/EngineTypes.h"
#include "Layout/Visibility.h"
#include "Animation/CurveSequence.h"
#include "Styling/SlateColor.h"
#include "Input/Reply.h"
#include "Widgets/SWidget.h"
#include "PropertyPath.h"
#include "Toolkits/IToolkitHost.h"
#include "Toolkits/AssetEditorToolkit.h"
#include "IPropertyTable.h"
#include "SPropertyTreeViewImpl.h"
class IPropertyTreeRow;
class FPropertyEditorToolkit : public FAssetEditorToolkit
{
public:
FPropertyEditorToolkit();
virtual void RegisterTabSpawners(const TSharedRef<class FTabManager>& TabManager) override;
virtual void UnregisterTabSpawners(const TSharedRef<class FTabManager>& TabManager) override;
virtual FName GetToolkitFName() const override;
virtual FText GetBaseToolkitName() const override;
virtual FText GetToolkitName() const override;
virtual FText GetToolkitToolTipText() const override;
virtual FString GetWorldCentricTabPrefix() const override;
virtual FLinearColor GetWorldCentricTabColorScale() const override;
bool IsExposedAsColumn( const TWeakPtr< IPropertyTreeRow >& Row ) const;
void ToggleColumnForProperty( const TSharedPtr< class FPropertyPath >& PropertyPath );
bool TableHasCustomColumns() const;
virtual bool IsPrimaryEditor() const override{ return false; };
public:
static TSharedRef<FPropertyEditorToolkit> CreateEditor( const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, UObject* ObjectToEdit );
static TSharedRef<FPropertyEditorToolkit> CreateEditor( const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, const TArray<UObject*>& ObjectsToEdit );
private:
static TSharedPtr<FPropertyEditorToolkit> FindExistingEditor( UObject* Object );
void Initialize( const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, const TArray<UObject*>& ObjectsToEdit );
void CreatePropertyTree();
void CreatePropertyTable();
void CreateGridView();
void CreateDetailsPanel();
TSharedRef<SDockTab> SpawnTab_PropertyTree( const FSpawnTabArgs& Args );
TSharedRef<SDockTab> SpawnTab_PropertyTable( const FSpawnTabArgs& Args ) ;
TSharedRef<SDockTab> SpawnTab_DetailsPanel(const FSpawnTabArgs& Args);
void GridSelectionChanged();
void GridRootPathChanged();
void ConstructTreeColumns( const TSharedRef< class SHeaderRow >& HeaderRow );
TSharedRef< SWidget > ConstructTreeCell( const FName& ColumnName, const TSharedRef< class IPropertyTreeRow >& Row );
FReply OnToggleColumnClicked( const TWeakPtr< class IPropertyTreeRow > Row );
const FSlateBrush* GetToggleColumnButtonImageBrush( const TWeakPtr< class IPropertyTreeRow > Row ) const;
EVisibility GetToggleColumnButtonVisibility( const TSharedRef< class IPropertyTreeRow > Row ) const;
void TableColumnsChanged();
EVisibility GetAddColumnInstructionsOverlayVisibility() const;
private:
TSharedPtr< class SPropertyTreeViewImpl > PropertyTree;
TSharedPtr< class IPropertyTable > PropertyTable;
TSharedPtr< FPropertyPath > PathToRoot;
/** Details panel */
TSharedPtr<class IDetailsView> DetailsView;
TArray< TSharedRef< FPropertyPath > > PropertyPathsAddedAsColumns;
TArray< TWeakPtr<IPropertyTreeRow> > PinRows;
static const FName ToolkitFName;
static const FName ApplicationId;
static const FName TreeTabId;
static const FName GridTabId;
static const FName DetailsTabId;
static const FName TreePinAsColumnHeaderId;
};