Quartz UI ↗
Browse docs
On this page
Private preview · 0.57.0-devView Markdown

QuartzUIHUD: 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/QuartzUIHUD.h) · integration recipe · practical guide

AQuartzUIHUD

Public type. Drop-in Blueprintable HUD facade for the subsystem-owned retained QuartzUI shell.

Prerequisites / integration: Exact local player and configured app; Slate/UMG dependencies for native presentation work. Use the QuartzUIHUD recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Set HUDClass to AQuartzUIHUD; use Ready/Failed/Action/Stopped events. HUD rebuild rebinds; explicit Stop closes shell.

Avoid: Assuming EndPlay must destroy the shell. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIHUD.h#L11)

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 "GameFramework/HUD.h"
#include "QuartzUIShellComponent.h"

#include "QuartzUIHUD.generated.h"

/** Drop-in Blueprintable HUD facade for the subsystem-owned retained QuartzUI shell. */
UCLASS(Blueprintable, meta = (DisplayName = "QuartzUI HUD"))
class QUARTZUIRUNTIME_API AQuartzUIHUD : public AHUD
{
	GENERATED_BODY()

public:
	AQuartzUIHUD();

	UFUNCTION(BlueprintCallable, Category = "QuartzUI|Shell", meta = (DisplayName = "Start UI Shell"))
	bool StartShell();

	UFUNCTION(BlueprintCallable, Category = "QuartzUI|Shell", meta = (DisplayName = "Stop UI Shell"))
	bool StopShell();

	UFUNCTION(BlueprintPure, Category = "QuartzUI|Shell", meta = (DisplayName = "Get UI Shell"))
	UQuartzUIView* GetShell() const;

	UFUNCTION(BlueprintPure, Category = "QuartzUI|Shell", meta = (DisplayName = "Is UI Ready"))
	bool IsShellReady() const;

	UFUNCTION(BlueprintPure, Category = "QuartzUI|Shell", meta = (DisplayName = "Get UI Shell Failure"))
	FString GetShellFailure() const;

	UFUNCTION(BlueprintPure, Category = "QuartzUI|Shell")
	UQuartzUIShellComponent* GetShellComponent() const { return ShellComponent; }

	UPROPERTY(BlueprintAssignable, Category = "QuartzUI|Shell")
	FQuartzUIShellReady OnShellReady;

	UPROPERTY(BlueprintAssignable, Category = "QuartzUI|Shell")
	FQuartzUIShellFailed OnShellFailed;

	UPROPERTY(BlueprintAssignable, Category = "QuartzUI|Shell")
	FQuartzUIShellStopped OnShellStopped;

	/** Named, explicitly registered action forwarded by the canonical shell view. */
	UPROPERTY(BlueprintAssignable, Category = "QuartzUI|Actions")
	FQuartzUIActionReceived OnAction;

protected:
	virtual void BeginPlay() override;
	virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;

private:
	void BindShellComponentDelegates();
	void UnbindShellComponentDelegates();

	UFUNCTION()
	void HandleShellReady(UQuartzUIView* Shell);

	UFUNCTION()
	void HandleShellFailed(UQuartzUIView* Shell, FString FailureReason);

	UFUNCTION()
	void HandleShellStopped(UQuartzUIView* Shell);

	UFUNCTION()
	void HandleShellAction(FName ActionName);

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "QuartzUI|Shell", meta = (AllowPrivateAccess = "true"))
	TObjectPtr<UQuartzUIShellComponent> ShellComponent;
};