// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/ObjectMacros.h" #include "UObject/Object.h" #include "UObject/ScriptInterface.h" #include "UObject/SoftObjectPath.h" #include "Blueprint/UserWidget.h" #include "Engine/BlendableInterface.h" #include "Engine/EngineTypes.h" #include "Curves/RichCurve.h" #include "PropertyEditorTestObject.generated.h" class AActor; class IAnimClassInterface; class UMaterialInterface; class UPrimitiveComponent; class UStaticMesh; class UStaticMeshComponent; class UTexture; UENUM() enum PropertyEditorTestEnum { /** This comment should appear above enum 1 */ PropertyEditorTest_Enum1 UMETA(Hidden), /** This comment should appear above enum 2 */ PropertyEditorTest_Enum2, /** This comment should appear above enum 3 */ PropertyEditorTest_Enum3 UMETA(Hidden), /** This comment should appear above enum 4 */ PropertyEditorTest_Enum4, /** This comment should appear above enum 5 */ PropertyEditorTest_Enum5 UMETA(Hidden), /** This comment should appear above enum 6 */ PropertyEditorTest_Enum6, PropertyEditorTest_MAX, }; UENUM(meta = (Bitflags)) enum class PropertyEditorTestBitflags : uint8 { First, Second, Third, Hidden UMETA(Hidden, ToolTip = "This value shouldn't be used or even visible in the editor") }; ENUM_CLASS_FLAGS(PropertyEditorTestBitflags) UENUM() enum ArrayLabelEnum { ArrayIndex0, ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4, ArrayIndex5, ArrayIndex_MAX, }; UENUM() enum class EditColor : uint8 { Red, Orange, Yellow, Green, Blue, Indigo, Violet, Pink, Magenta, Cyan }; UENUM() enum class ETestEnumFlags : uint8 { None = 0, One = 1 << 0, Two = 1 << 1, Four = 1 << 2 }; USTRUCT() struct FPropertyEditTestTextStruct { GENERATED_BODY() UPROPERTY(EditAnywhere, Category = TextStruct) FText NormalProperty; }; USTRUCT() struct FPropertyEditorTestSubStruct { GENERATED_BODY() FPropertyEditorTestSubStruct() : FirstProperty(7897789), SecondProperty(342432432), CustomizedStructInsideUncustomizedStruct(ForceInitToZero) { } UPROPERTY(EditAnywhere, Category = PropertyEditorTestSubStruct) int32 FirstProperty; UPROPERTY(EditAnywhere, Category = PropertyEditorTestSubStruct) int32 SecondProperty; UPROPERTY(EditAnywhere, Category = PropertyEditorTestSubStruct) FLinearColor CustomizedStructInsideUncustomizedStruct; UPROPERTY(EditAnywhere, Category = PropertyEditorTestSubStruct) FSoftObjectPath CustomizedStructInsideUncustomizedStruct2; }; /** * This structs properties should be pushed out to categories inside its parent category unless it is in an array */ USTRUCT() struct FPropertyEditorTestBasicStruct { GENERATED_BODY() FPropertyEditorTestBasicStruct() : IntPropertyInsideAStruct(0), FloatPropertyInsideAStruct(0.0f), ObjectPropertyInsideAStruct(nullptr), InnerStruct() { } UPROPERTY(EditAnywhere, Category = InnerStructCategoryWithPushedOutProps) int32 IntPropertyInsideAStruct; UPROPERTY(EditAnywhere, Category = InnerStructCategoryWithPushedOutProps) float FloatPropertyInsideAStruct; UPROPERTY(EditAnywhere, Category = InnerStructCategoryWithPushedOutProps) UObject* ObjectPropertyInsideAStruct; UPROPERTY(EditAnywhere, Category = InnerStructCategoryWithPushedOutProps) FPropertyEditorTestSubStruct InnerStruct; }; USTRUCT() struct FPropertyEditorTestInlineEditCondition { GENERATED_BODY() UPROPERTY(EditAnywhere, Category = Default, meta = (InlineEditConditionToggle)) bool InlineEditCondition = false; UPROPERTY(EditAnywhere, Category = Default, meta = (EditCondition = InlineEditCondition)) int32 HasInlineEditCondition = 0; }; UCLASS(EditInlineNew) class UPropertyEditorTestInstancedObject: public UObject { GENERATED_BODY() UPROPERTY(EditAnywhere, Category = Default) int32 Number; }; USTRUCT() struct FPropertyEditorTestInstancedStruct { GENERATED_BODY() UPROPERTY(EditAnywhere, Instanced, Category = Default) UPropertyEditorTestInstancedObject* Object{nullptr}; }; UCLASS(transient) class UPropertyEditorTestObject: public UObject { GENERATED_BODY() UPROPERTY(EditAnywhere, Category = BasicProperties) int8 Int8Property; UPROPERTY(EditAnywhere, Category = BasicProperties) int16 Int16Property; UPROPERTY(EditAnywhere, Category = BasicProperties) int32 Int32Property; UPROPERTY(EditAnywhere, Category = BasicProperties) int64 Int64Property; UPROPERTY(EditAnywhere, Category = BasicProperties) uint8 ByteProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) uint16 UnsignedInt16Property; UPROPERTY(EditAnywhere, Category = BasicProperties) uint32 UnsignedInt32Property; UPROPERTY(EditAnywhere, Category = BasicProperties) uint64 UnsignedInt64Property; UPROPERTY(EditAnywhere, Category = BasicProperties) float FloatProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) double DoubleProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FName NameProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) bool BoolProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FString StringProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FText TextProperty; UPROPERTY(EditAnywhere, Category = BasicProperties, meta = (AllowPreserveRatio)) FIntPoint IntPointProperty; UPROPERTY(EditAnywhere, Category = BasicProperties, meta = (AllowPreserveRatio)) FVector Vector3Property; UPROPERTY(EditAnywhere, Category = BasicProperties, meta = (AllowPreserveRatio)) FVector2D Vector2Property; UPROPERTY(EditAnywhere, Category = BasicProperties, meta = (AllowPreserveRatio)) FVector4 Vector4Property; UPROPERTY(EditAnywhere, Category = BasicProperties) FRotator RotatorProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) UObject* ObjectProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FLinearColor LinearColorProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FColor ColorProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) TEnumAsByte EnumByteProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) EditColor EnumProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FMatrix MatrixProperty; UPROPERTY(EditAnywhere, Category = BasicProperties) FTransform TransformProperty; UPROPERTY(EditAnywhere, Category = Classes) UClass* ClassProperty; UPROPERTY(EditAnywhere, Category = Classes, meta = (AllowedClasses = "Texture2D")) UClass* ClassPropertyWithAllowed; UPROPERTY(EditAnywhere, Category = Classes, meta = (DisallowedClasses = "Texture2D")) UClass* ClassPropertyWithDisallowed; UPROPERTY(EditAnywhere, Category = Classes) TSubclassOf SubclassOfTexture; UPROPERTY(EditAnywhere, Category = Classes, meta = (AllowedClasses = "Texture2D")) TSubclassOf SubclassOfWithAllowed; UPROPERTY(EditAnywhere, Category = Classes, meta = (DisallowedClasses = "Texture2D")) TSubclassOf SubclassOfWithDisallowed; UPROPERTY(EditAnywhere, Category = Classes, meta = (AllowedClasses = "StaticMesh, SkeletalMesh ")) TAssetPtr AssetPointerWithAllowedAndWhitespace; // Integer UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray IntProperty32Array; // Byte UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray BytePropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray FloatPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray NamePropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray BoolPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray StringPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray TextPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray Vector3PropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray Vector2PropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray Vector4PropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray RotatorPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray ObjectPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray ActorPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray LinearColorPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray ColorPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray> EnumPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray StructPropertyArray; UPROPERTY(EditAnywhere, Category = ArraysOfProperties, meta = (TitleProperty = IntPropertyInsideAStruct)) TArray StructPropertyArrayWithTitle; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) TArray InstancedStructArray; UPROPERTY(EditAnywhere, Instanced, Category = ArraysOfProperties) TArray InstancedUObjectArray; UPROPERTY(EditAnywhere, editfixedsize, Category = ArraysOfProperties) TArray FixedArrayOfInts; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) int32 StaticArrayOfInts[5]; UPROPERTY(EditAnywhere, Category = ArraysOfProperties) int32 StaticArrayOfIntsWithEnumLabels[ArrayIndex_MAX]; // This is a float property tooltip that is overridden UPROPERTY(EditAnywhere, Category = AdvancedProperties, meta = (ClampMin = "0.0", ClampMax = "100.0", UIMin = "0.0", UIMax = "50.0", ToolTip = "This is a custom tooltip that should be shown")) float FloatPropertyWithClampedRange; UPROPERTY(EditAnywhere, Category = AdvancedProperties, meta = (ClampMin = "0", ClampMax = "100", UIMin = "0", UIMax = "50")) int32 IntPropertyWithClampedRange; UPROPERTY(VisibleAnywhere, Category = AdvancedProperties) int32 IntThatCannotBeChanged; UPROPERTY(VisibleAnywhere, Category = AdvancedProperties) FString StringThatCannotBeChanged; UPROPERTY(VisibleAnywhere, Category = AdvancedProperties) UPrimitiveComponent* ObjectThatCannotBeChanged; UPROPERTY(EditAnywhere, Category = AdvancedProperties, meta = (Bitmask, BitmaskEnum = "PropertyEditorTestBitflags")) int32 EnumBitflags = 0; UPROPERTY(EditAnywhere, Category = AdvancedProperties, meta = (PasswordField = true)) FString StringPasswordProperty; UPROPERTY(EditAnywhere, Category = AdvancedProperties, meta = (PasswordField = true)) FText TextPasswordProperty; UPROPERTY(EditAnywhere, Category = SingleStruct, meta = (ShowOnlyInnerProperties)) FPropertyEditorTestBasicStruct ThisIsBrokenIfItsVisibleInADetailsView; UPROPERTY(EditAnywhere, Category = StructTests) FPropertyEditorTestBasicStruct StructWithMultipleInstances1; UPROPERTY(EditAnywhere, Category = StructTests, meta = (InlineEditConditionToggle)) bool bEditConditionStructWithMultipleInstances2; UPROPERTY(EditAnywhere, Category = StructTests, meta = (EditCondition = "bEditConditionStructWithMultipleInstances2")) FPropertyEditorTestBasicStruct StructWithMultipleInstances2; UPROPERTY(EditAnywhere, Category = StructTests) FRichCurve RichCurve; UPROPERTY(EditAnywhere, Category = Assets) FSoftObjectPath AssetReferenceCustomStruct; UPROPERTY(EditAnywhere, Category = Assets, meta = (DisplayThumbnail = "true")) FSoftObjectPath AssetReferenceCustomStructWithThumbnail; UPROPERTY(EditAnywhere, Category = Assets, meta = (AllowedClasses = "PointLight", ExactClass)) FSoftObjectPath ExactlyPointLightActorReference; UPROPERTY(EditAnywhere, Category = Assets, meta = (AllowedClasses = "Light")) FSoftObjectPath LightActorReference; UPROPERTY(EditAnywhere, Category = Assets, meta = (AllowedClasses = "PointLight, SpotLight", ExactClass = true)) FSoftObjectPath ExactPointOrSpotLightActorReference; UPROPERTY(EditAnywhere, Category = Assets, meta = (AllowedClasses = "Light ,StaticMeshActor", DisplayThumbnail)) FSoftObjectPath LightOrStaticMeshActorReference; UPROPERTY(EditAnywhere, Category = Assets, meta = (AllowedClasses = "Actor", DisallowedClasses = "Light")) FSoftObjectPath NotLightActorReference; UPROPERTY(EditAnywhere, Category = Assets, meta = (AllowedClasses = "Material,Texture")) FSoftObjectPath MaterialOrTextureAssetReference; UPROPERTY(EditAnywhere, Category = Assets, meta = (MetaClass = "Actor")) FSoftObjectPath ActorWithMetaClass; UPROPERTY(EditAnywhere, Category = Assets) FSoftObjectPath DisabledByCanEditChange; UPROPERTY(EditAnywhere, Category = StructTests, meta = (InlineEditConditionToggle)) bool bEditCondition; UPROPERTY(EditAnywhere, Category = AdvancedProperties, meta = (editcondition = "bEditCondition")) int32 SimplePropertyWithEditCondition; UPROPERTY(EditAnywhere, Category = StructTests, meta = (InlineEditConditionToggle)) bool bEditConditionAssetReferenceCustomStructWithEditCondition; UPROPERTY(EditAnywhere, Category = StructTests, meta = (editcondition = "bEditConditionAssetReferenceCustomStructWithEditCondition")) FSoftObjectPath AssetReferenceCustomStructWithEditCondition; UPROPERTY(EditAnywhere, Category = StructTests) TArray ArrayOfStructs; UPROPERTY(EditAnywhere, Category = StructTests) FPropertyEditTestTextStruct Struct; UPROPERTY(EditAnywhere, Category = EditInlineProps) UStaticMeshComponent* EditInlineNewStaticMeshComponent; UPROPERTY(EditAnywhere, Category = EditInlineProps) TArray ArrayOfEditInlineNewSMCs; UPROPERTY(EditAnywhere, Category = AssetPropertyTests) UTexture* TextureProp; UPROPERTY(EditAnywhere, Category = AssetPropertyTests) UStaticMesh* StaticMeshProp; UPROPERTY(EditAnywhere, Category = AssetPropertyTests) UMaterialInterface* AnyMaterialInterface; UPROPERTY(EditAnywhere, Category = AssetPropertyTests) AActor* OnlyActorsAllowed; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet Int32Set; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet FloatSet; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet StringSet; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet ObjectSet; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet ActorSet; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet EditColorSet; UPROPERTY(EditAnywhere, Category = "TSet Tests") TSet NameSet; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap Int32ToStringMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap StringToColorMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap Int32ToStructMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap StringToFloatMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap StringToObjectMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap StringToActorMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap ObjectToInt32Map; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap ObjectToColorMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap> IntToEnumMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap NameToNameMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap NameToObjectMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap NameToCustomMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap NameToColorMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap IntToCustomMap; UPROPERTY(EditAnywhere, Category = "TMap Tests") TMap IntToSubStructMap; UPROPERTY(EditAnywhere, Category = TSetStructTests) TSet LinearColorSet; UPROPERTY(EditAnywhere, Category = TSetStructTests) TSet VectorSet; UPROPERTY(EditAnywhere, Category = TMapStructKeyTests) TMap LinearColorToStringMap; UPROPERTY(EditAnywhere, Category = TMapStructKeyTests) TMap VectorToFloatMap; UPROPERTY(EditAnywhere, Category = TMapStructKeyTests) TMap LinearColorToVectorMap; UPROPERTY(EditAnywhere, Category = ScriptInterfaces) TScriptInterface BlendableInterface; UPROPERTY(EditAnywhere, Category = ScriptInterfaces) TScriptInterface AnimClassInterface; // This is an IBlendableInterface that only allows for ULightPropagationVolumeBlendable objects UPROPERTY(EditAnywhere, Category = ScriptInterfaces, meta = (AllowedClasses = "LightPropagationVolumeBlendable")) TScriptInterface LightPropagationVolumeBlendable; // Allows either an object that's derived from UTexture or IBlendableInterface, to ensure that Object Property handles know how to // filter for AllowedClasses correctly. UPROPERTY(EditAnywhere, Category = ObjectPropertyAllowedClasses, meta = (AllowedClasses = "Texture,BlendableInterface")) UObject* TextureOrBlendableInterface; UPROPERTY(EditAnywhere, Category = "Subcategory") bool bSubcategory; UPROPERTY(EditAnywhere, AdvancedDisplay, Category = "Subcategory") bool bSubcategoryAdvanced; UPROPERTY(EditAnywhere, Category = "Subcategory|Foo") bool bSubcategoryFooSimple; UPROPERTY(EditAnywhere, AdvancedDisplay, Category = "Subcategory|Foo") bool bSubcategoryFooAdvanced; UPROPERTY(EditAnywhere, Category = "Subcategory|Bar") bool bSubcategoryBarSimple; UPROPERTY(EditAnywhere, AdvancedDisplay, Category = "Subcategory|Bar") bool bSubcategoryBarAdvanced; UPROPERTY(EditAnywhere, Category = "Subcategory") bool bSubcategoryLast; UPROPERTY(EditAnywhere, Category = EditCondition) bool bEnablesNext; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "bEnablesNext == true")) bool bEnabledByPrevious; UPROPERTY(EditAnywhere, Category = EditCondition) EditColor EnumEditCondition; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "EnumEditCondition == EditColor::Blue")) bool bEnabledWhenBlue; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "EnumEditCondition == EditColor::Pink")) bool bEnabledWhenPink; UPROPERTY(EditAnywhere, Category = EditCondition) TEnumAsByte EnumAsByteEditCondition; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "EnumAsByteEditCondition == PropertyEditorTestEnum::PropertyEditorTest_Enum2")) bool bEnabledWhenEnumIs2; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "EnumAsByteEditCondition == PropertyEditorTestEnum::PropertyEditorTest_Enum4")) bool bEnabledWhenEnumIs4; UPROPERTY(EditAnywhere, Category = EditCondition) int32 IntegerEditCondition; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "IntegerEditCondition >= 5")) bool bEnabledWhenIntGreaterOrEqual5; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "IntegerEditCondition <= 10")) bool bEnabledWhenIntLessOrEqual10; UPROPERTY(EditAnywhere, Category = EditCondition) float FloatEditCondition; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "FloatEditCondition > 5")) bool bEnabledWhenFloatGreaterThan5; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "FloatEditCondition < 10")) bool bEnabledWhenFloatLessThan10; UPROPERTY(EditAnywhere, Category = EditCondition) bool bEditConditionForArrays; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "bEditConditionForArrays")) TArray ArrayWithEditCondition; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "bEditConditionForArrays")) TArray ArrayOfStructsWithEditCondition; UPROPERTY(EditAnywhere, Category = EditCondition) bool bEditConditionForFixedArray; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "bEditConditionForFixedArray")) FString FixedArrayWithEditCondition[5]; UPROPERTY(EditAnywhere, Category = EditCondition) int64 EditConditionFlags; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "EditConditionFlags & ETestEnumFlags::Two || EditConditionFlags & ETestEnumFlags::Four")) bool bEnabledWhenFlagsHasTwoOrFour; UPROPERTY(EditAnywhere, Category = EditCondition, meta = (EditCondition = "EditConditionFlags & ETestEnumFlags::One == false")) bool bDisabledWhenFlagsIsOdd; UPROPERTY(EditAnywhere, Category = OnlyInlineProperty, meta = (InlineCategoryProperty)) TEnumAsByte InlineProperty; UPROPERTY(EditAnywhere, Category = EditConditionHides, meta = (InlineCategoryProperty)) TEnumAsByte PropertyThatHides; UPROPERTY(EditAnywhere, Category = EditConditionHides, meta = (EditConditionHides, EditCondition = "PropertyThatHides == EComponentMobility::Static")) bool bVisibleWhenStatic; UPROPERTY(EditAnywhere, Category = EditConditionHides, meta = (EditConditionHides, EditCondition = "PropertyThatHides == EComponentMobility::Stationary")) int32 VisibleWhenStationary; UPROPERTY(EditAnywhere, Category = DateTime) FDateTime DateTime; UPROPERTY() bool bInlineEditConditionWithoutMetaToggle; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions", meta = (EditCondition = "bInlineEditConditionWithoutMetaToggle")) float InlineEditConditionWithoutMeta; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions", meta = (InlineEditConditionToggle)) bool bInlineEditConditionWithMetaToggle; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions", meta = (EditCondition = "bInlineEditConditionWithMetaToggle")) float InlineEditConditionWithMeta; UPROPERTY(meta = (InlineEditConditionToggle)) bool bInlineEditConditionNotEditable; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions", meta = (EditCondition = "bInlineEditConditionNotEditable")) float HasNonEditableInlineCondition; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions") bool bSharedEditCondition; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions", meta = (EditCondition = "bSharedEditCondition")) float UsesSharedEditCondition1; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions", meta = (EditCondition = "bSharedEditCondition")) float UsesSharedEditCondition2; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions") FPropertyEditorTestInlineEditCondition StructWithInlineCondition; UPROPERTY(EditAnywhere, Category = "Inline Edit Conditions") TArray ArrayOfStructsWithInlineCondition; bool CanEditChange(const FProperty* InProperty) const; }; UCLASS(EditInlineNew, Blueprintable) class UBlueprintPropertyTestObject: public UObject { GENERATED_BODY() public: UPROPERTY(EditAnywhere, Category = "Hidden") int32 ShouldBeHidden; UPROPERTY(EditAnywhere, Category = "Visible") int32 ShouldBeVisible; }; UCLASS(Blueprintable) class UBlueprintPropertyContainerTestObject: public UObject { GENERATED_BODY() public: UPROPERTY(Instanced, EditAnywhere, Category = "Default", meta = (ShowOnlyInnerProperties)) TArray Array; }; UCLASS(Abstract, BlueprintType, SparseClassDataType = TestSparseClassDataStorage) class UTestSparseClassDataBase: public UObject { GENERATED_BODY() }; UCLASS(BlueprintType) class UTestSparseClassData: public UTestSparseClassDataBase { GENERATED_BODY() }; USTRUCT() struct FTestSparseClassDataStorage { GENERATED_BODY() UPROPERTY(EditDefaultsOnly, Category = Default) TMap Map; };