QuartzUIPresentation: declaration reference
0.57.0-dev · beta source documentation. Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See validation and limits.
Pinned source (source: Source/QuartzUIRuntime/Public/QuartzUIPresentation.h) · integration recipe · practical guide
EQuartzUITextDirection
Public type. Text Direction: a declared type in culture, direction, text scale, accessibility preferences and normalization; use its exact fields/operations below.
Prerequisites / integration: Exact local player and configured app; Slate/UMG dependencies for native presentation work. Use the QuartzUIPresentation recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: SetPresentationPreferences; subscribe quartzui.presentation and apply in frontend. Native culture refresh; frontend subscription cleanup on unmount.
Avoid: Assuming standalone transport applies DOM attributes itself. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIPresentation.h#L8)
FQuartzUIPresentationContext
Public type. Per-player presentation preferences published by Unreal, never inferred in JavaScript. Wire role: payload of quartzui.presentation (state).
Prerequisites / integration: Exact local player and configured app; Slate/UMG dependencies for native presentation work. Use the QuartzUIPresentation recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: client.subscribeState('quartzui.presentation', value => { /* read this DTO */ }). Native culture refresh; frontend subscription cleanup on unmount.
Avoid: Assuming standalone transport applies DOM attributes itself. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIPresentation.h#L16)
FQuartzUIPresentationPolicy
Internal type. Validation and protocol-v1 serialization for the normalized web presentation context.
Prerequisites / integration: Exact local player and configured app; Slate/UMG dependencies for native presentation work. Use the QuartzUIPresentation recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: SetPresentationPreferences; subscribe quartzui.presentation and apply in frontend. Native culture refresh; frontend subscription cleanup on unmount.
Avoid: Assuming standalone transport applies DOM attributes itself. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIPresentation.h#L55)
Complete header
Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.
#pragma once
#include "CoreMinimal.h"
#include "QuartzUIPresentation.generated.h"
UENUM(BlueprintType, meta = (QuartzUITypeName = "QuartzUITextDirection"))
enum class EQuartzUITextDirection : uint8
{
LeftToRight UMETA(QuartzUIValue = "ltr"),
RightToLeft UMETA(QuartzUIValue = "rtl")
};
/** Per-player presentation preferences published by Unreal, never inferred in JavaScript. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIPresentationState"))
struct QUARTZUIRUNTIME_API FQuartzUIPresentationContext
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "language"))
FString LanguageTag = TEXT("en");
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "locale"))
FString LocaleTag = TEXT("en");
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "direction"))
EQuartzUITextDirection TextDirection = EQuartzUITextDirection::LeftToRight;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "textScale"))
float TextScale = 1.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "reducedMotion"))
bool bReducedMotion = false;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "highContrast"))
bool bHighContrast = false;
/** Read from Slate's platform accessibility handler. */
UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Presentation", meta = (QuartzUIName = "screenReader"))
bool bScreenReaderActive = false;
bool operator==(const FQuartzUIPresentationContext& Other) const
{
return LanguageTag == Other.LanguageTag
&& LocaleTag == Other.LocaleTag
&& TextDirection == Other.TextDirection
&& FMath::IsNearlyEqual(TextScale, Other.TextScale)
&& bReducedMotion == Other.bReducedMotion
&& bHighContrast == Other.bHighContrast
&& bScreenReaderActive == Other.bScreenReaderActive;
}
};
/** Validation and protocol-v1 serialization for the normalized web presentation context. */
class QUARTZUIRUNTIME_API FQuartzUIPresentationPolicy final
{
public:
static constexpr int32 MaxCultureTagLength = 64;
static constexpr float MinTextScale = 0.75f;
static constexpr float MaxTextScale = 2.0f;
static bool IsValidCultureTag(const FString& CultureTag);
static bool TryNormalize(
const FQuartzUIPresentationContext& Context,
FQuartzUIPresentationContext& OutNormalizedContext);
static bool TrySerialize(
const FQuartzUIPresentationContext& Context,
FString& OutPayloadJson);
static FQuartzUIPresentationContext MakeCurrentUnrealContext();
};