2019-12-26 23:06:02 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2014-12-06 19:14:20 -05:00
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
2014-08-12 08:51:25 -04:00
|
|
|
#include "EnumOnlyHeader.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
#include "TestObject.generated.h"
|
|
|
|
|
|
2015-11-18 16:20:49 -05:00
|
|
|
PRAGMA_DISABLE_DEPRECATION_WARNINGS
|
|
|
|
|
|
2019-07-08 08:49:02 -04:00
|
|
|
DECLARE_DYNAMIC_DELEGATE(FSimpleClassDelegate);
|
2016-04-12 17:04:39 -04:00
|
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FRegularDelegate, int32, SomeArgument);
|
|
|
|
|
DECLARE_DYNAMIC_DELEGATE_OneParam(FDelegateWithDelegateParam, FRegularDelegate const &, RegularDelegate);
|
|
|
|
|
|
2020-06-23 18:40:00 -04:00
|
|
|
struct ITestInterface
|
2017-02-02 14:41:50 -05:00
|
|
|
{
|
|
|
|
|
};
|
|
|
|
|
|
2019-01-24 15:32:49 -05:00
|
|
|
USTRUCT()
|
|
|
|
|
struct FContainsInstancedProperty
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
|
|
UPROPERTY(Instanced)
|
|
|
|
|
UObject* Prop;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
UCLASS()
|
|
|
|
|
class alignas(8) UAlignedObject : public UObject
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
};
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
UCLASS()
|
2020-07-31 11:41:49 -04:00
|
|
|
class UTestObject : public UObject, public ITestInterface, public SomeNamespace::FSomeNonReflectedType
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-03-17 06:02:26 -04:00
|
|
|
GENERATED_BODY()
|
2016-03-24 13:53:55 -04:00
|
|
|
|
2015-03-17 06:02:26 -04:00
|
|
|
public:
|
|
|
|
|
UTestObject(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2019-01-24 15:32:49 -05:00
|
|
|
UPROPERTY()
|
|
|
|
|
TArray<FContainsInstancedProperty> InstancedPropertyArray;
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
2020-02-06 13:13:41 -05:00
|
|
|
TArray<TWeakObjectPtr<UObject>, FMemoryImageAllocator> ObjectWrapperArray;
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
TArray<TWeakObjectPtr<UObject>, TMemoryImageAllocator<64>> ObjectWrapperArrayTemplated;
|
2019-01-24 15:32:49 -05:00
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
TSet<FContainsInstancedProperty> InstancedPropertySet;
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
2020-02-06 13:13:41 -05:00
|
|
|
LAYOUT_FIELD((TMap<FContainsInstancedProperty, TWeakObjectPtr<UObject>>), InstancedPropertyToObjectWrapperMap);
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
TMap<FContainsInstancedProperty, TWeakObjectPtr<UObject>, FMemoryImageSetAllocator> InstancedPropertyToObjectWrapperMapFrozen;
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
LAYOUT_FIELD((TMap<FContainsInstancedProperty, TWeakObjectPtr<UObject>, FMemoryImageSetAllocator>), InstancedPropertyToObjectWrapperMapFrozenWithLayout);
|
2019-01-24 15:32:49 -05:00
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
TMap<TWeakObjectPtr<UObject>, FContainsInstancedProperty> ObjectWrapperToInstancedPropertyMap;
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
UFUNCTION(BlueprintCallable, Category="Random")
|
|
|
|
|
void TestForNullPtrDefaults(UObject* Obj1 = NULL, UObject* Obj2 = nullptr, UObject* Obj3 = 0);
|
|
|
|
|
|
2016-09-15 00:21:42 -04:00
|
|
|
UFUNCTION()
|
|
|
|
|
void TestPassingArrayOfInterfaces(const TArray<TScriptInterface<ITestInterface> >& ArrayOfInterfaces);
|
|
|
|
|
|
2014-08-08 09:42:56 -04:00
|
|
|
UPROPERTY()
|
2020-02-06 13:13:41 -05:00
|
|
|
LAYOUT_FIELD_INITIALIZED(int32, Cpp11Init, 123);
|
2014-08-08 09:42:56 -04:00
|
|
|
|
2018-01-20 11:19:29 -05:00
|
|
|
UPROPERTY()
|
|
|
|
|
TArray<int> Cpp11BracedInit { 1, 2, 3 };
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
TArray<FVector4> Cpp11NestedBracedInit { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
|
|
|
|
|
|
2016-04-28 13:50:05 -04:00
|
|
|
UPROPERTY()
|
|
|
|
|
int RawInt;
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
2020-02-06 13:13:41 -05:00
|
|
|
LAYOUT_FIELD_EDITORONLY(int32, EditorOnlyField);
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
LAYOUT_ARRAY_EDITORONLY(int32, EditorOnlyArray, 20);
|
|
|
|
|
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
LAYOUT_ARRAY(unsigned int, RawUint, 20);
|
2016-04-28 13:50:05 -04:00
|
|
|
|
|
|
|
|
UFUNCTION()
|
|
|
|
|
void FuncTakingRawInts(int Signed, unsigned int Unsigned);
|
|
|
|
|
|
2014-08-12 08:51:25 -04:00
|
|
|
UPROPERTY()
|
2020-02-06 13:13:41 -05:00
|
|
|
LAYOUT_FIELD(ECppEnum, EnumProperty);
|
2014-08-12 08:51:25 -04:00
|
|
|
|
2015-04-21 10:25:59 -04:00
|
|
|
UPROPERTY()
|
2016-03-24 13:53:55 -04:00
|
|
|
TMap<int32, bool> TestMap;
|
2015-04-21 10:25:59 -04:00
|
|
|
|
2016-06-16 11:54:44 -04:00
|
|
|
UPROPERTY()
|
|
|
|
|
TSet<int32> TestSet;
|
|
|
|
|
|
2017-05-03 14:18:32 -04:00
|
|
|
UPROPERTY()
|
|
|
|
|
UObject* const ConstPointerProperty;
|
|
|
|
|
|
2019-07-08 08:49:02 -04:00
|
|
|
UPROPERTY()
|
|
|
|
|
FSimpleClassDelegate DelegateProperty;
|
|
|
|
|
|
2020-02-06 13:13:41 -05:00
|
|
|
UPROPERTY()
|
|
|
|
|
LAYOUT_BITFIELD(uint32, bThing, 1);
|
|
|
|
|
|
2014-09-29 07:39:15 -04:00
|
|
|
UFUNCTION()
|
|
|
|
|
void CodeGenTestForEnumClasses(ECppEnum Val);
|
|
|
|
|
|
2015-04-22 05:58:59 -04:00
|
|
|
UFUNCTION(Category="Xyz", BlueprintCallable)
|
|
|
|
|
TArray<UClass*> ReturnArrayOfUClassPtrs();
|
|
|
|
|
|
2015-03-30 14:13:41 -04:00
|
|
|
UFUNCTION()
|
2015-09-16 15:12:43 -04:00
|
|
|
inline int32 InlineFunc1()
|
|
|
|
|
{
|
|
|
|
|
return FString("Hello").Len();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UFUNCTION()
|
|
|
|
|
FORCEINLINE int32 InlineFunc2()
|
|
|
|
|
{
|
|
|
|
|
return FString("Hello").Len();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UFUNCTION()
|
|
|
|
|
FORCEINLINE_WHATEVER int32 InlineFunc3()
|
|
|
|
|
{
|
|
|
|
|
return FString("Hello").Len();
|
|
|
|
|
}
|
|
|
|
|
|
2019-12-13 11:07:03 -05:00
|
|
|
virtual void PureVirtualImplementedFunction() PURE_VIRTUAL(, )
|
|
|
|
|
|
2015-09-16 15:12:43 -04:00
|
|
|
UFUNCTION()
|
|
|
|
|
FORCENOINLINE int32 NoInlineFunc()
|
2015-03-30 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
return FString("Hello").Len();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UFUNCTION()
|
|
|
|
|
int32 InlineFuncWithCppMacros()
|
|
|
|
|
#if CPP
|
|
|
|
|
{
|
|
|
|
|
return FString("Hello").Len();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
2017-05-10 11:49:32 -04:00
|
|
|
#if WITH_EDITOR
|
|
|
|
|
UFUNCTION(BlueprintCallable, Category = "MyEditorOnlyFunction")
|
|
|
|
|
void MyEditorOnlyFunction();
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-04-10 14:19:15 -04:00
|
|
|
UFUNCTION(BlueprintNativeEvent, Category="Game")
|
|
|
|
|
UClass* BrokenReturnTypeForFunction();
|
2018-04-26 14:11:04 -04:00
|
|
|
|
|
|
|
|
UEnum* SomeFunc() const;
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|
2015-11-18 16:20:49 -05:00
|
|
|
|
2021-10-27 15:14:40 -04:00
|
|
|
UCLASS(Optional)
|
|
|
|
|
class UOptionalObject : public UObject
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
};
|
|
|
|
|
|
2019-07-08 09:23:08 -04:00
|
|
|
UCLASS()
|
|
|
|
|
class UDocumentedBaseObject : public UObject
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
2019-07-08 10:57:16 -04:00
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
UFUNCTION()
|
2019-07-08 09:23:08 -04:00
|
|
|
virtual void UndocumentedMethod();
|
|
|
|
|
|
|
|
|
|
// Duplicate tooltip
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
bool bFlagA;
|
|
|
|
|
|
|
|
|
|
// Duplicate tooltip
|
|
|
|
|
UPROPERTY()
|
|
|
|
|
bool bFlagB;
|
|
|
|
|
};
|
|
|
|
|
|
2019-07-08 08:49:02 -04:00
|
|
|
/**
|
2019-07-08 09:23:08 -04:00
|
|
|
* A test object to validate the DocumentationPolicy validation.
|
2019-07-08 08:49:02 -04:00
|
|
|
*/
|
|
|
|
|
UCLASS(meta = (DocumentationPolicy = "Strict"))
|
2019-07-08 09:23:08 -04:00
|
|
|
class UDocumentedTestObject : public UDocumentedBaseObject
|
2019-07-08 08:49:02 -04:00
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A float member on this class.
|
|
|
|
|
*/
|
|
|
|
|
UPROPERTY(meta = (UIMin = "0.0", UIMax = "1.0"))
|
|
|
|
|
float Member;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tests the documentation policy
|
|
|
|
|
* @param bFlag If set to true, a flag is set to true
|
|
|
|
|
* @param Range The range of the results.
|
|
|
|
|
*/
|
|
|
|
|
UFUNCTION()
|
|
|
|
|
void TestFunction(bool bFlag, float Range);
|
2019-07-08 10:57:16 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tests the documentation policy (2)
|
|
|
|
|
* @param bFlag If set to true, a flag is set to true
|
|
|
|
|
* @param Range The range of the results.
|
|
|
|
|
*/
|
|
|
|
|
UFUNCTION()
|
|
|
|
|
void TestFunction2(bool bFlag, float Range);
|
2019-07-08 09:23:08 -04:00
|
|
|
};
|
2019-07-08 08:49:02 -04:00
|
|
|
|
2015-11-18 16:20:49 -05:00
|
|
|
PRAGMA_ENABLE_DEPRECATION_WARNINGS
|