2015-04-21 05:03:44 -04:00
|
|
|
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2015-06-15 13:40:28 -04:00
|
|
|
struct FPropertySpecifier;
|
|
|
|
|
|
2015-04-21 05:03:44 -04:00
|
|
|
/** Structure that holds class meta data generated from its UCLASS declaration */
|
|
|
|
|
class FClassDeclarationMetaData
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FClassDeclarationMetaData();
|
|
|
|
|
|
|
|
|
|
uint64 ClassFlags;
|
|
|
|
|
TMap<FName, FString> MetaData;
|
|
|
|
|
FString ClassWithin;
|
|
|
|
|
FString ConfigName;
|
|
|
|
|
|
|
|
|
|
TArray<FString> HideCategories;
|
|
|
|
|
TArray<FString> ShowSubCatgories;
|
|
|
|
|
TArray<FString> HideFunctions;
|
|
|
|
|
TArray<FString> AutoExpandCategories;
|
|
|
|
|
TArray<FString> AutoCollapseCategories;
|
|
|
|
|
TArray<FString> DependsOn;
|
|
|
|
|
TArray<FString> ClassGroupNames;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Parse Class's properties to generate its declaration data.
|
|
|
|
|
*
|
|
|
|
|
* @param InClassSpecifiers Class properties collected from its UCLASS macro
|
|
|
|
|
* @param InRequiredAPIMacroIfPresent *_API macro if present (empty otherwise)
|
|
|
|
|
* @param OutClassData Parsed class meta data
|
|
|
|
|
*/
|
|
|
|
|
void ParseClassProperties(const TArray<FPropertySpecifier>& InClassSpecifiers, const FString& InRequiredAPIMacroIfPresent);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Merges all category properties with the class which at this point only has its parent propagated categories
|
|
|
|
|
*
|
|
|
|
|
* @param Class Class to merge categories for
|
|
|
|
|
*/
|
|
|
|
|
void MergeClassCategories(FClass* Class);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Merges all class flags and validates them
|
|
|
|
|
*
|
|
|
|
|
* @param DeclaredClassName Name this class was declared with (for validation)
|
|
|
|
|
* @param PreviousClassFlags Class flags before resetting the class (for validation)
|
|
|
|
|
* @param Class Class to merge flags for
|
|
|
|
|
* @param AllClasses All known classes
|
|
|
|
|
*/
|
|
|
|
|
void MergeAndValidateClassFlags(const FString& DeclaredClassName, uint32 PreviousClassFlags, FClass* Class, const FClasses& AllClasses);
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
/** Merges all 'show' categories */
|
|
|
|
|
void MergeShowCategories();
|
|
|
|
|
/** Sets and validates 'within' property */
|
|
|
|
|
void SetAndValidateWithinClass(FClass* Class, const FClasses& AllClasses);
|
|
|
|
|
/** Sets and validates 'ConfigName' property */
|
|
|
|
|
void SetAndValidateConfigName(FClass* Class);
|
|
|
|
|
|
|
|
|
|
TArray<FString> ShowCategories;
|
|
|
|
|
TArray<FString> ShowFunctions;
|
|
|
|
|
TArray<FString> DontAutoCollapseCategories;
|
|
|
|
|
bool WantsToBePlaceable;
|
|
|
|
|
};
|