// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. #pragma once class FDirectoryPathStructCustomization : public IPropertyTypeCustomization { public: static TSharedRef MakeInstance(); /** IPropertyTypeCustomization interface */ virtual void CustomizeHeader( TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) OVERRIDE; virtual void CustomizeChildren( TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) OVERRIDE; private: /** Delegate for displaying text value of path */ FText GetDisplayedText(TSharedRef PropertyHandle) const; /** Delegate used to display a directory picker */ FReply OnPickDirectory(TSharedRef PropertyHandle, const bool bRelativeToGameContentDir, const bool bUseRelativePaths) const; /** Check whether that the chosen path is valid */ bool IsValidPath(const FString& AbsolutePath, const bool bRelativeToGameContentDir, FText* const OutReason = nullptr) const; /** The browse button widget */ TSharedPtr BrowseButton; /** Absolute path to the game content directory */ FString AbsoluteGameContentDir; };