Files
UnrealEngineUWP/Engine/Source/Editor/DetailCustomizations/Public/DetailCustomizations.h
sebastian nordgren 6577bca4d4 Added section selector to the details view. It is now possible to register a category to a section, which will cause the entire category to be shown if the relevant section is selected.
Moved FDetailFilter to its own file.

#rb matt.kuhlenschmidt
#preflight 61361043bdfce00001c0a317

#ROBOMERGE-AUTHOR: sebastian.nordgren
#ROBOMERGE-SOURCE: CL 17442135 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17442153 by sebastian nordgren in ue5-release-engine-test branch]
2021-09-07 03:39:26 -04:00

57 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "PropertyEditorDelegates.h"
class FDetailCustomizationsModule : public IModuleInterface
{
public:
/**
* Called right after the module DLL has been loaded and the module object has been created
*/
virtual void StartupModule() override;
/**
* Called before the module is unloaded, right before the module object is destroyed.
*/
virtual void ShutdownModule() override;
/**
* Override this to set whether your module is allowed to be unloaded on the fly
*
* @return Whether the module supports shutdown separate from the rest of the engine.
*/
virtual bool SupportsDynamicReloading() override
{
return true;
}
private:
void RegisterPropertyTypeCustomizations();
void RegisterObjectCustomizations();
void RegisterSectionMappings();
/**
* Registers a custom class
*
* @param ClassName The class name to register for property customization
* @param DetailLayoutDelegate The delegate to call to get the custom detail layout instance
*/
void RegisterCustomClassLayout(FName ClassName, FOnGetDetailCustomizationInstance DetailLayoutDelegate );
/**
* Registers a custom struct
*
* @param StructName The name of the struct to register for property customization
* @param StructLayoutDelegate The delegate to call to get the custom detail layout instance
*/
void RegisterCustomPropertyTypeLayout(FName PropertyTypeName, FOnGetPropertyTypeCustomizationInstance PropertyTypeLayoutDelegate );
private:
/** List of registered class that we must unregister when the module shuts down */
TSet< FName > RegisteredClassNames;
TSet< FName > RegisteredPropertyTypes;
};