QuartzUIActions: 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/QuartzUIActions.h) · integration recipe · practical guide
FQuartzUINamedActionHandler
Public delegate. Blueprint callback for one explicitly registered web-to-Unreal action.
Prerequisites / integration: Configured exact-player shell, QuartzUIRuntime dependency, one frontend client. Use the QuartzUIActions recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Register menu.continue, then SetActions with a localized FQuartzUIBoundAction. Handler registration belongs to gameplay owner; catalog is copied state.
Avoid: Treating a displayed catalog entry as handler authorization. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIActions.h#L8)
FQuartzUIActionReceived
Public delegate. Observable action signal shared by the logical view and convenience shell hosts.
Prerequisites / integration: Configured exact-player shell, QuartzUIRuntime dependency, one frontend client. Use the QuartzUIActions recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Register menu.continue, then SetActions with a localized FQuartzUIBoundAction. Handler registration belongs to gameplay owner; catalog is copied state.
Avoid: Treating a displayed catalog entry as handler authorization. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIActions.h#L11)
FQuartzUINativeNamedActionHandler
Public delegate. C++ callback equivalent of FQuartzUINamedActionHandler.
Prerequisites / integration: Configured exact-player shell, QuartzUIRuntime dependency, one frontend client. Use the QuartzUIActions recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Register menu.continue, then SetActions with a localized FQuartzUIBoundAction. Handler registration belongs to gameplay owner; catalog is copied state.
Avoid: Treating a displayed catalog entry as handler authorization. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIActions.h#L14)
FQuartzUIBoundAction
Public type. Contextual logical action presented by one web view.
Prerequisites / integration: Configured exact-player shell, QuartzUIRuntime dependency, one frontend client. Use the QuartzUIActions recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Register menu.continue, then SetActions with a localized FQuartzUIBoundAction. Handler registration belongs to gameplay owner; catalog is copied state.
Avoid: Treating a displayed catalog entry as handler authorization. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIActions.h#L18)
FQuartzUIActionPolicy
Internal type. Validation and deterministic protocol-v1 serialization for action catalogs.
Prerequisites / integration: Configured exact-player shell, QuartzUIRuntime dependency, one frontend client. Use the QuartzUIActions recipe in the host module QuartzUIRuntime.
Minimal example / lifecycle: Register menu.continue, then SetActions with a localized FQuartzUIBoundAction. Handler registration belongs to gameplay owner; catalog is copied state.
Avoid: Treating a displayed catalog entry as handler authorization. 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/QuartzUIActions.h#L56)
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 "QuartzUIActions.generated.h"
/** Blueprint callback for one explicitly registered web-to-Unreal action. */
DECLARE_DYNAMIC_DELEGATE_OneParam(FQuartzUINamedActionHandler, FName, ActionName);
/** Observable action signal shared by the logical view and convenience shell hosts. */
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FQuartzUIActionReceived, FName, ActionName);
/** C++ callback equivalent of FQuartzUINamedActionHandler. */
DECLARE_DELEGATE_OneParam(FQuartzUINativeNamedActionHandler, FName);
/** Contextual logical action presented by one web view. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIBoundAction"))
struct QUARTZUIRUNTIME_API FQuartzUIBoundAction
{
GENERATED_BODY()
/** Open, backend-neutral name such as ui.back or inventory.drop. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Actions", meta = (QuartzUIName = "action"))
FName ActionName;
/** Localize in Unreal; JavaScript receives the resolved display string. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Actions", meta = (QuartzUIName = "label"))
FText DisplayName;
/** Lower values appear first. Equal values retain registration order. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Actions", meta = (ClampMin = "-10000", ClampMax = "10000", QuartzUIName = "priority"))
int32 DisplayPriority = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Actions", meta = (QuartzUIName = "enabled"))
bool bEnabled = true;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Actions", meta = (QuartzUIName = "display"))
bool bDisplayInActionBar = true;
/** Zero is an ordinary action; positive values describe a hold action. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|Actions", meta = (ClampMin = "0.0", ClampMax = "60.0", QuartzUIName = "holdSeconds"))
float HoldDurationSeconds = 0.0f;
bool operator==(const FQuartzUIBoundAction& Other) const
{
return ActionName == Other.ActionName
&& DisplayName.EqualTo(Other.DisplayName)
&& DisplayPriority == Other.DisplayPriority
&& bEnabled == Other.bEnabled
&& bDisplayInActionBar == Other.bDisplayInActionBar
&& HoldDurationSeconds == Other.HoldDurationSeconds;
}
};
/** Validation and deterministic protocol-v1 serialization for action catalogs. */
class QUARTZUIRUNTIME_API FQuartzUIActionPolicy final
{
public:
static constexpr int32 MaxBoundActions = 64;
static constexpr int32 MaxRegisteredActions = 64;
static bool IsValidBoundAction(const FQuartzUIBoundAction& Action);
static bool IsValidNamedAction(FName ActionName);
/** Strictly decodes the exact {"action":"..."} reserved endpoint payload. */
static bool TryParseNamedActionRequest(const FString& PayloadJson, FName& OutActionName);
static bool TrySerializeBoundActions(
const TArray<FQuartzUIBoundAction>& Actions,
FString& OutPayloadJson);
};