// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #pragma once /** * Customizes a string asset reference to look like a UObject property */ class FStringAssetReferenceCustomization : public IPropertyTypeCustomization { public: static TSharedRef MakeInstance() { return MakeShareable( new FStringAssetReferenceCustomization ); } /** IPropertyTypeCustomization interface */ virtual void CustomizeHeader( TSharedRef InStructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override; virtual void CustomizeChildren( TSharedRef InStructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override; private: bool OnShouldFilterAsset( const class FAssetData& InAssetData ) const; private: /** Handle to the struct property being customized */ TSharedPtr StructPropertyHandle; /** Classes that can be used with this property */ TArray CustomClassFilters; /** Whether the classes in the above array must be an exact match, or whether they can also be a derived type; default is false */ bool bExactClass; };