// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. #pragma once #include "EnvironmentQuery/EnvQueryTypes.h" #include "PropertyEditing.h" #include "PropertyCustomizationHelpers.h" class FEnvQueryParamSetupCustomization : public IPropertyTypeCustomization { public: // Begin IPropertyTypeCustomization interface virtual void CustomizeHeader( TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override; virtual void CustomizeChildren( TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override; // End IPropertyTypeCustomization interface static TSharedRef MakeInstance( ); protected: TSharedPtr PropertyHandle; TSharedPtr ValueProp; TSharedPtr NameProp; TSharedPtr TextBox; FName LastPropName; bool bIsNamed; EEnvQueryParam::Type ParamType; void CacheMyValues(); TOptional GetParamNumValue() const; void OnParamNumValueChanged(float FloatValue) const; EVisibility GetParamNumValueVisibility() const; ESlateCheckBoxState::Type GetParamBoolValue() const; void OnParamBoolValueChanged(ESlateCheckBoxState::Type BoolValue) const; EVisibility GetParamBoolValueVisibility() const; void OnParamNameCommitted(const FText& ParamName, ETextCommit::Type CommitInfo); EVisibility GetParamNameVisibility() const; FReply ToggleMode(); void OnModeChanged(); FString GetComboText() const; FString GetComboTooltip() const; };