Files
UnrealEngine/Engine/Source/Editor/AssetDefinition/Public/AssetDefinitionAssetInfo.h
2025-05-18 13:04:45 +08:00

82 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Internationalization/Text.h"
#include "Layout/Visibility.h"
#include "Misc/Attribute.h"
struct FSlateBrush;
enum class EStatusSeverity
{
Info,
Warning,
Error
};
ENUM_CLASS_FLAGS(EStatusSeverity)
struct FAssetStatusPriority
{
FAssetStatusPriority()
: Severity(EStatusSeverity::Info)
, SeverityPriority(0)
{}
FAssetStatusPriority(const TAttribute<EStatusSeverity>& InSeverity)
: Severity(InSeverity)
, SeverityPriority(0)
{}
FAssetStatusPriority(const TAttribute<EStatusSeverity>& InSeverity, int32 InSeverityPriority)
: Severity(InSeverity)
, SeverityPriority(InSeverityPriority)
{}
public:
bool operator==(const FAssetStatusPriority& InOtherStatusPriority) const
{
if (!Severity.IsSet() || !InOtherStatusPriority.Severity.IsSet())
{
return false;
}
return Severity.Get() == InOtherStatusPriority.Severity.Get() && SeverityPriority == InOtherStatusPriority.SeverityPriority;
}
bool operator<(const FAssetStatusPriority& InOtherStatusPriority) const
{
if (!Severity.IsSet())
{
return true;
}
if (!InOtherStatusPriority.Severity.IsSet())
{
return false;
}
if (Severity.Get() == InOtherStatusPriority.Severity.Get())
{
return SeverityPriority < InOtherStatusPriority.SeverityPriority;
}
return Severity.Get() < InOtherStatusPriority.Severity.Get();
}
public:
TAttribute<EStatusSeverity> Severity;
int32 SeverityPriority;
};
struct FAssetDisplayInfo
{
public:
TAttribute<const FSlateBrush*> StatusIcon;
TAttribute<const FSlateBrush*> StatusIconOverlay;
TAttribute<FText> StatusTitle;
TAttribute<FText> StatusDescription;
TAttribute<EVisibility> IsVisible;
TAttribute<FAssetStatusPriority> Priority;
};