// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "Containers/BitArray.h" #include "Containers/Set.h" #include "Containers/SparseArray.h" #include "Containers/UnrealString.h" #include "Delegates/Delegate.h" #include "HAL/PlatformCrt.h" #include "IPropertyTypeCustomization.h" #include "Internationalization/Text.h" #include "Misc/Optional.h" #include "Serialization/Archive.h" #include "Templates/SharedPointer.h" #include "Templates/TypeHash.h" #include "Templates/UnrealTemplate.h" #include "Types/SlateEnums.h" #include "Widgets/Input/SComboBox.h" class FDetailWidgetRow; class IPropertyHandle; class SWidget; class FCameraLensSettingsCustomization : public IPropertyTypeCustomization { public: FCameraLensSettingsCustomization(); static TSharedRef MakeInstance(); /** IPropertyTypeCustomization instance */ virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; virtual void CustomizeChildren( TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override; protected: TSharedPtr MinFocalLengthHandle; TSharedPtr MaxFocalLengthHandle; TSharedPtr MinFStopHandle; TSharedPtr MaxFStopHandle; TSharedPtr MinFocusDistanceHandle; TSharedPtr SqueezeFactorHandle; TSharedPtr DiaphragmBladeCountHandle; TSharedPtr > > PresetComboBox; TArray< TSharedPtr< FString > > PresetComboList; void BuildPresetComboList(); void OnPresetChanged(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); TSharedRef MakePresetComboWidget(TSharedPtr InItem); FText GetPresetComboBoxContent() const; TSharedPtr GetPresetString() const; protected: };