// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "UObject/Object.h" namespace PropertyEditorUtils { /** * Calculates the possible drop-down options for the specified property path * @param InOutContainers The container objects to resolve the property path against * @param InOutPropertyPath The property path * @param InOutOptions The resulting options */ PROPERTYEDITOR_API void GetPropertyOptions(TArray& InOutContainers, FString& InOutPropertyPath, TArray>& InOutOptions); /** * Calculates the possible drop-down options for the specified property path * The resulting option * @param InOutContainers The container objects to resolve the property path against * @param InOutPropertyPath The property path * @param InOutOptions The resulting options */ PROPERTYEDITOR_API void GetPropertyOptions( TArray& InOutContainers, FString& InOutPropertyPath, TArray& OutOptions, TArray* OutDisplayNames); /** * Get all allowed and disallowed classes according to meta data * @param ObjectList The list of object that owns the property * @param Property The FProperty that contains the meta data * @param AllowedClasses The list of allowed classes * @param DisallowedClasses The list of disallowed classes * @param bExactClass Whether subclasses allowed or not * @param ObjectClass The class to add to the disallowed classes if there is no allowed classes */ PROPERTYEDITOR_API void GetAllowedAndDisallowedClasses(const TArray& ObjectList, const FProperty& Property, TArray& AllowedClasses, TArray& DisallowedClasses, bool bExactClass, const UClass* ObjectClass = UObject::StaticClass()); }